|
@@ -15,6 +15,8 @@ import {
|
|
|
actionDelegationMiddleware,
|
|
actionDelegationMiddleware,
|
|
|
} from "alova/client";
|
|
} from "alova/client";
|
|
|
import { getCategoryList } from "@/api/home";
|
|
import { getCategoryList } from "@/api/home";
|
|
|
|
|
+import { queryByUserId, pageMap } from "@/api/income";
|
|
|
|
|
+import LsvList from "@/components/listScrollView/index.vue";
|
|
|
|
|
|
|
|
definePage({
|
|
definePage({
|
|
|
style: {
|
|
style: {
|
|
@@ -27,76 +29,87 @@ const userStore = useUserStore();
|
|
|
const tokenStore = useTokenStore();
|
|
const tokenStore = useTokenStore();
|
|
|
const { hasLogin } = storeToRefs(tokenStore);
|
|
const { hasLogin } = storeToRefs(tokenStore);
|
|
|
|
|
|
|
|
-const incomeList = ref([
|
|
|
|
|
- {
|
|
|
|
|
- id: 1,
|
|
|
|
|
- type: "share",
|
|
|
|
|
- title: "分享奖励",
|
|
|
|
|
- amount: "38.00",
|
|
|
|
|
- createTime: "2026-05-20 19:00:00",
|
|
|
|
|
- couponName: "某某某某某优惠券",
|
|
|
|
|
- status: "pending",
|
|
|
|
|
- },
|
|
|
|
|
- {
|
|
|
|
|
- id: 2,
|
|
|
|
|
- type: "share",
|
|
|
|
|
- title: "分享奖励",
|
|
|
|
|
- amount: "58.00",
|
|
|
|
|
- createTime: "2026-05-20 19:00:00",
|
|
|
|
|
- couponName: "某某某优惠券",
|
|
|
|
|
- status: "settled",
|
|
|
|
|
- },
|
|
|
|
|
- {
|
|
|
|
|
- id: 3,
|
|
|
|
|
- type: "share",
|
|
|
|
|
- title: "分享奖励",
|
|
|
|
|
- amount: "58.00",
|
|
|
|
|
- createTime: "2026-05-20 19:00:00",
|
|
|
|
|
- couponName: "优惠券3",
|
|
|
|
|
- status: "blue",
|
|
|
|
|
- },
|
|
|
|
|
-]);
|
|
|
|
|
|
|
+const incomeList = ref([]);
|
|
|
|
|
+const listRef = ref();
|
|
|
|
|
+const isMounted = ref(false);
|
|
|
|
|
+const filterParams = ref({});
|
|
|
|
|
+
|
|
|
|
|
+// 定义 API 函数
|
|
|
|
|
+const getIncomeListApi = (params: any) => {
|
|
|
|
|
+ return pageMap({
|
|
|
|
|
+ pageNo: params.pageNo,
|
|
|
|
|
+ pageSize: params.pageSize,
|
|
|
|
|
+ // isToday:"",
|
|
|
|
|
+ isToday: 2,
|
|
|
|
|
+ status: classItem.value.set?.value || "",
|
|
|
|
|
+ couponClassification: classItem.value.type?.value || "",
|
|
|
|
|
+ classification: classification.value,
|
|
|
|
|
+ startTime: dateValue.value
|
|
|
|
|
+ ? dateValue.value.split(" - ")[0] + " 00:00:00"
|
|
|
|
|
+ : "",
|
|
|
|
|
+ endTime: dateValue.value
|
|
|
|
|
+ ? dateValue.value.split(" - ")[1] + " 23:59:59"
|
|
|
|
|
+ : "",
|
|
|
|
|
+ });
|
|
|
|
|
+};
|
|
|
|
|
+
|
|
|
|
|
+// 重新加载列表
|
|
|
|
|
+const reloadListRef = () => {
|
|
|
|
|
+ listRef.value?.reloadList({});
|
|
|
|
|
+};
|
|
|
|
|
+
|
|
|
|
|
+// 筛选处理
|
|
|
|
|
+const selectValue = (selected: any) => {
|
|
|
|
|
+ if (!isMounted.value) {
|
|
|
|
|
+ isMounted.value = true;
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
|
|
+ filterParams.value = selected;
|
|
|
|
|
+ reloadListRef();
|
|
|
|
|
+};
|
|
|
|
|
|
|
|
function handleViewDetail(item) {
|
|
function handleViewDetail(item) {
|
|
|
|
|
+ //1-分享奖励, 2-核销奖励, 3-邀请新人 ,4-团员核销奖励
|
|
|
|
|
+ let page = ["shareInfo", "writeOff", "invitation", "teamWriteOff"];
|
|
|
|
|
+ let pageType = page[Number(item.classification) - 1];
|
|
|
uni.navigateTo({
|
|
uni.navigateTo({
|
|
|
- url: "/pages-C/income/list/writeOff",
|
|
|
|
|
|
|
+ url: `/pages-C/income/list/${pageType}?couponId=${
|
|
|
|
|
+ item.couponId || ""
|
|
|
|
|
+ }&batchId=${item.batchId}&money=${item.changeAmount}`,
|
|
|
});
|
|
});
|
|
|
}
|
|
}
|
|
|
-const form = ref({});
|
|
|
|
|
const visibleNoticeList = computed(() => {
|
|
const visibleNoticeList = computed(() => {
|
|
|
- const data = form.value || {};
|
|
|
|
|
|
|
+ const data = incomeData.value || {};
|
|
|
return [
|
|
return [
|
|
|
{
|
|
{
|
|
|
title: "分享收益(元)",
|
|
title: "分享收益(元)",
|
|
|
- content: data.totalIncome || 0,
|
|
|
|
|
- page: "/pages-C/share/shareInfo",
|
|
|
|
|
|
|
+ content: data.couponIssuanceEarnings || 0,
|
|
|
|
|
+ page: "/pages-C/my/myShare",
|
|
|
},
|
|
},
|
|
|
|
|
|
|
|
{
|
|
{
|
|
|
- title: "核销收益(张)",
|
|
|
|
|
- content: data.bankCards || 0,
|
|
|
|
|
|
|
+ title: "核销收益(元)",
|
|
|
|
|
+ content: data.writeOffIncome || 0,
|
|
|
page: "/pages-C/my/myWriteOff",
|
|
page: "/pages-C/my/myWriteOff",
|
|
|
},
|
|
},
|
|
|
{
|
|
{
|
|
|
title: "邀新收益(元)",
|
|
title: "邀新收益(元)",
|
|
|
- content: data.inviteIncome || 0,
|
|
|
|
|
- percentage: data.inviteIncomePercent || "45.38%",
|
|
|
|
|
|
|
+ content: data.inviteNew || 0,
|
|
|
page: "/pages-C/my/myNewUsers",
|
|
page: "/pages-C/my/myNewUsers",
|
|
|
},
|
|
},
|
|
|
{
|
|
{
|
|
|
title: "团员收益(元)",
|
|
title: "团员收益(元)",
|
|
|
- content: data.shareIncome || 0,
|
|
|
|
|
|
|
+ content: data.memberIncome || 0,
|
|
|
page: "/pages-C/my/myGroup",
|
|
page: "/pages-C/my/myGroup",
|
|
|
},
|
|
},
|
|
|
{
|
|
{
|
|
|
title: "累计提现(元)",
|
|
title: "累计提现(元)",
|
|
|
- content: data.totalWithdraw || 0,
|
|
|
|
|
- percentage: data.totalWithdrawPercent || "76.76%",
|
|
|
|
|
|
|
+ content: data.totalWithdrawal || 0,
|
|
|
page: "/pages-C/income/incomeMoney",
|
|
page: "/pages-C/income/incomeMoney",
|
|
|
},
|
|
},
|
|
|
{
|
|
{
|
|
|
- title: "银行卡(元)",
|
|
|
|
|
- content: data.writeOffIncome || 0,
|
|
|
|
|
|
|
+ title: "银行卡(张)",
|
|
|
|
|
+ content: data.bankNumber || 0,
|
|
|
page: "/pages-C/my/myWriteOff",
|
|
page: "/pages-C/my/myWriteOff",
|
|
|
},
|
|
},
|
|
|
];
|
|
];
|
|
@@ -105,7 +118,7 @@ const visibleNoticeList = computed(() => {
|
|
|
function listInfo(item) {
|
|
function listInfo(item) {
|
|
|
if (item.page) {
|
|
if (item.page) {
|
|
|
uni.navigateTo({
|
|
uni.navigateTo({
|
|
|
- url: item.page,
|
|
|
|
|
|
|
+ url: `${item.page}?money=${item.content}`,
|
|
|
});
|
|
});
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
@@ -123,25 +136,30 @@ const showMap = ref({
|
|
|
|
|
|
|
|
const tabsIndex = ref(0);
|
|
const tabsIndex = ref(0);
|
|
|
const tabs = ref([
|
|
const tabs = ref([
|
|
|
- { label: "核销奖励", type: "0" },
|
|
|
|
|
- { label: "邀请新人", type: "1" },
|
|
|
|
|
- { label: "团员核销奖励", type: "2" },
|
|
|
|
|
- { label: "分享奖励", type: "3" },
|
|
|
|
|
|
|
+ { label: "核销奖励", type: "2" },
|
|
|
|
|
+ { label: "邀请新人", type: "3" },
|
|
|
|
|
+ { label: "团员核销奖励", type: "4" },
|
|
|
|
|
+ { label: "分享奖励", type: "1" },
|
|
|
]);
|
|
]);
|
|
|
|
|
|
|
|
-function tabClick(index) {
|
|
|
|
|
|
|
+const classification = ref("2");
|
|
|
|
|
+function tabClick(index, item) {
|
|
|
tabsIndex.value = index;
|
|
tabsIndex.value = index;
|
|
|
|
|
+ classification.value = item.type;
|
|
|
|
|
+ reloadListRef();
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
const settlementTabs = ref([
|
|
const settlementTabs = ref([
|
|
|
- { name: "待结算", value: "1" },
|
|
|
|
|
- { name: "已结算", value: "2" },
|
|
|
|
|
|
|
+ { name: "待结算", value: "0" },
|
|
|
|
|
+ { name: "已结算", value: "1" },
|
|
|
|
|
+ { name: "已退款", value: "2" },
|
|
|
]);
|
|
]);
|
|
|
|
|
|
|
|
function classClick(e, item, tabName) {
|
|
function classClick(e, item, tabName) {
|
|
|
indexMap.value[tabName] = e;
|
|
indexMap.value[tabName] = e;
|
|
|
showMap.value[tabName] = false;
|
|
showMap.value[tabName] = false;
|
|
|
classItem.value[tabName] = item;
|
|
classItem.value[tabName] = item;
|
|
|
|
|
+ reloadListRef();
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
//滚动
|
|
//滚动
|
|
@@ -170,8 +188,7 @@ const dateValue = ref();
|
|
|
const handleConfirm = (value: { startDate: string; endDate: string }) => {
|
|
const handleConfirm = (value: { startDate: string; endDate: string }) => {
|
|
|
console.log("选中的日期范围:", value);
|
|
console.log("选中的日期范围:", value);
|
|
|
dateValue.value = `${value.startDate} - ${value.endDate}`;
|
|
dateValue.value = `${value.startDate} - ${value.endDate}`;
|
|
|
-
|
|
|
|
|
- // 处理业务逻辑
|
|
|
|
|
|
|
+ reloadListRef();
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
const handleCancel = () => {
|
|
const handleCancel = () => {
|
|
@@ -186,119 +203,160 @@ const {
|
|
|
immediate: false,
|
|
immediate: false,
|
|
|
});
|
|
});
|
|
|
|
|
|
|
|
|
|
+const { send: sendIncomeData, data: incomeData } = useRequest(queryByUserId, {
|
|
|
|
|
+ immediate: false,
|
|
|
|
|
+});
|
|
|
|
|
+
|
|
|
onShow(async () => {
|
|
onShow(async () => {
|
|
|
await sendCategoryList();
|
|
await sendCategoryList();
|
|
|
|
|
+ await sendIncomeData();
|
|
|
});
|
|
});
|
|
|
|
|
+
|
|
|
|
|
+function goToWithdrawal() {
|
|
|
|
|
+ // 获取可提现余额
|
|
|
|
|
+ const money = incomeData.value?.withdrawableAmount || 0;
|
|
|
|
|
+ const bankNumber = incomeData.value?.bankNumber || 0;
|
|
|
|
|
+ uni.navigateTo({
|
|
|
|
|
+ url: `/pages-B/payment/withdrawal?m=${money}&bankNumber=${bankNumber}`,
|
|
|
|
|
+ });
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+const statusTypeMap: Record<string, string> = {
|
|
|
|
|
+ "1": "一级团员",
|
|
|
|
|
+ "2": "二级团员",
|
|
|
|
|
+ "3": "三级团员",
|
|
|
|
|
+};
|
|
|
|
|
+
|
|
|
|
|
+const couponTypeMap: Record<string, string> = {
|
|
|
|
|
+ "1": "分享奖励",
|
|
|
|
|
+ "2": "核销奖励",
|
|
|
|
|
+ "3": "邀请新人",
|
|
|
|
|
+ "4": "团员核销奖励",
|
|
|
|
|
+};
|
|
|
</script>
|
|
</script>
|
|
|
|
|
|
|
|
<template>
|
|
<template>
|
|
|
<view class="page-container">
|
|
<view class="page-container">
|
|
|
<!-- 顶部蓝色渐变背景 -->
|
|
<!-- 顶部蓝色渐变背景 -->
|
|
|
- <view class="page-header-bg" :style="{
|
|
|
|
|
|
|
+ <view>
|
|
|
|
|
+ <view class="page-header-bg" :style="{
|
|
|
backgroundImage: `url(${getImageUrl('@img/income/bg.png')})`,
|
|
backgroundImage: `url(${getImageUrl('@img/income/bg.png')})`,
|
|
|
backgroundSize: 'cover',
|
|
backgroundSize: 'cover',
|
|
|
backgroundRepeat: 'no-repeat',
|
|
backgroundRepeat: 'no-repeat',
|
|
|
backgroundPosition: 'center'
|
|
backgroundPosition: 'center'
|
|
|
}">
|
|
}">
|
|
|
- </view>
|
|
|
|
|
|
|
+ </view>
|
|
|
|
|
|
|
|
- <u-navbar title="收益" :placeholder="true" :border-bottom="false"
|
|
|
|
|
- :title-style="{ fontWeight: 'bold', color: scrollTop > 1 ? '#000' : '#fff' }"
|
|
|
|
|
- :bgColor="scrollTop>1?'#fff':'transparent'" leftIcon=""></u-navbar>
|
|
|
|
|
|
|
+ <u-navbar title="收益" :placeholder="true" :border-bottom="false"
|
|
|
|
|
+ :title-style="{ fontWeight: 'bold', color: scrollTop > 1 ? '#000' : '#fff' }"
|
|
|
|
|
+ :bgColor="scrollTop>1?'#fff':'transparent'" leftIcon=""></u-navbar>
|
|
|
|
|
|
|
|
- <!-- 页面主内容 -->
|
|
|
|
|
- <view class="main-content">
|
|
|
|
|
- <view class="income-card" :style="{
|
|
|
|
|
|
|
+ <!-- 页面主内容 -->
|
|
|
|
|
+ <view class="main-content">
|
|
|
|
|
+ <view class="income-card" :style="{
|
|
|
backgroundImage: `url(${getImageUrl('@img/income/bg2.png')})`,
|
|
backgroundImage: `url(${getImageUrl('@img/income/bg2.png')})`,
|
|
|
backgroundSize: 'cover',
|
|
backgroundSize: 'cover',
|
|
|
backgroundRepeat: 'no-repeat',
|
|
backgroundRepeat: 'no-repeat',
|
|
|
backgroundPosition: 'center'
|
|
backgroundPosition: 'center'
|
|
|
}">
|
|
}">
|
|
|
- <view class="income-card__header">
|
|
|
|
|
- <view class="income-card__balance">
|
|
|
|
|
- <view class="income-card__balance-label">当前账户余额(元)</view>
|
|
|
|
|
- <view class="income-card__balance-value">3859.00</view>
|
|
|
|
|
|
|
+ <view class="income-card__header">
|
|
|
|
|
+ <view class="income-card__balance">
|
|
|
|
|
+ <view class="income-card__balance-label">当前账户余额(元)</view>
|
|
|
|
|
+ <view class="income-card__balance-value">{{ incomeData?.balance }}</view>
|
|
|
|
|
+ </view>
|
|
|
|
|
+ <button class="income-card__withdraw-btn" @click='goToWithdrawal'>申请提现</button>
|
|
|
</view>
|
|
</view>
|
|
|
- <button class="income-card__withdraw-btn">申请提现</button>
|
|
|
|
|
- </view>
|
|
|
|
|
- <view class="notice-container">
|
|
|
|
|
- <view v-for="(item, index) in visibleNoticeList" :key="index" class="notice-item" @click='listInfo(item)'>
|
|
|
|
|
- <view class="notice-title">{{ item.title }}</view>
|
|
|
|
|
- <view class="notice-content">{{ item.content }}</view>
|
|
|
|
|
|
|
+ <view class="notice-container">
|
|
|
|
|
+ <view v-for="(item, index) in visibleNoticeList" :key="index" class="notice-item" @click='listInfo(item)'>
|
|
|
|
|
+ <view class="notice-title">{{ item.title }}</view>
|
|
|
|
|
+ <view class="notice-content">{{ item.content }}</view>
|
|
|
|
|
+ </view>
|
|
|
</view>
|
|
</view>
|
|
|
</view>
|
|
</view>
|
|
|
</view>
|
|
</view>
|
|
|
- </view>
|
|
|
|
|
|
|
|
|
|
- <view class="filter-cont">
|
|
|
|
|
- <view class="tabs-box">
|
|
|
|
|
- <view class="tabs-list" v-for="(item,index) in tabs" :key="index" :class='{active:tabsIndex==index}'
|
|
|
|
|
- @click=tabClick(index)>
|
|
|
|
|
- {{item.label}}
|
|
|
|
|
|
|
+ <view class="filter-cont">
|
|
|
|
|
+ <view class="tabs-box">
|
|
|
|
|
+ <view class="tabs-list" v-for="(item,index) in tabs" :key="index" :class='{active:tabsIndex==index}'
|
|
|
|
|
+ @click=tabClick(index,item)>
|
|
|
|
|
+ {{item.label}}
|
|
|
|
|
+ </view>
|
|
|
</view>
|
|
</view>
|
|
|
- </view>
|
|
|
|
|
|
|
|
|
|
- <view class='income-select'>
|
|
|
|
|
- <view class='income-time' @click='showPicker=true'>
|
|
|
|
|
- <view class='income-today'>今天 </view>
|
|
|
|
|
- <view class="stat-divider"></view>
|
|
|
|
|
- </view>
|
|
|
|
|
- <view class='income-time' @click='showPicker=true'>
|
|
|
|
|
- <view class='income-time-name'>{{dateValue?dateValue:'日期筛选'}} </view>
|
|
|
|
|
- <text class="caret" />
|
|
|
|
|
- <view class="stat-divider"></view>
|
|
|
|
|
- </view>
|
|
|
|
|
- <view class='income-time' @click='showMap.type=true'>
|
|
|
|
|
- <view class='income-time-name'>{{classItem.type.name?classItem.type.name:'选择分类'}} </view>
|
|
|
|
|
- <text class="caret" />
|
|
|
|
|
- <view class="stat-divider"></view>
|
|
|
|
|
- </view>
|
|
|
|
|
- <view class='income-time' @click='showMap.set=true'>
|
|
|
|
|
- <view class='income-time-name'>{{classItem.set.name?classItem.set.name:'结算状态'}} </view>
|
|
|
|
|
- <text class="caret" />
|
|
|
|
|
|
|
+ <view class='income-select'>
|
|
|
|
|
+ <view class='income-time' @click='reloadListRef'>
|
|
|
|
|
+ <view class='income-today'>今天 </view>
|
|
|
|
|
+ <view class="stat-divider"></view>
|
|
|
|
|
+ </view>
|
|
|
|
|
+ <view class='income-time' @click='showPicker=true'>
|
|
|
|
|
+ <view class='income-time-name'>{{dateValue?dateValue:'日期筛选'}} </view>
|
|
|
|
|
+ <text class="caret" />
|
|
|
|
|
+ <view class="stat-divider"></view>
|
|
|
|
|
+ </view>
|
|
|
|
|
+ <view class='income-time' @click='showMap.type=true'>
|
|
|
|
|
+ <view class='income-time-name'>{{classItem.type.name?classItem.type.name:'选择分类'}} </view>
|
|
|
|
|
+ <text class="caret" />
|
|
|
|
|
+ <view class="stat-divider"></view>
|
|
|
|
|
+ </view>
|
|
|
|
|
+ <view class='income-time' @click='showMap.set=true'>
|
|
|
|
|
+ <view class='income-time-name'>{{classItem.set.name?classItem.set.name:'结算状态'}} </view>
|
|
|
|
|
+ <text class="caret" />
|
|
|
|
|
+ </view>
|
|
|
</view>
|
|
</view>
|
|
|
</view>
|
|
</view>
|
|
|
</view>
|
|
</view>
|
|
|
<!-- 列表 -->
|
|
<!-- 列表 -->
|
|
|
<view class="income-detail-content">
|
|
<view class="income-detail-content">
|
|
|
- <view v-for="item in incomeList" :key="item.id" class="income-card" @click="handleViewDetail(item)">
|
|
|
|
|
- <view class="card-header">
|
|
|
|
|
- <view class="title-tag">
|
|
|
|
|
- <view class="tag-line"></view>
|
|
|
|
|
- <text class="tag-text">{{ item.title }}</text>
|
|
|
|
|
- </view>
|
|
|
|
|
- <view class="view-detail">
|
|
|
|
|
- <text class="detail-text">查看详情</text>
|
|
|
|
|
- <u--image class='income-right' :src="getImageUrl('@img/income/arrow-right.png')" mode="aspectFit"
|
|
|
|
|
- width="32rpx" height="32rpx">
|
|
|
|
|
- </u--image>
|
|
|
|
|
- </view>
|
|
|
|
|
- </view>
|
|
|
|
|
-
|
|
|
|
|
- <view class="card-divider"></view>
|
|
|
|
|
-
|
|
|
|
|
- <view class="card-body">
|
|
|
|
|
- <view class="amount-info">
|
|
|
|
|
- <view class="amount-row">
|
|
|
|
|
- <text class="amount-label">总收益</text>
|
|
|
|
|
- <view class="amount-value">
|
|
|
|
|
- <text class="currency-symbol">¥</text>
|
|
|
|
|
- <text class="amount-number">{{ item.amount }}</text>
|
|
|
|
|
|
|
+ <LsvList ref="listRef" :api="getIncomeListApi" key-name="detailList">
|
|
|
|
|
+ <template #list="{ data }">
|
|
|
|
|
+ <view v-for="item in data" :key="item.id" class="income-card" @click="handleViewDetail(item)">
|
|
|
|
|
+ <view class="card-header">
|
|
|
|
|
+ <view class="title-tag">
|
|
|
|
|
+ <view class="tag-line"></view>
|
|
|
|
|
+ <text class="tag-text">{{ couponTypeMap[item.classification] }}</text>
|
|
|
|
|
+ </view>
|
|
|
|
|
+ <view class="view-detail">
|
|
|
|
|
+ <text class="detail-text">查看详情</text>
|
|
|
|
|
+ <u--image class='income-right' :src="getImageUrl('@img/income/arrow-right.png')" mode="aspectFit"
|
|
|
|
|
+ width="32rpx" height="32rpx">
|
|
|
|
|
+ </u--image>
|
|
|
</view>
|
|
</view>
|
|
|
</view>
|
|
</view>
|
|
|
- <view :class="['status-tag', `status-${item.status}`]">
|
|
|
|
|
- {{ item.status === 'pending' ? '待结算' : '已结算' }}
|
|
|
|
|
- </view>
|
|
|
|
|
- </view>
|
|
|
|
|
- <view class="coupon-info">
|
|
|
|
|
- <text class="coupon-name">{{ item.couponName }}</text>
|
|
|
|
|
- <view class="time-row">
|
|
|
|
|
- <text class="time-label">创建时间</text>
|
|
|
|
|
- <text class="time-value">{{ item.createTime }}</text>
|
|
|
|
|
|
|
+
|
|
|
|
|
+ <view class="card-divider"></view>
|
|
|
|
|
+
|
|
|
|
|
+ <view class="card-body">
|
|
|
|
|
+ <view class="amount-info">
|
|
|
|
|
+ <view class="amount-row">
|
|
|
|
|
+ <text class="amount-label">总收益</text>
|
|
|
|
|
+ <view class="amount-value">
|
|
|
|
|
+ <text class="currency-symbol">¥</text>
|
|
|
|
|
+ <text class="amount-number">{{ item.changeAmount }}</text>
|
|
|
|
|
+ </view>
|
|
|
|
|
+ </view>
|
|
|
|
|
+ <view v-if='item.classification==4' class="status-blue status-tag">
|
|
|
|
|
+ {{ statusTypeMap[item.memberHierarchy] }}
|
|
|
|
|
+ </view>
|
|
|
|
|
+ <view v-else
|
|
|
|
|
+ :class="['status-tag', item.status == 1 ? 'status-settled' :item.status == 2 ?'status-black': 'status-pending']">
|
|
|
|
|
+ {{ item.status == 1 ? '已结算' :item.status == 2 ?'已退款' : '待结算' }}
|
|
|
|
|
+ </view>
|
|
|
|
|
+ </view>
|
|
|
|
|
+ <view class="coupon-info">
|
|
|
|
|
+ <text class="coupon-name">{{ item.couponName || '--' }}</text>
|
|
|
|
|
+ <view class="time-row" v-if='item.classification==1 || item.classification==3'>
|
|
|
|
|
+ <text class="time-label">领取时间</text>
|
|
|
|
|
+ <text class="time-value">{{ item.receiveTime || '--' }}</text>
|
|
|
|
|
+ </view>
|
|
|
|
|
+ <view class="time-row" v-else>
|
|
|
|
|
+ <text class="time-label">核销时间</text>
|
|
|
|
|
+ <text class="time-value">{{ item.useTime || '--' }}</text>
|
|
|
|
|
+ </view>
|
|
|
|
|
+ </view>
|
|
|
</view>
|
|
</view>
|
|
|
</view>
|
|
</view>
|
|
|
- </view>
|
|
|
|
|
- </view>
|
|
|
|
|
|
|
+ </template>
|
|
|
|
|
+ </LsvList>
|
|
|
</view>
|
|
</view>
|
|
|
</view>
|
|
</view>
|
|
|
|
|
|
|
@@ -338,6 +396,8 @@ onShow(async () => {
|
|
|
min-height: 100vh;
|
|
min-height: 100vh;
|
|
|
background-color: #f8f8fa;
|
|
background-color: #f8f8fa;
|
|
|
padding-bottom: 32rpx;
|
|
padding-bottom: 32rpx;
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ flex-direction: column;
|
|
|
// 顶部渐变背景
|
|
// 顶部渐变背景
|
|
|
.page-header-bg {
|
|
.page-header-bg {
|
|
|
position: absolute;
|
|
position: absolute;
|
|
@@ -501,6 +561,7 @@ onShow(async () => {
|
|
|
display: flex;
|
|
display: flex;
|
|
|
flex-direction: column;
|
|
flex-direction: column;
|
|
|
gap: 20rpx;
|
|
gap: 20rpx;
|
|
|
|
|
+ flex: 1;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
.income-card {
|
|
.income-card {
|
|
@@ -649,6 +710,10 @@ onShow(async () => {
|
|
|
background: #e8f7ff;
|
|
background: #e8f7ff;
|
|
|
color: #3491fa;
|
|
color: #3491fa;
|
|
|
}
|
|
}
|
|
|
|
|
+ &.status-black {
|
|
|
|
|
+ background: #f2f3f5;
|
|
|
|
|
+ color: #1d2129;
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
@@ -664,8 +729,8 @@ onShow(async () => {
|
|
|
font-size: 26rpx;
|
|
font-size: 26rpx;
|
|
|
padding-bottom: 32rpx;
|
|
padding-bottom: 32rpx;
|
|
|
}
|
|
}
|
|
|
- .active{
|
|
|
|
|
- color:#FF536B;
|
|
|
|
|
|
|
+ .active {
|
|
|
|
|
+ color: #ff536b;
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
</style>
|
|
</style>
|