Du kannst nicht mehr als 25 Themen auswählen Themen müssen mit entweder einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.

bank-card.vue 4.2KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173
  1. <template>
  2. <view class="container" @click="choice(item.bankCardId,item.bankAddress)" v-for="(item,index) in state.bankListArr">
  3. <view class="">
  4. <image class="bg" style="width:100%;height: 260rpx;" :src="`${$imgUrl}bank-bg.png`"></image>
  5. <view class="content">
  6. <view class="flex">
  7. <image style="width:68rpx;height:68rpx;" :src="`${$imgUrl}gongshang.png`">
  8. </image>
  9. <view style="margin-left: 15rpx;" class="">
  10. <view class="bank">{{item.bankAddress}}</view>
  11. <view class="card">储蓄卡</view>
  12. </view>
  13. </view>
  14. <view class="button" @click.stop='delCard(item.bankCardId)'>解除绑定</view>
  15. </view>
  16. <view class="value">{{item.bankCardId}}</view>
  17. <!-- <view class='default'>默认</view> -->
  18. </view>
  19. </view>
  20. <view style='margin: 40rpx 30rpx;' @click="navTo('/subpackage/personal-center/setting/bank-card/bank-card-add')">
  21. <submit-button title="+ 添加银行卡"></submit-button>
  22. </view>
  23. </template>
  24. <script lang="ts" setup>
  25. import { reactive } from "vue";
  26. import { request } from "@/utils/network/request.js";
  27. import { queryBankCard, delBankCard } from "@/utils/network/api.js";
  28. import { stringToJson } from "@/utils/network/encryption.js";
  29. import { navTo } from '@/utils/utils';
  30. import { onLoad, onShow } from "@dcloudio/uni-app";
  31. import { msg } from "@/utils/utils";
  32. const state = reactive({
  33. name: '',
  34. params: {}, //传过来的参数
  35. choiceCard: "",
  36. bankListArr: []
  37. })
  38. onLoad((option : any) => {
  39. if (option.value) {
  40. state.params = JSON.parse(decodeURIComponent(option.value))
  41. state.name = state.params.name;
  42. state.choiceCard = state.params.choiceCard;
  43. }
  44. if (option.name) {
  45. state.name = option.name;
  46. }
  47. console.log("option", state.params)
  48. // getBankList();
  49. })
  50. onShow(() => {
  51. getBankList();
  52. })
  53. const getBankList = () => {
  54. const options = {
  55. type: 2,
  56. data: {
  57. 'accountId': state.name
  58. },
  59. method: "POST",
  60. showLoading: true,
  61. };
  62. request(queryBankCard, options).then((res) => {
  63. const data = stringToJson(res.bizContent)
  64. state.bankListArr = data.data
  65. console.log("获取银行卡", data)
  66. })
  67. }
  68. const delCard = (cardId) => {
  69. const options = {
  70. type: 2,
  71. data: {
  72. 'accountId': state.name,
  73. 'bankCardId': cardId
  74. },
  75. method: "POST",
  76. showLoading: true,
  77. };
  78. request(delBankCard, options).then((res) => {
  79. const data = stringToJson(res.bizContent)
  80. console.log("删除银行卡", data);
  81. msg("成功")
  82. setTimeout(() => {
  83. getBankList();
  84. }, 1500)
  85. })
  86. }
  87. const choice = (cardNumber, bankAddress) => {
  88. // if (!state.choiceCard) {
  89. // navTo('/subpackage/personal-center/setting/bank-card/bank-card-add')
  90. // } else {
  91. uni.redirectTo({
  92. //关闭当前页面,跳转到应用内的某个页面。
  93. url: `/subpackage/after-sale/account-recharge/recharge?cardNumber=${cardNumber}&bankAddress=${bankAddress}&value=${encodeURIComponent(JSON.stringify(state.params))}`
  94. });
  95. // navTo(`/subpackage/after-sale/account-recharge/recharge?cardNumber=${cardNumber}`)
  96. // }
  97. }
  98. </script>
  99. <style lang="scss" scoped>
  100. .container {
  101. padding: 30rpx 30rpx 0 30rpx;
  102. position: relative;
  103. .flex {
  104. display: flex;
  105. align-items: center;
  106. }
  107. .value {
  108. position: absolute;
  109. top: 160rpx;
  110. left: 30rpx;
  111. right: 30rpx;
  112. font-size: 36rpx;
  113. font-family: Microsoft YaHei;
  114. font-weight: 400;
  115. color: #FFFFFF;
  116. text-align: center;
  117. line-height: 36rpx;
  118. }
  119. .default {
  120. position: absolute;
  121. top: 235rpx;
  122. left: 60rpx;
  123. font-size: 29rpx;
  124. font-family: Microsoft YaHei;
  125. font-weight: 400;
  126. color: #FFFFFF;
  127. line-height: 36rpx;
  128. }
  129. .content {
  130. padding: 30rpx;
  131. position: absolute;
  132. top: 30rpx;
  133. left: 30rpx;
  134. right: 30rpx;
  135. display: flex;
  136. justify-content: space-between;
  137. .bank {
  138. font-size: 28rpx;
  139. font-family: Microsoft YaHei;
  140. font-weight: 400;
  141. color: #FFFFFF;
  142. line-height: 28rpx;
  143. }
  144. .card {
  145. font-size: 24rpx;
  146. font-family: Microsoft YaHei;
  147. font-weight: 400;
  148. color: #FFFFFF;
  149. line-height: 24rpx;
  150. margin-top: 5rpx;
  151. }
  152. .button {
  153. height: 48rpx;
  154. line-height: 48rpx;
  155. border: 1px solid #FFFFFF;
  156. border-radius: 20rpx;
  157. color: #ffffff;
  158. font-size: 24rpx;
  159. text-align: center;
  160. padding: 0 20rpx;
  161. }
  162. }
  163. }
  164. </style>