金诚优选前端代码
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.

301 lines
8.1 KiB

  1. <template>
  2. <view>
  3. <lf-nav title="提现" :showIcon="true" bgColor="#fff"></lf-nav>
  4. <view class="tabs">
  5. <view class="tab">
  6. <view class="name" :class="{'active-tab': current == 0}" @click="current = 0">支付宝</view>
  7. </view>
  8. <view class="tab">
  9. <view class="name" :class="{'active-tab': current == 1}" @click="current = 1">银行卡</view>
  10. </view>
  11. </view>
  12. <view class="content">
  13. <!-- 店铺信息 -->
  14. <view class="card">
  15. <view class="lf-flex">
  16. <image class="shop-avatar" mode="aspectFill" src="https://picsum.photos/id/237/200/300"></image>
  17. <view class="shop-name">雅诗兰黛专卖店</view>
  18. </view>
  19. </view>
  20. <!-- 收款信息 - 提现到支付宝 -->
  21. <view class="card" v-if="current == 0">
  22. <view class="lf-font-28 lf-color-222">支付宝姓名</view>
  23. <view class="list">
  24. <view class="lf-flex">
  25. <input class="input" placeholder="请输入您的姓名" v-model="alipay_name" />
  26. </view>
  27. <view class="clear" v-if="alipay_name.length" @click="alipay_name = ''">
  28. <text class="lf-iconfont icon-cuo1"></text>
  29. </view>
  30. </view>
  31. <view class="lf-font-28 lf-color-222 lf-m-t-50">支付宝账号</view>
  32. <view class="list">
  33. <view class="lf-flex">
  34. <input class="input" placeholder="请输入支付宝账号" v-model="alipay_account" />
  35. </view>
  36. <view class="clear" v-if="alipay_account.length" @click="alipay_account = ''">
  37. <text class="lf-iconfont icon-cuo1"></text>
  38. </view>
  39. </view>
  40. </view>
  41. <!-- 收款信息 - 提现到银行卡 -->
  42. <view class="card" v-else-if="current == 1">
  43. <view class="lf-font-28 lf-color-222">银行名称</view>
  44. <view class="list">
  45. <view class="lf-flex">
  46. <input class="input" placeholder="请输入您的银行名称" v-model="bank_name" />
  47. </view>
  48. <view class="clear" v-if="bank_name.length" @click="bank_name = ''">
  49. <text class="lf-iconfont icon-cuo1"></text>
  50. </view>
  51. </view>
  52. <view class="lf-font-28 lf-color-222 lf-m-t-50">所属支行</view>
  53. <view class="list">
  54. <view class="lf-flex">
  55. <input class="input" placeholder="请输入银行卡所属支行" v-model="bank_sub_branch" />
  56. </view>
  57. <view class="clear" v-if="bank_sub_branch.length" @click="bank_sub_branch = ''">
  58. <text class="lf-iconfont icon-cuo1"></text>
  59. </view>
  60. </view>
  61. <view class="lf-font-28 lf-color-222 lf-m-t-50">银行卡号</view>
  62. <view class="list">
  63. <view class="lf-flex">
  64. <input class="input" placeholder="请输入银行卡号码" v-model="bank_number" />
  65. </view>
  66. <view class="clear" v-if="bank_number.length" @click="bank_number = ''">
  67. <text class="lf-iconfont icon-cuo1"></text>
  68. </view>
  69. </view>
  70. <view class="lf-font-28 lf-color-222 lf-m-t-50">开户名</view>
  71. <view class="list">
  72. <view class="lf-flex">
  73. <input class="input" placeholder="请输入银行卡开户名" v-model="bank_account_name" />
  74. </view>
  75. <view class="clear" v-if="bank_account_name.length" @click="bank_account_name = ''">
  76. <text class="lf-iconfont icon-cuo1"></text>
  77. </view>
  78. </view>
  79. </view>
  80. <!-- 提现金额 -->
  81. <view class="card">
  82. <view class="lf-font-28 lf-color-222">提现金额</view>
  83. <view class="list money-list">
  84. <view class="lf-flex">
  85. <view class="symbol"></view>
  86. <input class="input" type="number" v-model="money" />
  87. </view>
  88. <view class="clear" v-if="money.length" @click="money = ''">
  89. <text class="lf-iconfont icon-cuo1"></text>
  90. </view>
  91. </view>
  92. <view class="lf-font-28 lf-m-t-30" style="color: #F63434;" v-if="isMoney">输入金额超过可用余额</view>
  93. </view>
  94. <!-- 提现说明 -->
  95. <view class="card">
  96. <view class="lf-font-28 lf-color-555 lf-m-b-20">提现说明</view>
  97. <view class="lf-font-28 lf-color-222">
  98. <view>1提现到账时间为T+1</view>
  99. <view>2提现最高单笔为10000元</view>
  100. <view>3提现手续单笔收费10%</view>
  101. </view>
  102. </view>
  103. <button class="confirm" hover-class="lf-opacity" @click="confirm">确认提现</button>
  104. </view>
  105. </view>
  106. </template>
  107. <script>
  108. export default {
  109. data(){
  110. return {
  111. current: 0, // 支付宝0、银行卡1
  112. alipay_name: '', // 支付宝姓名
  113. alipay_account: '', // 支付宝账号
  114. bank_name: '', // 银行名称
  115. bank_sub_branch: '', // 银行卡所属支行
  116. bank_number: '', // 银行卡号
  117. bank_account_name: '', // 银行卡开户名
  118. money: '' // 提现金额
  119. }
  120. },
  121. computed: {
  122. isMoney(){
  123. // TODO 假设我现在的余额为10块钱
  124. return Number(this.money) > 10;
  125. }
  126. },
  127. onLoad(){
  128. },
  129. methods: {
  130. confirm(){
  131. if(this.current == 0){
  132. // 提现到支付宝
  133. if(!this.alipay_name) return this.$msg('请输入支付宝姓名');
  134. if(!this.alipay_account) return this.$msg('请输入支付宝账号');
  135. if(!this.money) return this.$msg('请输入提现金额');
  136. if(this.isMoney) return this.$msg('提现金额超出当前余额');
  137. if(this.money <= 0) return this.$msg('提现金额需大于0');
  138. this.launch();
  139. }else if(this.current == 1){
  140. // 提现到银行卡
  141. if(!this.bank_name) return this.$msg('请输入银行名称');
  142. if(!this.bank_sub_branch) return this.$msg('请输入银行卡所属支行');
  143. if(!this.bank_number) return this.$msg('请输入银行卡号');
  144. if(!this.bank_account_name) return this.$msg('请输入银行卡开户名');
  145. if(!this.money) return this.$msg('请输入提现金额');
  146. if(this.isMoney) return this.$msg('提现金额超出当前余额');
  147. if(this.money <= 0) return this.$msg('提现金额需大于0');
  148. this.launch();
  149. }
  150. },
  151. launch(){
  152. // TODO 在此发起网络请求
  153. console.log("发起提现");
  154. }
  155. }
  156. }
  157. </script>
  158. <style>
  159. page{
  160. background-color: #F8F8F8;
  161. }
  162. </style>
  163. <style lang="scss" scoped="scoped">
  164. .tabs{
  165. height: 80rpx;
  166. width: 750rpx;
  167. display: flex;
  168. border-bottom: 1rpx solid #e5e5e5;
  169. background-color: #FFFFFF;
  170. align-items: center;
  171. .tab{
  172. width: 50%;
  173. height: 100%;
  174. display: flex;
  175. justify-content: center;
  176. align-items: center;
  177. .name{
  178. width: max-content;
  179. height: 100%;
  180. font-size: 28rpx;
  181. color: #777777;
  182. display: flex;
  183. align-items: center;
  184. }
  185. .active-tab{
  186. color: #0D2E9A;
  187. font-weight: bold;
  188. position: relative;
  189. &::after{
  190. content: '';
  191. position: absolute;
  192. bottom: 0;
  193. left: calc(50% - 40rpx);
  194. width: 80rpx;
  195. height: 10rpx;
  196. background: #0D2E9A;
  197. border-radius: 8rpx 8rpx 0rpx 0rpx;
  198. }
  199. }
  200. }
  201. }
  202. .content{
  203. padding: 30rpx 32rpx;
  204. }
  205. .card{
  206. padding: 30rpx;
  207. box-sizing: border-box;
  208. width: 686rpx;
  209. height: max-content;
  210. background: #FFFFFF;
  211. border-radius: 20rpx;
  212. transition: all 1s;
  213. &:nth-child(n+2){
  214. margin-top: 30rpx;
  215. }
  216. .shop-avatar{
  217. width: 100rpx;
  218. height: 100rpx;
  219. border-radius: 50%;
  220. margin-right: 20rpx;
  221. }
  222. .shop-name{
  223. width: 502rpx;
  224. height: max-content;
  225. font-size: 36rpx;
  226. color: #222222;
  227. font-weight: bold;
  228. }
  229. .list{
  230. height: 90rpx;
  231. width: 100%;
  232. border-bottom: 1rpx solid #e5e5e5;
  233. display: flex;
  234. justify-content: space-between;
  235. align-items: center;
  236. margin-top: 10rpx;
  237. .input{
  238. width: 540rpx;
  239. height: 80rpx;
  240. font-size: 28rpx;
  241. }
  242. .input-code{
  243. width: 430rpx;
  244. }
  245. .clear{
  246. padding: 20rpx;
  247. }
  248. .code{
  249. min-width: 180rpx;
  250. max-width: 220rpx;
  251. height: 64rpx;
  252. padding: 0 4rpx;
  253. font-size: 24rpx;
  254. color: #15716E;
  255. display: flex;
  256. justify-content: center;
  257. align-items: center;
  258. border-radius: 32rpx;
  259. border: 2rpx solid #15716E;
  260. }
  261. .active-bg{
  262. background: #efefef;
  263. }
  264. .symbol{
  265. width: 30rpx;
  266. height: 90rpx;
  267. font-size: 36rpx;
  268. color: #222222;
  269. display: flex;
  270. align-items: flex-end;
  271. }
  272. }
  273. .money-list{
  274. height: 140rpx;
  275. .input{
  276. width: 500rpx;
  277. height: 130rpx;
  278. font-size: 72rpx;
  279. font-weight: bold;
  280. margin-left: 20rpx;
  281. }
  282. }
  283. }
  284. .confirm{
  285. width: 550rpx;
  286. height: 100rpx;
  287. background: #0D2E9A;
  288. border-radius: 50rpx;
  289. color: #FFFFFF;
  290. line-height: 100rpx;
  291. margin-top: 50rpx;
  292. font-size: 32rpx;
  293. }
  294. </style>