pay-items.vue 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208
  1. <template>
  2. <div>
  3. <el-table
  4. :data="list"
  5. :header-cell-style="{ background: '#EDEEF0', color: '#444' }"
  6. >
  7. <el-table-column
  8. align="center"
  9. prop="id"
  10. width="120"
  11. label="缴费单号"
  12. >
  13. <template slot-scope="scope">
  14. <div>
  15. <copy-text>{{ scope.row.id }}</copy-text>
  16. </div>
  17. </template>
  18. </el-table-column>
  19. <el-table-column
  20. align="center"
  21. prop="batchNo"
  22. width="200"
  23. label="缴费批次"
  24. >
  25. <template slot-scope="scope">
  26. <div>
  27. <copy-text>{{ scope.row.batchNo }}</copy-text>
  28. </div>
  29. </template>
  30. </el-table-column>
  31. <el-table-column align="center" prop="paymentType" label="缴费类型">
  32. <template slot-scope="scope">
  33. <div>
  34. {{ scope.row.paymentType | userPaymentTypeFormat }}
  35. </div>
  36. </template>
  37. </el-table-column>
  38. <el-table-column align="center" prop="status" width="120" label="缴费状态">
  39. <template slot-scope="scope">
  40. <div>
  41. {{ scope.row.status | payTypeStatus }}
  42. </div>
  43. </template>
  44. </el-table-column>
  45. <el-table-column
  46. align="center"
  47. prop="expectNum"
  48. width="200"
  49. label="缴费人数(预计/实际)"
  50. >
  51. <template slot-scope="scope">
  52. <div>{{ scope.row.expectNum }}/{{ scope.row.actualNum }}</div>
  53. </template>
  54. </el-table-column>
  55. <el-table-column align="center" prop="paymentPattern" label="缴费方式">
  56. <template slot-scope="scope">
  57. <div>
  58. {{ scope.row.paymentPattern | teamPayStatus }}
  59. </div>
  60. </template>
  61. </el-table-column>
  62. <el-table-column
  63. align="center"
  64. prop="paymentValidStartDate"
  65. width="200"
  66. label="缴费有效期"
  67. >
  68. <template slot-scope="scope">
  69. <div>
  70. {{ scope.row.paymentValidStartDate | formatTimer }} ~
  71. {{ scope.row.paymentValidEndDate | formatTimer }}
  72. </div>
  73. </template>
  74. </el-table-column>
  75. <el-table-column align="center" prop="memo" label="备注" width="200" class-name="table-btns">
  76. <template slot-scope="scope">
  77. <overflow-text :text="scope.row.memo"></overflow-text>
  78. </template>
  79. </el-table-column>
  80. <el-table-column label="操作" fixed="right" width="200">
  81. <template slot-scope="scope">
  82. <div>
  83. <el-button
  84. type="text"
  85. @click="toDetail(scope.row)"
  86. v-permission="'musicGroupPaymentCalender/auditListDetail'"
  87. >查看</el-button
  88. >
  89. <!-- <el-button
  90. type="text"
  91. @click="$listeners.openChioseStudent(scope.row)"
  92. v-if="
  93. scope.row.status != 'REJECT' &&
  94. scope.row.status != 'AUDITING' &&
  95. teamStatus &&
  96. scope.row.paymentType != 'MUSIC_APPLY' &&
  97. scope.row.paymentType != 'ADD_STUDENT'
  98. "
  99. v-permission="'musicGroupPaymentCalenderDetail/batchAdd'"
  100. >添加学员</el-button
  101. > -->
  102. <!-- <el-button
  103. type="text"
  104. v-if="scope.row.status == 'REJECT' && teamStatus"
  105. v-permission="'musicGroupPaymentCalender/update'"
  106. @click="$listeners.resetPay(scope.row)"
  107. >修改</el-button
  108. > -->
  109. <el-button type="text"
  110. v-if="$listeners.lookUserList"
  111. @click="$listeners.lookUserList(scope.row)"
  112. v-permission="'musicGroupPaymentCalender/queryPage'">学员列表</el-button>
  113. <el-button
  114. type="text"
  115. v-permission="'musicGroupPaymentCalender/makesureSchoolePaid'"
  116. v-if="scope.row.status == 'OPEN' && teamStatus == 'resetTeam'"
  117. @click="$listeners.commmitGetMoney(scope.row)"
  118. >确认收款</el-button
  119. >
  120. <el-button
  121. type="text"
  122. v-if="
  123. !isNewGropu &&
  124. teamStatus &&
  125. scope.row.paymentType != 'MUSIC_APPLY' &&
  126. payUserType === 'STUDENT'
  127. "
  128. @click="$listeners.onCreateQRCode(scope.row)"
  129. >续费二维码</el-button
  130. >
  131. <el-button
  132. type="text"
  133. v-if="$listeners.onPreview && payUserType === 'STUDENT' && scope.row.paymentType == 'MUSIC_APPLY'"
  134. v-permission="'musicGroup/findMusicGroupSubjectInfo/966'"
  135. @click="$listeners.onPreview(scope.row)"
  136. >预览</el-button
  137. >
  138. <!-- <el-button type="text" v-if="!isNewGropu" @click="onCreateQRCode(scope.row)">续费二维码</el-button> -->
  139. </div>
  140. </template>
  141. </el-table-column>
  142. </el-table>
  143. <pagination
  144. :total="rules.total"
  145. :page.sync="rules.page"
  146. :limit.sync="rules.limit"
  147. :page-sizes="rules.page_size"
  148. @pagination="getList"
  149. />
  150. <div slot="footer" class="dialog-footer">
  151. <el-button @click="$listeners.close">取 消</el-button>
  152. </div>
  153. </div>
  154. </template>
  155. <script>
  156. import { addMusicGroupPaymentCalender, getMusicGroupPaymentCalender, resetMusicGroupPaymentCalender, delMusicGroupPaymentCalender, findMusicGroupSubjectInfo } from "@/api/buildTeam";
  157. import { musicGroupPaymentCalenderDetailDel } from '../api'
  158. import loading from '@/utils/loading'
  159. import pagination from "@/components/Pagination/index";
  160. export default {
  161. props: ["batchNo", "teamStatus", "teamType", "payUserType", "isNewGropu"],
  162. components: {
  163. pagination,
  164. },
  165. data() {
  166. return {
  167. list: [],
  168. rules: {
  169. // 分页规则
  170. limit: 10, // 限制显示条数
  171. page: 1, // 当前页
  172. total: 0, // 总条数
  173. page_size: [10, 20, 40, 50], // 选择限制显示条数
  174. },
  175. };
  176. },
  177. mounted() {
  178. this.getList();
  179. },
  180. methods: {
  181. async getList() {
  182. try {
  183. const res = await getMusicGroupPaymentCalender({
  184. batchNo: this.batchNo,
  185. page: "1",
  186. rows: 10,
  187. });
  188. this.list = res.data.rows;
  189. } catch (error) {}
  190. },
  191. toDetail(row) {
  192. if (this.payUserType === 'STUDENT') {
  193. this.$listeners.close();
  194. }
  195. this.$nextTick(() => {
  196. this.$listeners.lookDetail(row)
  197. })
  198. },
  199. }
  200. };
  201. </script>
  202. <style lang="less" scoped>
  203. .dialog-footer {
  204. margin-top: 20px;
  205. display: block;
  206. text-align: right;
  207. }
  208. </style>