diff --git a/NamingAssistant/pages/home/index.js b/NamingAssistant/pages/home/index.js index 6d6f208..8dc2708 100644 --- a/NamingAssistant/pages/home/index.js +++ b/NamingAssistant/pages/home/index.js @@ -146,6 +146,7 @@ Page({ generateName(payload) .then((response) => { const results = response && Array.isArray(response.results) ? response.results : []; + const analysis = response && response.analysis ? response.analysis : null; if (!results.length) { showToast(messages.GENERATION_FAILED); return; @@ -157,7 +158,8 @@ Page({ } accumulator.push({ name, - meaning: item.meaning || item.Meaning || "" + meaning: item.meaning || item.Meaning || "", + elementReason: item.elementReason || item.ElementReason || "" }); return accumulator; }, []); @@ -165,7 +167,10 @@ Page({ showToast(messages.GENERATION_FAILED); return; } - namingStore.setResults(normalizedResults); + namingStore.setResults({ + results: normalizedResults, + analysis + }); namingStore.incrementQuota(); this.updateQuotaState(); if (typeof tt !== "undefined" && tt.navigateTo) { diff --git a/NamingAssistant/pages/result/index.js b/NamingAssistant/pages/result/index.js index 8554c34..3105f2c 100644 --- a/NamingAssistant/pages/result/index.js +++ b/NamingAssistant/pages/result/index.js @@ -1,4 +1,4 @@ -const namingStore = require("../../store/namingStore"); +const namingStore = require("../../store/namingStore"); function showToast(title) { if (typeof tt === "undefined" || !tt.showToast) { @@ -14,12 +14,13 @@ function showToast(title) { Page({ data: { - results: [] + results: [], + matchSummary: "" }, onLoad() { - const { results } = namingStore.getState(); + const { results, analysis } = namingStore.getState(); if (!results || !results.length) { - showToast("暂无结果,请先生成姓名"); + showToast("暂无生成结果,请返回重新生成"); setTimeout(() => { if (typeof tt !== "undefined" && tt.navigateBack) { tt.navigateBack(); @@ -27,20 +28,21 @@ Page({ }, 1000); return; } - this.setData({ results }); + const summary = analysis && (analysis.matchSummary || analysis.MatchSummary) ? analysis.matchSummary || analysis.MatchSummary : ""; + const normalized = results.map((item) => ({ + name: item.name, + meaning: item.meaning || "寓意待补充", + elementReason: item.elementReason || "五行流转相济" + })); + this.setData({ + results: normalized, + matchSummary: summary + }); }, handleFavorite(event) { const { name, meaning } = event.currentTarget.dataset; - const item = { - name, - meaning - }; - const saved = namingStore.addFavorite(item); - if (saved) { - showToast("已收藏"); - } else { - showToast("收藏失败"); - } + const saved = namingStore.addFavorite({ name, meaning }); + showToast(saved ? "已收藏" : "收藏失败"); }, handleBack() { if (typeof tt !== "undefined" && tt.navigateBack) { diff --git a/NamingAssistant/pages/result/index.ttml b/NamingAssistant/pages/result/index.ttml index 8ccb8b6..fa5cd45 100644 --- a/NamingAssistant/pages/result/index.ttml +++ b/NamingAssistant/pages/result/index.ttml @@ -6,35 +6,36 @@ - 灵签揭示 - 从星宿生辰推演的五重吉名,择其心有所向 + 八字名鉴 + 以生辰八字为准,优选五行调衡的候选姓名 + + + + {{matchSummary}} - 暂无生成结果,请返回主页重新召唤。 + 暂无生成结果,请返回主页重新生成。 - 轻触收藏,铭记心仪之名 + 轻触收藏按钮即可将心仪姓名收入星册 - - {{item.name}} - - - {{item.meaning}} + {{item.name}}|{{item.meaning}}|{{item.elementReason}} + - + diff --git a/NamingAssistant/pages/result/index.ttss b/NamingAssistant/pages/result/index.ttss index 7bed4f8..3c5c895 100644 --- a/NamingAssistant/pages/result/index.ttss +++ b/NamingAssistant/pages/result/index.ttss @@ -80,10 +80,24 @@ line-height: 1.6; } +.summary { + background: rgba(18, 24, 46, 0.7); + border: 1px solid rgba(255, 255, 255, 0.08); + border-radius: 14px; + padding: 14px 16px; + color: rgba(255, 244, 227, 0.85); + line-height: 1.7; + font-size: 13px; +} + +.summary-text { + white-space: pre-line; +} + .tip { font-size: 14px; color: rgba(255, 244, 227, 0.7); - letter-spacing: 4px; + letter-spacing: 2px; text-align: center; margin-bottom: 8px; } @@ -91,7 +105,7 @@ .result-card { display: flex; flex-direction: column; - gap: 10px; + gap: 12px; background: linear-gradient(135deg, rgba(16, 22, 46, 0.86), rgba(36, 44, 80, 0.76)); border-radius: 18px; padding: 18px 20px; @@ -101,18 +115,11 @@ backdrop-filter: blur(16px); } -.result-header { - display: flex; - align-items: center; - justify-content: space-between; - gap: 12px; -} - -.name { - font-size: 20px; - font-weight: 600; - color: #fdf0da; - flex: 1; +.result-line { + font-size: 15px; + color: rgba(255, 244, 227, 0.9); + line-height: 1.8; + word-break: break-all; } .collect-button { @@ -123,12 +130,7 @@ background: rgba(255, 255, 255, 0.12); color: #fbe6ce; border: 1px solid rgba(255, 255, 255, 0.18); -} - -.meaning { - font-size: 14px; - color: rgba(255, 244, 227, 0.78); - line-height: 1.8; + align-self: flex-end; } .back-button { diff --git a/NamingAssistant/store/namingStore.js b/NamingAssistant/store/namingStore.js index 66b094c..c7c8052 100644 --- a/NamingAssistant/store/namingStore.js +++ b/NamingAssistant/store/namingStore.js @@ -20,6 +20,11 @@ function createDefaultForm() { const state = { form: createDefaultForm(), results: [], + analysis: { + matchSummary: "", + pillars: [], + elementDistribution: [] + }, favorites: [], quota: { date: "", @@ -97,12 +102,35 @@ function resetForm() { state.form = createDefaultForm(); } -function setResults(results) { - state.results = Array.isArray(results) ? results : []; +function setResults(payload) { + if (Array.isArray(payload)) { + state.results = payload; + state.analysis = { + matchSummary: "", + pillars: [], + elementDistribution: [] + }; + return; + } + + const safePayload = payload || {}; + const nextResults = Array.isArray(safePayload.results) ? safePayload.results : []; + const analysis = safePayload.analysis || {}; + state.results = nextResults; + state.analysis = { + matchSummary: analysis.matchSummary || analysis.MatchSummary || "", + pillars: analysis.pillars || analysis.Pillars || [], + elementDistribution: analysis.elementDistribution || analysis.ElementDistribution || [] + }; } function clearResults() { state.results = []; + state.analysis = { + matchSummary: "", + pillars: [], + elementDistribution: [] + }; } function loadFavorites() {