From 8abc5182afaa1800bca42b3a6e7c029a0fa775a8 Mon Sep 17 00:00:00 2001 From: Ghost <106998207@qq.com> Date: Tue, 31 Mar 2026 16:24:38 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E4=BB=AA=E8=A1=A8=E7=9B=98=E4=BC=81?= =?UTF-8?q?=E4=B8=9A=E4=BD=99=E9=A2=9D=E5=B1=95=E7=A4=BA=E4=B8=8E=E5=8F=8C?= =?UTF-8?q?=E7=AB=AF=E5=88=86=E6=9E=90=E6=8A=A5=E5=91=8A=E3=80=8C=E8=AF=A6?= =?UTF-8?q?=E7=BB=86=E6=80=A7=E6=A0=BC=E6=B5=8B=E8=AF=95=E3=80=8D=E5=85=A5?= =?UTF-8?q?=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1、管理端数据概览:拉取财务概览展示企业余额;充值改为金额后「充值」文字链。 2、微信/抖音人脸分析报告:PDP/DISC 下方增加跳转 test-select;实心按钮样式;按钮置于主要优势之后。 3、微信小程序 app.js 等小改动同步。 Made-with: Cursor --- admin/src/views/admin/Dashboard.vue | 66 +++++++++++++++++----- douyin-miniprogram/pages/index/result.js | 4 ++ douyin-miniprogram/pages/index/result.ttml | 9 +++ douyin-miniprogram/pages/index/result.ttss | 27 ++++++++- miniprogram/app.js | 4 +- miniprogram/pages/index/result.js | 5 ++ miniprogram/pages/index/result.wxml | 9 +++ miniprogram/pages/index/result.wxss | 27 ++++++++- 8 files changed, 132 insertions(+), 19 deletions(-) diff --git a/admin/src/views/admin/Dashboard.vue b/admin/src/views/admin/Dashboard.vue index a36094b..a5494a3 100644 --- a/admin/src/views/admin/Dashboard.vue +++ b/admin/src/views/admin/Dashboard.vue @@ -17,11 +17,13 @@
-
企业余额
- - - 企业充值 - +
+
企业余额
+
+ {{ enterpriseBalanceDisplay }} + 充值 +
+
@@ -190,6 +192,13 @@ const stats = reactive({ activeToday: 0 }) +/** 企业余额(分),来自 /admin/finance/overview,与财务页一致 */ +const balanceFen = ref(0) + +const fenToYuan = (fen: number) => (Number(fen || 0) / 100).toFixed(2) + +const enterpriseBalanceDisplay = computed(() => `¥${fenToYuan(balanceFen.value)}`) + const testTrends = ref< Array<{ date: string; face: number; mbti: number; pdp: number; disc: number; total: number }> >([]) @@ -377,10 +386,19 @@ function summarizeTypes(row: TopUserRow) { return parts.length ? parts.join(' · ') : '—' } +async function loadFinanceBalance() { + try { + const res: any = await request.get('/admin/finance/overview') + balanceFen.value = Number(res?.data?.balanceFen ?? 0) + } catch { + balanceFen.value = 0 + } +} + const loadData = async () => { loading.value = true try { - const response: any = await request.get('/admin/dashboard') + const [response] = await Promise.all([request.get('/admin/dashboard'), loadFinanceBalance()]) if (response.code === 200 && response.data) { stats.totalUsers = response.data.totalUsers || 0 stats.testsCompleted = response.data.testsCompleted || 0 @@ -605,20 +623,38 @@ const loadInviteQrcode = async () => { .stat-card-recharge { .stat-card-recharge-inner { - display: flex; - flex-direction: column; - align-items: flex-start; - gap: 8px; + flex: 1; min-width: 0; } - .recharge-btn { - flex-shrink: 0; + .stat-info--recharge { + text-align: left; + + .stat-value-row { + display: flex; + flex-direction: row; + align-items: baseline; + flex-wrap: wrap; + gap: 2px 8px; + } + + .stat-value { + font-size: 22px; + font-weight: 700; + color: #111827; + line-height: 1.15; + font-variant-numeric: tabular-nums; + } } - .recharge-btn-icon { - margin-right: 4px; - vertical-align: middle; + .recharge-btn-inline { + flex-shrink: 0; + padding: 0 4px; + height: auto; + margin-bottom: -2px; + font-weight: 600; + font-size: 14px; + vertical-align: baseline; } .stat-icon.amber { diff --git a/douyin-miniprogram/pages/index/result.js b/douyin-miniprogram/pages/index/result.js index ce0f6df..033bfeb 100644 --- a/douyin-miniprogram/pages/index/result.js +++ b/douyin-miniprogram/pages/index/result.js @@ -562,6 +562,10 @@ Page({ tt.showShareMenu({ withShareTicket: true, menus: ['shareAppMessage'] }) }, + goToQuestionnaireTest() { + tt.navigateTo({ url: '/pages/test-select/index' }) + }, + retake() { // camera 是 tabBar 页面,必须用 switchTab tt.switchTab({ url: '/pages/index/camera' }) diff --git a/douyin-miniprogram/pages/index/result.ttml b/douyin-miniprogram/pages/index/result.ttml index 299c42d..3e2311a 100644 --- a/douyin-miniprogram/pages/index/result.ttml +++ b/douyin-miniprogram/pages/index/result.ttml @@ -106,6 +106,15 @@ + + + 去做详细性格测试 + diff --git a/douyin-miniprogram/pages/index/result.ttss b/douyin-miniprogram/pages/index/result.ttss index e1d4579..ffe7faa 100644 --- a/douyin-miniprogram/pages/index/result.ttss +++ b/douyin-miniprogram/pages/index/result.ttss @@ -491,7 +491,32 @@ .type-details { display: flex; gap: 24rpx; - margin-bottom: 24rpx; + margin-bottom: 8rpx; +} + +.result-cta-questionnaire { + box-sizing: border-box; + width: 100%; + max-width: 100%; + margin: 20rpx 0 32rpx; + padding: 24rpx 36rpx; + text-align: center; + background: linear-gradient(135deg, #e63946 0%, #e85d75 50%, #ff6b9d 100%); + border: none; + border-radius: 999rpx; + box-shadow: 0 6rpx 22rpx rgba(230, 57, 70, 0.35); +} + +.result-cta-questionnaire--pressed { + opacity: 0.92; + transform: scale(0.985); +} + +.result-cta-questionnaire-text { + font-size: 28rpx; + font-weight: 600; + color: #fff; + letter-spacing: 1rpx; } .type-box { diff --git a/miniprogram/app.js b/miniprogram/app.js index 4012a1c..89b1015 100644 --- a/miniprogram/app.js +++ b/miniprogram/app.js @@ -47,8 +47,8 @@ App({ // 超管配置的默认企业 ID(无 scene/eid 等入口参数时回落) defaultEnterpriseId: null, // API基础地址(开发时用本地,生产环境替换为实际域名) - //apiBase: 'https://mbtiapi.quwanzhi.com', - apiBase: 'http://mbti.com', + apiBase: 'https://mbtiapi.quwanzhi.com', + //apiBase: 'http://mbti.com', // VIP信息 vipInfo: null, // 测试次数 diff --git a/miniprogram/pages/index/result.js b/miniprogram/pages/index/result.js index 9c80fa4..3249adb 100644 --- a/miniprogram/pages/index/result.js +++ b/miniprogram/pages/index/result.js @@ -586,6 +586,11 @@ Page({ wx.showShareMenu({ withShareTicket: true, menus: ['shareAppMessage', 'shareTimeline'] }) }, + /** 跳转 MBTI / PDP / DISC 题目测试选择页 */ + goToQuestionnaireTest() { + wx.navigateTo({ url: '/pages/test-select/index' }) + }, + retake() { // camera 是 tabBar 页面,必须用 switchTab wx.switchTab({ url: '/pages/index/camera' }) diff --git a/miniprogram/pages/index/result.wxml b/miniprogram/pages/index/result.wxml index a162429..f4aa202 100644 --- a/miniprogram/pages/index/result.wxml +++ b/miniprogram/pages/index/result.wxml @@ -105,6 +105,15 @@ + + + 去做详细性格测试 +