Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

recharge.vue 3.9KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145
  1. <template>
  2. <view class='wrap'>
  3. <u-form :model="form" ref="form1" label-width=160 border-bottom=false>
  4. <u-form-item label="用户名" border-bottom=true >
  5. <u-input placeholder='请输入用户名' type="text" v-model="state.form.name"/>
  6. </u-form-item>
  7. <u-form-item label="充值金额" >
  8. <u-input placeholder='请输入充值金额' type="text" v-model="state.form.fee"/>
  9. </u-form-item>
  10. <u-form-item label="银行卡">
  11. <view class='card' @click='goBank()'>
  12. <u-input placeholder='请输入银行卡号' v-model="state.form.cardNumber" type="text" disabled/>
  13. <u-icon name="arrow-right" color='#ccc'></u-icon>
  14. </view>
  15. </u-form-item>
  16. <u-form-item label="充值凭证" >
  17. <view class='item' @click="cardDbImageOcr(1)">
  18. <image v-if="!state.form.url" class="icon" :src="`${$imgUrl}applyCard/renxiang.png`">
  19. </image>
  20. <image v-else class="icon" :src="state.form.url"></image>
  21. </view>
  22. </u-form-item>
  23. <button @click='goRecharge()'>充值</button>
  24. </u-form>
  25. </view>
  26. </template>
  27. <script setup lang="ts">
  28. import {reactive} from "vue";
  29. import {etcOcrCard,queryRecharge} from "@/utils/network/api.js";
  30. import {request} from "@/utils/network/request.js";
  31. import {stringToJson} from "@/utils/network/encryption.js";
  32. import {pathToBase64} from "@/utils/image-tools/index.js";
  33. import { navTo } from "@/utils/utils";
  34. import {onLoad} from "@dcloudio/uni-app";
  35. const state = reactive({
  36. form:{
  37. name:'',//对公用户登录名
  38. fee:'',
  39. cardNumber:'',
  40. url:'',
  41. }
  42. })
  43. onLoad((option : any) => {
  44. console.log("option",option.cardNumber)
  45. state.form.cardNumber=option.cardNumber;
  46. });
  47. const goRecharge=()=>{
  48. for(var i in state.from){
  49. if(!state.from[i]){
  50. msg('请把信息填写完整!')
  51. return;
  52. }
  53. }
  54. const options = {
  55. type: 2,
  56. data: {
  57. 'accountId':state.from.name, //账户编号
  58. 'fee':state.from.fee, //公司营业执照统一社会信用代码
  59. 'bankCardId':state.from.cardNumber, //对公名称
  60. 'imageUrl':state.from.url, //密码
  61. },
  62. method: "POST",
  63. showLoading: true,
  64. };
  65. request(queryRecharge, options)
  66. .then((res) => {
  67. let data = stringToJson(res.bizContent)
  68. console.log("充值成功",data)
  69. })
  70. .catch((err) => {
  71. console.log(err);
  72. });
  73. }
  74. const goBank=()=>{
  75. uni.redirectTo({
  76. //关闭当前页面,跳转到应用内的某个页面。
  77. url:`/subpackage/personal-center/setting/bank-card/bank-card?choiceCard=1&value=encodeURIComponent(JSON.stringify(state.from))`
  78. });
  79. // navTo(`/subpackage/personal-center/setting/bank-card/bank-card?choiceCard=1`)
  80. }
  81. const cardDbImageOcr = (val : any) => {
  82. var imageType = val;
  83. uni.chooseImage({
  84. count: 1, //只能选取一张照片
  85. sizeType: ["original", "compressed"], //可以指定是原图还是压缩图,默认二者都有
  86. sourceType: ["camera", "album"], //从相册选择
  87. success: function (res) {
  88. pathToBase64(res.tempFilePaths[0])
  89. .then((path) => {
  90. var data = {
  91. source: "1",
  92. agencyId: "52010106004",
  93. imageType: imageType,
  94. fileName: res.tempFilePaths[0],
  95. imageBase64: path,
  96. };
  97. const options = {
  98. type: 2,
  99. data: data,
  100. method: "POST",
  101. showLoading: true,
  102. };
  103. console.log("cdfdf")
  104. request(etcOcrCard, options).then((res) => {
  105. const data = stringToJson(res.bizContent);
  106. state.form.url = data.imageUrl;
  107. });
  108. })
  109. .catch((error) => { });
  110. },
  111. });
  112. };
  113. </script>
  114. <style scoped>
  115. .wrap{
  116. padding: 0 30rpx;
  117. }
  118. /deep/.u-form-item--right__content__slot{
  119. display: flex;
  120. justify-content: space-between;
  121. }
  122. image{
  123. width: 200rpx;
  124. height:200rpx;
  125. }
  126. button{
  127. width: 75%;
  128. height: 80rpx;
  129. margin-top:450rpx;
  130. background: linear-gradient(-90deg, #43a1e0 0%, #13e7c1 100%);
  131. border-radius: 40rpx;
  132. font-size: 32rpx;
  133. font-weight: 400;
  134. color: #ffffff;
  135. line-height: 80rpx;
  136. }
  137. .card{
  138. width: 100%;
  139. display: flex;
  140. justify-content: space-between;
  141. }
  142. </style>