edit.vue 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148
  1. <template>
  2. <div class="cmain">
  3. <el-tabs v-model="activeName" type="card" @tab-click="handleClick">
  4. <el-tab-pane label="微信充值" name="微信充值"></el-tab-pane>
  5. <el-tab-pane label="转账充值" name="转账充值"></el-tab-pane>
  6. </el-tabs>
  7. <div class="bos" v-if="activeName == '微信充值'">
  8. <el-form ref="form" :model="form" :rules="rules" label-width="120px">
  9. <el-form-item label="充值金额" prop="money">
  10. <el-input type="number" v-model="form.money" placeholder="请输入充值金额" clearable>
  11. <template slot="append">元</template>
  12. </el-input>
  13. </el-form-item>
  14. </el-form>
  15. </div>
  16. <div class="bos" v-if="activeName == '转账充值'">
  17. <el-form ref="platform" disabled :model="platform" label-width="120px">
  18. <el-steps :active="1" align-center class="cg">
  19. <el-step title="充值信息"></el-step>
  20. <el-step title="平台确认"></el-step>
  21. <el-step title="余额到账"></el-step>
  22. </el-steps>
  23. <el-form-item label="服务公司名称">
  24. <el-input v-model="platform.serviceCompany" />
  25. </el-form-item>
  26. <el-form-item label="开户行">
  27. <el-input v-model="platform.bankName" />
  28. </el-form-item>
  29. <el-form-item label="充值到账">
  30. <el-input v-model="platform.bankAccount" />
  31. </el-form-item>
  32. </el-form>
  33. <el-form ref="form" :model="form" :rules="rules" label-width="120px">
  34. <el-form-item label="充值金额" prop="money">
  35. <el-input type="number" v-model="form.money" placeholder="请输入充值金额" clearable>
  36. <template slot="append">元</template>
  37. </el-input>
  38. </el-form-item>
  39. <el-form-item label="充值凭证" prop="certificate">
  40. <ImageUpload v-model="form.certificate" :isShowTip="false" :limit="1"></ImageUpload>
  41. <span class="tips">例如:付款或者转账截图</span>
  42. </el-form-item>
  43. </el-form>
  44. </div>
  45. <div class="mfooter">
  46. <el-button type="primary" @click="submitForm">确 定</el-button>
  47. <el-button @click="$layer.close(layerid)">取 消</el-button>
  48. </div>
  49. <!--扫码支付-->
  50. <el-dialog title="扫码支付" :visible.sync="open" :width="'500px'" @close="close()" :close-on-click-modal="false" append-to-body>
  51. <div class="pcontents">
  52. <div id="qrcode"></div>
  53. <div class="sm">请用微信扫码,完成支付</div>
  54. </div>
  55. </el-dialog>
  56. </div>
  57. </template>
  58. <script>
  59. let timer = null;
  60. import QRCode from 'qrcodejs2';
  61. export default {
  62. data() {
  63. return {
  64. activeName: '微信充值',
  65. open: false,
  66. platform: {},
  67. form: {},
  68. rules: {
  69. money: [{ required: true, message: '充值金额不能为空', trigger: 'blur' }],
  70. certificate: [{ required: true, message: '充值凭证不能为空', trigger: 'blur' }]
  71. }
  72. };
  73. },
  74. props: {
  75. param: {
  76. type: Object,
  77. default: () => {
  78. return {};
  79. }
  80. },
  81. layerid: {
  82. type: String
  83. }
  84. },
  85. mounted() {
  86. this.ajax({ url: '/work/platform/detail' }).then((response) => {
  87. this.platform = response.data;
  88. });
  89. if (this.param.id) {
  90. this.ajax({ url: '/work/recharge/detail/' + this.param.id }).then((response) => {
  91. this.form = response.data;
  92. });
  93. }
  94. },
  95. methods: {
  96. //取消支付
  97. close() {
  98. this.open = false;
  99. clearInterval(timer);
  100. this.$modal.msgError('取消支付');
  101. },
  102. //每3秒获取一次支付结果
  103. refresh() {
  104. timer = setInterval(() => {
  105. this.ajax({ url: '/work/wxPay/payState', data: { ident: this.form.ident }, loading: 'false' }).then((response) => {
  106. if (response.data) {
  107. clearInterval(timer);
  108. this.$modal.msgSuccess('充值成功');
  109. this.$layer.close(this.layerid);
  110. }
  111. });
  112. }, 3000);
  113. },
  114. submitForm() {
  115. this.$refs['form'].validate((valid) => {
  116. if (valid) {
  117. if (this.activeName == '微信充值') {
  118. this.form.ident = Date.now().toString() + Math.floor(Math.random() * 1000).toString();
  119. this.ajax({ method: 'post', url: '/work/wxPay/pay', data: this.form }).then((response) => {
  120. this.open = true;
  121. this.refresh();
  122. this.$nextTick(() => {
  123. //生成二维码
  124. document.getElementById('qrcode').innerHTML = '';
  125. new QRCode('qrcode', {
  126. width: 250,
  127. height: 250,
  128. text: JSON.parse(response.data).code_url
  129. });
  130. });
  131. });
  132. } else {
  133. this.ajax({ method: 'post', url: '/work/recharge/add', data: this.form }).then((response) => {
  134. this.$modal.msgSuccess('提交成功');
  135. this.$layer.close(this.layerid);
  136. this.$parent.getList();
  137. });
  138. }
  139. }
  140. });
  141. }
  142. },
  143. destroyed() {
  144. clearInterval(timer);
  145. }
  146. };
  147. </script>