WithdrawalProcessing.vue 8.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229
  1. <template>
  2. <el-dialog
  3. :visible.sync="visible"
  4. v-bind="modalOptions"
  5. >
  6. <div>
  7. <el-descriptions title="" :column="2" border>
  8. <el-descriptions-item label="店铺名称:">
  9. {{ formData.shopName }}
  10. </el-descriptions-item>
  11. <el-descriptions-item label="店铺编码:">
  12. {{ formData.shopCode }}
  13. </el-descriptions-item>
  14. <el-descriptions-item label="银行名称:">
  15. {{ formData.bankName }}
  16. </el-descriptions-item>
  17. <el-descriptions-item label="银行卡号:">
  18. {{ formData.bankCard }}
  19. </el-descriptions-item>
  20. <el-descriptions-item label="收款人姓名:">
  21. {{ formData.collectionName }}
  22. </el-descriptions-item>
  23. <el-descriptions-item label="提现金额:">
  24. {{ formData.withdrawalMoney }}
  25. </el-descriptions-item>
  26. <el-descriptions-item label="处理编号:">
  27. {{ formData.handleSn }}
  28. </el-descriptions-item>
  29. <el-descriptions-item label="申请时间:">
  30. {{ formData.applyTime }}
  31. </el-descriptions-item>
  32. <el-descriptions-item v-if="formData.handleTime" label="处理时间:">
  33. {{ formData.handleTime }}
  34. </el-descriptions-item>
  35. <el-descriptions-item label="审核状态">
  36. <div>
  37. <span v-if="formData.state === 0">待处理</span>
  38. <span v-else-if="formData.state === 1">已处理</span>
  39. <span v-else-if="formData.state === 2">通过</span>
  40. <span v-else-if="formData.state === 3">拒绝</span>
  41. <span v-else-if="formData.state === 4">待确认</span>
  42. <span v-else>--</span>
  43. </div>
  44. </el-descriptions-item>
  45. <el-descriptions-item label="备注:">
  46. {{ formData.cause || '--' }}
  47. </el-descriptions-item>
  48. <el-descriptions-item label="惠市宝订单的分账状态:">
  49. <div>
  50. <span v-if="formData.summaryHsbSplitState === -1">无需分账</span>
  51. <span v-else-if="formData.summaryHsbSplitState === 0">未分账</span>
  52. <span v-else-if="formData.summaryHsbSplitState === 1">部分分账</span>
  53. <span v-else-if="formData.summaryHsbSplitState === 2">已分账</span>
  54. <span v-else>--</span>
  55. </div>
  56. </el-descriptions-item>
  57. <el-descriptions-item label="惠市宝已分账金额:">
  58. {{ formData.summaryHsbSplitedAmount }}
  59. </el-descriptions-item>
  60. <el-descriptions-item label="惠市宝剩余分账金额:">
  61. {{ formData.summaryHsbSplitRemainAmount }}
  62. </el-descriptions-item>
  63. <el-descriptions-item label="非惠市宝订单的相关提现金额:">
  64. {{ formData.summaryNotHsbAmount }}
  65. </el-descriptions-item>
  66. </el-descriptions>
  67. </div>
  68. <div style="color: red;font-size: 16px;text-align: center;">* 请确认您已转账成功,再点击确认。说明:分账金额代表已打款,T+1到账</div>
  69. <el-input v-show="formData.state == 3" v-model="formData.cause" type="textarea" autosize placeholder="请输入拒绝打款理由">
  70. </el-input>
  71. <div v-show="formData.state == 2" style="margin-top: 30px;">
  72. <el-radio v-model="formData.type" label="1" border>通联</el-radio>
  73. <el-radio v-model="formData.type" label="2" border>线下</el-radio>
  74. </div>
  75. <template #footer>
  76. <span>
  77. <el-button @click="visible = false">取 消</el-button>
  78. <el-button v-if="formData.state === 3" type="danger" @click="handleRefuse">确认拒绝打款</el-button>
  79. <el-button v-else type="danger" @click="handleRefuse">拒绝打款</el-button>
  80. <el-button v-if="formData.state === 0" type="primary" @click="handleExamine">确认用户信息</el-button>
  81. <el-button v-else-if="formData.state === 2" type="primary" @click="handleConfirm">确认打款</el-button>
  82. </span>
  83. </template>
  84. </el-dialog>
  85. </template>
  86. <script>
  87. import { withdrawalGetById, withdrawalHandle } from '@/api/withdrawal'
  88. export default {
  89. name: 'WithdrawalProcessing',
  90. components: {
  91. },
  92. data() {
  93. return {
  94. modalOptions: {
  95. closeOnClickModal: false,
  96. width: '820px',
  97. title: '提现处理'
  98. },
  99. visible: false,
  100. formData: {
  101. withdrawalId: '',
  102. shopName: '',
  103. shopCode: '',
  104. bankName: '',
  105. bankCard: '',
  106. collectionName: '',
  107. withdrawalMoney: '',
  108. handleSn: '',
  109. applyTime: '',
  110. handleTime: '',
  111. state: '',
  112. type: '', // 支付方式选择
  113. cause: '', // 拒绝理由
  114. summaryHsbSplitState: '',
  115. summaryHsbSplitedAmount: '',
  116. summaryHsbSplitRemainAmount: '',
  117. summaryNotHsbAmount: ''
  118. },
  119. formRules: {
  120. }
  121. }
  122. },
  123. methods: {
  124. handleClose() {
  125. this.visible = false
  126. },
  127. async initList() {
  128. },
  129. handleOpen(params = {}) {
  130. this.modalOptions.title = '提现处理'
  131. this.formData = Object.assign(this.$options.data().formData, params)
  132. this.visible = true
  133. this.initList()
  134. if (params.withdrawalId) {
  135. this.getInfo(params.withdrawalId)
  136. } else {
  137. this.$refs.formData && this.$refs.formData.resetFields()
  138. }
  139. },
  140. async getInfo(id) {
  141. const loading = this.$loading({ text: '加载中' })
  142. try {
  143. const res = await withdrawalGetById({ withdrawalId: id })
  144. this.formData = Object.assign(this.$options.data().formData, res.data, {
  145. withdrawalId: res.data.withdrawalId || '',
  146. shopName: res.data.shopName || '',
  147. shopCode: res.data.shopCode || '',
  148. bankName: res.data.bankName || '',
  149. bankCard: res.data.bankCard || '',
  150. collectionName: res.data.collectionName || '',
  151. withdrawalMoney: res.data.withdrawalMoney || 0,
  152. handleSn: res.data.handleSn || '',
  153. applyTime: res.data.applyTime || '',
  154. handleTime: res.data.handleTime || '',
  155. state: res.data.state || 0,
  156. type: res.data.type || '',
  157. cause: res.data.cause || '',
  158. summaryHsbSplitState: res.data.summaryHsbSplitState,
  159. summaryHsbSplitedAmount: res.data.summaryHsbSplitedAmount,
  160. summaryHsbSplitRemainAmount: res.data.summaryHsbSplitRemainAmount,
  161. summaryNotHsbAmount: res.data.summaryNotHsbAmount
  162. })
  163. this.$nextTick(() => {
  164. this.$refs.formData && this.$refs.formData.validate()
  165. })
  166. } finally {
  167. loading.close()
  168. }
  169. },
  170. // 拒绝打款
  171. async handleRefuse() {
  172. if (this.formData.state == 3) {
  173. if (!this.formData.cause) return this.$message.error('拒绝理由不能为空')
  174. const res = await withdrawalHandle({
  175. withdrawalId: this.formData.withdrawalId,
  176. state: '3',
  177. audit: 2,
  178. cause: this.formData.cause
  179. })
  180. if (res.code == '') {
  181. this.$message.success('成功拒绝打款!!!')
  182. }
  183. this.visible = false
  184. this.$emit('success')
  185. } else {
  186. this.formData.state = 3
  187. this.$message.warning('请填写理由并确定拒绝打款!!!')
  188. }
  189. },
  190. // 确认审核
  191. handleExamine() {
  192. this.$confirm('确定审核通过吗?')
  193. .then(async () => {
  194. await withdrawalHandle({
  195. withdrawalId: this.formData.withdrawalId,
  196. state: '0',
  197. audit: 1,
  198. type: ''
  199. })
  200. this.$message.success('操作成功!请再次确认!')
  201. this.getInfo(this.formData.withdrawalId)
  202. this.$emit('success')
  203. })
  204. .catch(() => {})
  205. },
  206. // 确认打款
  207. handleConfirm() {
  208. this.$confirm('确定打款吗?')
  209. .then(async () => {
  210. if (!this.formData.type) return this.$message.error('请选择打款方式')
  211. await withdrawalHandle({
  212. withdrawalId: this.formData.withdrawalId,
  213. state: '2',
  214. audit: 1,
  215. type: this.formData.type
  216. })
  217. this.$message.success('打款成功!!!')
  218. this.visible = false
  219. this.$emit('success')
  220. })
  221. .catch(() => {})
  222. }
  223. }
  224. }
  225. </script>