feat: C端污染源识别与专业端首页联动

- 专业首页"预测"区加"污染源识别·快速溯源"入口卡 → /source
- 落地页"专业看板"按钮:有token直达/home,否则去登录
- 污染源识别页顶栏加"进入专业系统 →"链接 → /home
- 两端共用同一套账号(手机号注册的用户也能进专业系统)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
zty 2026-06-12 10:14:12 +08:00
parent 2e87e4c0c2
commit 956954cf09
3 changed files with 4 additions and 2 deletions

View File

@ -4,7 +4,7 @@
<a-divider /> <a-divider />
<div class="group-title">预测</div> <div class="group-title">预测</div>
<a-row :gutter="16"> <a-row :gutter="16">
<a-col :span="8" v-for="c in predictCards" :key="c.title"> <a-col :span="6" v-for="c in predictCards" :key="c.title">
<a-card hoverable class="entry" @click="c.action"> <a-card hoverable class="entry" @click="c.action">
<div class="entry-title">{{ c.title }} </div> <div class="entry-title">{{ c.title }} </div>
<div class="entry-desc">{{ c.desc }}</div> <div class="entry-desc">{{ c.desc }}</div>
@ -43,6 +43,7 @@ const predictCards = [
{ title: '新建项目预测', desc: '从头配置项目、空间、材料进行预测', action: () => (createOpen.value = true) }, { title: '新建项目预测', desc: '从头配置项目、空间、材料进行预测', action: () => (createOpen.value = true) },
{ title: '快速导入项目', desc: '根据模板或文件导入后调整配置预测', action: () => router.push({ name: 'template' }) }, { title: '快速导入项目', desc: '根据模板或文件导入后调整配置预测', action: () => router.push({ name: 'template' }) },
{ title: '继续配置预测', desc: '继续已保存、未提交的配置', action: () => router.push({ name: 'drafts' }) }, { title: '继续配置预测', desc: '继续已保存、未提交的配置', action: () => router.push({ name: 'drafts' }) },
{ title: '污染源识别 · 快速溯源', desc: '单空间快速预测,溯源主要污染材料', action: () => router.push('/source') },
]; ];
const moreCards = [ const moreCards = [
{ title: '项目模板库', desc: '查看管理公共、自建的项目模板', action: () => router.push({ name: 'template' }) }, { title: '项目模板库', desc: '查看管理公共、自建的项目模板', action: () => router.push({ name: 'template' }) },

View File

@ -198,7 +198,7 @@ onBeforeUnmount(stop);
function scrollTop() { window.scrollTo({ top: 0, behavior: 'smooth' }); } function scrollTop() { window.scrollTo({ top: 0, behavior: 'smooth' }); }
function scrollTo(id: string) { document.getElementById(id)?.scrollIntoView({ behavior: 'smooth' }); } function scrollTo(id: string) { document.getElementById(id)?.scrollIntoView({ behavior: 'smooth' }); }
function goPro() { router.push('/login'); } function goPro() { router.push(localStorage.getItem('token') ? '/home' : '/login'); }
// //
const authOpen = ref(false); const authOpen = ref(false);

View File

@ -5,6 +5,7 @@
<div class="s-logo"><SourceIcon /></div> <div class="s-logo"><SourceIcon /></div>
<div class="s-tt">污染源识别<small>SOURCE TRACING · 甲醛</small></div> <div class="s-tt">污染源识别<small>SOURCE TRACING · 甲醛</small></div>
<div class="s-spacer" /> <div class="s-spacer" />
<a class="s-back" @click="router.push('/home')" style="margin-right:12px">进入专业系统 </a>
<span class="muted">{{ auth.org?.name || '访客' }}</span> <span class="muted">{{ auth.org?.name || '访客' }}</span>
</div> </div>