Эх сурвалжийг харах

feat: 钱包提现 提现记录 充值记录接口调试

liangan 2 долоо хоног өмнө
parent
commit
d8a04d14c0

+ 11 - 4
.promptx/pouch.json

@@ -1,16 +1,23 @@
 {
-  "currentState": "initialized",
+  "currentState": "service_discovery",
   "stateHistory": [
     {
       "from": "initial",
       "command": "init",
-      "timestamp": "2025-07-16T06:01:20.043Z",
+      "timestamp": "2025-07-30T07:42:28.569Z",
       "args": [
         {
-          "workingDirectory": "/Users/liangan/Documents/work_files/code/BandhuBuyUniBest"
+          "workingDirectory": "/Users/liangan/Documents/work_files/code/BandhuBuyUniBest",
+          "ideType": "cursor"
         }
       ]
+    },
+    {
+      "from": "initialized",
+      "command": "welcome",
+      "timestamp": "2025-07-30T07:42:33.286Z",
+      "args": []
     }
   ],
-  "lastUpdated": "2025-07-16T06:01:20.076Z"
+  "lastUpdated": "2025-07-30T07:42:33.301Z"
 }

+ 2 - 2
.promptx/resource/project.registry.json

@@ -4,8 +4,8 @@
   "metadata": {
     "version": "2.0.0",
     "description": "project 级资源注册表",
-    "createdAt": "2025-07-16T06:01:20.073Z",
-    "updatedAt": "2025-07-16T06:01:20.074Z",
+    "createdAt": "2025-07-30T07:42:28.606Z",
+    "updatedAt": "2025-07-30T07:42:28.607Z",
     "resourceCount": 0
   },
   "resources": [],

+ 9 - 1
src/api/order.ts

@@ -1,4 +1,4 @@
-import { qs } from '@/utils'
+import { extractAndRetained, qs } from '@/utils'
 import { http } from '@/utils/http'
 
 /**
@@ -36,3 +36,11 @@ export function createOrder(data: any) {
 export function payOrder(data: any) {
   return http.post<any>(`/mall/order/goPay`, data)
 }
+/**
+ * 订单列表
+ * @returns
+ */
+export function orderList(data: any) {
+  const { extract, retained } = extractAndRetained(data, ['page', 'size'])
+  return http.post<any>(`/mall/order/app/list?${qs(extract)}`, retained)
+}

+ 14 - 0
src/api/wallet.ts

@@ -21,3 +21,17 @@ export function envelopeList(data: any) {
 export function withdrawAdd(data: any) {
   return http.post<any>(`/cif/api/withdraw/record/add`, data)
 }
+/**
+ * 账户提现记录(钱包/收益账户)
+ * @returns
+ */
+export function withdrawRecordList(data: any) {
+  return http.post<any>(`/cif/api/withdraw/record/list`, data)
+}
+/**
+ * 充值记录
+ * @returns
+ */
+export function rechargeRecordList(data: any) {
+  return http.post<any>(`/cif/api/recharge/record/list`, data)
+}

+ 1 - 1
src/pages/mine/mine.vue

@@ -90,7 +90,7 @@ const menuList = ref([
         </view>
       </view>
       <view class="flex flex-col items-end">
-        <wd-button size="small">
+        <wd-button size="small" @click="toPage('/pages/wallet/recharge')">
           Recharge
         </wd-button>
         <view class="mt-10rpx text-20rpx text-#595959">

+ 29 - 21
src/pages/myOrders/myOrders.vue

@@ -13,10 +13,16 @@
 // eslint-disable-next-line unused-imports/no-unused-imports
 import { onPageScroll, onReachBottom } from '@dcloudio/uni-app'
 import useZPaging from 'z-paging/components/z-paging/js/hooks/useZPaging.js'
+import { orderList } from '@/api/order'
+import { formatNumber } from '@/utils'
 
 defineOptions({
   name: 'MyOrders', // 我的订单
 })
+
+const userInfo = computed(() => {
+  return getUserInfoHook()
+})
 // z-paging
 const paging = ref(null)
 // 类似mixins,如果是页面滚动务必要写这一行,并传入当前ref绑定的paging,注意此处是paging,而非paging.value
@@ -25,39 +31,41 @@ const tab = ref<number>(0)
 const tabList = ref<any>([
   {
     label: 'All',
-    value: '',
+    value: 0,
   },
   {
     label: 'To pay',
-    value: '',
+    value: 1,
   },
   {
     label: 'Success',
-    value: '',
+    value: 2,
   },
   {
     label: 'Failed',
-    value: '',
+    value: 3,
   },
   {
     label: 'Reward',
-    value: '',
+    value: 4,
   },
 ])
 // 搜索结果
-const dataList = ref([])
-function queryList(pageNo, pageSize) {
+const dataList = ref<any[]>([])
+async function queryList(pageNo, pageSize) {
   // 此处请求仅为演示,请替换为自己项目中的请求
-  setTimeout(() => {
-    dataList.value = [
-      { title: '123' },
-      { title: '123' },
-      { title: '123' },
-      { title: '12345' },
-    ]
-    console.log(12312)
-    paging.value[tab.value].complete(dataList.value)
-  }, 1000)
+  try {
+    const res = await orderList({
+      page: pageNo,
+      size: pageSize,
+      type: tab.value, // 根据tab的值来查询不同状态的订单
+      userId: userInfo.value.userId,
+    })
+    paging.value[tab.value].complete(res.data.list)
+  }
+  catch {
+    paging.value[tab.value].complete(false)
+  }
 }
 
 function toPage() {
@@ -69,13 +77,13 @@ function toPage() {
 
 <template>
   <wd-tabs v-model="tab" swipeable sticky custom-class="bg-transparent!">
-    <wd-tab v-for="item in 4" :key="item" :title="`标签${item}`">
+    <wd-tab v-for="tabItem in tabList" :key="tabItem" :title="tabItem.label" :value="tabItem.value">
       <z-paging ref="paging" v-model="dataList" use-page-scroll @query="queryList">
-        <wd-card type="rectangle" custom-class="px-24rpx! py-6rpx!" custom-content-class="py-18rpx!" custom-title-class="py-18rpx!" @click="toPage">
+        <wd-card v-for="item in dataList" :key="item.orderId" type="rectangle" custom-class="px-24rpx! py-6rpx!" custom-content-class="py-18rpx!" custom-title-class="py-18rpx!" @click="toPage">
           <template #title>
             <view class="flex items-center justify-between">
               <view class="text-28rpx text-#000">
-                Order ID:20250505123030120
+                Order ID:{{ item.orderId }}
               </view>
               <wd-text size="26rpx" type="primary" text="Completed" />
             </view>
@@ -94,7 +102,7 @@ function toPage() {
               </view>
               <view class="flex items-center justify-between text-24rpx text-#3A444C">
                 <view>
-                  ৳ 300
+                  ৳ {{ formatNumber(item.payPrice) }}
                 </view>
                 <view>
                   Quantity:1

+ 2 - 5
src/pages/wallet/myWallet.vue

@@ -10,12 +10,9 @@
 </route>
 
 <script lang="ts" setup>
+import { toPage } from '@/utils/page'
+
 const dayType = ref(1)
-function toPage(url: string) {
-  uni.navigateTo({
-    url,
-  })
-}
 </script>
 
 <template>

+ 25 - 16
src/pages/wallet/rechargeRecord.vue

@@ -13,6 +13,9 @@
 // eslint-disable-next-line unused-imports/no-unused-imports
 import { onPageScroll, onReachBottom } from '@dcloudio/uni-app'
 import useZPaging from 'z-paging/components/z-paging/js/hooks/useZPaging.js'
+import { rechargeRecordList } from '@/api/wallet'
+import { formatNumber } from '@/utils'
+import { getPageParams } from '@/utils/page'
 
 defineOptions({
   name: 'RechargeRecord', // 充值记录
@@ -21,33 +24,39 @@ defineOptions({
 const paging = ref(null)
 // 类似mixins,如果是页面滚动务必要写这一行,并传入当前ref绑定的paging,注意此处是paging,而非paging.value
 useZPaging(paging)
+const queryParams = ref<any>({})
 // 搜索结果
 const dataList = ref([])
-function queryList(pageNo, pageSize) {
-  // 此处请求仅为演示,请替换为自己项目中的请求
-  setTimeout(() => {
-    dataList.value = [
-      { title: '123' },
-      { title: '123' },
-      { title: '123' },
-      { title: '12345' },
-    ]
-    paging.value.complete(dataList.value)
-  }, 1000)
+async function queryList(pageNo: number, pageSize: number) {
+  try {
+    const res = await rechargeRecordList({
+      page: pageNo,
+      size: pageSize,
+      accountType: 1,
+    })
+    console.log(res)
+    paging.value.complete(res.data.list)
+  }
+  catch {
+    paging.value.complete(false)
+  }
 }
+onLoad((options) => {
+  queryParams.value = getPageParams(options)
+})
 </script>
 
 <template>
-  <z-paging ref="paging" refresher-only use-page-scroll @query="queryList">
+  <z-paging ref="paging" v-model="dataList" use-page-scroll @query="queryList">
     <view class="py-20rpx">
-      <view class="bg-white px-22rpx py-18rpx">
+      <view v-for="item in dataList" :key="item.id" class="bg-white px-22rpx py-18rpx">
         <view class="mb-8rpx flex items-center justify-between">
-          <view>ID:20250505123030120</view>
+          <view>ID:{{ item.orderNo }}</view>
           <wd-text type="primary" bold text="Processing" />
         </view>
         <view class="flex items-center justify-between text-22rpx text-#3A444C">
-          <view>Wallet Balance:+300.00</view>
-          <view>05.05 12:30</view>
+          <view>Wallet Balance:+{{ formatNumber(item.amount) }}</view>
+          <view>{{ item.createTime }}</view>
         </view>
       </view>
     </view>

+ 2 - 3
src/pages/wallet/withdraw.vue

@@ -48,8 +48,7 @@ async function submit() {
   console.log(res)
 }
 onLoad((options) => {
-  const params = getPageParams(options)
-  queryParams.value = params
+  queryParams.value = getPageParams(options)
 })
 </script>
 
@@ -63,7 +62,7 @@ onLoad((options) => {
       title="Withdraw"
     >
       <template #right>
-        <text class="text-28rpx" @click="toPage('/pages/wallet/withdrawRecord')">
+        <text class="text-28rpx" @click="toPage('/pages/wallet/withdrawRecord', { type: queryParams.type })">
           Record
         </text>
       </template>

+ 21 - 13
src/pages/wallet/withdrawRecord.vue

@@ -13,6 +13,8 @@
 // eslint-disable-next-line unused-imports/no-unused-imports
 import { onPageScroll, onReachBottom } from '@dcloudio/uni-app'
 import useZPaging from 'z-paging/components/z-paging/js/hooks/useZPaging.js'
+import { withdrawRecordList } from '@/api/wallet'
+import { getPageParams } from '@/utils/page'
 
 defineOptions({
   name: 'WithdrawRecord', // 充值记录
@@ -21,26 +23,32 @@ defineOptions({
 const paging = ref(null)
 // 类似mixins,如果是页面滚动务必要写这一行,并传入当前ref绑定的paging,注意此处是paging,而非paging.value
 useZPaging(paging)
+const queryParams = ref<any>({})
 // 搜索结果
 const dataList = ref([])
-function queryList(pageNo, pageSize) {
-  // 此处请求仅为演示,请替换为自己项目中的请求
-  setTimeout(() => {
-    dataList.value = [
-      { title: '123' },
-      { title: '123' },
-      { title: '123' },
-      { title: '12345' },
-    ]
-    paging.value.complete(dataList.value)
-  }, 1000)
+async function queryList(pageNo: number, pageSize: number) {
+  try {
+    const res = await withdrawRecordList({
+      page: pageNo,
+      size: pageSize,
+      accountType: queryParams.value.type,
+    })
+    console.log(res)
+    paging.value.complete(res.data.list)
+  }
+  catch {
+    paging.value.complete(false)
+  }
 }
+onLoad((options) => {
+  queryParams.value = getPageParams(options)
+})
 </script>
 
 <template>
-  <z-paging ref="paging" refresher-only use-page-scroll @query="queryList">
+  <z-paging ref="paging" v-model="dataList" use-page-scroll @query="queryList">
     <view class="py-20rpx">
-      <view class="bg-white px-22rpx py-18rpx">
+      <view v-for="item in dataList" :key="item.id" class="bg-white px-22rpx py-18rpx">
         <view class="mb-8rpx flex items-center justify-between">
           <view>ID:20250505123030120</view>
           <wd-text type="primary" bold text="Processing" />