From 94bcbc8d8f383dd3e28905def796c0db799967ca Mon Sep 17 00:00:00 2001
From: liangzai <2440983361@qq.com>
Date: Thu, 30 Apr 2026 16:06:57 +0800
Subject: [PATCH] f-4-30
---
pages.config.ts | 12 +-
src/components.d.ts | 1 +
src/components/EmptyState.vue | 12 +
src/pages/agent-promote-details.vue | 6 +-
src/pages/agent-rewards-details.vue | 6 +-
src/pages/agent-vip-config.vue | 597 ++++++++++------------------
src/pages/history-query.vue | 6 +-
src/pages/subordinate-detail.vue | 38 +-
src/pages/subordinate-list.vue | 8 +-
src/pages/withdraw-details.vue | 6 +-
10 files changed, 249 insertions(+), 443 deletions(-)
create mode 100644 src/components/EmptyState.vue
diff --git a/pages.config.ts b/pages.config.ts
index eb5476f..2177d27 100644
--- a/pages.config.ts
+++ b/pages.config.ts
@@ -7,12 +7,12 @@ export default defineUniPages({
{ path: 'pages/privacy-consent', style: { navigationStyle: 'custom', navigationBarTitleText: '隐私政策授权' } },
{ path: 'pages/agent', style: { navigationBarTitleText: '代理中心' } },
{ path: 'pages/agent-manage-agreement', style: { navigationBarTitleText: '代理管理协议', navigationStyle: 'default' } },
- { path: 'pages/agent-promote-details', auth: true, style: { navigationBarTitleText: '直推收益明细' } },
- { path: 'pages/agent-rewards-details', auth: true, style: { navigationBarTitleText: '代理奖励收益明细' } },
+ { path: 'pages/agent-promote-details', auth: true, style: { navigationBarTitleText: '收益明细' } },
+ { path: 'pages/agent-rewards-details', auth: true, style: { navigationBarTitleText: '奖励明细' } },
{ path: 'pages/agent-service-agreement', style: { navigationBarTitleText: '信息技术服务合同', navigationStyle: 'default' } },
{ path: 'pages/agent-vip', auth: true, style: { navigationBarTitleText: '代理会员' } },
- { path: 'pages/agent-vip-apply', auth: true, style: { navigationBarTitleText: 'VIP申请' } },
- { path: 'pages/agent-vip-config', auth: true, style: { navigationBarTitleText: 'VIP配置' } },
+ { path: 'pages/agent-vip-apply', auth: true, style: { navigationBarTitleText: 'VIP代理申请' } },
+ { path: 'pages/agent-vip-config', auth: true, style: { navigationBarTitleText: '代理会员报告配置' } },
{ path: 'pages/authorization', style: { navigationBarTitleText: '授权书', navigationStyle: 'default' } },
{ path: 'pages/help', style: { navigationBarTitleText: '帮助中心' } },
{ path: 'pages/help-detail', style: { navigationBarTitleText: '帮助详情' } },
@@ -27,11 +27,11 @@ export default defineUniPages({
{ path: 'pages/not-found', style: { navigationBarTitleText: '页面不存在' } },
{ path: 'pages/payment-result', auth: true, style: { navigationBarTitleText: '支付结果' } },
{ path: 'pages/privacy-policy', style: { navigationBarTitleText: '隐私政策', navigationStyle: 'default' } },
- { path: 'pages/promote', auth: true, style: { navigationBarTitleText: '推广管理' } },
+ { path: 'pages/promote', auth: true, style: { navigationBarTitleText: '推广' } },
{ path: 'pages/report-example-webview', style: { navigationBarTitleText: '示例报告', navigationStyle: 'default' } },
{ path: 'pages/report-result-webview', auth: true, style: { navigationBarTitleText: '报告结果', navigationStyle: 'default' } },
{ path: 'pages/report-share', style: { navigationBarTitleText: '报告分享', navigationStyle: 'default' } },
- { path: 'pages/subordinate-detail', auth: true, style: { navigationBarTitleText: '下级详情' } },
+ { path: 'pages/subordinate-detail', auth: true, style: { navigationBarTitleText: '下级贡献详情' } },
{ path: 'pages/subordinate-list', auth: true, style: { navigationBarTitleText: '我的下级' } },
{ path: 'pages/user-agreement', style: { navigationBarTitleText: '用户协议', navigationStyle: 'default' } },
{ path: 'pages/withdraw', auth: true, style: { navigationBarTitleText: '提现' } },
diff --git a/src/components.d.ts b/src/components.d.ts
index d997cae..dc5a1a1 100644
--- a/src/components.d.ts
+++ b/src/components.d.ts
@@ -10,6 +10,7 @@ declare module 'vue' {
AccountCancelAgreement: typeof import('./components/AccountCancelAgreement.vue')['default']
AgentApplicationForm: typeof import('./components/AgentApplicationForm.vue')['default']
BindPhoneDialog: typeof import('./components/BindPhoneDialog.vue')['default']
+ EmptyState: typeof import('./components/EmptyState.vue')['default']
ImageSaveGuide: typeof import('./components/ImageSaveGuide.vue')['default']
InquireForm: typeof import('./components/InquireForm.vue')['default']
LoginDialog: typeof import('./components/LoginDialog.vue')['default']
diff --git a/src/components/EmptyState.vue b/src/components/EmptyState.vue
new file mode 100644
index 0000000..e783f70
--- /dev/null
+++ b/src/components/EmptyState.vue
@@ -0,0 +1,12 @@
+
+
+
+ {{ text }}
+
+
+
+
diff --git a/src/pages/agent-promote-details.vue b/src/pages/agent-promote-details.vue
index 6c19c30..5439976 100644
--- a/src/pages/agent-promote-details.vue
+++ b/src/pages/agent-promote-details.vue
@@ -242,11 +242,9 @@ onReachBottom(() => {
加载中...
-
- 暂无记录
-
+
-
+
diff --git a/src/pages/agent-rewards-details.vue b/src/pages/agent-rewards-details.vue
index 2e6aa15..f497691 100644
--- a/src/pages/agent-rewards-details.vue
+++ b/src/pages/agent-rewards-details.vue
@@ -138,11 +138,9 @@ onReachBottom(() => {
加载中...
-
- 暂无记录
-
+
-
+
diff --git a/src/pages/agent-vip-config.vue b/src/pages/agent-vip-config.vue
index 4903db3..ec8e371 100644
--- a/src/pages/agent-vip-config.vue
+++ b/src/pages/agent-vip-config.vue
@@ -1,5 +1,135 @@
+
+
+
+
+
+ 请选择报告类型并设置定价策略,助您实现精准定价
+
+
+
+ 📝 选择报告
+
+
+
+
+
+
+
+
+
+ {{ selectedReportText }}配置
+
+
+
+
+
+ 报告基础配置信息
+
+ 基础成本价:{{ productConfigData.cost_price }} 元
+ 最高设定金额上限:{{ productConfigData.price_range_max }}
+ 元
+ 最高设定比例上限:{{ priceRatioMax }} %
+
+
+
+
+
+
+ 成本策略配置
+
+
+
+
+
+
+
+
+
+
+
+ 元
+
+
+
+ 提示:最大加价金额为{{ priceIncreaseAmountMax }}元
+ 说明:加价金额是在基础成本价上增加的额外费用,决定下级报告的最低定价,您将获得所有输入的金额利润。
+
+
+
+
+
+ 定价策略配置
+
+
+
+
+
+
+
+ { validateDecimal('price_range_from'); validateRange(); }" />
+
+ 元
+
+
+
+ 提示:定价区间最低不能低于(基础最低 {{ productConfigData?.price_range_min || 0 }}元 + 加价金额)
+ 说明:设定的定价区间最低为定价区间的起始值,若下级设定的报告金额在区间内,则区间内部分将按比例获得收益。
+
+
+
+
+
+
+ { validateDecimal('price_range_to'); validateRange(); }" />
+
+ 元
+
+
+
+ 提示:定价区间最高不能超过上限({{ productConfigData?.price_range_max || 0 }}元)和大于定价区间最低({{
+ priceIncreaseMax
+ }}元)
+ 说明:设定的定价区间最高为定价区间的结束值,若下级设定的报告金额在区间内,则区间内部分将按比例获得收益。
+
+
+
+
+
+
+
+
+ %
+
+
+
+ 提示:最大收取比例为{{ priceRatioMax }}%
+ 说明:收取比例表示对定价区间内(即报告金额超过定价区间最低,小于定价区间最高的部分)的金额,按此比例进行利润分成。
+
+
+
+
+
+
+
+
+
+
+ ⚠️
+ 请先选择需要配置的报告类型
+
+
+
+
-
-
-
-
-
-
- 请选择报告类型并设置定价策略,助您实现精准定价
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{ selectedReportText }}配置
-
-
-
-
-
-
- 报告基础配置信息
-
-
-
- 基础成本价:
- {{
- productConfigData.cost_price
- }}
-
- 元
-
-
-
- 最高设定金额上限:
- {{
- productConfigData.price_range_max
- }}
-
- 元
-
-
- 最高设定比例上限:
- {{
- priceRatioMax
- }}
-
- %
-
-
-
-
-
-
- 成本策略配置
-
-
-
-
-
- 🚀 加价金额
-
-
- {
- onFieldBlur('price_increase_amount')
- validateDecimal('price_increase_amount')
- }
- "
- />
-
- 元
-
-
-
-
- 提示:最大加价金额为{{ priceIncreaseAmountMax }}元
- 说明:加价金额是在基础成本价上增加的额外费用,决定下级报告的最低定价,您将获得所有输入的金额利润。
-
-
-
-
- 定价策略配置
-
-
-
-
-
- 💰 最低金额
-
-
- {
- onFieldBlur('price_range_from')
- validateDecimal('price_range_from')
- validateRange()
- }
- "
- />
-
- 元
-
-
-
-
- 提示:最低金额不能低于(基础最低
- {{ productConfigData?.price_range_min || 0 }}元 +
- 加价金额)
- 说明:设定的最低金额为定价区间的起始值,若下级设定的报告金额在区间内,则区间内部分将按比例获得收益。
-
-
-
-
-
- 💰 最高金额
-
-
- {
- onFieldBlur('price_range_to')
- validateDecimal('price_range_to')
- validateRange()
- }
- "
- />
-
- 元
-
-
-
-
- 提示:最高金额不能超过上限({{
- productConfigData?.price_range_max || 0
- }}元)和大于最低金额({{ priceIncreaseMax }}元)
- 说明:设定的最高金额为定价区间的结束值,若下级设定的报告金额在区间内,则区间内部分将按比例获得收益。
-
-
-
-
-
- 📈 收取比例
-
-
- {
- onFieldBlur('price_ratio')
- validateRatio()
- }
- "
- />
-
- %
-
-
-
-
- 提示:最大收取比例为{{ priceRatioMax }}%
- 说明:收取比例表示对定价区间内(即报告金额超过最低金额,小于最高金额的部分)的金额,按此比例进行利润分成。
-
-
-
-
-
- 保存当前报告配置
-
-
-
-
-
- ⚠️
-
-
- 请先选择需要配置的报告类型
-
-
-
-
-
diff --git a/src/pages/history-query.vue b/src/pages/history-query.vue
index 1d6d23d..1a6ab49 100644
--- a/src/pages/history-query.vue
+++ b/src/pages/history-query.vue
@@ -134,11 +134,9 @@ function statusClass(state) {
加载中...
-
- 暂无记录
-
+
-
+
diff --git a/src/pages/subordinate-detail.vue b/src/pages/subordinate-detail.vue
index 2a54bb2..42074fd 100644
--- a/src/pages/subordinate-detail.vue
+++ b/src/pages/subordinate-detail.vue
@@ -45,16 +45,8 @@ function getAgentLevelLabel(value) {
}
// 获取收益列表
-function mergeUniqueById(oldList, newList) {
- const map = new Map()
- const resolveKey = (item, index) => String(item?.id ?? item?.order_id ?? `${item?.create_time || ''}_${item?.type || ''}_${index}`)
- oldList.forEach((item, index) => {
- map.set(resolveKey(item, index), item)
- })
- newList.forEach((item, index) => {
- map.set(resolveKey(item, oldList.length + index), item)
- })
- return Array.from(map.values())
+function appendList(oldList, newList) {
+ return oldList.concat(newList)
}
async function fetchRewardDetails(reset = false) {
@@ -177,7 +169,7 @@ async function fetchRewardDetails(reset = false) {
total.value = data.value.data.total || 0
// 处理列表数据
const list = data.value.data.list || []
- rewardDetails.value = reset ? list : mergeUniqueById(rewardDetails.value, list)
+ rewardDetails.value = reset ? list : appendList(rewardDetails.value, list)
const isLastPage = list.length < pageSize || rewardDetails.value.length >= total.value
hasMore.value = !isLastPage
loadMoreState.value = isLastPage ? 'finished' : 'loading'
@@ -334,12 +326,8 @@ function formatNumber(num) {
贡献统计
-
+
@@ -359,20 +347,18 @@ function formatNumber(num) {
-
+
贡献记录
-
-
- 暂无贡献记录
-
-
+
+
+
-
+
-
+
{{ getRewardTypeDescription(item.type) }}
@@ -392,7 +378,7 @@ function formatNumber(num) {
加载中...
-
+
diff --git a/src/pages/subordinate-list.vue b/src/pages/subordinate-list.vue
index cf98b06..aea44a6 100644
--- a/src/pages/subordinate-list.vue
+++ b/src/pages/subordinate-list.vue
@@ -128,7 +128,7 @@ onReachBottom(() => {
-
+
@@ -212,10 +212,8 @@ onReachBottom(() => {
加载中...
-
- 暂无下级代理
-
-
+
+
diff --git a/src/pages/withdraw-details.vue b/src/pages/withdraw-details.vue
index f81ea08..c1310b4 100644
--- a/src/pages/withdraw-details.vue
+++ b/src/pages/withdraw-details.vue
@@ -198,11 +198,9 @@ onReachBottom(() => {
加载中...
-
- 暂无提现记录
-
+
-