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.

412 lines
8.6 KiB

2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
  1. <template>
  2. <view class="app-container" style="background-color: #f7f7f7;">
  3. <view class="page-bg">
  4. <view class="withdrawal-management">
  5. <navigator hover-class="none" url="/pages/withdrawal-management/withdrawal-management">
  6. <button class="withdrawal-button">提现管理</button>
  7. </navigator>
  8. </view>
  9. <view class="withdrawal-limit">
  10. <view class="limit-symbol"></view>
  11. <view class="withdrawal-volume">{{accountInfo.wallet_balance}}</view>
  12. </view>
  13. <view class="Withdrawable-text">可提现</view>
  14. <view class="withdrawal-content">
  15. <image class="withdrawal-line"
  16. src="https://common-1257637852.cos.ap-guangzhou.myqcloud.com/paidui-pay/withdrawal-line.png" />
  17. </view>
  18. <view class="to-be-credited">待入账{{accountInfo.waiting_amount}}</view>
  19. <view class="divider-style"></view>
  20. <view class="information-id-content">
  21. <view class="content-id-item">
  22. <view class="id-text">
  23. 用户ID
  24. </view>
  25. <view class="id-value">
  26. {{accountInfo.id}}
  27. </view>
  28. </view>
  29. </view>
  30. <view class="queuing-information-content">
  31. <view class="recent-orders-title">
  32. <image class="title-stlye"
  33. src="https://common-1257637852.cos.ap-guangzhou.myqcloud.com/paidui-pay/title-stlye.png" />
  34. <view class="title-text">最近排队信息</view>
  35. </view>
  36. <view class="information-item">
  37. <view class="item-content" v-if="!queueList.length">
  38. <view class="item-content-text">暂无排队</view>
  39. </view>
  40. <view class="item-content" v-for="item in queueList" :key="item.id">
  41. <view class="item-content-titie">{{item.merchant.name}}</view>
  42. <view class="item-content-text">购买时排队<span class="style-text">{{item.buy_queue_index}}</span>当前<span
  43. class="style-text">{{item.now_queue_index}}</span>
  44. </view>
  45. </view>
  46. <navigator hover-class="none" url="/pages/queuing-information/queuing-information">
  47. <view class="see-more-content">
  48. <view class="see-more-text">查看更多</view>
  49. <view class="see-more-icon"></view>
  50. </view>
  51. </navigator>
  52. </view>
  53. </view>
  54. <view class="ordering-information">
  55. <view class="ordering-information-item" v-if="!orderList.length">
  56. <view class="order-number">暂无订单</view>
  57. </view>
  58. <view class="ordering-information-item" v-for="order in orderList" :key="order.out_trade_no">
  59. <view class="order-number">订单编号 {{order.out_trade_no}}</view>
  60. <view class="ordering-item-content">
  61. <view class="ordering-pic">
  62. <image class="order-chart" :src="order.merchant.logo" />
  63. </view>
  64. <view class="ordering-text">
  65. <view class="ordering-text-title">{{order.merchant.name}}</view>
  66. <view class="amount-of-money">金额<span class="price-style">{{order.amount}}</span></view>
  67. <view class="order-time">订单时间{{order.paid_at}}</view>
  68. </view>
  69. </view>
  70. </view>
  71. </view>
  72. <view class="load-more" @click="getOrderList">{{ hasMore ? '加载更多数据...' : '已加载完毕' }}</view>
  73. </view>
  74. </view>
  75. </template>
  76. <script>
  77. import {
  78. userAccountInfo,
  79. userQueueRebateList,
  80. userOrderList
  81. } from '../../common/api.js'
  82. export default {
  83. data() {
  84. return {
  85. accountInfo: {},
  86. queueList: [],
  87. orderList: [],
  88. hasMore: true,
  89. page: 0,
  90. }
  91. },
  92. onLoad() {
  93. this.getAccountInfo();
  94. this.getQueueList();
  95. this.getOrderList();
  96. },
  97. onReachBottom() {
  98. this.getOrderList()
  99. },
  100. methods: {
  101. getAccountInfo() {
  102. userAccountInfo().then(data => this.accountInfo = data)
  103. },
  104. getQueueList() {
  105. userQueueRebateList({
  106. page: 1,
  107. page_size: 2,
  108. status: 0,
  109. sort_type: 1
  110. }).then(data => this.queueList = data.list)
  111. },
  112. getOrderList() {
  113. if (!this.hasMore) {
  114. return
  115. }
  116. this.page++
  117. userOrderList({
  118. page: this.page,
  119. page_size: 15
  120. }).then(data => {
  121. this.orderList = [...this.orderList, ...data.list]
  122. this.hasMore = data.has_more
  123. })
  124. },
  125. }
  126. }
  127. </script>
  128. <style>
  129. .uni-page-body {
  130. background: #f7f7f7;
  131. }
  132. .page-bg {
  133. height: 525rpx;
  134. background: url("https://common-1257637852.cos.ap-guangzhou.myqcloud.com/paidui-pay/withdrawal-bg.png") no-repeat center center;
  135. background-size: cover;
  136. padding: 0 30rpx;
  137. }
  138. .withdrawal-management {
  139. position: absolute;
  140. top: 0;
  141. right: 0;
  142. }
  143. button.withdrawal-button {
  144. width: 160rpx;
  145. height: 60rpx;
  146. line-height: 60rpx;
  147. font-family: PingFangSC-Regular, sans-serif;
  148. font-size: 24rpx;
  149. color: #fff;
  150. background: #FCC565;
  151. margin: 0;
  152. border-top-left-radius: 0;
  153. border-top-right-radius: 0;
  154. border-bottom-right-radius: 0;
  155. border-bottom-left-radius: 30rpx;
  156. }
  157. button::after {
  158. border: none;
  159. }
  160. .withdrawal-limit {
  161. display: flex;
  162. justify-content: center;
  163. align-items: baseline;
  164. padding-top: 30rpx;
  165. text-align: center;
  166. }
  167. .limit-symbol {
  168. font-family: PingFangSC-Regular, sans-serif;
  169. font-size: 30rpx;
  170. color: #fff;
  171. }
  172. .withdrawal-volume {
  173. font-family: "Din";
  174. font-size: 60rpx;
  175. color: #fff;
  176. font-weight: bold;
  177. margin-left: 10rpx;
  178. }
  179. .Withdrawable-text {
  180. font-family: PingFangSC-Regular, sans-serif;
  181. font-size: 30rpx;
  182. color: #fff;
  183. text-align: center;
  184. margin-top: 10rpx;
  185. }
  186. .withdrawal-content {
  187. display: flex;
  188. justify-content: center;
  189. align-items: center;
  190. padding: 15rpx 0;
  191. }
  192. image.withdrawal-line {
  193. text-align: center;
  194. width: 200rpx;
  195. height: 1rpx;
  196. background-size: cover;
  197. }
  198. .to-be-credited {
  199. font-family: PingFangSC-Regular, sans-serif;
  200. font-size: 30rpx;
  201. color: #fff;
  202. text-align: center;
  203. }
  204. .divider-style {
  205. width: 690rpx;
  206. height: 1rpx;
  207. background: #F8A0A6;
  208. margin: 20rpx 0;
  209. }
  210. .information-id-content {
  211. display: flex;
  212. justify-content: center;
  213. align-items: center;
  214. }
  215. .content-id-item {
  216. display: flex;
  217. justify-content: center;
  218. align-items: center;
  219. }
  220. .id-text {
  221. font-family: PingFangSC-Regular, sans-serif;
  222. font-size: 24rpx;
  223. color: #fff;
  224. }
  225. .id-value {
  226. font-family: PingFangSC-Regular, sans-serif;
  227. font-size: 24rpx;
  228. color: #fff;
  229. }
  230. .queuing-information-content {
  231. background: #fff;
  232. border-radius: 20rpx;
  233. padding: 30rpx 0;
  234. margin-top: 30rpx;
  235. }
  236. .recent-orders-title {
  237. display: flex;
  238. justify-content: left;
  239. align-items: center;
  240. padding: 0 30rpx;
  241. border-bottom: 1rpx solid #eeeeee;
  242. padding-bottom: 30rpx;
  243. }
  244. image.title-stlye {
  245. width: 15rpx;
  246. height: 19rpx;
  247. background-size: cover;
  248. margin-right: 20rpx;
  249. }
  250. .title-text {
  251. font-family: PingFangSC-Regular, sans-serif;
  252. font-size: 30rpx;
  253. color: #454545;
  254. font-weight: bold;
  255. }
  256. .information-item {
  257. padding: 0 30rpx;
  258. }
  259. .item-content {
  260. display: flex;
  261. justify-content: left;
  262. align-items: center;
  263. margin-top: 30rpx;
  264. }
  265. .item-content-titie {
  266. font-family: PingFangSC-Regular, sans-serif;
  267. font-size: 24rpx;
  268. color: #454545;
  269. font-weight: bold;
  270. }
  271. .item-content-text {
  272. font-family: PingFangSC-Regular, sans-serif;
  273. font-size: 24rpx;
  274. color: #666;
  275. }
  276. span.style-text {
  277. font-family: PingFangSC-Regular, sans-serif;
  278. font-size: 24rpx;
  279. color: #F52F3E;
  280. font-weight: bold;
  281. padding: 0 15rpx;
  282. }
  283. .see-more-content {
  284. display: flex;
  285. justify-content: center;
  286. align-items: center;
  287. margin-top: 30rpx;
  288. }
  289. .see-more-text {
  290. font-family: PingFangSC-Regular, sans-serif;
  291. font-size: 24rpx;
  292. color: #F52F3E;
  293. }
  294. .see-more-icon {
  295. width: 0;
  296. height: 0;
  297. border-left: 14rpx solid #FDD5D8;
  298. border-top: 14rpx solid transparent;
  299. border-bottom: 14rpx solid transparent;
  300. margin-left: 10rpx;
  301. border-radius: 10rpx;
  302. }
  303. .ordering-information {
  304. padding: 30rpx;
  305. background: #fff;
  306. margin-top: 20rpx;
  307. border-radius: 20rpx;
  308. padding-top: 0;
  309. }
  310. .order-number {
  311. font-family: PingFangSC-Regular, sans-serif;
  312. font-size: 26rpx;
  313. color: #454545;
  314. padding: 30rpx 0;
  315. }
  316. .ordering-pic {
  317. width: 120rpx;
  318. height: 120rpx;
  319. background-size: cover;
  320. border-radius: 15rpx;
  321. }
  322. image.order-chart {
  323. width: 120rpx;
  324. height: 120rpx;
  325. background-size: cover;
  326. border-radius: 15rpx;
  327. }
  328. .ordering-text {
  329. margin-left: 30rpx;
  330. }
  331. .ordering-text-title {
  332. font-family: PingFangSC-Regular, sans-serif;
  333. font-size: 30rpx;
  334. color: #454545;
  335. }
  336. .amount-of-money {
  337. font-family: PingFangSC-Regular, sans-serif;
  338. font-size: 24rpx;
  339. color: #999;
  340. padding: 10rpx 0;
  341. }
  342. span.price-style {
  343. font-family: PingFangSC-Regular, sans-serif;
  344. font-size: 24rpx;
  345. color: #F52F3E;
  346. }
  347. .order-time {
  348. font-family: PingFangSC-Regular, sans-serif;
  349. font-size: 24rpx;
  350. color: #999;
  351. }
  352. .ordering-item-content {
  353. display: flex;
  354. justify-content: left;
  355. align-items: center;
  356. border-bottom: 1rpx solid #eee;
  357. padding-bottom: 30rpx;
  358. }
  359. .load-more {
  360. text-align: center;
  361. font-size: 14px;
  362. }
  363. </style>