feat: 商业核算+个人库存+认证优化
All checks were successful
PR Preview / teardown-preview (pull_request) Has been skipped
Test / unit-test (push) Successful in 5s
Test / build-check (push) Successful in 4s
PR Preview / test (pull_request) Successful in 6s
PR Preview / deploy-preview (pull_request) Successful in 16s
Test / e2e-test (push) Successful in 49s
All checks were successful
PR Preview / teardown-preview (pull_request) Has been skipped
Test / unit-test (push) Successful in 5s
Test / build-check (push) Successful in 4s
PR Preview / test (pull_request) Successful in 6s
PR Preview / deploy-preview (pull_request) Successful in 16s
Test / e2e-test (push) Successful in 49s
商业核算: - 加标语和示意项目(芳香调理),所有人可体验 - 管理员开放(不需认证) - 新增项目需认证,未认证提示 个人库存: - 搜索直接添加(回车或点击) - 4个套装快捷按钮(家庭医生/居家呵护3988/芳香调理/全精油) - 精油库默认折叠 - 配方匹配排除椰子油,降低门槛(至少1种匹配) 商业认证: - 简化为商户名+证明图片 - 通过后内容仍显示(和二维码页面一致) - 审核中内容不可修改 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -1,12 +1,29 @@
|
||||
<template>
|
||||
<div class="projects-page">
|
||||
<!-- Header -->
|
||||
<div class="commercial-header">
|
||||
<div class="commercial-icon">💼</div>
|
||||
<div class="commercial-desc">商业用户专属功能,包含项目核算、成本分析等工具</div>
|
||||
</div>
|
||||
|
||||
<!-- Project List -->
|
||||
<div class="toolbar">
|
||||
<h3 class="page-title">💼 商业核算</h3>
|
||||
<button v-if="auth.isBusiness" class="btn-primary" @click="createProject">+ 新建项目</button>
|
||||
<h3 class="page-title">📊 服务项目成本利润分析</h3>
|
||||
<button class="btn-primary btn-sm" @click="handleCreateProject">+ 新增项目</button>
|
||||
</div>
|
||||
|
||||
<div v-if="!selectedProject" class="project-list">
|
||||
<!-- Demo project (always visible) -->
|
||||
<div class="project-card demo-card" @click="openDemo">
|
||||
<div class="proj-header">
|
||||
<span class="proj-name">芳香调理(示意)</span>
|
||||
<span class="proj-badge">体验</span>
|
||||
</div>
|
||||
<div class="proj-summary">
|
||||
<span>点击查看示意项目</span>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Real projects -->
|
||||
<div
|
||||
v-for="p in projects"
|
||||
:key="p._id || p.id"
|
||||
@@ -27,7 +44,6 @@
|
||||
<button class="btn-icon-sm" @click="deleteProject(p)" title="删除">🗑️</button>
|
||||
</div>
|
||||
</div>
|
||||
<div v-if="projects.length === 0" class="empty-hint">暂无项目,点击上方创建</div>
|
||||
</div>
|
||||
|
||||
<!-- Project Detail -->
|
||||
@@ -244,6 +260,34 @@ async function loadProjects() {
|
||||
}
|
||||
}
|
||||
|
||||
function handleCreateProject() {
|
||||
if (!auth.isBusiness && !auth.isAdmin) {
|
||||
showCertPrompt()
|
||||
return
|
||||
}
|
||||
createProject()
|
||||
}
|
||||
|
||||
// Demo project data (local only, per user)
|
||||
const demoProject = ref(null)
|
||||
function openDemo() {
|
||||
demoProject.value = {
|
||||
_demo: true,
|
||||
name: '芳香调理(示意)',
|
||||
ingredients: [
|
||||
{ oil: '芳香调理', drops: 12 },
|
||||
{ oil: '椰子油', drops: 186 },
|
||||
],
|
||||
packaging_cost: 5,
|
||||
labor_cost: 30,
|
||||
other_cost: 10,
|
||||
selling_price: 198,
|
||||
quantity: 1,
|
||||
notes: '这是一个示意项目,您可以修改数字体验功能',
|
||||
}
|
||||
selectedProject.value = demoProject.value
|
||||
}
|
||||
|
||||
async function createProject() {
|
||||
const name = await showPrompt('项目名称:', '新项目')
|
||||
if (!name) return
|
||||
@@ -273,7 +317,7 @@ async function createProject() {
|
||||
}
|
||||
|
||||
function selectProject(p) {
|
||||
if (!auth.isBusiness) {
|
||||
if (!auth.isBusiness && !auth.isAdmin) {
|
||||
showCertPrompt()
|
||||
return
|
||||
}
|
||||
@@ -383,6 +427,16 @@ function formatDate(d) {
|
||||
padding: 0 12px 24px;
|
||||
}
|
||||
|
||||
.commercial-header {
|
||||
text-align: center; padding: 24px 16px 16px; margin-bottom: 16px;
|
||||
}
|
||||
.commercial-icon { font-size: 48px; margin-bottom: 8px; }
|
||||
.commercial-desc { font-size: 14px; color: var(--text-light, #999); }
|
||||
.demo-card { border-style: dashed !important; opacity: 0.85; }
|
||||
.proj-badge {
|
||||
font-size: 10px; background: #fff3e0; color: #e65100; padding: 2px 8px; border-radius: 8px;
|
||||
}
|
||||
|
||||
.toolbar {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
||||
Reference in New Issue
Block a user