You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149
  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. if(option.value){
  47. state.form=JSON.parse(decodeURIComponent(option.value))
  48. }
  49. });
  50. const goRecharge=()=>{
  51. for(var i in state.form){
  52. if(!state.form[i]){
  53. msg('请把信息填写完整!')
  54. return;
  55. }
  56. }
  57. const options = {
  58. type: 2,
  59. data: {
  60. 'accountId':state.form.name, //账户编号
  61. 'fee':state.form.fee, //公司营业执照统一社会信用代码
  62. 'bankCardId':state.form.cardNumber, //对公名称
  63. 'imageUrl':state.form.url, //密码
  64. },
  65. method: "POST",
  66. showLoading: true,
  67. };
  68. request(queryRecharge, options)
  69. .then((res) => {
  70. let data = stringToJson(res.bizContent)
  71. console.log("充值成功",data)
  72. })
  73. .catch((err) => {
  74. console.log(err);
  75. });
  76. }
  77. const goBank=()=>{
  78. const params=encodeURIComponent(JSON.stringify(state.form));
  79. uni.redirectTo({
  80. //关闭当前页面,跳转到应用内的某个页面。
  81. url:`/subpackage/personal-center/setting/bank-card/bank-card?choiceCard=1&value=${params}`
  82. });
  83. // navTo(`/subpackage/personal-center/setting/bank-card/bank-card?choiceCard=1`)
  84. }
  85. const cardDbImageOcr = (val : any) => {
  86. var imageType = val;
  87. uni.chooseImage({
  88. count: 1, //只能选取一张照片
  89. sizeType: ["original", "compressed"], //可以指定是原图还是压缩图,默认二者都有
  90. sourceType: ["camera", "album"], //从相册选择
  91. success: function (res) {
  92. pathToBase64(res.tempFilePaths[0])
  93. .then((path) => {
  94. var data = {
  95. source: "1",
  96. agencyId: "52010106004",
  97. imageType: imageType,
  98. fileName: res.tempFilePaths[0],
  99. imageBase64: path,
  100. };
  101. const options = {
  102. type: 2,
  103. data: data,
  104. method: "POST",
  105. showLoading: true,
  106. };
  107. console.log("cdfdf")
  108. request(etcOcrCard, options).then((res) => {
  109. const data = stringToJson(res.bizContent);
  110. state.form.url = data.imageUrl;
  111. });
  112. })
  113. .catch((error) => { });
  114. },
  115. });
  116. };
  117. </script>
  118. <style scoped>
  119. .wrap{
  120. padding: 0 30rpx;
  121. }
  122. /deep/.u-form-item--right__content__slot{
  123. display: flex;
  124. justify-content: space-between;
  125. }
  126. image{
  127. width: 200rpx;
  128. height:200rpx;
  129. }
  130. button{
  131. width: 75%;
  132. height: 80rpx;
  133. margin-top:450rpx;
  134. background: linear-gradient(-90deg, #43a1e0 0%, #13e7c1 100%);
  135. border-radius: 40rpx;
  136. font-size: 32rpx;
  137. font-weight: 400;
  138. color: #ffffff;
  139. line-height: 80rpx;
  140. }
  141. .card{
  142. width: 100%;
  143. display: flex;
  144. justify-content: space-between;
  145. }
  146. </style>