bankCard.vue 8.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336
  1. <template>
  2. <view class="">
  3. <u-tabs :list="list" :is-scroll="false" :current="current" @change="change"></u-tabs>
  4. <view class="page" v-if="cardPackList1.length>0 || cardPackList2.length>0 || cardPackList3.length>0">
  5. <view v-if="current==0" class="bankClass dis a-start f-c j-s" v-for="(item,index) in cardPackList1"
  6. :key="index" :style="{background:item.stylelist.background}">
  7. <image class="Backgroundimage" src="/static/image/bindBank/img1.png" mode="" style=""></image>
  8. <view class="dis j-s">
  9. <view class="dis">
  10. <view class="logo">
  11. <image :src="item.stylelist.logo" mode=""></image>
  12. </view>
  13. <view class="banktitle dis f-c j-s">
  14. <text>{{item.bankAccount}}</text>
  15. <text>储蓄卡</text>
  16. </view>
  17. </view>
  18. <image class="tool" src="/static/image/bindBank/tool.png" mode="" @click="del(item.id)">
  19. </image>
  20. </view>
  21. <view class="bank dis j-s a-c">
  22. <view>{{item.bankNumber.slice(0,4)}}</view>
  23. <view>{{item.bankNumber.slice(4,8)}}</view>
  24. <view>{{item.bankNumber.slice(8,12)}}</view>
  25. <view>{{item.bankNumber.slice(12,16)}}</view>
  26. <view>{{item.bankNumber.slice(-3)}}</view>
  27. </view>
  28. </view>
  29. <view v-if="current==1" class="bankClass dis a-start f-c j-s" v-for="(item,index) in cardPackList2"
  30. :key="index" :style="{background:item.stylelist.background}">
  31. <image class="Backgroundimage" src="/static/image/bindBank/img1.png" mode="" style=""></image>
  32. <view class="dis j-s">
  33. <view class="dis">
  34. <view class="logo">
  35. <image :src="item.stylelist.logo" mode=""></image>
  36. </view>
  37. <view class="banktitle dis f-c j-s">
  38. <text>{{item.bankAccount}}</text>
  39. <text>储蓄卡</text>
  40. </view>
  41. </view>
  42. <image class="tool" src="/static/image/bindBank/tool.png" mode="" @click="del(item.id)">
  43. </image>
  44. </view>
  45. <view class="bank dis j-s a-c">
  46. <view>{{item.bankNumber.slice(0,4)}}</view>
  47. <view>{{item.bankNumber.slice(4,8)}}</view>
  48. <view>{{item.bankNumber.slice(8,12)}}</view>
  49. <view>{{item.bankNumber.slice(12,16)}}</view>
  50. <view>{{item.bankNumber.slice(-3)}}</view>
  51. </view>
  52. </view>
  53. <view v-if="current==2" class="bankClass dis a-start f-c j-s" v-for="(item,index) in cardPackList3"
  54. :key="index" :style="{background:item.stylelist.background}">
  55. <image class="Backgroundimage" src="/static/image/bindBank/img1.png" mode="" style=""></image>
  56. <view class="dis j-s">
  57. <view class="dis">
  58. <view class="logo">
  59. <image :src="item.stylelist.logo" mode=""></image>
  60. </view>
  61. <view class="banktitle dis f-c j-s">
  62. <text>{{item.bankAccount}}</text>
  63. <text>储蓄卡</text>
  64. </view>
  65. </view>
  66. <image class="tool" src="/static/image/bindBank/tool.png" mode="" @click="del(item.id)">
  67. </image>
  68. </view>
  69. <view class="bank dis j-s a-c">
  70. <view>{{item.bankNumber.slice(0,4)}}</view>
  71. <view>{{item.bankNumber.slice(4,8)}}</view>
  72. <view>{{item.bankNumber.slice(8,12)}}</view>
  73. <view>{{item.bankNumber.slice(12,16)}}</view>
  74. <view>{{item.bankNumber.slice(-3)}}</view>
  75. </view>
  76. </view>
  77. </view>
  78. <u-empty text="暂无数据" mode="order" class="flexd" v-else></u-empty>
  79. <view class="fixed">
  80. <u-button type="primary" style="background-color:#0052FF ;font-weight: bold;" @tap="getbankCard">+
  81. 添加银行卡</u-button>
  82. </view>
  83. <u-modal v-model="deleteshow" :show-cancel-button='true' @confirm="delbankCard">
  84. <view class="slot-content dis a-c j-c" style="padding: 10px;">
  85. <span style="font-weight: bold;">点击确认删除银行卡</span>
  86. </view>
  87. </u-modal>
  88. </view>
  89. </template>
  90. <script>
  91. export default {
  92. data() {
  93. return {
  94. id: "",
  95. deleteshow: false,
  96. list: [{
  97. name: '未审核'
  98. }, {
  99. name: '已审核'
  100. }, {
  101. name: '驳回',
  102. }],
  103. current: 1,
  104. bankNumber: "",
  105. cardPackList1: [],
  106. cardPackList2: [],
  107. cardPackList3: [],
  108. bankList: [{
  109. bankName: "中国邮政储蓄银行",
  110. logo: "/static/image/bankLogo/youzheng.png",
  111. background: "linear-gradient(90deg, rgba(79, 136, 69, 0.7) 0%, #4f8845 100%)"
  112. },
  113. {
  114. bankName: "中国工商银行",
  115. logo: "/static/image/bankLogo/gongshang.png",
  116. background: "linear-gradient(90deg, rgba(177, 0, 13, 0.7) 0%, #b1000d 100%)"
  117. },
  118. {
  119. bankName: "中国农业银行",
  120. logo: "/static/image/bankLogo/nongye.png",
  121. background: "linear-gradient(90deg, rgba(86,152, 130, 0.7) 0%, #569882 100%)"
  122. },
  123. {
  124. bankName: "中国银行",
  125. logo: "/static/image/bankLogo/zhongguo.png",
  126. background: "linear-gradient(90deg, rgba(157, 32, 40, 0.7) 0%, #9d2028 100%)"
  127. },
  128. {
  129. bankName: "中国建设银行",
  130. logo: "/static/image/bankLogo/jianshe.png",
  131. background: "linear-gradient(90deg, rgba(6, 89, 159, 0.7) 0%, #06569F 100%)"
  132. },
  133. {
  134. bankName: "招商银行",
  135. logo: "/static/image/bankLogo/zhaoshang.png",
  136. background: "linear-gradient(90deg, rgba(197, 0, 25, 0.7) 0%, #c50019 100%)"
  137. },
  138. {
  139. bankName: "中国民生银行",
  140. logo: "/static/image/bankLogo/minsheng.png",
  141. background: "linear-gradient(90deg, rgba(84,149, 92, 0.7) 0%, #54955c 100%)"
  142. },
  143. {
  144. bankName: "中国光大银行",
  145. logo: "/static/image/bankLogo/guangda.png",
  146. background: "linear-gradient(90deg, rgba(93, 30, 131, 0.7) 0%, #5d1e83 100%)"
  147. },
  148. {
  149. bankName: "中信银行",
  150. logo: "/static/image/bankLogo/zhongxin.png",
  151. background: "linear-gradient(90deg, rgba(184, 0,22, 0.7) 0%, #b80016 100%)"
  152. },
  153. {
  154. bankName: "华夏银行",
  155. logo: "/static/image/bankLogo/huaxia.png",
  156. background: "linear-gradient(90deg, rgba(216, 12, 24, 0.7) 0%, #d80c18 100%)"
  157. },
  158. {
  159. bankName: "中国交通银行",
  160. logo: "/static/image/bankLogo/jiaotong.png",
  161. background: "linear-gradient(90deg, rgba(33, 58, 120, 0.7) 0%, #213a78 100%)"
  162. },
  163. {
  164. bankName: "晋商银行",
  165. logo: "/static/image/bankLogo/jinshang.png",
  166. background: "linear-gradient(90deg, rgba(224, 150, 165, 0.7) 0%, #e096a5 100%)"
  167. },
  168. ],
  169. }
  170. },
  171. onShow() {
  172. this.getcardPack(); //获取卡包
  173. },
  174. onLoad() {},
  175. methods: {
  176. change(index) {
  177. this.current = index;
  178. },
  179. async getcardPack() {
  180. let res = await this.$http.post('/userBank/getUserBankList', {
  181. auditStatus: "",
  182. });
  183. let list1 = [];
  184. let list2 = [];
  185. let list3 = [];
  186. if (res.code == '200' && res.data) {
  187. res.data.map(val => {
  188. let name = this.bankList.find(ele => ele.bankName === val.bankAccount)
  189. if (name) {
  190. val.stylelist = {
  191. ...name
  192. };
  193. } else {
  194. val.stylelist = {
  195. logo: "/static/image/bindBank/img1.png",
  196. background: 'linear-gradient(90deg, rgba(229, 166,0,0.7) 0%, #e5a600 100%)',
  197. }
  198. }
  199. switch (val.auditStatus) {
  200. case "0":
  201. list1.push(val);
  202. break;
  203. case "1":
  204. list2.push(val);
  205. break;
  206. case "2":
  207. list3.push(val);
  208. break;
  209. }
  210. })
  211. this.cardPackList1 = list1;
  212. this.cardPackList2 = list2;
  213. this.cardPackList3 = list3;
  214. }
  215. },
  216. getbankCard() {
  217. this.navigate({
  218. url: '/pages/wallet/bindBank',
  219. }, "navigateTo", true)
  220. },
  221. del(id) {
  222. this.id = id;
  223. this.deleteshow = true;
  224. },
  225. async delbankCard() {
  226. let res = await this.$http.delete('/userBank/' + this.id);
  227. if (res.code == '200') {
  228. this.getcardPack();
  229. uni.showToast({
  230. title: res.msg,
  231. duration: 2000,
  232. icon: "success"
  233. });
  234. }
  235. }
  236. },
  237. }
  238. </script>
  239. <style lang="scss" scoped>
  240. page {
  241. background-color: #fff;
  242. }
  243. .page {
  244. padding: 10px 16px;
  245. }
  246. .fixed {
  247. position: fixed;
  248. bottom: 0;
  249. left: 0;
  250. width: 100%;
  251. height: 62px;
  252. background: #FFFFFF;
  253. box-shadow: 0px -4px 10px 0px rgba(0, 0, 0, 0.1);
  254. padding: 12px 16px;
  255. }
  256. .bankClass {
  257. width: 100%;
  258. height: 110px;
  259. border-radius: 6px;
  260. padding: 14px;
  261. position: relative;
  262. margin-bottom: 15px;
  263. .Backgroundimage {
  264. width: 94px;
  265. height: 86px;
  266. position: absolute;
  267. right: 0;
  268. bottom: 0;
  269. }
  270. >view {
  271. width: 100%;
  272. }
  273. .bank {
  274. font-size: 18px;
  275. color: #fff;
  276. line-height: 1;
  277. view {
  278. font-size: 18px;
  279. line-height: 1;
  280. }
  281. }
  282. .logo {
  283. width: 39px;
  284. height: 39px;
  285. background: #FFFFFF;
  286. border-radius: 6px;
  287. image {
  288. width: 100%;
  289. height: 100%;
  290. }
  291. }
  292. .tool {
  293. width: 28px;
  294. height: 20px;
  295. }
  296. .banktitle {
  297. margin-left: 12px;
  298. text:first-child {
  299. color: #fff;
  300. font-weight: bold;
  301. font-size: 16px;
  302. line-height: 1;
  303. }
  304. text:last-child {
  305. color: #fff;
  306. font-size: 12px;
  307. line-height: 1;
  308. }
  309. }
  310. }
  311. .flexd {
  312. position: fixed;
  313. top: 0;
  314. bottom: 0;
  315. left: 0;
  316. right: 0;
  317. z-index: -1;
  318. }
  319. </style>