|
|
@@ -3,11 +3,13 @@ import { onReachBottom } from '@dcloudio/uni-app'
|
|
|
import { usePagination, useRequest } from 'alova/client'
|
|
|
import { storeToRefs } from 'pinia'
|
|
|
import { computed, ref, watch } from 'vue'
|
|
|
+import dayjs from 'dayjs'
|
|
|
import { getAccountCount } from '@/api/home'
|
|
|
import { getBankSignRecord } from '@/api/pay'
|
|
|
import { getCouponIssuerAccountByPageMap } from '@/api/income'
|
|
|
import IncomeItem from '@/components/IncomeItem.vue'
|
|
|
import MescrollBody from '@/custom-components/custom-mescroll/mescroll-body.vue'
|
|
|
+import FilterTime from '@/components/FilterTime.vue'
|
|
|
import { useShare } from '@/hooks/useShare'
|
|
|
import { useUserStore } from '@/store'
|
|
|
import { useTokenStore } from '@/store/token'
|
|
|
@@ -43,6 +45,15 @@ const pickerShow = ref(false)
|
|
|
const totalAmount = ref(0)
|
|
|
const mescrollHeight = ref(0)
|
|
|
const incomeShareInfoRef = ref(null)
|
|
|
+const filterTimeRef = ref()
|
|
|
+// 默认日期范围:本月第一天到今天
|
|
|
+const getDefaultDateRange = (): [string, string] => {
|
|
|
+ const now = dayjs()
|
|
|
+ const startOfMonth = now.startOf('month').format('YYYY/MM/DD')
|
|
|
+ const today = now.format('YYYY/MM/DD')
|
|
|
+ return [startOfMonth, today]
|
|
|
+}
|
|
|
+const dateRangeValue = ref<[string, string]>(getDefaultDateRange())
|
|
|
let mescroll = null
|
|
|
|
|
|
// 新增:滚动距离和透明度
|
|
|
@@ -60,14 +71,27 @@ onPageScroll((e) => {
|
|
|
scrollTop.value = e.scrollTop
|
|
|
})
|
|
|
|
|
|
-const { send: getIncomeData, data: incomeData, pageCount, loading, page, pageSize, isLastPage, refresh, reload, onSuccess, onError } = usePagination((page, pageSize) => getCouponIssuerAccountByPageMap({
|
|
|
- pageNo: page,
|
|
|
- pageSize,
|
|
|
- type: 1,
|
|
|
- status: activeIndex.value,
|
|
|
- year: changtime(pickerDate.value, 'YYYY'),
|
|
|
- month: changtime(pickerDate.value, 'MM'),
|
|
|
-}), {
|
|
|
+const { send: getIncomeData, data: incomeData, pageCount, loading, page, pageSize, isLastPage, refresh, reload, onSuccess, onError } = usePagination((page, pageSize) => {
|
|
|
+ const params: Record<string, any> = {
|
|
|
+ pageNo: page,
|
|
|
+ pageSize,
|
|
|
+ type: 1,
|
|
|
+ status: activeIndex.value,
|
|
|
+ }
|
|
|
+ // 根据tab类型选择日期参数
|
|
|
+ if (activeIndex.value === 2) {
|
|
|
+ // 已提现:使用日期范围
|
|
|
+ if (dateRangeValue.value[0] && dateRangeValue.value[1]) {
|
|
|
+ params.startDate = dateRangeValue.value[0]
|
|
|
+ params.endDate = dateRangeValue.value[1]
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ // 待结算/已结算:使用年月
|
|
|
+ params.year = changtime(pickerDate.value, 'YYYY')
|
|
|
+ params.month = changtime(pickerDate.value, 'MM')
|
|
|
+ }
|
|
|
+ return getCouponIssuerAccountByPageMap(params)
|
|
|
+}, {
|
|
|
initialPage: 1,
|
|
|
initialPageSize: 10,
|
|
|
append: true,
|
|
|
@@ -228,6 +252,22 @@ async function pickerConfirm() {
|
|
|
showLoading.value = false
|
|
|
}
|
|
|
|
|
|
+async function handleDateRangeChange(value: [string, string]) {
|
|
|
+ dateRangeValue.value = value
|
|
|
+ mescroll.scrollTo(0, 0)
|
|
|
+ mescroll.hideUpScroll()
|
|
|
+ showLoading.value = true
|
|
|
+ await reload()
|
|
|
+ showLoading.value = false
|
|
|
+}
|
|
|
+
|
|
|
+function formatDateRangeDisplay() {
|
|
|
+ if (!dateRangeValue.value[0] || !dateRangeValue.value[1]) {
|
|
|
+ return '选择日期范围'
|
|
|
+ }
|
|
|
+ return `${dateRangeValue.value[0]} - ${dateRangeValue.value[1]}`
|
|
|
+}
|
|
|
+
|
|
|
onShow(async () => {
|
|
|
// 登录后查询收益数据
|
|
|
if (hasLogin) {
|
|
|
@@ -276,18 +316,26 @@ function goPage(page: string) {
|
|
|
|
|
|
function goToWithdrawal() {
|
|
|
// 获取可提现余额
|
|
|
- const withdrawableAmount = 100
|
|
|
- // const withdrawableAmount = accountCountData.value?.withdrawableAmount || 0
|
|
|
+ const money = accountCountData.value?.withdrawableAmount || 0
|
|
|
+ const bankNumber = accountCountData.value?.bankNumber || 0
|
|
|
uni.navigateTo({
|
|
|
- url: `/pages-B/payment/withdrawal?m=${withdrawableAmount}`,
|
|
|
+ url: `/pages-B/payment/withdrawal?m=${money}&bankNumber=${bankNumber}`,
|
|
|
})
|
|
|
}
|
|
|
|
|
|
-function handleItemClick(item) {
|
|
|
- uni.navigateTo({
|
|
|
- url: `/pages-A/incomeShareInfo/index?batchId=${item.batchId}&commissionType=${item.commissionType}&type=${activeIndex.value}`,
|
|
|
- })
|
|
|
- // incomeShareInfoRef.value.show(item)
|
|
|
+function handleItemClick(item: any) {
|
|
|
+ if (activeIndex.value == 2) {
|
|
|
+ // 跳转提现详情页
|
|
|
+ uni.navigateTo({
|
|
|
+ url: `/pages-B/payment/detail-withdraw?id=${item.payoutNo}`,
|
|
|
+ })
|
|
|
+ } else {
|
|
|
+ uni.navigateTo({
|
|
|
+ url: `/pages-A/incomeShareInfo/index?batchId=${item.batchId}&commissionType=${item.commissionType}&type=${activeIndex.value}`,
|
|
|
+ })
|
|
|
+ // incomeShareInfoRef.value.show(item)
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
|
|
|
function onAClick() {
|
|
|
@@ -376,7 +424,7 @@ function onAClick() {
|
|
|
</view>
|
|
|
<view class="income-header-tips-item" @click="onAClick">
|
|
|
<view class="income-header-tips-item-num">
|
|
|
- {{ accountCountData?.unsettledAmount || 0 }}
|
|
|
+ {{ accountCountData?.bankNumber || 0 }}
|
|
|
</view>
|
|
|
<view class="income-header-tips-item-des">
|
|
|
银行卡
|
|
|
@@ -411,12 +459,22 @@ function onAClick() {
|
|
|
</view>
|
|
|
<!-- 时间筛选 -->
|
|
|
<view class="income-menu-time-filter" :style="{ top: `calc(${menuButtonInfo.bottom + 4}px + 90rpx)` }">
|
|
|
- <view class="income-menu-time-filter-text" @click="pickerShow = true">
|
|
|
- <text>{{ changtime(pickerDate) }}</text>
|
|
|
- <up-icon name="arrow-down" color="#666666" size="14" />
|
|
|
- <up-datetime-picker v-model="pickerDate" :show="pickerShow" mode="year-month" close-on-click-overlay
|
|
|
- @confirm="pickerConfirm" @cancel="pickerShow = false" />
|
|
|
- </view>
|
|
|
+ <!-- 已提现使用日期范围选择 -->
|
|
|
+ <template v-if="activeIndex === 2">
|
|
|
+ <view class="income-menu-time-filter-text" @click="filterTimeRef?.openPopup()">
|
|
|
+ <text>{{ formatDateRangeDisplay() }}</text>
|
|
|
+ <up-icon name="arrow-down" color="#666666" size="14" />
|
|
|
+ </view>
|
|
|
+ </template>
|
|
|
+ <!-- 待结算/已结算使用年月选择 -->
|
|
|
+ <template v-else>
|
|
|
+ <view class="income-menu-time-filter-text" @click="pickerShow = true">
|
|
|
+ <text>{{ changtime(pickerDate) }}</text>
|
|
|
+ <up-icon name="arrow-down" color="#666666" size="14" />
|
|
|
+ <up-datetime-picker v-model="pickerDate" :show="pickerShow" mode="year-month" close-on-click-overlay
|
|
|
+ @confirm="pickerConfirm" @cancel="pickerShow = false" />
|
|
|
+ </view>
|
|
|
+ </template>
|
|
|
<view>
|
|
|
合计:¥{{ totalAmount }}
|
|
|
</view>
|
|
|
@@ -432,6 +490,7 @@ function onAClick() {
|
|
|
</view>
|
|
|
</mescroll-body>
|
|
|
</view>
|
|
|
+ <FilterTime ref="filterTimeRef" v-model="dateRangeValue" @confirm="handleDateRangeChange" />
|
|
|
<!-- <IncomeShareInfo ref="incomeShareInfoRef" :type="activeIndex" /> -->
|
|
|
</template>
|
|
|
|
|
|
@@ -714,4 +773,4 @@ function onAClick() {
|
|
|
border-bottom-right-radius: 10rpx;
|
|
|
}
|
|
|
}
|
|
|
-</style>
|
|
|
+</style>
|