index.vue 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155
  1. <template>
  2. <div>
  3. <div class="headline">
  4. <span>付汇账号管理</span>
  5. <div class="search_time">
  6. <a @click="updateItem()"><i class="border_radius">+</i>新增外汇账号</a>
  7. </div>
  8. </div>
  9. <ctable
  10. :data="tableData"
  11. :headArr="headArr"
  12. :StyleWidth="StyleWidth"
  13. :totalElements="totalElements"
  14. :controlArray="controlArray"
  15. @lookItem="lookItem"
  16. @updateItem="updateItem"
  17. @deleteItem="deleteItem"
  18. @handleCurrentChange="handleCurrentChange"
  19. :currentPage="currentPage"
  20. >
  21. </ctable>
  22. <payment-alert :AlertTitle="AlertTitle"
  23. @closeAlert="closeAlert"
  24. :chooseItem="chooseItem"
  25. ref="paymentAlert"
  26. :IslookOrUpdate="IslookOrUpdate">
  27. </payment-alert>
  28. </div>
  29. </template>
  30. <script>
  31. import { Ctable } from '@/components/base/table'
  32. import { clone, Vuehttp } from '@/utils/tools'
  33. import { CtableClass } from '@/utils/CtableClass'
  34. import { paymentAlert } from '@/components/clientPage'
  35. export default {
  36. name: 'PaymentAccountView',
  37. data() {
  38. return {
  39. currentPage: 1,
  40. chooseItem: {},
  41. IslookOrUpdate: 'update'
  42. }
  43. },
  44. fetch ({store}) {
  45. return Promise.all([
  46. store.dispatch('loadremittanceInfo', {page: this.currentPage, count: 10})
  47. ])
  48. },
  49. computed: {
  50. headArr() {
  51. return ['客户名称', '银行名称', '银行代码', '银行账号', '创建时间', '操作']
  52. },
  53. StyleWidth() {
  54. return [236, 182, 182, 202, 184, 178]
  55. },
  56. tableData() {
  57. return CtableClass(this.getHttpResource, ['coNameCn', 'bankName', 'swiftCode', 'accNo', ['时间戳', 'createTime'], '操作'])
  58. },
  59. getHttpResource() {
  60. return this.$store.state.payment.list.data.content.content
  61. },
  62. totalElements() {
  63. return this.$store.state.payment.list.data.content.totalElements
  64. },
  65. controlArray() {
  66. return [['查看', 'lookItem'],['编辑', 'updateItem'],['删除', 'deleteItem']]
  67. },
  68. AlertTitle() {
  69. return this.IslookOrUpdate === 'add' ? '新增外汇账号' : (this.IslookOrUpdate === 'update' ? '修改信息' : '查看信息')
  70. }
  71. },
  72. methods: {
  73. lookItem(index) {
  74. this.IslookOrUpdate = 'look'
  75. this.chooseItem = clone(this.getHttpResource[index])
  76. this.$refs.paymentAlert.show()
  77. },
  78. updateItem(index) {
  79. this.chooseItem = {}
  80. this.IslookOrUpdate = 'add'
  81. if (index !== undefined) {
  82. this.IslookOrUpdate = 'update'
  83. this.chooseItem = clone(this.getHttpResource[index])
  84. }
  85. this.$refs.paymentAlert.show()
  86. },
  87. handleCurrentChange(page) {
  88. this.currentPage = page
  89. this.$store.dispatch('loadremittanceInfo', {count: 10, page: this.currentPage})
  90. },
  91. deleteItem(index) {
  92. let item = clone(this.getHttpResource[index])
  93. this.$confirm('此操作将永久删除该条信息, 是否继续?', '提示', {
  94. confirmButtonText: '确定',
  95. cancelButtonText: '取消',
  96. type: 'warning'
  97. }).then(() => {
  98. this.$http.delete(`/customer/remittanceAccount/delete?id=${item.id}`).then(res => {
  99. if (res.data.code !== 1) {
  100. this.$message.error(res.data.message)
  101. } else {
  102. this.$message({
  103. message: '删除成功',
  104. type: 'success'
  105. })
  106. this.handleCurrentChange(1)
  107. }
  108. })
  109. }).catch(() => {
  110. });
  111. },
  112. closeAlert(tp, item) {
  113. if (tp === 'save') {
  114. let params = {
  115. exchangeRate: {
  116. coNameCn: item.coNameCn || '',
  117. coNameEn: item.coNameEn,
  118. coAdd: item.coAdd || '',
  119. bankName: item.bankName,
  120. bankAdd: item.bankAdd || '',
  121. accNo: item.accNo,
  122. swiftCode: item.swiftCode
  123. }
  124. }
  125. let url = '/customer/remittanceAccount/persist'
  126. if (this.IslookOrUpdate === 'update') {
  127. params = {
  128. exchangeRate: item
  129. }
  130. }
  131. Vuehttp(params, url).then(res => {
  132. if (res.data.code !== 1) {
  133. this.$message.error(res.data.message)
  134. } else {
  135. this.$refs.paymentAlert.hide()
  136. this.handleCurrentChange(1)
  137. }
  138. })
  139. } else {
  140. this.$refs.paymentAlert.hide()
  141. }
  142. }
  143. },
  144. components: {
  145. Ctable,
  146. paymentAlert
  147. }
  148. }
  149. </script>
  150. <style scoped type="text/scss" lang="scss">
  151. </style>