feat(design): 全站配图重新设计为极简现代中式纯视觉艺术,彻底移除文字介绍与密集说明
@@ -1,66 +1,62 @@
|
||||
<svg width="600" height="380" viewBox="0 0 600 380" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<defs>
|
||||
<linearGradient id="bgGrad" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
|
||||
<linearGradient id="artBgGrad" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#FFFFFF"/>
|
||||
<stop offset="100%" stop-color="#F8FAFC"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="primaryGrad" x1="0%" y1="0%" x2="100%" y2="0%">
|
||||
<linearGradient id="artBlue" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#2563EB"/>
|
||||
<stop offset="100%" stop-color="#3B82F6"/>
|
||||
<stop offset="100%" stop-color="#1D4ED8"/>
|
||||
</linearGradient>
|
||||
<pattern id="latticeGrid" width="24" height="24" patternUnits="userSpaceOnUse">
|
||||
<path d="M 24 0 L 0 0 0 24" fill="none" stroke="#E2E8F0" stroke-width="0.75" stroke-dasharray="2,2"/>
|
||||
<linearGradient id="artCyan" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#06B6D4"/>
|
||||
<stop offset="100%" stop-color="#0EA5E9"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="artPurple" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#7C3AED"/>
|
||||
<stop offset="100%" stop-color="#6366F1"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="artGlass" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#FFFFFF" stop-opacity="0.85"/>
|
||||
<stop offset="100%" stop-color="#F1F5F9" stop-opacity="0.6"/>
|
||||
</linearGradient>
|
||||
<pattern id="artLattice" width="24" height="24" patternUnits="userSpaceOnUse">
|
||||
<path d="M 24 0 L 0 0 0 24" fill="none" stroke="#E2E8F0" stroke-width="0.75" stroke-dasharray="3,3"/>
|
||||
</pattern>
|
||||
<filter id="artShadow" x="-10%" y="-10%" width="120%" height="120%">
|
||||
<feDropShadow dx="0" dy="6" stdDeviation="10" flood-color="#0F172A" flood-opacity="0.06"/>
|
||||
</filter>
|
||||
<filter id="artGlow" x="-20%" y="-20%" width="140%" height="140%">
|
||||
<feGaussianBlur stdDeviation="10" result="blur"/>
|
||||
<feComposite in="SourceGraphic" in2="blur" operator="over"/>
|
||||
</filter>
|
||||
|
||||
</defs>
|
||||
|
||||
<!-- 背景卡片与淡雅窗棂网格 -->
|
||||
<rect width="600" height="380" rx="8" fill="url(#bgGrad)"/>
|
||||
<rect width="600" height="380" rx="8" fill="url(#latticeGrid)" opacity="0.6"/>
|
||||
<rect width="600" height="380" rx="8" fill="url(#artBgGrad)"/>
|
||||
<rect width="600" height="380" rx="8" fill="url(#artLattice)" opacity="0.6"/>
|
||||
<rect x="1" y="1" width="598" height="378" rx="7" fill="none" stroke="#E2E8F0" stroke-width="1.5"/>
|
||||
|
||||
<!-- 顶部控制台标题栏 -->
|
||||
<rect x="20" y="20" width="560" height="36" rx="4" fill="#FFFFFF" stroke="#E2E8F0"/>
|
||||
<circle cx="36" cy="38" r="4.5" fill="#EF4444"/>
|
||||
<circle cx="50" cy="38" r="4.5" fill="#F59E0B"/>
|
||||
<circle cx="64" cy="38" r="4.5" fill="#10B981"/>
|
||||
<text x="84" y="42" fill="#334155" font-family="'Inter', 'Noto Sans SC', sans-serif" font-size="12" font-weight="600">AI Engineering · Private RAG & Knowledge Governance</text>
|
||||
|
||||
<!-- 中式印章 -->
|
||||
<rect x="495" y="26" width="72" height="22" rx="2" fill="#FEF2F2" stroke="#EF4444" stroke-width="1"/>
|
||||
<text x="502" y="42" fill="#DC2626" font-family="'Noto Serif SC', 'SimSun', serif" font-size="11" font-weight="700">私域智能体</text>
|
||||
|
||||
<!-- 核心图解视窗区域 -->
|
||||
|
||||
<rect x="30" y="75" width="260" height="230" rx="6" fill="#FFFFFF" stroke="#E2E8F0"/>
|
||||
<rect x="30" y="75" width="260" height="32" rx="6 6 0 0" fill="#F8FAFC"/>
|
||||
<text x="44" y="96" fill="#0F172A" font-family="'Inter', 'Noto Sans SC', sans-serif" font-size="12" font-weight="700">RAG 双路检索与溯源流水线</text>
|
||||
<rect x="44" y="120" width="232" height="36" rx="4" fill="#EFF6FF" stroke="#BFDBFE"/>
|
||||
<text x="54" y="142" fill="#1E40AF" font-family="'Inter', sans-serif" font-size="11">密集向量检索 (Milvus) + BM25 稀疏全文</text>
|
||||
<rect x="44" y="166" width="232" height="36" rx="4" fill="#F8FAFC" stroke="#CBD5E1"/>
|
||||
<text x="54" y="188" fill="#334155" font-family="'Inter', sans-serif" font-size="11">跨编码器 Rerank 重排序引擎 (Top-5)</text>
|
||||
<rect x="44" y="212" width="232" height="36" rx="4" fill="#F8FAFC" stroke="#CBD5E1"/>
|
||||
<text x="54" y="234" fill="#334155" font-family="'Inter', sans-serif" font-size="11">原文章节双向锚定 (章节溯源防幻觉)</text>
|
||||
<rect x="44" y="258" width="232" height="32" rx="4" fill="#ECFDF5" stroke="#A7F3D0"/>
|
||||
<text x="54" y="278" fill="#065F46" font-family="'Inter', sans-serif" font-size="11">检索命中准确率: 95.8% · 响应 < 1.2s</text>
|
||||
|
||||
<rect x="310" y="75" width="260" height="230" rx="6" fill="#FFFFFF" stroke="#E2E8F0"/>
|
||||
<rect x="310" y="75" width="260" height="32" rx="6 6 0 0" fill="#F8FAFC"/>
|
||||
<text x="324" y="96" fill="#0F172A" font-family="'Inter', 'Noto Sans SC', sans-serif" font-size="12" font-weight="700">纯内网物理隔离安全沙箱</text>
|
||||
<rect x="324" y="120" width="232" height="48" rx="4" fill="#FEF2F2" stroke="#FECACA"/>
|
||||
<text x="334" y="142" fill="#991B1B" font-family="'Inter', sans-serif" font-size="11" font-weight="600">物理隔离隔离域 · 零外网数据外泄</text>
|
||||
<text x="334" y="158" fill="#B91C1C" font-family="'Inter', sans-serif" font-size="10">私有算力服务器量化部署 · 内网专网运行</text>
|
||||
<rect x="324" y="178" width="232" height="42" rx="4" fill="#F8FAFC" stroke="#E2E8F0"/>
|
||||
<text x="334" y="196" fill="#334155" font-family="'Inter', sans-serif" font-size="11" font-weight="600">企业角色级敏感数据脱敏 (RBAC)</text>
|
||||
<text x="334" y="210" fill="#64748B" font-family="'Inter', sans-serif" font-size="10">动态字段脱敏 · 问答审计日志永久加密归档</text>
|
||||
<rect x="324" y="230" width="232" height="60" rx="4" fill="#F1F5F9" stroke="#E2E8F0"/>
|
||||
<text x="334" y="254" fill="#475569" font-family="'Noto Serif SC', 'SimSun', serif" font-size="11">工程交付:提供完整微调脚本、</text>
|
||||
<text x="334" y="272" fill="#475569" font-family="'Noto Serif SC', 'SimSun', serif" font-size="11">向量分块策略与内网环境 Docker 镜像包</text>
|
||||
<g transform="translate(554, 20)">
|
||||
<rect width="24" height="24" rx="4" fill="#FEF2F2" stroke="#DC2626" stroke-width="1.2"/>
|
||||
<rect x="2" y="2" width="20" height="20" rx="2" fill="none" stroke="#DC2626" stroke-width="0.5" stroke-opacity="0.5"/>
|
||||
<text x="12" y="17" fill="#DC2626" font-family="'Noto Serif SC', 'SimSun', serif" font-size="12" font-weight="700" text-anchor="middle">智</text>
|
||||
</g>
|
||||
|
||||
|
||||
<!-- 底部文章标签条 -->
|
||||
<rect x="20" y="324" width="560" height="36" rx="4" fill="#F1F5F9" stroke="#E2E8F0"/>
|
||||
<rect x="32" y="332" width="76" height="20" rx="2" fill="#EFF6FF" stroke="#BFDBFE"/>
|
||||
<text x="40" y="346" fill="#1D4ED8" font-family="'Inter', 'Noto Sans SC', sans-serif" font-size="11" font-weight="600">技术洞察</text>
|
||||
<text x="120" y="347" fill="#64748B" font-family="'Noto Serif SC', 'SimSun', serif" font-size="12">企业私域AI智能体落地:RAG本地知识库与安全隔离工程</text>
|
||||
<text x="480" y="346" fill="#2563EB" font-family="'Inter', sans-serif" font-size="11" font-weight="600">NAHAICHUAN TECH</text>
|
||||
<g transform="translate(300, 190)">
|
||||
|
||||
<circle cx="0" cy="0" r="100" fill="#FAF5FF" opacity="0.7"/>
|
||||
<ellipse cx="0" cy="0" rx="150" ry="60" fill="none" stroke="#E2E8F0" stroke-width="1.2" stroke-dasharray="5,4" transform="rotate(-30)"/>
|
||||
<ellipse cx="0" cy="0" rx="150" ry="60" fill="none" stroke="#E2E8F0" stroke-width="1.2" stroke-dasharray="5,4" transform="rotate(30)"/>
|
||||
<polygon points="0,-50 45,-20 45,25 0,55 -45,25 -45,-20" fill="none" stroke="#93C5FD" stroke-width="1.2"/>
|
||||
<circle cx="0" cy="0" r="24" fill="url(#artPurple)" filter="url(#artShadow)"/>
|
||||
<circle cx="0" cy="0" r="15" fill="url(#artBlue)"/>
|
||||
<circle cx="0" cy="0" r="6" fill="#FFFFFF"/>
|
||||
<circle cx="-130" cy="0" r="5" fill="#7C3AED" transform="rotate(-30)"/>
|
||||
<circle cx="130" cy="0" r="5" fill="#06B6D4" transform="rotate(30)"/>
|
||||
|
||||
</g>
|
||||
</svg>
|
||||
|
之前 宽度: | 高度: | 大小: 5.1 KiB 之后 宽度: | 高度: | 大小: 3.2 KiB |
@@ -1,65 +1,66 @@
|
||||
<svg width="600" height="380" viewBox="0 0 600 380" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<defs>
|
||||
<linearGradient id="bgGrad" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
|
||||
<linearGradient id="artBgGrad" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#FFFFFF"/>
|
||||
<stop offset="100%" stop-color="#F8FAFC"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="primaryGrad" x1="0%" y1="0%" x2="100%" y2="0%">
|
||||
<linearGradient id="artBlue" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#2563EB"/>
|
||||
<stop offset="100%" stop-color="#3B82F6"/>
|
||||
<stop offset="100%" stop-color="#1D4ED8"/>
|
||||
</linearGradient>
|
||||
<pattern id="latticeGrid" width="24" height="24" patternUnits="userSpaceOnUse">
|
||||
<path d="M 24 0 L 0 0 0 24" fill="none" stroke="#E2E8F0" stroke-width="0.75" stroke-dasharray="2,2"/>
|
||||
<linearGradient id="artCyan" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#06B6D4"/>
|
||||
<stop offset="100%" stop-color="#0EA5E9"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="artPurple" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#7C3AED"/>
|
||||
<stop offset="100%" stop-color="#6366F1"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="artGlass" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#FFFFFF" stop-opacity="0.85"/>
|
||||
<stop offset="100%" stop-color="#F1F5F9" stop-opacity="0.6"/>
|
||||
</linearGradient>
|
||||
<pattern id="artLattice" width="24" height="24" patternUnits="userSpaceOnUse">
|
||||
<path d="M 24 0 L 0 0 0 24" fill="none" stroke="#E2E8F0" stroke-width="0.75" stroke-dasharray="3,3"/>
|
||||
</pattern>
|
||||
<filter id="artShadow" x="-10%" y="-10%" width="120%" height="120%">
|
||||
<feDropShadow dx="0" dy="6" stdDeviation="10" flood-color="#0F172A" flood-opacity="0.06"/>
|
||||
</filter>
|
||||
<filter id="artGlow" x="-20%" y="-20%" width="140%" height="140%">
|
||||
<feGaussianBlur stdDeviation="10" result="blur"/>
|
||||
<feComposite in="SourceGraphic" in2="blur" operator="over"/>
|
||||
</filter>
|
||||
|
||||
</defs>
|
||||
|
||||
<!-- 背景卡片与淡雅窗棂网格 -->
|
||||
<rect width="600" height="380" rx="8" fill="url(#bgGrad)"/>
|
||||
<rect width="600" height="380" rx="8" fill="url(#latticeGrid)" opacity="0.6"/>
|
||||
<rect width="600" height="380" rx="8" fill="url(#artBgGrad)"/>
|
||||
<rect width="600" height="380" rx="8" fill="url(#artLattice)" opacity="0.6"/>
|
||||
<rect x="1" y="1" width="598" height="378" rx="7" fill="none" stroke="#E2E8F0" stroke-width="1.5"/>
|
||||
|
||||
<!-- 顶部控制台标题栏 -->
|
||||
<rect x="20" y="20" width="560" height="36" rx="4" fill="#FFFFFF" stroke="#E2E8F0"/>
|
||||
<circle cx="36" cy="38" r="4.5" fill="#EF4444"/>
|
||||
<circle cx="50" cy="38" r="4.5" fill="#F59E0B"/>
|
||||
<circle cx="64" cy="38" r="4.5" fill="#10B981"/>
|
||||
<text x="84" y="42" fill="#334155" font-family="'Inter', 'Noto Sans SC', sans-serif" font-size="12" font-weight="600">Mobile & IoT · Cross-Platform Rendering & Bluetooth BLE</text>
|
||||
|
||||
<!-- 中式印章 -->
|
||||
<rect x="495" y="26" width="72" height="22" rx="2" fill="#FEF2F2" stroke="#EF4444" stroke-width="1"/>
|
||||
<text x="502" y="42" fill="#DC2626" font-family="'Noto Serif SC', 'SimSun', serif" font-size="11" font-weight="700">跨端开发</text>
|
||||
|
||||
<!-- 核心图解视窗区域 -->
|
||||
|
||||
<rect x="30" y="75" width="260" height="230" rx="6" fill="#FFFFFF" stroke="#E2E8F0"/>
|
||||
<rect x="30" y="75" width="260" height="32" rx="6 6 0 0" fill="#F8FAFC"/>
|
||||
<text x="44" y="96" fill="#0F172A" font-family="'Inter', 'Noto Sans SC', sans-serif" font-size="12" font-weight="700">架构选型决策矩阵</text>
|
||||
<rect x="44" y="120" width="232" height="50" rx="4" fill="#EFF6FF" stroke="#BFDBFE"/>
|
||||
<text x="54" y="142" fill="#1E40AF" font-family="'Inter', sans-serif" font-size="11" font-weight="600">Flutter 自绘引擎 (iOS / Android)</text>
|
||||
<text x="54" y="158" fill="#2563EB" font-family="'Inter', sans-serif" font-size="10">Skia/Impeller 底层渲染 · 稳定 60fps 高帧率</text>
|
||||
<rect x="44" y="178" width="232" height="50" rx="4" fill="#F8FAFC" stroke="#CBD5E1"/>
|
||||
<text x="54" y="200" fill="#334155" font-family="'Inter', sans-serif" font-size="11" font-weight="600">Uni-app 全生态 (微信 / 支付宝 / 抖音)</text>
|
||||
<text x="54" y="216" fill="#64748B" font-family="'Inter', sans-serif" font-size="10">轻量跨小程序运行环境 · 微信生态无缝裂变</text>
|
||||
<rect x="44" y="236" width="232" height="54" rx="4" fill="#ECFDF5" stroke="#A7F3D0"/>
|
||||
<text x="54" y="258" fill="#065F46" font-family="'Inter', sans-serif" font-size="11">首屏启动性能冷启动优化</text>
|
||||
<text x="54" y="274" fill="#065F46" font-family="'Inter', sans-serif" font-size="10">分包预加载 + 异步骨架屏,启动压缩至 680ms</text>
|
||||
|
||||
<rect x="310" y="75" width="260" height="230" rx="6" fill="#FFFFFF" stroke="#E2E8F0"/>
|
||||
<rect x="310" y="75" width="260" height="32" rx="6 6 0 0" fill="#F8FAFC"/>
|
||||
<text x="324" y="96" fill="#0F172A" font-family="'Inter', 'Noto Sans SC', sans-serif" font-size="12" font-weight="700">低功耗蓝牙 (BLE) 工业外设直连</text>
|
||||
<text x="324" y="125" fill="#64748B" font-family="'Inter', sans-serif" font-size="10">状态机自动重连与心跳保活机制</text>
|
||||
<text x="324" y="148" fill="#0F172A" font-family="'Inter', sans-serif" font-size="12" font-weight="600">扫描 -> GATT握手 -> 特征订阅 -> 丢包重传</text>
|
||||
<text x="324" y="185" fill="#64748B" font-family="'Inter', sans-serif" font-size="10">原生平台通道双向通信 (MethodChannel)</text>
|
||||
<text x="324" y="208" fill="#0F172A" font-family="'Inter', sans-serif" font-size="12" font-weight="600">热敏打印机 / 工业手持扫码枪指令秒级解析</text>
|
||||
<rect x="324" y="235" width="232" height="55" rx="4" fill="#F8FAFC" stroke="#E2E8F0"/>
|
||||
<text x="334" y="258" fill="#475569" font-family="'Noto Serif SC', 'SimSun', serif" font-size="11">内存优化实录:大图纹理缓存精细回收,</text>
|
||||
<text x="334" y="275" fill="#475569" font-family="'Noto Serif SC', 'SimSun', serif" font-size="11">连续操作 8 小时无卡顿与 OOM 闪退</text>
|
||||
<g transform="translate(554, 20)">
|
||||
<rect width="24" height="24" rx="4" fill="#FEF2F2" stroke="#DC2626" stroke-width="1.2"/>
|
||||
<rect x="2" y="2" width="20" height="20" rx="2" fill="none" stroke="#DC2626" stroke-width="0.5" stroke-opacity="0.5"/>
|
||||
<text x="12" y="17" fill="#DC2626" font-family="'Noto Serif SC', 'SimSun', serif" font-size="12" font-weight="700" text-anchor="middle">端</text>
|
||||
</g>
|
||||
|
||||
|
||||
<!-- 底部文章标签条 -->
|
||||
<rect x="20" y="324" width="560" height="36" rx="4" fill="#F1F5F9" stroke="#E2E8F0"/>
|
||||
<rect x="32" y="332" width="76" height="20" rx="2" fill="#EFF6FF" stroke="#BFDBFE"/>
|
||||
<text x="40" y="346" fill="#1D4ED8" font-family="'Inter', 'Noto Sans SC', sans-serif" font-size="11" font-weight="600">技术洞察</text>
|
||||
<text x="120" y="347" fill="#64748B" font-family="'Noto Serif SC', 'SimSun', serif" font-size="12">跨端移动开发工程化实践:Flutter与Uni-app选型与调优</text>
|
||||
<text x="480" y="346" fill="#2563EB" font-family="'Inter', sans-serif" font-size="11" font-weight="600">NAHAICHUAN TECH</text>
|
||||
<g transform="translate(300, 190)">
|
||||
|
||||
<ellipse cx="0" cy="60" rx="180" ry="65" fill="none" stroke="#E2E8F0" stroke-width="1.2" stroke-dasharray="4,4"/>
|
||||
<g transform="translate(-65, -10)" filter="url(#artShadow)">
|
||||
<rect x="-45" y="-65" width="90" height="130" rx="6" fill="url(#artGlass)" stroke="#CBD5E1" stroke-width="1.2"/>
|
||||
<rect x="-35" y="-55" width="70" height="95" rx="3" fill="#FFFFFF" stroke="#E2E8F0"/>
|
||||
<circle cx="0" cy="52" r="3" fill="#94A3B8"/>
|
||||
</g>
|
||||
<g transform="translate(65, 10)" filter="url(#artShadow)">
|
||||
<rect x="-32" y="-70" width="64" height="140" rx="10" fill="#FFFFFF" stroke="#2563EB" stroke-width="1.5"/>
|
||||
<rect x="-26" y="-55" width="52" height="110" rx="5" fill="url(#artBgGrad)"/>
|
||||
<circle cx="0" cy="-20" r="14" fill="url(#artPurple)"/>
|
||||
</g>
|
||||
<path d="M -20 -15 C 10 -40 30 -30 65 -15" fill="none" stroke="url(#artCyan)" stroke-width="2" stroke-linecap="round"/>
|
||||
<circle cx="20" cy="-25" r="4" fill="#06B6D4" filter="url(#artGlow)"/>
|
||||
|
||||
</g>
|
||||
</svg>
|
||||
|
之前 宽度: | 高度: | 大小: 5.1 KiB 之后 宽度: | 高度: | 大小: 3.4 KiB |
@@ -1,65 +1,70 @@
|
||||
<svg width="600" height="380" viewBox="0 0 600 380" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<defs>
|
||||
<linearGradient id="bgGrad" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
|
||||
<linearGradient id="artBgGrad" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#FFFFFF"/>
|
||||
<stop offset="100%" stop-color="#F8FAFC"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="primaryGrad" x1="0%" y1="0%" x2="100%" y2="0%">
|
||||
<linearGradient id="artBlue" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#2563EB"/>
|
||||
<stop offset="100%" stop-color="#3B82F6"/>
|
||||
<stop offset="100%" stop-color="#1D4ED8"/>
|
||||
</linearGradient>
|
||||
<pattern id="latticeGrid" width="24" height="24" patternUnits="userSpaceOnUse">
|
||||
<path d="M 24 0 L 0 0 0 24" fill="none" stroke="#E2E8F0" stroke-width="0.75" stroke-dasharray="2,2"/>
|
||||
<linearGradient id="artCyan" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#06B6D4"/>
|
||||
<stop offset="100%" stop-color="#0EA5E9"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="artPurple" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#7C3AED"/>
|
||||
<stop offset="100%" stop-color="#6366F1"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="artGlass" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#FFFFFF" stop-opacity="0.85"/>
|
||||
<stop offset="100%" stop-color="#F1F5F9" stop-opacity="0.6"/>
|
||||
</linearGradient>
|
||||
<pattern id="artLattice" width="24" height="24" patternUnits="userSpaceOnUse">
|
||||
<path d="M 24 0 L 0 0 0 24" fill="none" stroke="#E2E8F0" stroke-width="0.75" stroke-dasharray="3,3"/>
|
||||
</pattern>
|
||||
<filter id="artShadow" x="-10%" y="-10%" width="120%" height="120%">
|
||||
<feDropShadow dx="0" dy="6" stdDeviation="10" flood-color="#0F172A" flood-opacity="0.06"/>
|
||||
</filter>
|
||||
<filter id="artGlow" x="-20%" y="-20%" width="140%" height="140%">
|
||||
<feGaussianBlur stdDeviation="10" result="blur"/>
|
||||
<feComposite in="SourceGraphic" in2="blur" operator="over"/>
|
||||
</filter>
|
||||
|
||||
</defs>
|
||||
|
||||
<!-- 背景卡片与淡雅窗棂网格 -->
|
||||
<rect width="600" height="380" rx="8" fill="url(#bgGrad)"/>
|
||||
<rect width="600" height="380" rx="8" fill="url(#latticeGrid)" opacity="0.6"/>
|
||||
<rect width="600" height="380" rx="8" fill="url(#artBgGrad)"/>
|
||||
<rect width="600" height="380" rx="8" fill="url(#artLattice)" opacity="0.6"/>
|
||||
<rect x="1" y="1" width="598" height="378" rx="7" fill="none" stroke="#E2E8F0" stroke-width="1.5"/>
|
||||
|
||||
<!-- 顶部控制台标题栏 -->
|
||||
<rect x="20" y="20" width="560" height="36" rx="4" fill="#FFFFFF" stroke="#E2E8F0"/>
|
||||
<circle cx="36" cy="38" r="4.5" fill="#EF4444"/>
|
||||
<circle cx="50" cy="38" r="4.5" fill="#F59E0B"/>
|
||||
<circle cx="64" cy="38" r="4.5" fill="#10B981"/>
|
||||
<text x="84" y="42" fill="#334155" font-family="'Inter', 'Noto Sans SC', sans-serif" font-size="12" font-weight="600">Enterprise Systems · Multi-Level BOM & Financial Cohesion</text>
|
||||
|
||||
<!-- 中式印章 -->
|
||||
<rect x="495" y="26" width="72" height="22" rx="2" fill="#FEF2F2" stroke="#EF4444" stroke-width="1"/>
|
||||
<text x="502" y="42" fill="#DC2626" font-family="'Noto Serif SC', 'SimSun', serif" font-size="11" font-weight="700">进销存架构</text>
|
||||
|
||||
<!-- 核心图解视窗区域 -->
|
||||
|
||||
<rect x="30" y="75" width="260" height="230" rx="6" fill="#FFFFFF" stroke="#E2E8F0"/>
|
||||
<rect x="30" y="75" width="260" height="32" rx="6 6 0 0" fill="#F8FAFC"/>
|
||||
<text x="44" y="96" fill="#0F172A" font-family="'Inter', 'Noto Sans SC', sans-serif" font-size="12" font-weight="700">多级动态 BOM 树状递归模型</text>
|
||||
<rect x="44" y="120" width="232" height="34" rx="4" fill="#EFF6FF" stroke="#BFDBFE"/>
|
||||
<text x="54" y="141" fill="#1E40AF" font-family="'Inter', sans-serif" font-size="11">成品装配节点 · 动态工时与损耗率核算</text>
|
||||
<rect x="44" y="162" width="232" height="34" rx="4" fill="#F8FAFC" stroke="#CBD5E1"/>
|
||||
<text x="54" y="183" fill="#334155" font-family="'Inter', sans-serif" font-size="11">半成品自递归拆解 · 齐套率缺料实时预警</text>
|
||||
<rect x="44" y="204" width="232" height="34" rx="4" fill="#F8FAFC" stroke="#CBD5E1"/>
|
||||
<text x="54" y="225" fill="#334155" font-family="'Inter', sans-serif" font-size="11">原料批次批号绑定 · 一物一码全流程溯源</text>
|
||||
<rect x="44" y="246" width="232" height="44" rx="4" fill="#ECFDF5" stroke="#A7F3D0"/>
|
||||
<text x="54" y="265" fill="#065F46" font-family="'Inter', sans-serif" font-size="11">35,000+ SKU 大数据量下</text>
|
||||
<text x="54" y="280" fill="#065F46" font-family="'Inter', sans-serif" font-size="10">生产需求计算 (MRP) 耗时稳定在 1.8 秒内</text>
|
||||
|
||||
<rect x="310" y="75" width="260" height="230" rx="6" fill="#FFFFFF" stroke="#E2E8F0"/>
|
||||
<rect x="310" y="75" width="260" height="32" rx="6 6 0 0" fill="#F8FAFC"/>
|
||||
<text x="324" y="96" fill="#0F172A" font-family="'Inter', 'Noto Sans SC', sans-serif" font-size="12" font-weight="700">业务与财务闭环核算引擎</text>
|
||||
<text x="324" y="125" fill="#64748B" font-family="'Inter', sans-serif" font-size="10">三单智能自动匹配 (Three-Way Match)</text>
|
||||
<text x="324" y="148" fill="#0F172A" font-family="'Inter', sans-serif" font-size="12" font-weight="600">采购订单 = 验收送货单 = 进项发票</text>
|
||||
<text x="324" y="185" fill="#64748B" font-family="'Inter', sans-serif" font-size="10">不停产动态快照盘点 (Dynamic Stocktake)</text>
|
||||
<text x="324" y="208" fill="#0F172A" font-family="'Inter', sans-serif" font-size="12" font-weight="600">基于快照时点 + 增量出入库流水对冲</text>
|
||||
<rect x="324" y="235" width="232" height="55" rx="4" fill="#F8FAFC" stroke="#E2E8F0"/>
|
||||
<text x="334" y="258" fill="#475569" font-family="'Noto Serif SC', 'SimSun', serif" font-size="11">消除信息孤岛:财务科目凭证自动生成,</text>
|
||||
<text x="334" y="275" fill="#475569" font-family="'Noto Serif SC', 'SimSun', serif" font-size="11">应收应付账期与信用额度实时联锁控制</text>
|
||||
<g transform="translate(554, 20)">
|
||||
<rect width="24" height="24" rx="4" fill="#FEF2F2" stroke="#DC2626" stroke-width="1.2"/>
|
||||
<rect x="2" y="2" width="20" height="20" rx="2" fill="none" stroke="#DC2626" stroke-width="0.5" stroke-opacity="0.5"/>
|
||||
<text x="12" y="17" fill="#DC2626" font-family="'Noto Serif SC', 'SimSun', serif" font-size="12" font-weight="700" text-anchor="middle">准</text>
|
||||
</g>
|
||||
|
||||
|
||||
<!-- 底部文章标签条 -->
|
||||
<rect x="20" y="324" width="560" height="36" rx="4" fill="#F1F5F9" stroke="#E2E8F0"/>
|
||||
<rect x="32" y="332" width="76" height="20" rx="2" fill="#EFF6FF" stroke="#BFDBFE"/>
|
||||
<text x="40" y="346" fill="#1D4ED8" font-family="'Inter', 'Noto Sans SC', sans-serif" font-size="11" font-weight="600">技术洞察</text>
|
||||
<text x="120" y="347" fill="#64748B" font-family="'Noto Serif SC', 'SimSun', serif" font-size="12">全链路进销存系统的业财一体化构建与动态BOM算法</text>
|
||||
<text x="480" y="346" fill="#2563EB" font-family="'Inter', sans-serif" font-size="11" font-weight="600">NAHAICHUAN TECH</text>
|
||||
<g transform="translate(300, 190)">
|
||||
|
||||
<ellipse cx="0" cy="55" rx="170" ry="60" fill="none" stroke="#E2E8F0" stroke-width="1.2" stroke-dasharray="4,4"/>
|
||||
<g transform="translate(-65, 15)" filter="url(#artShadow)">
|
||||
<polygon points="0,-25 30,-8 0,8 -30,-8" fill="url(#artGlass)" stroke="#CBD5E1" stroke-width="1.2"/>
|
||||
<polygon points="-30,-8 0,8 0,28 -30,12" fill="#E2E8F0"/>
|
||||
<polygon points="0,8 30,-8 30,12 0,28" fill="#F1F5F9"/>
|
||||
</g>
|
||||
<g transform="translate(65, 15)" filter="url(#artShadow)">
|
||||
<polygon points="0,-25 30,-8 0,8 -30,-8" fill="url(#artGlass)" stroke="#CBD5E1" stroke-width="1.2"/>
|
||||
<polygon points="-30,-8 0,8 0,28 -30,12" fill="#E2E8F0"/>
|
||||
<polygon points="0,8 30,-8 30,12 0,28" fill="#F1F5F9"/>
|
||||
</g>
|
||||
<g transform="translate(0, -30)" filter="url(#artShadow)">
|
||||
<circle cx="0" cy="0" r="32" fill="none" stroke="#2563EB" stroke-width="1.2" stroke-dasharray="4,4"/>
|
||||
<circle cx="0" cy="0" r="22" fill="url(#artBlue)"/>
|
||||
<circle cx="0" cy="0" r="8" fill="#FFFFFF"/>
|
||||
</g>
|
||||
<path d="M -65 5 Q 0 -15 65 5" fill="none" stroke="url(#artCyan)" stroke-width="2" stroke-linecap="round"/>
|
||||
|
||||
</g>
|
||||
</svg>
|
||||
|
之前 宽度: | 高度: | 大小: 5.0 KiB 之后 宽度: | 高度: | 大小: 3.5 KiB |
@@ -1,64 +1,70 @@
|
||||
<svg width="600" height="380" viewBox="0 0 600 380" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<defs>
|
||||
<linearGradient id="bgGrad" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
|
||||
<linearGradient id="artBgGrad" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#FFFFFF"/>
|
||||
<stop offset="100%" stop-color="#F8FAFC"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="primaryGrad" x1="0%" y1="0%" x2="100%" y2="0%">
|
||||
<linearGradient id="artBlue" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#2563EB"/>
|
||||
<stop offset="100%" stop-color="#3B82F6"/>
|
||||
<stop offset="100%" stop-color="#1D4ED8"/>
|
||||
</linearGradient>
|
||||
<pattern id="latticeGrid" width="24" height="24" patternUnits="userSpaceOnUse">
|
||||
<path d="M 24 0 L 0 0 0 24" fill="none" stroke="#E2E8F0" stroke-width="0.75" stroke-dasharray="2,2"/>
|
||||
<linearGradient id="artCyan" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#06B6D4"/>
|
||||
<stop offset="100%" stop-color="#0EA5E9"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="artPurple" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#7C3AED"/>
|
||||
<stop offset="100%" stop-color="#6366F1"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="artGlass" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#FFFFFF" stop-opacity="0.85"/>
|
||||
<stop offset="100%" stop-color="#F1F5F9" stop-opacity="0.6"/>
|
||||
</linearGradient>
|
||||
<pattern id="artLattice" width="24" height="24" patternUnits="userSpaceOnUse">
|
||||
<path d="M 24 0 L 0 0 0 24" fill="none" stroke="#E2E8F0" stroke-width="0.75" stroke-dasharray="3,3"/>
|
||||
</pattern>
|
||||
<filter id="artShadow" x="-10%" y="-10%" width="120%" height="120%">
|
||||
<feDropShadow dx="0" dy="6" stdDeviation="10" flood-color="#0F172A" flood-opacity="0.06"/>
|
||||
</filter>
|
||||
<filter id="artGlow" x="-20%" y="-20%" width="140%" height="140%">
|
||||
<feGaussianBlur stdDeviation="10" result="blur"/>
|
||||
<feComposite in="SourceGraphic" in2="blur" operator="over"/>
|
||||
</filter>
|
||||
|
||||
</defs>
|
||||
|
||||
<!-- 背景卡片与淡雅窗棂网格 -->
|
||||
<rect width="600" height="380" rx="8" fill="url(#bgGrad)"/>
|
||||
<rect width="600" height="380" rx="8" fill="url(#latticeGrid)" opacity="0.6"/>
|
||||
<rect width="600" height="380" rx="8" fill="url(#artBgGrad)"/>
|
||||
<rect width="600" height="380" rx="8" fill="url(#artLattice)" opacity="0.6"/>
|
||||
<rect x="1" y="1" width="598" height="378" rx="7" fill="none" stroke="#E2E8F0" stroke-width="1.5"/>
|
||||
|
||||
<!-- 顶部控制台标题栏 -->
|
||||
<rect x="20" y="20" width="560" height="36" rx="4" fill="#FFFFFF" stroke="#E2E8F0"/>
|
||||
<circle cx="36" cy="38" r="4.5" fill="#EF4444"/>
|
||||
<circle cx="50" cy="38" r="4.5" fill="#F59E0B"/>
|
||||
<circle cx="64" cy="38" r="4.5" fill="#10B981"/>
|
||||
<text x="84" y="42" fill="#334155" font-family="'Inter', 'Noto Sans SC', sans-serif" font-size="12" font-weight="600">Engineering Insight · High-Concurrency Mall Architecture</text>
|
||||
|
||||
<!-- 中式印章 -->
|
||||
<rect x="495" y="26" width="72" height="22" rx="2" fill="#FEF2F2" stroke="#EF4444" stroke-width="1"/>
|
||||
<text x="502" y="42" fill="#DC2626" font-family="'Noto Serif SC', 'SimSun', serif" font-size="11" font-weight="700">高可用中台</text>
|
||||
|
||||
<!-- 核心图解视窗区域 -->
|
||||
|
||||
<rect x="30" y="75" width="250" height="230" rx="6" fill="#FFFFFF" stroke="#E2E8F0"/>
|
||||
<rect x="30" y="75" width="250" height="32" rx="6 6 0 0" fill="#F8FAFC"/>
|
||||
<text x="44" y="96" fill="#0F172A" font-family="'Inter', 'Noto Sans SC', sans-serif" font-size="12" font-weight="700">分布式核心拓扑 (Distributed Mesh)</text>
|
||||
<rect x="44" y="120" width="222" height="36" rx="4" fill="#EFF6FF" stroke="#BFDBFE"/>
|
||||
<text x="54" y="142" fill="#1E40AF" font-family="'Inter', sans-serif" font-size="11">API 网关 · 限流熔断与路由分发</text>
|
||||
<rect x="44" y="166" width="222" height="36" rx="4" fill="#F8FAFC" stroke="#CBD5E1"/>
|
||||
<text x="54" y="188" fill="#334155" font-family="'Inter', sans-serif" font-size="11">交易订单集群 · RocketMQ 事务消息</text>
|
||||
<rect x="44" y="212" width="222" height="36" rx="4" fill="#F8FAFC" stroke="#CBD5E1"/>
|
||||
<text x="54" y="234" fill="#334155" font-family="'Inter', sans-serif" font-size="11">库存防超卖 · Redis RedLock + Lua 脚本</text>
|
||||
<rect x="44" y="258" width="222" height="32" rx="4" fill="#ECFDF5" stroke="#A7F3D0"/>
|
||||
<text x="54" y="278" fill="#065F46" font-family="'Inter', sans-serif" font-size="11">压测吞吐量: 8,500+ TPS · 延迟 < 35ms</text>
|
||||
|
||||
<rect x="300" y="75" width="270" height="230" rx="6" fill="#FFFFFF" stroke="#E2E8F0"/>
|
||||
<rect x="300" y="75" width="270" height="32" rx="6 6 0 0" fill="#F8FAFC"/>
|
||||
<text x="314" y="96" fill="#0F172A" font-family="'Inter', 'Noto Sans SC', sans-serif" font-size="12" font-weight="700">数据一致性与多租户分片</text>
|
||||
<path d="M 320 135 L 550 135 M 320 180 L 550 180 M 320 225 L 550 225" stroke="#F1F5F9" stroke-width="1"/>
|
||||
<text x="320" y="125" fill="#64748B" font-family="'Inter', sans-serif" font-size="10">分库分表策略 (Sharding-Sphere)</text>
|
||||
<text x="320" y="150" fill="#0F172A" font-family="'Inter', sans-serif" font-size="12" font-weight="600">按商户ID哈希分区 + 订单月份归档</text>
|
||||
<text x="320" y="195" fill="#64748B" font-family="'Inter', sans-serif" font-size="10">分布式事务协调 (Seata AT 模式)</text>
|
||||
<text x="320" y="220" fill="#0F172A" font-family="'Inter', sans-serif" font-size="12" font-weight="600">两阶段提交 · 自动全局锁回滚机制</text>
|
||||
<rect x="320" y="248" width="230" height="42" rx="4" fill="#F8FAFC" stroke="#E2E8F0"/>
|
||||
<text x="330" y="274" fill="#475569" font-family="'Noto Serif SC', 'SimSun', serif" font-size="11">严谨设计:双向对账机制与死信队列自动报警</text>
|
||||
<g transform="translate(554, 20)">
|
||||
<rect width="24" height="24" rx="4" fill="#FEF2F2" stroke="#DC2626" stroke-width="1.2"/>
|
||||
<rect x="2" y="2" width="20" height="20" rx="2" fill="none" stroke="#DC2626" stroke-width="0.5" stroke-opacity="0.5"/>
|
||||
<text x="12" y="17" fill="#DC2626" font-family="'Noto Serif SC', 'SimSun', serif" font-size="12" font-weight="700" text-anchor="middle">枢</text>
|
||||
</g>
|
||||
|
||||
|
||||
<!-- 底部文章标签条 -->
|
||||
<rect x="20" y="324" width="560" height="36" rx="4" fill="#F1F5F9" stroke="#E2E8F0"/>
|
||||
<rect x="32" y="332" width="76" height="20" rx="2" fill="#EFF6FF" stroke="#BFDBFE"/>
|
||||
<text x="40" y="346" fill="#1D4ED8" font-family="'Inter', 'Noto Sans SC', sans-serif" font-size="11" font-weight="600">技术洞察</text>
|
||||
<text x="120" y="347" fill="#64748B" font-family="'Noto Serif SC', 'SimSun', serif" font-size="12">高并发商城微服务中台分布式事务与分库分表实践</text>
|
||||
<text x="480" y="346" fill="#2563EB" font-family="'Inter', sans-serif" font-size="11" font-weight="600">NAHAICHUAN TECH</text>
|
||||
<g transform="translate(300, 190)">
|
||||
|
||||
<ellipse cx="0" cy="50" rx="190" ry="75" fill="none" stroke="#E2E8F0" stroke-width="1.2" stroke-dasharray="5,4"/>
|
||||
<g transform="translate(-70, 0)" filter="url(#artShadow)">
|
||||
<polygon points="0,-28 35,-10 0,10 -35,-10" fill="url(#artBlue)"/>
|
||||
<polygon points="-35,-10 0,10 0,34 -35,14" fill="#1D4ED8"/>
|
||||
<polygon points="0,10 35,-10 35,14 0,34" fill="#1E40AF"/>
|
||||
</g>
|
||||
<g transform="translate(70, 0)" filter="url(#artShadow)">
|
||||
<polygon points="0,-28 35,-10 0,10 -35,-10" fill="url(#artCyan)"/>
|
||||
<polygon points="-35,-10 0,10 0,34 -35,14" fill="#0891B2"/>
|
||||
<polygon points="0,10 35,-10 35,14 0,34" fill="#0E7490"/>
|
||||
</g>
|
||||
<g transform="translate(0, -50)" filter="url(#artShadow)">
|
||||
<polygon points="0,-24 28,-8 0,8 -28,-8" fill="url(#artGlass)" stroke="#2563EB" stroke-width="1.2"/>
|
||||
<circle cx="0" cy="0" r="4" fill="#2563EB"/>
|
||||
</g>
|
||||
<path d="M -70 0 Q 0 -40 70 0" fill="none" stroke="url(#artBlue)" stroke-width="2" stroke-linecap="round"/>
|
||||
<path d="M 70 15 Q 0 55 -70 15" fill="none" stroke="url(#artCyan)" stroke-width="1.8" stroke-dasharray="4,3"/>
|
||||
|
||||
</g>
|
||||
</svg>
|
||||
|
之前 宽度: | 高度: | 大小: 4.8 KiB 之后 宽度: | 高度: | 大小: 3.5 KiB |
@@ -1,64 +1,62 @@
|
||||
<svg width="600" height="380" viewBox="0 0 600 380" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<defs>
|
||||
<linearGradient id="bgGrad" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
|
||||
<linearGradient id="artBgGrad" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#FFFFFF"/>
|
||||
<stop offset="100%" stop-color="#F8FAFC"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="primaryGrad" x1="0%" y1="0%" x2="100%" y2="0%">
|
||||
<linearGradient id="artBlue" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#2563EB"/>
|
||||
<stop offset="100%" stop-color="#3B82F6"/>
|
||||
<stop offset="100%" stop-color="#1D4ED8"/>
|
||||
</linearGradient>
|
||||
<pattern id="latticeGrid" width="24" height="24" patternUnits="userSpaceOnUse">
|
||||
<path d="M 24 0 L 0 0 0 24" fill="none" stroke="#E2E8F0" stroke-width="0.75" stroke-dasharray="2,2"/>
|
||||
<linearGradient id="artCyan" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#06B6D4"/>
|
||||
<stop offset="100%" stop-color="#0EA5E9"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="artPurple" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#7C3AED"/>
|
||||
<stop offset="100%" stop-color="#6366F1"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="artGlass" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#FFFFFF" stop-opacity="0.85"/>
|
||||
<stop offset="100%" stop-color="#F1F5F9" stop-opacity="0.6"/>
|
||||
</linearGradient>
|
||||
<pattern id="artLattice" width="24" height="24" patternUnits="userSpaceOnUse">
|
||||
<path d="M 24 0 L 0 0 0 24" fill="none" stroke="#E2E8F0" stroke-width="0.75" stroke-dasharray="3,3"/>
|
||||
</pattern>
|
||||
<filter id="artShadow" x="-10%" y="-10%" width="120%" height="120%">
|
||||
<feDropShadow dx="0" dy="6" stdDeviation="10" flood-color="#0F172A" flood-opacity="0.06"/>
|
||||
</filter>
|
||||
<filter id="artGlow" x="-20%" y="-20%" width="140%" height="140%">
|
||||
<feGaussianBlur stdDeviation="10" result="blur"/>
|
||||
<feComposite in="SourceGraphic" in2="blur" operator="over"/>
|
||||
</filter>
|
||||
|
||||
</defs>
|
||||
|
||||
<!-- 背景卡片与淡雅窗棂网格 -->
|
||||
<rect width="600" height="380" rx="8" fill="url(#bgGrad)"/>
|
||||
<rect width="600" height="380" rx="8" fill="url(#latticeGrid)" opacity="0.6"/>
|
||||
<rect width="600" height="380" rx="8" fill="url(#artBgGrad)"/>
|
||||
<rect width="600" height="380" rx="8" fill="url(#artLattice)" opacity="0.6"/>
|
||||
<rect x="1" y="1" width="598" height="378" rx="7" fill="none" stroke="#E2E8F0" stroke-width="1.5"/>
|
||||
|
||||
<!-- 顶部控制台标题栏 -->
|
||||
<rect x="20" y="20" width="560" height="36" rx="4" fill="#FFFFFF" stroke="#E2E8F0"/>
|
||||
<circle cx="36" cy="38" r="4.5" fill="#EF4444"/>
|
||||
<circle cx="50" cy="38" r="4.5" fill="#F59E0B"/>
|
||||
<circle cx="64" cy="38" r="4.5" fill="#10B981"/>
|
||||
<text x="84" y="42" fill="#334155" font-family="'Inter', 'Noto Sans SC', sans-serif" font-size="12" font-weight="600">POS Reliability · Offline Transactions & Queue Recovery</text>
|
||||
|
||||
<!-- 中式印章 -->
|
||||
<rect x="495" y="26" width="72" height="22" rx="2" fill="#FEF2F2" stroke="#EF4444" stroke-width="1"/>
|
||||
<text x="502" y="42" fill="#DC2626" font-family="'Noto Serif SC', 'SimSun', serif" font-size="11" font-weight="700">收银容灾</text>
|
||||
|
||||
<!-- 核心图解视窗区域 -->
|
||||
|
||||
<rect x="30" y="75" width="260" height="230" rx="6" fill="#FFFFFF" stroke="#E2E8F0"/>
|
||||
<rect x="30" y="75" width="260" height="32" rx="6 6 0 0" fill="#F8FAFC"/>
|
||||
<text x="44" y="96" fill="#0F172A" font-family="'Inter', 'Noto Sans SC', sans-serif" font-size="12" font-weight="700">门店离线记账沙箱架构</text>
|
||||
<rect x="44" y="120" width="232" height="36" rx="4" fill="#EFF6FF" stroke="#BFDBFE"/>
|
||||
<text x="54" y="142" fill="#1E40AF" font-family="'Inter', sans-serif" font-size="11">本地 SQLite 离线存储 · 全加密暂存凭单</text>
|
||||
<rect x="44" y="166" width="232" height="36" rx="4" fill="#F8FAFC" stroke="#CBD5E1"/>
|
||||
<text x="54" y="188" fill="#334155" font-family="'Inter', sans-serif" font-size="11">后厨 ESC/POS 打印机双网口局域网直连</text>
|
||||
<rect x="44" y="212" width="232" height="36" rx="4" fill="#F8FAFC" stroke="#CBD5E1"/>
|
||||
<text x="54" y="234" fill="#334155" font-family="'Inter', sans-serif" font-size="11">断网期间保障点单、出票、挂账平稳运行</text>
|
||||
<rect x="44" y="258" width="232" height="32" rx="4" fill="#ECFDF5" stroke="#A7F3D0"/>
|
||||
<text x="54" y="278" fill="#065F46" font-family="'Inter', sans-serif" font-size="11">离线丢单率: 0% · 扫码付响应 < 0.3s</text>
|
||||
|
||||
<rect x="310" y="75" width="260" height="230" rx="6" fill="#FFFFFF" stroke="#E2E8F0"/>
|
||||
<rect x="310" y="75" width="260" height="32" rx="6 6 0 0" fill="#F8FAFC"/>
|
||||
<text x="324" y="96" fill="#0F172A" font-family="'Inter', 'Noto Sans SC', sans-serif" font-size="12" font-weight="700">网络恢复幂等自动同步状态机</text>
|
||||
<text x="324" y="125" fill="#64748B" font-family="'Inter', sans-serif" font-size="10">幂等性与重试控制 (Idempotency Engine)</text>
|
||||
<text x="324" y="148" fill="#0F172A" font-family="'Inter', sans-serif" font-size="12" font-weight="600">全局雪花ID防重校验 · 事务幂等入库</text>
|
||||
<text x="324" y="185" fill="#64748B" font-family="'Inter', sans-serif" font-size="10">增量冲突消解策略 (Conflict Resolution)</text>
|
||||
<text x="324" y="208" fill="#0F172A" font-family="'Inter', sans-serif" font-size="12" font-weight="600">版本号时钟排序 · 差异对账自动生成补差单</text>
|
||||
<rect x="324" y="235" width="232" height="55" rx="4" fill="#F8FAFC" stroke="#E2E8F0"/>
|
||||
<text x="334" y="258" fill="#475569" font-family="'Noto Serif SC', 'SimSun', serif" font-size="11">经受 300+ 实体门店连续 720 天生产考验,</text>
|
||||
<text x="334" y="275" fill="#475569" font-family="'Noto Serif SC', 'SimSun', serif" font-size="11">高可靠断网防御与零财务差错保障</text>
|
||||
<g transform="translate(554, 20)">
|
||||
<rect width="24" height="24" rx="4" fill="#FEF2F2" stroke="#DC2626" stroke-width="1.2"/>
|
||||
<rect x="2" y="2" width="20" height="20" rx="2" fill="none" stroke="#DC2626" stroke-width="0.5" stroke-opacity="0.5"/>
|
||||
<text x="12" y="17" fill="#DC2626" font-family="'Noto Serif SC', 'SimSun', serif" font-size="12" font-weight="700" text-anchor="middle">笃</text>
|
||||
</g>
|
||||
|
||||
|
||||
<!-- 底部文章标签条 -->
|
||||
<rect x="20" y="324" width="560" height="36" rx="4" fill="#F1F5F9" stroke="#E2E8F0"/>
|
||||
<rect x="32" y="332" width="76" height="20" rx="2" fill="#EFF6FF" stroke="#BFDBFE"/>
|
||||
<text x="40" y="346" fill="#1D4ED8" font-family="'Inter', 'Noto Sans SC', sans-serif" font-size="11" font-weight="600">技术洞察</text>
|
||||
<text x="120" y="347" fill="#64748B" font-family="'Noto Serif SC', 'SimSun', serif" font-size="12">新零售商业收银系统容灾:弱网断网离线记账机制解析</text>
|
||||
<text x="480" y="346" fill="#2563EB" font-family="'Inter', sans-serif" font-size="11" font-weight="600">NAHAICHUAN TECH</text>
|
||||
<g transform="translate(300, 190)">
|
||||
|
||||
<circle cx="0" cy="0" r="120" fill="none" stroke="#E2E8F0" stroke-width="1" stroke-dasharray="4,4"/>
|
||||
<circle cx="0" cy="0" r="90" fill="none" stroke="#CBD5E1" stroke-width="1.2"/>
|
||||
<path d="M 0 -70 L 45 -45 V 0 C 45 35 0 70 0 70 C 0 70 -45 35 -45 0 V -45 Z" fill="url(#artGlass)" stroke="#CBD5E1" stroke-width="1.5" filter="url(#artShadow)"/>
|
||||
<circle cx="0" cy="0" r="22" fill="url(#artBlue)" filter="url(#artGlow)"/>
|
||||
<circle cx="0" cy="0" r="10" fill="#FFFFFF"/>
|
||||
<line x1="-90" y1="0" x2="-22" y2="0" stroke="url(#artCyan)" stroke-width="2" stroke-linecap="round"/>
|
||||
<line x1="22" y1="0" x2="90" y2="0" stroke="url(#artBlue)" stroke-width="2" stroke-linecap="round"/>
|
||||
<circle cx="-90" cy="0" r="4.5" fill="#06B6D4"/>
|
||||
<circle cx="90" cy="0" r="4.5" fill="#2563EB"/>
|
||||
|
||||
</g>
|
||||
</svg>
|
||||
|
之前 宽度: | 高度: | 大小: 4.9 KiB 之后 宽度: | 高度: | 大小: 3.2 KiB |
@@ -1,64 +1,64 @@
|
||||
<svg width="600" height="380" viewBox="0 0 600 380" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<defs>
|
||||
<linearGradient id="bgGrad" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
|
||||
<linearGradient id="artBgGrad" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#FFFFFF"/>
|
||||
<stop offset="100%" stop-color="#F8FAFC"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="primaryGrad" x1="0%" y1="0%" x2="100%" y2="0%">
|
||||
<linearGradient id="artBlue" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#2563EB"/>
|
||||
<stop offset="100%" stop-color="#3B82F6"/>
|
||||
<stop offset="100%" stop-color="#1D4ED8"/>
|
||||
</linearGradient>
|
||||
<pattern id="latticeGrid" width="24" height="24" patternUnits="userSpaceOnUse">
|
||||
<path d="M 24 0 L 0 0 0 24" fill="none" stroke="#E2E8F0" stroke-width="0.75" stroke-dasharray="2,2"/>
|
||||
<linearGradient id="artCyan" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#06B6D4"/>
|
||||
<stop offset="100%" stop-color="#0EA5E9"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="artPurple" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#7C3AED"/>
|
||||
<stop offset="100%" stop-color="#6366F1"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="artGlass" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#FFFFFF" stop-opacity="0.85"/>
|
||||
<stop offset="100%" stop-color="#F1F5F9" stop-opacity="0.6"/>
|
||||
</linearGradient>
|
||||
<pattern id="artLattice" width="24" height="24" patternUnits="userSpaceOnUse">
|
||||
<path d="M 24 0 L 0 0 0 24" fill="none" stroke="#E2E8F0" stroke-width="0.75" stroke-dasharray="3,3"/>
|
||||
</pattern>
|
||||
<filter id="artShadow" x="-10%" y="-10%" width="120%" height="120%">
|
||||
<feDropShadow dx="0" dy="6" stdDeviation="10" flood-color="#0F172A" flood-opacity="0.06"/>
|
||||
</filter>
|
||||
<filter id="artGlow" x="-20%" y="-20%" width="140%" height="140%">
|
||||
<feGaussianBlur stdDeviation="10" result="blur"/>
|
||||
<feComposite in="SourceGraphic" in2="blur" operator="over"/>
|
||||
</filter>
|
||||
|
||||
</defs>
|
||||
|
||||
<!-- 背景卡片与淡雅窗棂网格 -->
|
||||
<rect width="600" height="380" rx="8" fill="url(#bgGrad)"/>
|
||||
<rect width="600" height="380" rx="8" fill="url(#latticeGrid)" opacity="0.6"/>
|
||||
<rect width="600" height="380" rx="8" fill="url(#artBgGrad)"/>
|
||||
<rect width="600" height="380" rx="8" fill="url(#artLattice)" opacity="0.6"/>
|
||||
<rect x="1" y="1" width="598" height="378" rx="7" fill="none" stroke="#E2E8F0" stroke-width="1.5"/>
|
||||
|
||||
<!-- 顶部控制台标题栏 -->
|
||||
<rect x="20" y="20" width="560" height="36" rx="4" fill="#FFFFFF" stroke="#E2E8F0"/>
|
||||
<circle cx="36" cy="38" r="4.5" fill="#EF4444"/>
|
||||
<circle cx="50" cy="38" r="4.5" fill="#F59E0B"/>
|
||||
<circle cx="64" cy="38" r="4.5" fill="#10B981"/>
|
||||
<text x="84" y="42" fill="#334155" font-family="'Inter', 'Noto Sans SC', sans-serif" font-size="12" font-weight="600">Security Whitepaper · Microservice Defense & Cryptography</text>
|
||||
|
||||
<!-- 中式印章 -->
|
||||
<rect x="495" y="26" width="72" height="22" rx="2" fill="#FEF2F2" stroke="#EF4444" stroke-width="1"/>
|
||||
<text x="502" y="42" fill="#DC2626" font-family="'Noto Serif SC', 'SimSun', serif" font-size="11" font-weight="700">安全合规</text>
|
||||
|
||||
<!-- 核心图解视窗区域 -->
|
||||
|
||||
<rect x="30" y="75" width="260" height="230" rx="6" fill="#FFFFFF" stroke="#E2E8F0"/>
|
||||
<rect x="30" y="75" width="260" height="32" rx="6 6 0 0" fill="#F8FAFC"/>
|
||||
<text x="44" y="96" fill="#0F172A" font-family="'Inter', 'Noto Sans SC', sans-serif" font-size="12" font-weight="700">微服务零信任纵深防御模型</text>
|
||||
<rect x="44" y="120" width="232" height="36" rx="4" fill="#EFF6FF" stroke="#BFDBFE"/>
|
||||
<text x="54" y="142" fill="#1E40AF" font-family="'Inter', sans-serif" font-size="11">mTLS 双向证书通信 · 服务间调用零信任</text>
|
||||
<rect x="44" y="166" width="232" height="36" rx="4" fill="#F8FAFC" stroke="#CBD5E1"/>
|
||||
<text x="54" y="188" fill="#334155" font-family="'Inter', sans-serif" font-size="11">国密 SM4 敏感信息加密存储与脱敏传输</text>
|
||||
<rect x="44" y="212" width="232" height="36" rx="4" fill="#F8FAFC" stroke="#CBD5E1"/>
|
||||
<text x="54" y="234" fill="#334155" font-family="'Inter', sans-serif" font-size="11">SQL 预编译防注入 + XSS 白名单严格转义</text>
|
||||
<rect x="44" y="258" width="232" height="32" rx="4" fill="#ECFDF5" stroke="#A7F3D0"/>
|
||||
<text x="54" y="278" fill="#065F46" font-family="'Inter', sans-serif" font-size="11">国家信息系统安全等级保护三级对照设计</text>
|
||||
|
||||
<rect x="310" y="75" width="260" height="230" rx="6" fill="#FFFFFF" stroke="#E2E8F0"/>
|
||||
<rect x="310" y="75" width="260" height="32" rx="6 6 0 0" fill="#F8FAFC"/>
|
||||
<text x="324" y="96" fill="#0F172A" font-family="'Inter', 'Noto Sans SC', sans-serif" font-size="12" font-weight="700">全链路审计闭环与合规追溯</text>
|
||||
<text x="324" y="125" fill="#64748B" font-family="'Inter', sans-serif" font-size="10">全链路跟踪 (Distributed TraceID)</text>
|
||||
<text x="324" y="148" fill="#0F172A" font-family="'Inter', sans-serif" font-size="12" font-weight="600">网关到存储统一链路标识,毫秒级定位异常</text>
|
||||
<text x="324" y="185" fill="#64748B" font-family="'Inter', sans-serif" font-size="10">不可篡改审计日志 (Tamper-Proof Audit)</text>
|
||||
<text x="324" y="208" fill="#0F172A" font-family="'Inter', sans-serif" font-size="12" font-weight="600">管理端关键动作数字签名存证归档</text>
|
||||
<rect x="324" y="235" width="232" height="55" rx="4" fill="#F8FAFC" stroke="#E2E8F0"/>
|
||||
<text x="334" y="258" fill="#475569" font-family="'Noto Serif SC', 'SimSun', serif" font-size="11">白皮书全面总结政企系统交付经验,</text>
|
||||
<text x="334" y="275" fill="#475569" font-family="'Noto Serif SC', 'SimSun', serif" font-size="11">赋能实体企业低成本达成数据安全法规合规</text>
|
||||
<g transform="translate(554, 20)">
|
||||
<rect width="24" height="24" rx="4" fill="#FEF2F2" stroke="#DC2626" stroke-width="1.2"/>
|
||||
<rect x="2" y="2" width="20" height="20" rx="2" fill="none" stroke="#DC2626" stroke-width="0.5" stroke-opacity="0.5"/>
|
||||
<text x="12" y="17" fill="#DC2626" font-family="'Noto Serif SC', 'SimSun', serif" font-size="12" font-weight="700" text-anchor="middle">安</text>
|
||||
</g>
|
||||
|
||||
|
||||
<!-- 底部文章标签条 -->
|
||||
<rect x="20" y="324" width="560" height="36" rx="4" fill="#F1F5F9" stroke="#E2E8F0"/>
|
||||
<rect x="32" y="332" width="76" height="20" rx="2" fill="#EFF6FF" stroke="#BFDBFE"/>
|
||||
<text x="40" y="346" fill="#1D4ED8" font-family="'Inter', 'Noto Sans SC', sans-serif" font-size="11" font-weight="600">公司动态</text>
|
||||
<text x="120" y="347" fill="#64748B" font-family="'Noto Serif SC', 'SimSun', serif" font-size="12">纳海川发布《企业级微服务安全审计与合规防护白皮书》</text>
|
||||
<text x="480" y="346" fill="#2563EB" font-family="'Inter', sans-serif" font-size="11" font-weight="600">NAHAICHUAN TECH</text>
|
||||
<g transform="translate(300, 190)">
|
||||
|
||||
<polygon points="0,-95 82,-47 82,47 0,95 -82,47 -82,-47" fill="none" stroke="#E2E8F0" stroke-width="1.2" stroke-dasharray="4,4"/>
|
||||
<polygon points="0,-75 65,-37 65,37 0,75 -65,37 -65,-37" fill="url(#artGlass)" stroke="#CBD5E1" stroke-width="1.5" filter="url(#artShadow)"/>
|
||||
<circle cx="0" cy="0" r="26" fill="url(#artPurple)"/>
|
||||
<circle cx="0" cy="0" r="14" fill="url(#artBlue)"/>
|
||||
<circle cx="0" cy="0" r="6" fill="#FFFFFF"/>
|
||||
<circle cx="0" cy="-75" r="4" fill="#2563EB"/>
|
||||
<circle cx="65" cy="-37" r="4" fill="#7C3AED"/>
|
||||
<circle cx="65" cy="37" r="4" fill="#06B6D4"/>
|
||||
<circle cx="0" cy="75" r="4" fill="#2563EB"/>
|
||||
<circle cx="-65" cy="37" r="4" fill="#7C3AED"/>
|
||||
<circle cx="-65" cy="-37" r="4" fill="#06B6D4"/>
|
||||
|
||||
</g>
|
||||
</svg>
|
||||
|
之前 宽度: | 高度: | 大小: 4.9 KiB 之后 宽度: | 高度: | 大小: 3.1 KiB |
@@ -1,64 +1,73 @@
|
||||
<svg width="600" height="380" viewBox="0 0 600 380" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<defs>
|
||||
<linearGradient id="bgGrad" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
|
||||
<linearGradient id="artBgGrad" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#FFFFFF"/>
|
||||
<stop offset="100%" stop-color="#F8FAFC"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="primaryGrad" x1="0%" y1="0%" x2="100%" y2="0%">
|
||||
<linearGradient id="artBlue" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#2563EB"/>
|
||||
<stop offset="100%" stop-color="#3B82F6"/>
|
||||
<stop offset="100%" stop-color="#1D4ED8"/>
|
||||
</linearGradient>
|
||||
<pattern id="latticeGrid" width="24" height="24" patternUnits="userSpaceOnUse">
|
||||
<path d="M 24 0 L 0 0 0 24" fill="none" stroke="#E2E8F0" stroke-width="0.75" stroke-dasharray="2,2"/>
|
||||
<linearGradient id="artCyan" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#06B6D4"/>
|
||||
<stop offset="100%" stop-color="#0EA5E9"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="artPurple" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#7C3AED"/>
|
||||
<stop offset="100%" stop-color="#6366F1"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="artGlass" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#FFFFFF" stop-opacity="0.85"/>
|
||||
<stop offset="100%" stop-color="#F1F5F9" stop-opacity="0.6"/>
|
||||
</linearGradient>
|
||||
<pattern id="artLattice" width="24" height="24" patternUnits="userSpaceOnUse">
|
||||
<path d="M 24 0 L 0 0 0 24" fill="none" stroke="#E2E8F0" stroke-width="0.75" stroke-dasharray="3,3"/>
|
||||
</pattern>
|
||||
<filter id="artShadow" x="-10%" y="-10%" width="120%" height="120%">
|
||||
<feDropShadow dx="0" dy="6" stdDeviation="10" flood-color="#0F172A" flood-opacity="0.06"/>
|
||||
</filter>
|
||||
<filter id="artGlow" x="-20%" y="-20%" width="140%" height="140%">
|
||||
<feGaussianBlur stdDeviation="10" result="blur"/>
|
||||
<feComposite in="SourceGraphic" in2="blur" operator="over"/>
|
||||
</filter>
|
||||
|
||||
</defs>
|
||||
|
||||
<!-- 背景卡片与淡雅窗棂网格 -->
|
||||
<rect width="600" height="380" rx="8" fill="url(#bgGrad)"/>
|
||||
<rect width="600" height="380" rx="8" fill="url(#latticeGrid)" opacity="0.6"/>
|
||||
<rect width="600" height="380" rx="8" fill="url(#artBgGrad)"/>
|
||||
<rect width="600" height="380" rx="8" fill="url(#artLattice)" opacity="0.6"/>
|
||||
<rect x="1" y="1" width="598" height="378" rx="7" fill="none" stroke="#E2E8F0" stroke-width="1.5"/>
|
||||
|
||||
<!-- 顶部控制台标题栏 -->
|
||||
<rect x="20" y="20" width="560" height="36" rx="4" fill="#FFFFFF" stroke="#E2E8F0"/>
|
||||
<circle cx="36" cy="38" r="4.5" fill="#EF4444"/>
|
||||
<circle cx="50" cy="38" r="4.5" fill="#F59E0B"/>
|
||||
<circle cx="64" cy="38" r="4.5" fill="#10B981"/>
|
||||
<text x="84" y="42" fill="#334155" font-family="'Inter', 'Noto Sans SC', sans-serif" font-size="12" font-weight="600">Regional Practice · Southwest Digital Middle Platform Realization</text>
|
||||
|
||||
<!-- 中式印章 -->
|
||||
<rect x="495" y="26" width="72" height="22" rx="2" fill="#FEF2F2" stroke="#EF4444" stroke-width="1"/>
|
||||
<text x="502" y="42" fill="#DC2626" font-family="'Noto Serif SC', 'SimSun', serif" font-size="11" font-weight="700">本地服务</text>
|
||||
|
||||
<!-- 核心图解视窗区域 -->
|
||||
|
||||
<rect x="30" y="75" width="260" height="230" rx="6" fill="#FFFFFF" stroke="#E2E8F0"/>
|
||||
<rect x="30" y="75" width="260" height="32" rx="6 6 0 0" fill="#F8FAFC"/>
|
||||
<text x="44" y="96" fill="#0F172A" font-family="'Inter', 'Noto Sans SC', sans-serif" font-size="12" font-weight="700">贵阳本土驻场服务技术优势</text>
|
||||
<rect x="44" y="120" width="232" height="36" rx="4" fill="#EFF6FF" stroke="#BFDBFE"/>
|
||||
<text x="54" y="142" fill="#1E40AF" font-family="'Inter', sans-serif" font-size="11">自有本地研发团队 · 资深架构师面对面沟通</text>
|
||||
<rect x="44" y="166" width="232" height="36" rx="4" fill="#F8FAFC" stroke="#CBD5E1"/>
|
||||
<text x="54" y="188" fill="#334155" font-family="'Inter', sans-serif" font-size="11">深入车间、门店与仓库现场梳理真实业务逻辑</text>
|
||||
<rect x="44" y="212" width="232" height="36" rx="4" fill="#F8FAFC" stroke="#CBD5E1"/>
|
||||
<text x="54" y="234" fill="#334155" font-family="'Inter', sans-serif" font-size="11">拒绝二次转包 · 杜绝异地沟通信息失真</text>
|
||||
<rect x="44" y="258" width="232" height="32" rx="4" fill="#ECFDF5" stroke="#A7F3D0"/>
|
||||
<text x="54" y="278" fill="#065F46" font-family="'Inter', sans-serif" font-size="11">响应时效: <15分钟响应 · 紧急现场2小时内到达</text>
|
||||
|
||||
<rect x="310" y="75" width="260" height="230" rx="6" fill="#FFFFFF" stroke="#E2E8F0"/>
|
||||
<rect x="310" y="75" width="260" height="32" rx="6 6 0 0" fill="#F8FAFC"/>
|
||||
<text x="324" y="96" fill="#0F172A" font-family="'Inter', 'Noto Sans SC', sans-serif" font-size="12" font-weight="700">实体企业转型标杆收益矩阵</text>
|
||||
<text x="324" y="125" fill="#64748B" font-family="'Inter', sans-serif" font-size="10">生产周转效率 (Operational Velocity)</text>
|
||||
<text x="324" y="148" fill="#0F172A" font-family="'Inter', sans-serif" font-size="12" font-weight="600">库存物料占用压降 35% · 交付周期缩短 40%</text>
|
||||
<text x="324" y="185" fill="#64748B" font-family="'Inter', sans-serif" font-size="10">售后与维保承诺 (Warranty & SLA)</text>
|
||||
<text x="324" y="208" fill="#0F172A" font-family="'Inter', sans-serif" font-size="12" font-weight="600">首年 365 天免费运维 · 终身技术架构咨询支持</text>
|
||||
<rect x="324" y="235" width="232" height="55" rx="4" fill="#F8FAFC" stroke="#E2E8F0"/>
|
||||
<text x="334" y="258" fill="#475569" font-family="'Noto Serif SC', 'SimSun', serif" font-size="11">立足贵阳研发优势,以严谨务实技术态度,</text>
|
||||
<text x="334" y="275" fill="#475569" font-family="'Noto Serif SC', 'SimSun', serif" font-size="11">为实体企业交付扎实稳固的数字化业务系统</text>
|
||||
<g transform="translate(554, 20)">
|
||||
<rect width="24" height="24" rx="4" fill="#FEF2F2" stroke="#DC2626" stroke-width="1.2"/>
|
||||
<rect x="2" y="2" width="20" height="20" rx="2" fill="none" stroke="#DC2626" stroke-width="0.5" stroke-opacity="0.5"/>
|
||||
<text x="12" y="17" fill="#DC2626" font-family="'Noto Serif SC', 'SimSun', serif" font-size="12" font-weight="700" text-anchor="middle">融</text>
|
||||
</g>
|
||||
|
||||
|
||||
<!-- 底部文章标签条 -->
|
||||
<rect x="20" y="324" width="560" height="36" rx="4" fill="#F1F5F9" stroke="#E2E8F0"/>
|
||||
<rect x="32" y="332" width="76" height="20" rx="2" fill="#EFF6FF" stroke="#BFDBFE"/>
|
||||
<text x="40" y="346" fill="#1D4ED8" font-family="'Inter', 'Noto Sans SC', sans-serif" font-size="11" font-weight="600">公司动态</text>
|
||||
<text x="120" y="347" fill="#64748B" font-family="'Noto Serif SC', 'SimSun', serif" font-size="12">立足贵阳服务全国:纳海川助力数十家实体企业数字化转型纪实</text>
|
||||
<text x="480" y="346" fill="#2563EB" font-family="'Inter', sans-serif" font-size="11" font-weight="600">NAHAICHUAN TECH</text>
|
||||
<g transform="translate(300, 190)">
|
||||
|
||||
<ellipse cx="0" cy="20" rx="180" ry="80" fill="none" stroke="#E2E8F0" stroke-width="1.2" stroke-dasharray="5,4"/>
|
||||
<g filter="url(#artShadow)">
|
||||
<circle cx="0" cy="0" r="28" fill="url(#artBlue)"/>
|
||||
<circle cx="0" cy="0" r="12" fill="#FFFFFF"/>
|
||||
</g>
|
||||
<g transform="translate(-110, -25)">
|
||||
<circle cx="0" cy="0" r="16" fill="url(#artGlass)" stroke="#2563EB" stroke-width="1.2"/>
|
||||
<circle cx="0" cy="0" r="5" fill="#2563EB"/>
|
||||
<line x1="0" y1="0" x2="85" y2="20" stroke="#93C5FD" stroke-width="1.5" stroke-dasharray="3,3"/>
|
||||
</g>
|
||||
<g transform="translate(110, -25)">
|
||||
<circle cx="0" cy="0" r="16" fill="url(#artGlass)" stroke="#06B6D4" stroke-width="1.2"/>
|
||||
<circle cx="0" cy="0" r="5" fill="#06B6D4"/>
|
||||
<line x1="0" y1="0" x2="-85" y2="20" stroke="#93C5FD" stroke-width="1.5" stroke-dasharray="3,3"/>
|
||||
</g>
|
||||
<g transform="translate(0, 70)">
|
||||
<circle cx="0" cy="0" r="14" fill="url(#artGlass)" stroke="#7C3AED" stroke-width="1"/>
|
||||
<circle cx="0" cy="0" r="4.5" fill="#7C3AED"/>
|
||||
<line x1="0" y1="0" x2="0" y2="-42" stroke="#CBD5E1" stroke-width="1.2"/>
|
||||
</g>
|
||||
|
||||
</g>
|
||||
</svg>
|
||||
|
之前 宽度: | 高度: | 大小: 5.0 KiB 之后 宽度: | 高度: | 大小: 3.5 KiB |
@@ -1,64 +1,68 @@
|
||||
<svg width="600" height="380" viewBox="0 0 600 380" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<defs>
|
||||
<linearGradient id="bgGrad" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
|
||||
<linearGradient id="artBgGrad" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#FFFFFF"/>
|
||||
<stop offset="100%" stop-color="#F8FAFC"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="primaryGrad" x1="0%" y1="0%" x2="100%" y2="0%">
|
||||
<linearGradient id="artBlue" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#2563EB"/>
|
||||
<stop offset="100%" stop-color="#3B82F6"/>
|
||||
<stop offset="100%" stop-color="#1D4ED8"/>
|
||||
</linearGradient>
|
||||
<pattern id="latticeGrid" width="24" height="24" patternUnits="userSpaceOnUse">
|
||||
<path d="M 24 0 L 0 0 0 24" fill="none" stroke="#E2E8F0" stroke-width="0.75" stroke-dasharray="2,2"/>
|
||||
<linearGradient id="artCyan" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#06B6D4"/>
|
||||
<stop offset="100%" stop-color="#0EA5E9"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="artPurple" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#7C3AED"/>
|
||||
<stop offset="100%" stop-color="#6366F1"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="artGlass" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#FFFFFF" stop-opacity="0.85"/>
|
||||
<stop offset="100%" stop-color="#F1F5F9" stop-opacity="0.6"/>
|
||||
</linearGradient>
|
||||
<pattern id="artLattice" width="24" height="24" patternUnits="userSpaceOnUse">
|
||||
<path d="M 24 0 L 0 0 0 24" fill="none" stroke="#E2E8F0" stroke-width="0.75" stroke-dasharray="3,3"/>
|
||||
</pattern>
|
||||
<filter id="artShadow" x="-10%" y="-10%" width="120%" height="120%">
|
||||
<feDropShadow dx="0" dy="6" stdDeviation="10" flood-color="#0F172A" flood-opacity="0.06"/>
|
||||
</filter>
|
||||
<filter id="artGlow" x="-20%" y="-20%" width="140%" height="140%">
|
||||
<feGaussianBlur stdDeviation="10" result="blur"/>
|
||||
<feComposite in="SourceGraphic" in2="blur" operator="over"/>
|
||||
</filter>
|
||||
|
||||
</defs>
|
||||
|
||||
<!-- 背景卡片与淡雅窗棂网格 -->
|
||||
<rect width="600" height="380" rx="8" fill="url(#bgGrad)"/>
|
||||
<rect width="600" height="380" rx="8" fill="url(#latticeGrid)" opacity="0.6"/>
|
||||
<rect width="600" height="380" rx="8" fill="url(#artBgGrad)"/>
|
||||
<rect width="600" height="380" rx="8" fill="url(#artLattice)" opacity="0.6"/>
|
||||
<rect x="1" y="1" width="598" height="378" rx="7" fill="none" stroke="#E2E8F0" stroke-width="1.5"/>
|
||||
|
||||
<!-- 顶部控制台标题栏 -->
|
||||
<rect x="20" y="20" width="560" height="36" rx="4" fill="#FFFFFF" stroke="#E2E8F0"/>
|
||||
<circle cx="36" cy="38" r="4.5" fill="#EF4444"/>
|
||||
<circle cx="50" cy="38" r="4.5" fill="#F59E0B"/>
|
||||
<circle cx="64" cy="38" r="4.5" fill="#10B981"/>
|
||||
<text x="84" y="42" fill="#334155" font-family="'Inter', 'Noto Sans SC', sans-serif" font-size="12" font-weight="600">Quality Assurance · Engineering Standards & Full Source Code Delivery</text>
|
||||
|
||||
<!-- 中式印章 -->
|
||||
<rect x="495" y="26" width="72" height="22" rx="2" fill="#FEF2F2" stroke="#EF4444" stroke-width="1"/>
|
||||
<text x="502" y="42" fill="#DC2626" font-family="'Noto Serif SC', 'SimSun', serif" font-size="11" font-weight="700">交付规范</text>
|
||||
|
||||
<!-- 核心图解视窗区域 -->
|
||||
|
||||
<rect x="30" y="75" width="260" height="230" rx="6" fill="#FFFFFF" stroke="#E2E8F0"/>
|
||||
<rect x="30" y="75" width="260" height="32" rx="6 6 0 0" fill="#F8FAFC"/>
|
||||
<text x="44" y="96" fill="#0F172A" font-family="'Inter', 'Noto Sans SC', sans-serif" font-size="12" font-weight="700">规范化持续集成与自动化测试</text>
|
||||
<rect x="44" y="120" width="232" height="36" rx="4" fill="#FEF2F2" stroke="#FECACA"/>
|
||||
<text x="54" y="142" fill="#991B1B" font-family="'Inter', sans-serif" font-size="11">1. 编写业务需求与接口自动化用例</text>
|
||||
<rect x="44" y="166" width="232" height="36" rx="4" fill="#ECFDF5" stroke="#A7F3D0"/>
|
||||
<text x="54" y="188" fill="#065F46" font-family="'Inter', sans-serif" font-size="11">2. 规范化高质量代码实现与接口对接</text>
|
||||
<rect x="44" y="212" width="232" height="36" rx="4" fill="#EFF6FF" stroke="#BFDBFE"/>
|
||||
<text x="54" y="234" fill="#1E40AF" font-family="'Inter', sans-serif" font-size="11">3. 多轮代码审查与自动化回归测试</text>
|
||||
<rect x="44" y="258" width="232" height="32" rx="4" fill="#F8FAFC" stroke="#CBD5E1"/>
|
||||
<text x="54" y="278" fill="#334155" font-family="'Inter', sans-serif" font-size="11">核心接口自动化测试覆盖率 > 85%</text>
|
||||
|
||||
<rect x="310" y="75" width="260" height="230" rx="6" fill="#FFFFFF" stroke="#E2E8F0"/>
|
||||
<rect x="310" y="75" width="260" height="32" rx="6 6 0 0" fill="#F8FAFC"/>
|
||||
<text x="324" y="96" fill="#0F172A" font-family="'Inter', 'Noto Sans SC', sans-serif" font-size="12" font-weight="700">100% 完整工程源码交付清单</text>
|
||||
<text x="324" y="125" fill="#64748B" font-family="'Inter', sans-serif" font-size="10">工程可控资产 (Engineering Assets)</text>
|
||||
<text x="324" y="148" fill="#0F172A" font-family="'Inter', sans-serif" font-size="12" font-weight="600">完整无加密 Git 源码仓库与提交历史</text>
|
||||
<text x="324" y="185" fill="#64748B" font-family="'Inter', sans-serif" font-size="10">设计与架构文档 (Documentation)</text>
|
||||
<text x="324" y="208" fill="#0F172A" font-family="'Inter', sans-serif" font-size="12" font-weight="600">数据库字典 + 拓扑蓝图 + 运维部署手册</text>
|
||||
<rect x="324" y="235" width="232" height="55" rx="4" fill="#F8FAFC" stroke="#E2E8F0"/>
|
||||
<text x="334" y="258" fill="#475569" font-family="'Noto Serif SC', 'SimSun', serif" font-size="11">坚决杜绝外包套壳模板代码,</text>
|
||||
<text x="334" y="275" fill="#475569" font-family="'Noto Serif SC', 'SimSun', serif" font-size="11">确保企业客户对数字资产拥有完整掌控权</text>
|
||||
<g transform="translate(554, 20)">
|
||||
<rect width="24" height="24" rx="4" fill="#FEF2F2" stroke="#DC2626" stroke-width="1.2"/>
|
||||
<rect x="2" y="2" width="20" height="20" rx="2" fill="none" stroke="#DC2626" stroke-width="0.5" stroke-opacity="0.5"/>
|
||||
<text x="12" y="17" fill="#DC2626" font-family="'Noto Serif SC', 'SimSun', serif" font-size="12" font-weight="700" text-anchor="middle">律</text>
|
||||
</g>
|
||||
|
||||
|
||||
<!-- 底部文章标签条 -->
|
||||
<rect x="20" y="324" width="560" height="36" rx="4" fill="#F1F5F9" stroke="#E2E8F0"/>
|
||||
<rect x="32" y="332" width="76" height="20" rx="2" fill="#EFF6FF" stroke="#BFDBFE"/>
|
||||
<text x="40" y="346" fill="#1D4ED8" font-family="'Inter', 'Noto Sans SC', sans-serif" font-size="11" font-weight="600">公司动态</text>
|
||||
<text x="120" y="347" fill="#64748B" font-family="'Noto Serif SC', 'SimSun', serif" font-size="12">贵阳纳海川科技全线推行规范工程与完整源码交付标准</text>
|
||||
<text x="480" y="346" fill="#2563EB" font-family="'Inter', sans-serif" font-size="11" font-weight="600">NAHAICHUAN TECH</text>
|
||||
<g transform="translate(300, 190)">
|
||||
|
||||
<circle cx="0" cy="0" r="110" fill="none" stroke="#E2E8F0" stroke-width="1" stroke-dasharray="5,5"/>
|
||||
<g transform="translate(-60, 0)" filter="url(#artShadow)">
|
||||
<circle cx="0" cy="0" r="30" fill="url(#artBlue)"/>
|
||||
<circle cx="0" cy="0" r="12" fill="#FFFFFF"/>
|
||||
<circle cx="0" cy="0" r="5" fill="#1D4ED8"/>
|
||||
</g>
|
||||
<g transform="translate(60, 0)" filter="url(#artShadow)">
|
||||
<circle cx="0" cy="0" r="30" fill="url(#artCyan)"/>
|
||||
<circle cx="0" cy="0" r="12" fill="#FFFFFF"/>
|
||||
<circle cx="0" cy="0" r="5" fill="#0891B2"/>
|
||||
</g>
|
||||
<path d="M -30 -15 C 0 -35 0 -35 30 -15" fill="none" stroke="url(#artBlue)" stroke-width="2.2" stroke-linecap="round"/>
|
||||
<path d="M 30 15 C 0 35 0 35 -30 15" fill="none" stroke="url(#artCyan)" stroke-width="2.2" stroke-linecap="round"/>
|
||||
<circle cx="0" cy="-26" r="4" fill="#2563EB" filter="url(#artGlow)"/>
|
||||
<circle cx="0" cy="26" r="4" fill="#06B6D4" filter="url(#artGlow)"/>
|
||||
|
||||
</g>
|
||||
</svg>
|
||||
|
之前 宽度: | 高度: | 大小: 4.9 KiB 之后 宽度: | 高度: | 大小: 3.4 KiB |
@@ -1,96 +1,76 @@
|
||||
<svg width="640" height="400" viewBox="0 0 640 400" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<svg width="600" height="380" viewBox="0 0 600 380" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<defs>
|
||||
<linearGradient id="c2Bg" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
|
||||
<linearGradient id="bgGrad" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#FFFFFF"/>
|
||||
<stop offset="100%" stop-color="#F8FAFC"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="blueGrad" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#2563EB"/>
|
||||
<stop offset="100%" stop-color="#1D4ED8"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="cyanGrad" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#06B6D4"/>
|
||||
<stop offset="100%" stop-color="#0EA5E9"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="purpleGrad" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#7C3AED"/>
|
||||
<stop offset="100%" stop-color="#6366F1"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="glassGrad" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#FFFFFF" stop-opacity="0.85"/>
|
||||
<stop offset="100%" stop-color="#F1F5F9" stop-opacity="0.6"/>
|
||||
</linearGradient>
|
||||
<pattern id="lattice" width="28" height="28" patternUnits="userSpaceOnUse">
|
||||
<path d="M 28 0 L 0 0 0 28" fill="none" stroke="#E2E8F0" stroke-width="0.7" stroke-dasharray="3,3"/>
|
||||
</pattern>
|
||||
<filter id="softGlow" x="-20%" y="-20%" width="140%" height="140%">
|
||||
<feGaussianBlur stdDeviation="12" result="blur"/>
|
||||
<feComposite in="SourceGraphic" in2="blur" operator="over"/>
|
||||
</filter>
|
||||
<filter id="cardShadow" x="-10%" y="-10%" width="120%" height="120%">
|
||||
<feDropShadow dx="0" dy="6" stdDeviation="10" flood-color="#0F172A" flood-opacity="0.06"/>
|
||||
</filter>
|
||||
|
||||
</defs>
|
||||
|
||||
<rect width="640" height="400" rx="8" fill="url(#c2Bg)"/>
|
||||
<rect x="1" y="1" width="638" height="398" rx="7" fill="none" stroke="#CBD5E1" stroke-width="1.5"/>
|
||||
<rect width="600" height="380" rx="8" fill="url(#bgGrad)"/>
|
||||
<rect width="600" height="380" rx="8" fill="url(#lattice)" opacity="0.65"/>
|
||||
<rect x="1" y="1" width="598" height="378" rx="7" fill="none" stroke="#E2E8F0" stroke-width="1.5"/>
|
||||
|
||||
<!-- 浏览器顶部视窗窗口栏 -->
|
||||
<rect x="0" y="0" width="640" height="38" rx="8 8 0 0" fill="#F1F5F9" stroke="#E2E8F0"/>
|
||||
<circle cx="20" cy="19" r="4.5" fill="#EF4444"/>
|
||||
<circle cx="34" cy="19" r="4.5" fill="#F59E0B"/>
|
||||
<circle cx="48" cy="19" r="4.5" fill="#10B981"/>
|
||||
|
||||
<rect x="70" y="8" width="460" height="22" rx="4" fill="#FFFFFF" stroke="#E2E8F0"/>
|
||||
<text x="82" y="23" fill="#64748B" font-family="'Inter', sans-serif" font-size="10">https://store-kds.chain-dining.com · 连锁门店收银与后厨 KDS 协同中枢</text>
|
||||
<rect x="548" y="9" width="76" height="20" rx="2" fill="#ECFEFF" stroke="#06B6D4"/>
|
||||
<text x="556" y="23" fill="#0891B2" font-size="10" font-weight="700">连锁零售系统</text>
|
||||
|
||||
<!-- 控制大盘看板 -->
|
||||
<g transform="translate(18, 50)">
|
||||
<!-- 顶部核心机制指标 -->
|
||||
<rect x="0" y="0" width="142" height="70" rx="4" fill="#FFFFFF" stroke="#E2E8F0"/>
|
||||
<text x="12" y="22" fill="#64748B" font-size="10">门店终端协同</text>
|
||||
<text x="12" y="46" fill="#0F172A" font-size="13" font-weight="700">软硬件协同在线</text>
|
||||
<text x="12" y="62" fill="#10B981" font-size="9">● 主收银机与双屏副显就绪</text>
|
||||
|
||||
<rect x="152" y="0" width="142" height="70" rx="4" fill="#FFFFFF" stroke="#E2E8F0"/>
|
||||
<text x="164" y="22" fill="#64748B" font-size="10">聚合支付通道</text>
|
||||
<text x="164" y="46" fill="#2563EB" font-size="13" font-weight="700">毫秒级聚合核销</text>
|
||||
<text x="164" y="62" fill="#64748B" font-size="9">微信/支付宝/银联统一网关</text>
|
||||
|
||||
<rect x="304" y="0" width="142" height="70" rx="4" fill="#FFFFFF" stroke="#E2E8F0"/>
|
||||
<text x="316" y="22" fill="#64748B" font-size="10">网络中断保护机制</text>
|
||||
<text x="316" y="46" fill="#10B981" font-size="13" font-weight="700">离线脱机收银</text>
|
||||
<text x="316" y="62" fill="#10B981" font-size="9">SQLite 本地暂存联网自动回传</text>
|
||||
|
||||
<rect x="456" y="0" width="148" height="70" rx="4" fill="#ECFDF5" stroke="#A7F3D0"/>
|
||||
<text x="468" y="22" fill="#065F46" font-size="10" font-weight="700">前后厨联动调度</text>
|
||||
<text x="468" y="46" fill="#047857" font-size="13" font-weight="700">KDS 实时传菜协同</text>
|
||||
<text x="468" y="62" fill="#047857" font-size="9">扫码点单与档口出餐实时同步</text>
|
||||
|
||||
<!-- 中部:门店收银台与后厨出餐联动实时状态 -->
|
||||
<g transform="translate(0, 82)">
|
||||
<rect width="395" height="175" rx="4" fill="#FFFFFF" stroke="#E2E8F0"/>
|
||||
<text x="14" y="24" fill="#1E293B" font-size="11" font-weight="700">示范门店前台与后厨实时联动看板</text>
|
||||
|
||||
<g transform="translate(14, 38)">
|
||||
<!-- 前台桌号 -->
|
||||
<rect width="175" height="110" rx="3" fill="#F8FAFC" stroke="#E2E8F0"/>
|
||||
<text x="12" y="22" fill="#0F172A" font-size="10" font-weight="700">前台智能扫码点单 (Table 08)</text>
|
||||
<text x="12" y="40" fill="#64748B" font-size="9">顾客下单:招牌牛肉面 + 鲜饮</text>
|
||||
<text x="12" y="55" fill="#2563EB" font-size="9" font-weight="600">聚合支付成功 · 状态秒级同步</text>
|
||||
<rect x="12" y="70" width="151" height="26" rx="2" fill="#ECFDF5"/>
|
||||
<text x="20" y="86" fill="#047857" font-size="9" font-weight="700">✓ 自动核减中央仓物料库存</text>
|
||||
|
||||
<!-- 后厨 KDS -->
|
||||
<rect x="190" y="0" width="175" height="110" rx="3" fill="#0F172A"/>
|
||||
<text x="202" y="22" fill="#FFFFFF" font-size="10" font-weight="700">后厨智能 KDS 看板 (冷热分流)</text>
|
||||
<text x="202" y="40" fill="#38BDF8" font-size="9">热食档口:制作中 (工单调度中)</text>
|
||||
<text x="202" y="58" fill="#10B981" font-size="9">水吧档口:已出餐 (传菜员待取)</text>
|
||||
<rect x="202" y="72" width="151" height="24" rx="2" fill="#1E293B"/>
|
||||
<text x="210" y="88" fill="#F59E0B" font-size="8">档口出餐状态与前台大屏同频</text>
|
||||
</g>
|
||||
<g transform="translate(554, 20)">
|
||||
<rect width="26" height="26" rx="4" fill="#FEF2F2" stroke="#DC2626" stroke-width="1.2"/>
|
||||
<rect x="2.5" y="2.5" width="21" height="21" rx="2" fill="none" stroke="#DC2626" stroke-width="0.5" stroke-opacity="0.5"/>
|
||||
<text x="13" y="18" fill="#DC2626" font-family="'Noto Serif SC', 'SimSun', serif" font-size="13" font-weight="700" text-anchor="middle">敏</text>
|
||||
</g>
|
||||
|
||||
<!-- 右侧:软硬件兼容规格 -->
|
||||
<g transform="translate(407, 82)">
|
||||
<rect width="197" height="175" rx="4" fill="#FFFFFF" stroke="#E2E8F0"/>
|
||||
<text x="12" y="24" fill="#1E293B" font-size="11" font-weight="700">工程与硬件兼容落地</text>
|
||||
|
||||
<rect x="10" y="38" width="177" height="38" rx="3" fill="#F8FAFC" stroke="#E2E8F0"/>
|
||||
<text x="16" y="54" fill="#0F172A" font-size="10" font-weight="600">双屏收银一体机支持</text>
|
||||
<text x="16" y="68" fill="#64748B" font-size="9">客显扫码付、会员权益互动</text>
|
||||
<g transform="translate(300, 190)">
|
||||
<ellipse cx="-80" cy="0" rx="80" ry="70" fill="none" stroke="#E2E8F0" stroke-width="1.5"/>
|
||||
<ellipse cx="80" cy="0" rx="80" ry="70" fill="none" stroke="#E2E8F0" stroke-width="1.5"/>
|
||||
|
||||
<rect x="10" y="82" width="177" height="38" rx="3" fill="#F8FAFC" stroke="#E2E8F0"/>
|
||||
<text x="16" y="98" fill="#0F172A" font-size="10" font-weight="600">热敏打印与蜂鸣呼叫</text>
|
||||
<text x="16" y="112" fill="#10B981" font-size="9">声音灯光双重预警提示</text>
|
||||
|
||||
<rect x="10" y="126" width="177" height="40" rx="3" fill="#EFF6FF" stroke="#BFDBFE"/>
|
||||
<text x="16" y="144" fill="#1E40AF" font-size="10" font-weight="700">财务业财报表实时同步</text>
|
||||
<text x="16" y="157" fill="#3B82F6" font-size="8">每日晚间自动结转与对账</text>
|
||||
<g transform="translate(-80, 0)" filter="url(#cardShadow)">
|
||||
<circle cx="0" cy="0" r="36" fill="url(#blueGrad)"/>
|
||||
<circle cx="0" cy="0" r="16" fill="#FFFFFF"/>
|
||||
<circle cx="0" cy="0" r="7" fill="#1D4ED8"/>
|
||||
</g>
|
||||
|
||||
<!-- 底部保障条 -->
|
||||
<g transform="translate(0, 268)">
|
||||
<rect width="604" height="68" rx="4" fill="#F8FAFC" stroke="#E2E8F0"/>
|
||||
<text x="16" y="26" fill="#0F172A" font-size="11" font-weight="700">技术方案架构解析:</text>
|
||||
<text x="130" y="26" fill="#475569" font-size="11">通过部署商用收银系统与后厨 KDS 联动方案,打通前台点单与后厨出餐链路,</text>
|
||||
<text x="16" y="48" fill="#475569" font-size="11">支持断网离线收银与多通道聚合支付,保障用餐高峰期营业连续性与业财账实相符。</text>
|
||||
<g transform="translate(80, 0)" filter="url(#cardShadow)">
|
||||
<circle cx="0" cy="0" r="36" fill="url(#cyanGrad)"/>
|
||||
<circle cx="0" cy="0" r="16" fill="#FFFFFF"/>
|
||||
<circle cx="0" cy="0" r="7" fill="#0891B2"/>
|
||||
</g>
|
||||
|
||||
<path d="M -44 -14 C -15 -35 15 -35 44 -14" fill="none" stroke="url(#blueGrad)" stroke-width="2.5" stroke-linecap="round"/>
|
||||
<path d="M 44 14 C 15 35 -15 35 -44 14" fill="none" stroke="url(#cyanGrad)" stroke-width="2.5" stroke-linecap="round"/>
|
||||
|
||||
<circle cx="0" cy="-28" r="4.5" fill="#2563EB" filter="url(#softGlow)"/>
|
||||
<circle cx="0" cy="28" r="4.5" fill="#06B6D4" filter="url(#softGlow)"/>
|
||||
|
||||
<circle cx="-160" cy="-30" r="3.5" fill="#CBD5E1"/>
|
||||
<circle cx="-160" cy="30" r="3.5" fill="#CBD5E1"/>
|
||||
<circle cx="160" cy="-30" r="3.5" fill="#CBD5E1"/>
|
||||
<circle cx="160" cy="30" r="3.5" fill="#CBD5E1"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
之前 宽度: | 高度: | 大小: 6.1 KiB 之后 宽度: | 高度: | 大小: 3.6 KiB |
@@ -1,98 +1,83 @@
|
||||
<svg width="640" height="400" viewBox="0 0 640 400" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<svg width="600" height="380" viewBox="0 0 600 380" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<defs>
|
||||
<linearGradient id="c1Bg" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
|
||||
<linearGradient id="bgGrad" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#FFFFFF"/>
|
||||
<stop offset="100%" stop-color="#F8FAFC"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="blueGrad" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#2563EB"/>
|
||||
<stop offset="100%" stop-color="#1D4ED8"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="cyanGrad" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#06B6D4"/>
|
||||
<stop offset="100%" stop-color="#0EA5E9"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="purpleGrad" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#7C3AED"/>
|
||||
<stop offset="100%" stop-color="#6366F1"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="glassGrad" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#FFFFFF" stop-opacity="0.85"/>
|
||||
<stop offset="100%" stop-color="#F1F5F9" stop-opacity="0.6"/>
|
||||
</linearGradient>
|
||||
<pattern id="lattice" width="28" height="28" patternUnits="userSpaceOnUse">
|
||||
<path d="M 28 0 L 0 0 0 28" fill="none" stroke="#E2E8F0" stroke-width="0.7" stroke-dasharray="3,3"/>
|
||||
</pattern>
|
||||
<filter id="softGlow" x="-20%" y="-20%" width="140%" height="140%">
|
||||
<feGaussianBlur stdDeviation="12" result="blur"/>
|
||||
<feComposite in="SourceGraphic" in2="blur" operator="over"/>
|
||||
</filter>
|
||||
<filter id="cardShadow" x="-10%" y="-10%" width="120%" height="120%">
|
||||
<feDropShadow dx="0" dy="6" stdDeviation="10" flood-color="#0F172A" flood-opacity="0.06"/>
|
||||
</filter>
|
||||
|
||||
</defs>
|
||||
|
||||
<rect width="640" height="400" rx="8" fill="url(#c1Bg)"/>
|
||||
<rect x="1" y="1" width="638" height="398" rx="7" fill="none" stroke="#CBD5E1" stroke-width="1.5"/>
|
||||
<rect width="600" height="380" rx="8" fill="url(#bgGrad)"/>
|
||||
<rect width="600" height="380" rx="8" fill="url(#lattice)" opacity="0.65"/>
|
||||
<rect x="1" y="1" width="598" height="378" rx="7" fill="none" stroke="#E2E8F0" stroke-width="1.5"/>
|
||||
|
||||
<!-- 浏览器顶部视窗窗口栏 -->
|
||||
<rect x="0" y="0" width="640" height="38" rx="8 8 0 0" fill="#F1F5F9" stroke="#E2E8F0"/>
|
||||
<circle cx="20" cy="19" r="4.5" fill="#EF4444"/>
|
||||
<circle cx="34" cy="19" r="4.5" fill="#F59E0B"/>
|
||||
<circle cx="48" cy="19" r="4.5" fill="#10B981"/>
|
||||
|
||||
<rect x="70" y="8" width="460" height="22" rx="4" fill="#FFFFFF" stroke="#E2E8F0"/>
|
||||
<text x="82" y="23" fill="#64748B" font-family="'Inter', sans-serif" font-size="10">https://order.hub.enterprise.com · 快消供应链全渠道订货调度中台</text>
|
||||
<rect x="548" y="9" width="76" height="20" rx="2" fill="#EFF6FF" stroke="#BFDBFE"/>
|
||||
<text x="556" y="23" fill="#2563EB" font-size="10" font-weight="700">商贸批发中台</text>
|
||||
|
||||
<!-- 控制大盘看板 -->
|
||||
<g transform="translate(18, 50)">
|
||||
<!-- 顶部核心机制指标 -->
|
||||
<rect x="0" y="0" width="142" height="70" rx="4" fill="#FFFFFF" stroke="#E2E8F0"/>
|
||||
<text x="12" y="22" fill="#64748B" font-size="10">订单路由机制</text>
|
||||
<text x="12" y="46" fill="#0F172A" font-size="13" font-weight="700">全渠道统一路由</text>
|
||||
<text x="12" y="62" fill="#2563EB" font-size="9">多端实时并发归集写入</text>
|
||||
|
||||
<rect x="152" y="0" width="142" height="70" rx="4" fill="#FFFFFF" stroke="#E2E8F0"/>
|
||||
<text x="164" y="22" fill="#64748B" font-size="10">订单审核策略</text>
|
||||
<text x="164" y="46" fill="#2563EB" font-size="13" font-weight="700">规则引擎自动校验</text>
|
||||
<text x="164" y="62" fill="#10B981" font-size="9">库存与授信多维动态比对</text>
|
||||
|
||||
<rect x="304" y="0" width="142" height="70" rx="4" fill="#FFFFFF" stroke="#E2E8F0"/>
|
||||
<text x="316" y="22" fill="#64748B" font-size="10">渠道价格体系</text>
|
||||
<text x="316" y="46" fill="#0F172A" font-size="13" font-weight="700">多级阶梯定价引擎</text>
|
||||
<text x="316" y="62" fill="#10B981" font-size="9">合伙人/渠道/直客规则隔离</text>
|
||||
|
||||
<rect x="456" y="0" width="148" height="70" rx="4" fill="#EFF6FF" stroke="#93C5FD"/>
|
||||
<text x="468" y="22" fill="#1E40AF" font-size="10" font-weight="700">履约调度机制</text>
|
||||
<text x="468" y="46" fill="#2563EB" font-size="13" font-weight="700">前置仓智能拆单</text>
|
||||
<text x="468" y="62" fill="#1D4ED8" font-size="9">按仓储库存状态就近分派</text>
|
||||
|
||||
<!-- 中部:订单流向与区域网络分布 -->
|
||||
<g transform="translate(0, 82)">
|
||||
<rect width="395" height="175" rx="4" fill="#FFFFFF" stroke="#E2E8F0"/>
|
||||
<text x="14" y="24" fill="#1E293B" font-size="11" font-weight="700">全国各省区分销中台订单流转状态</text>
|
||||
|
||||
<rect x="14" y="38" width="367" height="32" rx="3" fill="#F8FAFC" stroke="#E2E8F0"/>
|
||||
<text x="22" y="58" fill="#0F172A" font-size="10" font-weight="600">西南运营中心 · 贵阳总仓</text>
|
||||
<text x="180" y="58" fill="#2563EB" font-size="10">主集群节点 · 运行正常</text>
|
||||
<rect x="300" y="44" width="70" height="20" rx="2" fill="#ECFDF5"/>
|
||||
<text x="312" y="58" fill="#047857" font-size="9" font-weight="700">就近自动拆单</text>
|
||||
|
||||
<rect x="14" y="76" width="367" height="32" rx="3" fill="#F8FAFC" stroke="#E2E8F0"/>
|
||||
<text x="22" y="96" fill="#0F172A" font-size="10" font-weight="600">华东运营中心 · 杭州总仓</text>
|
||||
<text x="180" y="96" fill="#2563EB" font-size="10">从集群节点 · 读写分离</text>
|
||||
<rect x="300" y="82" width="70" height="20" rx="2" fill="#ECFDF5"/>
|
||||
<text x="312" y="96" fill="#047857" font-size="9" font-weight="700">就近自动拆单</text>
|
||||
|
||||
<rect x="14" y="114" width="367" height="32" rx="3" fill="#F8FAFC" stroke="#E2E8F0"/>
|
||||
<text x="22" y="134" fill="#0F172A" font-size="10" font-weight="600">华南运营中心 · 广州总仓</text>
|
||||
<text x="180" y="134" fill="#2563EB" font-size="10">从集群节点 · 读写分离</text>
|
||||
<rect x="300" y="120" width="70" height="20" rx="2" fill="#ECFDF5"/>
|
||||
<text x="312" y="134" fill="#047857" font-size="9" font-weight="700">就近自动拆单</text>
|
||||
|
||||
<text x="14" y="165" fill="#64748B" font-size="9">微服务分布式架构 · 支持水平弹性伸缩与数据库主从读写分离</text>
|
||||
<g transform="translate(554, 20)">
|
||||
<rect width="26" height="26" rx="4" fill="#FEF2F2" stroke="#DC2626" stroke-width="1.2"/>
|
||||
<rect x="2.5" y="2.5" width="21" height="21" rx="2" fill="none" stroke="#DC2626" stroke-width="0.5" stroke-opacity="0.5"/>
|
||||
<text x="13" y="18" fill="#DC2626" font-family="'Noto Serif SC', 'SimSun', serif" font-size="13" font-weight="700" text-anchor="middle">通</text>
|
||||
</g>
|
||||
|
||||
<!-- 右侧:阶梯价试算与授信清算状态 -->
|
||||
<g transform="translate(407, 82)">
|
||||
<rect width="197" height="175" rx="4" fill="#FFFFFF" stroke="#E2E8F0"/>
|
||||
<text x="12" y="24" fill="#1E293B" font-size="11" font-weight="700">核心结算与风控引擎</text>
|
||||
|
||||
<rect x="10" y="38" width="177" height="38" rx="3" fill="#F8FAFC" stroke="#E2E8F0"/>
|
||||
<text x="16" y="54" fill="#0F172A" font-size="10" font-weight="600">多级阶梯定价引擎</text>
|
||||
<text x="16" y="68" fill="#10B981" font-size="9">按渠道等级策略精准核算</text>
|
||||
<g transform="translate(300, 190)">
|
||||
<ellipse cx="0" cy="20" rx="200" ry="90" fill="none" stroke="#E2E8F0" stroke-width="1.2" stroke-dasharray="5,4"/>
|
||||
|
||||
<rect x="10" y="82" width="177" height="38" rx="3" fill="#F8FAFC" stroke="#E2E8F0"/>
|
||||
<text x="16" y="98" fill="#0F172A" font-size="10" font-weight="600">授信账期风控中枢</text>
|
||||
<text x="16" y="112" fill="#2563EB" font-size="9">超额自动拦截,防范风险</text>
|
||||
<circle cx="0" cy="0" r="45" fill="#EFF6FF" opacity="0.8"/>
|
||||
<circle cx="0" cy="0" r="32" fill="url(#blueGrad)" filter="url(#cardShadow)"/>
|
||||
<circle cx="0" cy="0" r="14" fill="#FFFFFF"/>
|
||||
<circle cx="0" cy="0" r="6" fill="#1D4ED8"/>
|
||||
|
||||
<rect x="10" y="126" width="177" height="40" rx="3" fill="#ECFDF5" stroke="#A7F3D0"/>
|
||||
<text x="16" y="144" fill="#065F46" font-size="10" font-weight="700">全流程业务闭环</text>
|
||||
<text x="16" y="157" fill="#047857" font-size="8">订货/结算/出库全链路贯通</text>
|
||||
<g transform="translate(-130, -35)">
|
||||
<line x1="0" y1="0" x2="105" y2="28" stroke="#93C5FD" stroke-width="1.5" stroke-dasharray="4,3"/>
|
||||
<circle cx="0" cy="0" r="20" fill="url(#glassGrad)" stroke="#2563EB" stroke-width="1.2"/>
|
||||
<circle cx="0" cy="0" r="7" fill="#2563EB"/>
|
||||
</g>
|
||||
|
||||
<!-- 底部保障条 -->
|
||||
<g transform="translate(0, 268)">
|
||||
<rect width="604" height="68" rx="4" fill="#F8FAFC" stroke="#E2E8F0"/>
|
||||
<text x="16" y="26" fill="#0F172A" font-size="11" font-weight="700">技术方案架构解析:</text>
|
||||
<text x="130" y="26" fill="#475569" font-size="11">以高可用分布式 Spring Cloud + MySQL 读写分离架构替代旧版单体系统,</text>
|
||||
<text x="16" y="48" fill="#475569" font-size="11">打通全渠道订货、阶梯结算与仓储分单闭环,实现复杂业务全流程自动化协同与双向幂等校验。</text>
|
||||
<g transform="translate(130, -35)">
|
||||
<line x1="0" y1="0" x2="-105" y2="28" stroke="#93C5FD" stroke-width="1.5" stroke-dasharray="4,3"/>
|
||||
<circle cx="0" cy="0" r="20" fill="url(#glassGrad)" stroke="#06B6D4" stroke-width="1.2"/>
|
||||
<circle cx="0" cy="0" r="7" fill="#06B6D4"/>
|
||||
</g>
|
||||
|
||||
<g transform="translate(-85, 65)">
|
||||
<line x1="0" y1="0" x2="68" y2="-52" stroke="#CBD5E1" stroke-width="1.2"/>
|
||||
<circle cx="0" cy="0" r="15" fill="url(#glassGrad)" stroke="#CBD5E1" stroke-width="1"/>
|
||||
<circle cx="0" cy="0" r="5" fill="#7C3AED"/>
|
||||
</g>
|
||||
|
||||
<g transform="translate(85, 65)">
|
||||
<line x1="0" y1="0" x2="-68" y2="-52" stroke="#CBD5E1" stroke-width="1.2"/>
|
||||
<circle cx="0" cy="0" r="15" fill="url(#glassGrad)" stroke="#CBD5E1" stroke-width="1"/>
|
||||
<circle cx="0" cy="0" r="5" fill="#2563EB"/>
|
||||
</g>
|
||||
|
||||
<path d="M -130 -35 Q 0 -80 130 -35" fill="none" stroke="url(#cyanGrad)" stroke-width="2" stroke-linecap="round"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
之前 宽度: | 高度: | 大小: 6.3 KiB 之后 宽度: | 高度: | 大小: 4.0 KiB |
@@ -1,91 +1,69 @@
|
||||
<svg width="640" height="400" viewBox="0 0 640 400" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<svg width="600" height="380" viewBox="0 0 600 380" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<defs>
|
||||
<linearGradient id="c3Bg" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
|
||||
<linearGradient id="bgGrad" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#FFFFFF"/>
|
||||
<stop offset="100%" stop-color="#F8FAFC"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="blueGrad" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#2563EB"/>
|
||||
<stop offset="100%" stop-color="#1D4ED8"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="cyanGrad" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#06B6D4"/>
|
||||
<stop offset="100%" stop-color="#0EA5E9"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="purpleGrad" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#7C3AED"/>
|
||||
<stop offset="100%" stop-color="#6366F1"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="glassGrad" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#FFFFFF" stop-opacity="0.85"/>
|
||||
<stop offset="100%" stop-color="#F1F5F9" stop-opacity="0.6"/>
|
||||
</linearGradient>
|
||||
<pattern id="lattice" width="28" height="28" patternUnits="userSpaceOnUse">
|
||||
<path d="M 28 0 L 0 0 0 28" fill="none" stroke="#E2E8F0" stroke-width="0.7" stroke-dasharray="3,3"/>
|
||||
</pattern>
|
||||
<filter id="softGlow" x="-20%" y="-20%" width="140%" height="140%">
|
||||
<feGaussianBlur stdDeviation="12" result="blur"/>
|
||||
<feComposite in="SourceGraphic" in2="blur" operator="over"/>
|
||||
</filter>
|
||||
<filter id="cardShadow" x="-10%" y="-10%" width="120%" height="120%">
|
||||
<feDropShadow dx="0" dy="6" stdDeviation="10" flood-color="#0F172A" flood-opacity="0.06"/>
|
||||
</filter>
|
||||
|
||||
</defs>
|
||||
|
||||
<rect width="640" height="400" rx="8" fill="url(#c3Bg)"/>
|
||||
<rect x="1" y="1" width="638" height="398" rx="7" fill="none" stroke="#CBD5E1" stroke-width="1.5"/>
|
||||
<rect width="600" height="380" rx="8" fill="url(#bgGrad)"/>
|
||||
<rect width="600" height="380" rx="8" fill="url(#lattice)" opacity="0.65"/>
|
||||
<rect x="1" y="1" width="598" height="378" rx="7" fill="none" stroke="#E2E8F0" stroke-width="1.5"/>
|
||||
|
||||
<!-- 浏览器顶部视窗窗口栏 -->
|
||||
<rect x="0" y="0" width="640" height="38" rx="8 8 0 0" fill="#F1F5F9" stroke="#E2E8F0"/>
|
||||
<circle cx="20" cy="19" r="4.5" fill="#EF4444"/>
|
||||
<circle cx="34" cy="19" r="4.5" fill="#F59E0B"/>
|
||||
<circle cx="48" cy="19" r="4.5" fill="#10B981"/>
|
||||
|
||||
<rect x="70" y="8" width="460" height="22" rx="4" fill="#FFFFFF" stroke="#E2E8F0"/>
|
||||
<text x="82" y="23" fill="#64748B" font-family="'Inter', sans-serif" font-size="10">https://internal.ai-gov.portal.local · 政企公文与合规审查智能体中台 (纯内网隔离)</text>
|
||||
<rect x="548" y="9" width="76" height="20" rx="2" fill="#FAF5FF" stroke="#7C3AED"/>
|
||||
<text x="556" y="23" fill="#7C3AED" font-size="10" font-weight="700">政企智能体</text>
|
||||
|
||||
<!-- 控制大盘看板 -->
|
||||
<g transform="translate(18, 50)">
|
||||
<!-- 顶部核心机制指标 -->
|
||||
<rect x="0" y="0" width="142" height="70" rx="4" fill="#FFFFFF" stroke="#E2E8F0"/>
|
||||
<text x="12" y="22" fill="#64748B" font-size="10">专属合规知识库</text>
|
||||
<text x="12" y="46" fill="#0F172A" font-size="13" font-weight="700">规章法条向量化</text>
|
||||
<text x="12" y="62" fill="#10B981" font-size="9">多路召回与分块语义对齐</text>
|
||||
|
||||
<rect x="152" y="0" width="142" height="70" rx="4" fill="#FFFFFF" stroke="#E2E8F0"/>
|
||||
<text x="164" y="22" fill="#64748B" font-size="10">合规初审机制</text>
|
||||
<text x="164" y="46" fill="#2563EB" font-size="13" font-weight="700">人机协同智能初审</text>
|
||||
<text x="164" y="62" fill="#64748B" font-size="9">基于基线条款自动对照预警</text>
|
||||
|
||||
<rect x="304" y="0" width="142" height="70" rx="4" fill="#FFFFFF" stroke="#E2E8F0"/>
|
||||
<text x="316" y="22" fill="#64748B" font-size="10">检索响应时效</text>
|
||||
<text x="316" y="46" fill="#10B981" font-size="13" font-weight="700">毫秒级向量匹配</text>
|
||||
<text x="316" y="62" fill="#10B981" font-size="9">精准定位法规章节与段落</text>
|
||||
|
||||
<rect x="456" y="0" width="148" height="70" rx="4" fill="#FAF5FF" stroke="#E9D5FF"/>
|
||||
<text x="468" y="22" fill="#6B21A8" font-size="10" font-weight="700">数据安全防护</text>
|
||||
<text x="468" y="46" fill="#7C3AED" font-size="13" font-weight="700">纯内网物理隔离</text>
|
||||
<text x="468" y="62" fill="#6B21A8" font-size="9">数据本地留存 · 审计全程留痕</text>
|
||||
|
||||
<!-- 中部:公文智能合规比对与问答视窗 -->
|
||||
<g transform="translate(0, 82)">
|
||||
<rect width="395" height="175" rx="4" fill="#FFFFFF" stroke="#E2E8F0"/>
|
||||
<text x="14" y="24" fill="#1E293B" font-size="11" font-weight="700">智能体合规审查交互流 (RAG 检索增强)</text>
|
||||
|
||||
<g transform="translate(14, 36)">
|
||||
<!-- 提问框 -->
|
||||
<rect width="367" height="34" rx="3" fill="#F8FAFC" stroke="#E2E8F0"/>
|
||||
<text x="12" y="21" fill="#475569" font-size="10">待审文件:《某大型采购招标文件第4章 合规初核》</text>
|
||||
|
||||
<!-- 智能体分析回复 -->
|
||||
<rect y="42" width="367" height="88" rx="3" fill="#FAF5FF" stroke="#E9D5FF"/>
|
||||
<text x="12" y="58" fill="#6B21A8" font-size="10" font-weight="700">合规 Agent 初核建议 (匹配法规标准数据库):</text>
|
||||
<text x="12" y="74" fill="#334155" font-size="9">✓ 资金支付节点符合相关采购管理法规实施条例要求;</text>
|
||||
<text x="12" y="88" fill="#DC2626" font-size="9" font-weight="700">! 重点关注:建议复查质保金留存条款比例是否符合行业基准;</text>
|
||||
<text x="12" y="104" fill="#10B981" font-size="9">✓ 已标注关联法律原文段落出处,支持人工决策复核。</text>
|
||||
</g>
|
||||
<g transform="translate(554, 20)">
|
||||
<rect width="26" height="26" rx="4" fill="#FEF2F2" stroke="#DC2626" stroke-width="1.2"/>
|
||||
<rect x="2.5" y="2.5" width="21" height="21" rx="2" fill="none" stroke="#DC2626" stroke-width="0.5" stroke-opacity="0.5"/>
|
||||
<text x="13" y="18" fill="#DC2626" font-family="'Noto Serif SC', 'SimSun', serif" font-size="13" font-weight="700" text-anchor="middle">安</text>
|
||||
</g>
|
||||
|
||||
<!-- 右侧:内网模型配置 -->
|
||||
<g transform="translate(407, 82)">
|
||||
<rect width="197" height="175" rx="4" fill="#FFFFFF" stroke="#E2E8F0"/>
|
||||
<text x="12" y="24" fill="#1E293B" font-size="11" font-weight="700">内网技术栈与规格</text>
|
||||
|
||||
<rect x="10" y="38" width="177" height="38" rx="3" fill="#ECFDF5" stroke="#A7F3D0"/>
|
||||
<text x="16" y="54" fill="#065F46" font-size="10" font-weight="600">纯私有内网物理部署</text>
|
||||
<text x="16" y="68" fill="#047857" font-size="8">政企机房私有服务器托管</text>
|
||||
<g transform="translate(300, 190)">
|
||||
<polygon points="0,-120 104,-60 104,60 0,120 -104,60 -104,-60" fill="none" stroke="#E2E8F0" stroke-width="1.2" stroke-dasharray="5,4"/>
|
||||
<polygon points="0,-95 82,-47 82,47 0,95 -82,47 -82,-47" fill="url(#glassGrad)" stroke="#CBD5E1" stroke-width="1.5" opacity="0.7"/>
|
||||
|
||||
<rect x="10" y="82" width="177" height="38" rx="3" fill="#F8FAFC" stroke="#E2E8F0"/>
|
||||
<text x="16" y="98" fill="#0F172A" font-size="10" font-weight="600">国产算力芯片量化加速</text>
|
||||
<text x="16" y="112" fill="#64748B" font-size="8">支持国产算力平台与模型量化运行</text>
|
||||
<circle cx="0" cy="0" r="62" fill="#FAF5FF" opacity="0.8"/>
|
||||
<circle cx="0" cy="0" r="50" fill="none" stroke="#7C3AED" stroke-width="1.2" stroke-dasharray="4,4"/>
|
||||
|
||||
<rect x="10" y="126" width="177" height="40" rx="3" fill="#F8FAFC" stroke="#E2E8F0"/>
|
||||
<text x="16" y="144" fill="#0F172A" font-size="10" font-weight="600">多 Agent 工作流编排</text>
|
||||
<text x="16" y="157" fill="#2563EB" font-size="8">初核 -> 比对 -> 汇签协同流转</text>
|
||||
<g filter="url(#cardShadow)">
|
||||
<circle cx="0" cy="0" r="32" fill="url(#purpleGrad)"/>
|
||||
<circle cx="0" cy="0" r="20" fill="url(#blueGrad)"/>
|
||||
<circle cx="0" cy="0" r="9" fill="#FFFFFF"/>
|
||||
</g>
|
||||
|
||||
<!-- 底部保障条 -->
|
||||
<g transform="translate(0, 268)">
|
||||
<rect width="604" height="68" rx="4" fill="#F8FAFC" stroke="#E2E8F0"/>
|
||||
<text x="16" y="26" fill="#0F172A" font-size="11" font-weight="700">技术方案架构解析:</text>
|
||||
<text x="130" y="26" fill="#475569" font-size="11">基于私有化部署的检索增强(RAG)大模型架构,构建严格物理隔离的智能合规辅助系统,</text>
|
||||
<text x="16" y="48" fill="#475569" font-size="11">实现公文法条精准溯源、敏感数据机房本地隔离与人机协同初审,保障政企数据资产安全自主可控。</text>
|
||||
</g>
|
||||
<circle cx="0" cy="-95" r="4.5" fill="#2563EB"/>
|
||||
<circle cx="82" cy="-47" r="4.5" fill="#7C3AED"/>
|
||||
<circle cx="82" cy="47" r="4.5" fill="#06B6D4"/>
|
||||
<circle cx="0" cy="95" r="4.5" fill="#2563EB"/>
|
||||
<circle cx="-82" cy="47" r="4.5" fill="#7C3AED"/>
|
||||
<circle cx="-82" cy="-47" r="4.5" fill="#06B6D4"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
之前 宽度: | 高度: | 大小: 5.8 KiB 之后 宽度: | 高度: | 大小: 3.3 KiB |
@@ -1,90 +1,71 @@
|
||||
<svg width="640" height="400" viewBox="0 0 640 400" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<svg width="600" height="380" viewBox="0 0 600 380" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<defs>
|
||||
<linearGradient id="c4Bg" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
|
||||
<linearGradient id="bgGrad" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#FFFFFF"/>
|
||||
<stop offset="100%" stop-color="#F8FAFC"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="blueGrad" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#2563EB"/>
|
||||
<stop offset="100%" stop-color="#1D4ED8"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="cyanGrad" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#06B6D4"/>
|
||||
<stop offset="100%" stop-color="#0EA5E9"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="purpleGrad" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#7C3AED"/>
|
||||
<stop offset="100%" stop-color="#6366F1"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="glassGrad" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#FFFFFF" stop-opacity="0.85"/>
|
||||
<stop offset="100%" stop-color="#F1F5F9" stop-opacity="0.6"/>
|
||||
</linearGradient>
|
||||
<pattern id="lattice" width="28" height="28" patternUnits="userSpaceOnUse">
|
||||
<path d="M 28 0 L 0 0 0 28" fill="none" stroke="#E2E8F0" stroke-width="0.7" stroke-dasharray="3,3"/>
|
||||
</pattern>
|
||||
<filter id="softGlow" x="-20%" y="-20%" width="140%" height="140%">
|
||||
<feGaussianBlur stdDeviation="12" result="blur"/>
|
||||
<feComposite in="SourceGraphic" in2="blur" operator="over"/>
|
||||
</filter>
|
||||
<filter id="cardShadow" x="-10%" y="-10%" width="120%" height="120%">
|
||||
<feDropShadow dx="0" dy="6" stdDeviation="10" flood-color="#0F172A" flood-opacity="0.06"/>
|
||||
</filter>
|
||||
|
||||
</defs>
|
||||
|
||||
<rect width="640" height="400" rx="8" fill="url(#c4Bg)"/>
|
||||
<rect x="1" y="1" width="638" height="398" rx="7" fill="none" stroke="#CBD5E1" stroke-width="1.5"/>
|
||||
<rect width="600" height="380" rx="8" fill="url(#bgGrad)"/>
|
||||
<rect width="600" height="380" rx="8" fill="url(#lattice)" opacity="0.65"/>
|
||||
<rect x="1" y="1" width="598" height="378" rx="7" fill="none" stroke="#E2E8F0" stroke-width="1.5"/>
|
||||
|
||||
<!-- 浏览器顶部视窗窗口栏 -->
|
||||
<rect x="0" y="0" width="640" height="38" rx="8 8 0 0" fill="#F1F5F9" stroke="#E2E8F0"/>
|
||||
<circle cx="20" cy="19" r="4.5" fill="#EF4444"/>
|
||||
<circle cx="34" cy="19" r="4.5" fill="#F59E0B"/>
|
||||
<circle cx="48" cy="19" r="4.5" fill="#10B981"/>
|
||||
|
||||
<rect x="70" y="8" width="460" height="22" rx="4" fill="#FFFFFF" stroke="#E2E8F0"/>
|
||||
<text x="82" y="23" fill="#64748B" font-family="'Inter', sans-serif" font-size="10">https://mes-erp.heavy-machinery.com · 智能制造数字车间生产与进销存管理系统</text>
|
||||
<rect x="548" y="9" width="76" height="20" rx="2" fill="#EFF6FF" stroke="#2563EB"/>
|
||||
<text x="556" y="23" fill="#2563EB" font-size="10" font-weight="700">智能制造ERP</text>
|
||||
|
||||
<!-- 控制大盘看板 -->
|
||||
<g transform="translate(18, 50)">
|
||||
<!-- 顶部核心机制指标 -->
|
||||
<rect x="0" y="0" width="142" height="70" rx="4" fill="#FFFFFF" stroke="#E2E8F0"/>
|
||||
<text x="12" y="22" fill="#64748B" font-size="10">物料周转管控</text>
|
||||
<text x="12" y="46" fill="#0F172A" font-size="13" font-weight="700">动态 BOM 展开</text>
|
||||
<text x="12" y="62" fill="#10B981" font-size="9">安全库存上下限动态监控</text>
|
||||
|
||||
<rect x="152" y="0" width="142" height="70" rx="4" fill="#FFFFFF" stroke="#E2E8F0"/>
|
||||
<text x="164" y="22" fill="#64748B" font-size="10">生产排产计划</text>
|
||||
<text x="164" y="46" fill="#2563EB" font-size="13" font-weight="700">有限产能智能排程</text>
|
||||
<text x="164" y="62" fill="#64748B" font-size="9">工序负荷与交期自动比对</text>
|
||||
|
||||
<rect x="304" y="0" width="142" height="70" rx="4" fill="#FFFFFF" stroke="#E2E8F0"/>
|
||||
<text x="316" y="22" fill="#64748B" font-size="10">批次追溯机制</text>
|
||||
<text x="316" y="46" fill="#10B981" font-size="13" font-weight="700">全批次一码贯通</text>
|
||||
<text x="316" y="62" fill="#10B981" font-size="9">原料-半成品-成品扫码追踪</text>
|
||||
|
||||
<rect x="456" y="0" width="148" height="70" rx="4" fill="#ECFDF5" stroke="#A7F3D0"/>
|
||||
<text x="468" y="22" fill="#065F46" font-size="10" font-weight="700">业财协同对账</text>
|
||||
<text x="468" y="46" fill="#047857" font-size="13" font-weight="700">金蝶用友凭证映射</text>
|
||||
<text x="468" y="62" fill="#047857" font-size="9">进销存与财务系统双向核销</text>
|
||||
|
||||
<!-- 中部:车间生产排产与仓库调拨看板 -->
|
||||
<g transform="translate(0, 82)">
|
||||
<rect width="395" height="175" rx="4" fill="#FFFFFF" stroke="#E2E8F0"/>
|
||||
<text x="14" y="24" fill="#1E293B" font-size="11" font-weight="700">数字化装配车间产线与立体库联动状态</text>
|
||||
|
||||
<g transform="translate(14, 36)">
|
||||
<rect width="367" height="34" rx="3" fill="#F8FAFC" stroke="#E2E8F0"/>
|
||||
<text x="12" y="21" fill="#0F172A" font-size="10" font-weight="700">产线 01 (高压泵体装配):工单 #WO-9821 正常执行 · 状态实时回传</text>
|
||||
|
||||
<rect y="40" width="367" height="34" rx="3" fill="#F8FAFC" stroke="#E2E8F0"/>
|
||||
<text x="12" y="61" fill="#0F172A" font-size="10" font-weight="700">产线 02 (精工齿轮加工):工单 #WO-9822 正常执行 · 状态实时回传</text>
|
||||
|
||||
<rect y="80" width="367" height="42" rx="3" fill="#ECFDF5" stroke="#A7F3D0"/>
|
||||
<text x="12" y="98" fill="#065F46" font-size="10" font-weight="700">立体仓 AGV 自动配送中枢:</text>
|
||||
<text x="12" y="112" fill="#047857" font-size="9">根据领料单智能调度配送至指定工位,减少物料滞留</text>
|
||||
</g>
|
||||
<g transform="translate(554, 20)">
|
||||
<rect width="26" height="26" rx="4" fill="#FEF2F2" stroke="#DC2626" stroke-width="1.2"/>
|
||||
<rect x="2.5" y="2.5" width="21" height="21" rx="2" fill="none" stroke="#DC2626" stroke-width="0.5" stroke-opacity="0.5"/>
|
||||
<text x="13" y="18" fill="#DC2626" font-family="'Noto Serif SC', 'SimSun', serif" font-size="13" font-weight="700" text-anchor="middle">精</text>
|
||||
</g>
|
||||
|
||||
<!-- 右侧:工业集成认证 -->
|
||||
<g transform="translate(407, 82)">
|
||||
<rect width="197" height="175" rx="4" fill="#FFFFFF" stroke="#E2E8F0"/>
|
||||
<text x="12" y="24" fill="#1E293B" font-size="11" font-weight="700">工业级特性与指标</text>
|
||||
|
||||
<rect x="10" y="38" width="177" height="38" rx="3" fill="#F8FAFC" stroke="#E2E8F0"/>
|
||||
<text x="16" y="54" fill="#0F172A" font-size="10" font-weight="600">Modbus / PLC 设备对接</text>
|
||||
<text x="16" y="68" fill="#64748B" font-size="8">机床运行工况毫秒级数据采集</text>
|
||||
<g transform="translate(300, 190)">
|
||||
<circle cx="0" cy="0" r="130" fill="none" stroke="#E2E8F0" stroke-width="1" stroke-dasharray="6,4"/>
|
||||
<circle cx="0" cy="0" r="100" fill="none" stroke="#CBD5E1" stroke-width="1.2"/>
|
||||
<circle cx="0" cy="0" r="70" fill="#EFF6FF" opacity="0.6"/>
|
||||
|
||||
<rect x="10" y="82" width="177" height="38" rx="3" fill="#EFF6FF" stroke="#BFDBFE"/>
|
||||
<text x="16" y="98" fill="#1E40AF" font-size="10" font-weight="600">BOM 多层级拆解引擎</text>
|
||||
<text x="16" y="112" fill="#3B82F6" font-size="8">支持多层父子级物料穿透</text>
|
||||
<line x1="-120" y1="0" x2="120" y2="0" stroke="#CBD5E1" stroke-width="0.8"/>
|
||||
<line x1="0" y1="-120" x2="0" y2="120" stroke="#CBD5E1" stroke-width="0.8"/>
|
||||
<line x1="-85" y1="-85" x2="85" y2="85" stroke="#E2E8F0" stroke-width="0.8" stroke-dasharray="3,3"/>
|
||||
<line x1="-85" y1="85" x2="85" y2="-85" stroke="#E2E8F0" stroke-width="0.8" stroke-dasharray="3,3"/>
|
||||
|
||||
<rect x="10" y="126" width="177" height="40" rx="3" fill="#ECFDF5" stroke="#A7F3D0"/>
|
||||
<text x="16" y="144" fill="#065F46" font-size="10" font-weight="700">全流程协同规范</text>
|
||||
<text x="16" y="157" fill="#047857" font-size="8">进销存与车间工序全面贯通</text>
|
||||
<g filter="url(#cardShadow)">
|
||||
<polygon points="0,-40 38,-15 38,25 0,50 -38,25 -38,-15" fill="url(#glassGrad)" stroke="#2563EB" stroke-width="1.5"/>
|
||||
<circle cx="0" cy="5" r="22" fill="url(#blueGrad)"/>
|
||||
<circle cx="0" cy="5" r="10" fill="#FFFFFF"/>
|
||||
<circle cx="0" cy="5" r="4" fill="#1D4ED8"/>
|
||||
</g>
|
||||
|
||||
<!-- 底部保障条 -->
|
||||
<g transform="translate(0, 268)">
|
||||
<rect width="604" height="68" rx="4" fill="#F8FAFC" stroke="#E2E8F0"/>
|
||||
<text x="16" y="26" fill="#0F172A" font-size="11" font-weight="700">技术方案架构解析:</text>
|
||||
<text x="130" y="26" fill="#475569" font-size="11">通过业财一体进销存与车间制造执行系统深度融合,打通物料采购、在制品流转与财务核算全链路,</text>
|
||||
<text x="16" y="48" fill="#475569" font-size="11">实现动态 BOM 拆解、批次条码追踪与工序状态透明化,提升生产全周期协作效能与数据准确性。</text>
|
||||
</g>
|
||||
<circle cx="0" cy="-100" r="5" fill="#2563EB"/>
|
||||
<circle cx="100" cy="0" r="5" fill="#06B6D4"/>
|
||||
<circle cx="0" cy="100" r="5" fill="#7C3AED"/>
|
||||
<circle cx="-100" cy="0" r="5" fill="#2563EB"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
之前 宽度: | 高度: | 大小: 5.7 KiB 之后 宽度: | 高度: | 大小: 3.5 KiB |
@@ -1,78 +1,80 @@
|
||||
<svg width="640" height="360" viewBox="0 0 640 360" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<svg width="600" height="380" viewBox="0 0 600 380" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<defs>
|
||||
<linearGradient id="erpBg" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
|
||||
<linearGradient id="bgGrad" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#FFFFFF"/>
|
||||
<stop offset="100%" stop-color="#F8FAFC"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="blueGrad" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#2563EB"/>
|
||||
<stop offset="100%" stop-color="#1D4ED8"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="cyanGrad" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#06B6D4"/>
|
||||
<stop offset="100%" stop-color="#0EA5E9"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="purpleGrad" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#7C3AED"/>
|
||||
<stop offset="100%" stop-color="#6366F1"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="glassGrad" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#FFFFFF" stop-opacity="0.85"/>
|
||||
<stop offset="100%" stop-color="#F1F5F9" stop-opacity="0.6"/>
|
||||
</linearGradient>
|
||||
<pattern id="lattice" width="28" height="28" patternUnits="userSpaceOnUse">
|
||||
<path d="M 28 0 L 0 0 0 28" fill="none" stroke="#E2E8F0" stroke-width="0.7" stroke-dasharray="3,3"/>
|
||||
</pattern>
|
||||
<filter id="softGlow" x="-20%" y="-20%" width="140%" height="140%">
|
||||
<feGaussianBlur stdDeviation="12" result="blur"/>
|
||||
<feComposite in="SourceGraphic" in2="blur" operator="over"/>
|
||||
</filter>
|
||||
<filter id="cardShadow" x="-10%" y="-10%" width="120%" height="120%">
|
||||
<feDropShadow dx="0" dy="6" stdDeviation="10" flood-color="#0F172A" flood-opacity="0.06"/>
|
||||
</filter>
|
||||
|
||||
</defs>
|
||||
|
||||
<rect width="640" height="360" rx="8" fill="url(#erpBg)"/>
|
||||
<rect x="1" y="1" width="638" height="358" rx="7" fill="none" stroke="#CBD5E1" stroke-width="1.5"/>
|
||||
<rect width="600" height="380" rx="8" fill="url(#bgGrad)"/>
|
||||
<rect width="600" height="380" rx="8" fill="url(#lattice)" opacity="0.65"/>
|
||||
<rect x="1" y="1" width="598" height="378" rx="7" fill="none" stroke="#E2E8F0" stroke-width="1.5"/>
|
||||
|
||||
<!-- 顶部视窗 -->
|
||||
<rect x="0" y="0" width="640" height="36" rx="8 8 0 0" fill="#F1F5F9" stroke="#E2E8F0"/>
|
||||
<circle cx="18" cy="18" r="4" fill="#EF4444"/>
|
||||
<circle cx="32" cy="18" r="4" fill="#F59E0B"/>
|
||||
<circle cx="46" cy="18" r="4" fill="#10B981"/>
|
||||
<rect x="64" y="8" width="460" height="20" rx="4" fill="#FFFFFF" stroke="#E2E8F0"/>
|
||||
<text x="76" y="22" fill="#64748B" font-family="'Inter', sans-serif" font-size="10">https://erp.enterprise.com · 企业级业财一体进销存管理系统</text>
|
||||
<rect x="540" y="8" width="85" height="20" rx="2" fill="#EFF6FF" stroke="#BFDBFE"/>
|
||||
<text x="548" y="22" fill="#2563EB" font-size="9" font-weight="700">商用级ERP系统</text>
|
||||
|
||||
<!-- 中部:多级仓储与进销存业务矩阵 -->
|
||||
<g transform="translate(16, 48)">
|
||||
<!-- 仓储概览 -->
|
||||
<rect width="290" height="120" rx="4" fill="#FFFFFF" stroke="#E2E8F0"/>
|
||||
<text x="14" y="24" fill="#1E293B" font-size="11" font-weight="700">智能仓储与库容预警中枢</text>
|
||||
|
||||
<g transform="translate(14, 38)">
|
||||
<rect width="262" height="32" rx="3" fill="#F8FAFC" stroke="#E2E8F0"/>
|
||||
<text x="10" y="20" fill="#0F172A" font-size="10" font-weight="600">总仓存储区:正常运行</text>
|
||||
<text x="160" y="20" fill="#10B981" font-size="9">安全库存动态预警就绪</text>
|
||||
|
||||
<rect y="38" width="262" height="32" rx="3" fill="#F8FAFC" stroke="#E2E8F0"/>
|
||||
<text x="10" y="58" fill="#0F172A" font-size="10" font-weight="600">多级前置仓:数据实时对齐</text>
|
||||
<text x="160" y="58" fill="#2563EB" font-size="9">调拨单自动流转扣减</text>
|
||||
<g transform="translate(554, 20)">
|
||||
<rect width="26" height="26" rx="4" fill="#FEF2F2" stroke="#DC2626" stroke-width="1.2"/>
|
||||
<rect x="2.5" y="2.5" width="21" height="21" rx="2" fill="none" stroke="#DC2626" stroke-width="0.5" stroke-opacity="0.5"/>
|
||||
<text x="13" y="18" fill="#DC2626" font-family="'Noto Serif SC', 'SimSun', serif" font-size="13" font-weight="700" text-anchor="middle">准</text>
|
||||
</g>
|
||||
|
||||
<!-- 生产与BOM -->
|
||||
<g transform="translate(304, 0)">
|
||||
<rect width="304" height="120" rx="4" fill="#FFFFFF" stroke="#E2E8F0"/>
|
||||
<text x="14" y="24" fill="#1E293B" font-size="11" font-weight="700">BOM 拆解与批次质量追踪</text>
|
||||
|
||||
<g transform="translate(14, 38)">
|
||||
<rect width="276" height="32" rx="3" fill="#F8FAFC" stroke="#E2E8F0"/>
|
||||
<text x="10" y="20" fill="#0F172A" font-size="10" font-weight="600">多层级 BOM 动态展开</text>
|
||||
<text x="160" y="20" fill="#2563EB" font-size="9">父子级物料穿透解析</text>
|
||||
<g transform="translate(300, 190)">
|
||||
<ellipse cx="0" cy="65" rx="190" ry="70" fill="none" stroke="#E2E8F0" stroke-width="1.2" stroke-dasharray="5,5"/>
|
||||
|
||||
<rect y="38" width="276" height="32" rx="3" fill="#ECFDF5" stroke="#A7F3D0"/>
|
||||
<text x="10" y="58" fill="#065F46" font-size="10" font-weight="600">一码追溯系统就绪</text>
|
||||
<text x="160" y="58" fill="#047857" font-size="9">原料采购到成品扫码可查</text>
|
||||
</g>
|
||||
<g transform="translate(-80, 20)" filter="url(#cardShadow)">
|
||||
<polygon points="0,-30 38,-10 0,10 -38,-10" fill="url(#glassGrad)" stroke="#CBD5E1" stroke-width="1.2"/>
|
||||
<polygon points="-38,-10 0,10 0,40 -38,20" fill="#E2E8F0"/>
|
||||
<polygon points="0,10 38,-10 38,20 0,40" fill="#F1F5F9"/>
|
||||
<line x1="-19" y1="0" x2="19" y2="-20" stroke="#94A3B8" stroke-width="0.8"/>
|
||||
<circle cx="0" cy="-10" r="3.5" fill="#2563EB"/>
|
||||
</g>
|
||||
|
||||
<!-- 底部业财对账与财务凭证流 -->
|
||||
<g transform="translate(0, 132)">
|
||||
<rect width="594" height="155" rx="4" fill="#FFFFFF" stroke="#E2E8F0"/>
|
||||
<text x="16" y="24" fill="#1E293B" font-size="11" font-weight="700">业财一体化财务核算与外部财务系统对接</text>
|
||||
|
||||
<g transform="translate(16, 36)">
|
||||
<rect width="180" height="50" rx="3" fill="#F8FAFC" stroke="#E2E8F0"/>
|
||||
<text x="12" y="20" fill="#0F172A" font-size="10" font-weight="600">采购与入库核验</text>
|
||||
<text x="12" y="38" fill="#64748B" font-size="9">入库单自动对应应付账款</text>
|
||||
|
||||
<rect x="194" width="180" height="50" rx="3" fill="#F8FAFC" stroke="#E2E8F0"/>
|
||||
<text x="12" y="20" fill="#0F172A" font-size="10" font-weight="600" transform="translate(194, 0)">销售与出库结算</text>
|
||||
<text x="12" y="38" fill="#64748B" font-size="9" transform="translate(194, 0)">出库单自动生成应收账单</text>
|
||||
|
||||
<rect x="388" width="174" height="50" rx="3" fill="#EFF6FF" stroke="#BFDBFE"/>
|
||||
<text x="12" y="20" fill="#1E40AF" font-size="10" font-weight="700" transform="translate(388, 0)">标准财务接口集成</text>
|
||||
<text x="12" y="38" fill="#3B82F6" font-size="9" transform="translate(388, 0)">支持用友/金蝶凭证同步</text>
|
||||
<g transform="translate(80, 20)" filter="url(#cardShadow)">
|
||||
<polygon points="0,-30 38,-10 0,10 -38,-10" fill="url(#glassGrad)" stroke="#CBD5E1" stroke-width="1.2"/>
|
||||
<polygon points="-38,-10 0,10 0,40 -38,20" fill="#E2E8F0"/>
|
||||
<polygon points="0,10 38,-10 38,20 0,40" fill="#F1F5F9"/>
|
||||
<circle cx="0" cy="-10" r="3.5" fill="#06B6D4"/>
|
||||
</g>
|
||||
|
||||
<rect x="16" y="96" width="562" height="42" rx="3" fill="#F1F5F9"/>
|
||||
<text x="28" y="114" fill="#0F172A" font-size="10" font-weight="600">系统特性概述:</text>
|
||||
<text x="28" y="128" fill="#64748B" font-size="9">规范化工程架构设计与严格自动化测试,支持纯内网物理隔离部署与公有云容器化灵活选型。</text>
|
||||
<g transform="translate(0, -35)" filter="url(#cardShadow)">
|
||||
<circle cx="0" cy="0" r="42" fill="none" stroke="#2563EB" stroke-width="1.2" stroke-dasharray="4,4"/>
|
||||
<circle cx="0" cy="0" r="32" fill="url(#blueGrad)"/>
|
||||
<circle cx="0" cy="0" r="14" fill="#FFFFFF"/>
|
||||
<circle cx="0" cy="0" r="6" fill="#1D4ED8"/>
|
||||
</g>
|
||||
|
||||
<path d="M -80 10 Q 0 -15 80 10" fill="none" stroke="url(#cyanGrad)" stroke-width="2" stroke-linecap="round"/>
|
||||
<path d="M 80 30 Q 0 60 -80 30" fill="none" stroke="#2563EB" stroke-width="1.8" stroke-linecap="round" stroke-dasharray="5,3"/>
|
||||
|
||||
<line x1="0" y1="5" x2="0" y2="40" stroke="#CBD5E1" stroke-width="1.5" stroke-dasharray="3,3"/>
|
||||
<circle cx="0" cy="40" r="3.5" fill="#7C3AED"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
之前 宽度: | 高度: | 大小: 4.6 KiB 之后 宽度: | 高度: | 大小: 4.0 KiB |
@@ -1,92 +1,88 @@
|
||||
<svg width="640" height="360" viewBox="0 0 640 360" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<svg width="600" height="380" viewBox="0 0 600 380" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<defs>
|
||||
<linearGradient id="mallBg" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
|
||||
<linearGradient id="bgGrad" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#FFFFFF"/>
|
||||
<stop offset="100%" stop-color="#F8FAFC"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="blueGrad" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#2563EB"/>
|
||||
<stop offset="100%" stop-color="#1D4ED8"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="cyanGrad" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#06B6D4"/>
|
||||
<stop offset="100%" stop-color="#0EA5E9"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="purpleGrad" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#7C3AED"/>
|
||||
<stop offset="100%" stop-color="#6366F1"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="glassGrad" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#FFFFFF" stop-opacity="0.85"/>
|
||||
<stop offset="100%" stop-color="#F1F5F9" stop-opacity="0.6"/>
|
||||
</linearGradient>
|
||||
<pattern id="lattice" width="28" height="28" patternUnits="userSpaceOnUse">
|
||||
<path d="M 28 0 L 0 0 0 28" fill="none" stroke="#E2E8F0" stroke-width="0.7" stroke-dasharray="3,3"/>
|
||||
</pattern>
|
||||
<filter id="softGlow" x="-20%" y="-20%" width="140%" height="140%">
|
||||
<feGaussianBlur stdDeviation="12" result="blur"/>
|
||||
<feComposite in="SourceGraphic" in2="blur" operator="over"/>
|
||||
</filter>
|
||||
<filter id="cardShadow" x="-10%" y="-10%" width="120%" height="120%">
|
||||
<feDropShadow dx="0" dy="6" stdDeviation="10" flood-color="#0F172A" flood-opacity="0.06"/>
|
||||
</filter>
|
||||
|
||||
</defs>
|
||||
|
||||
<rect width="640" height="360" rx="8" fill="url(#mallBg)"/>
|
||||
<rect x="1" y="1" width="638" height="358" rx="7" fill="none" stroke="#CBD5E1" stroke-width="1.5"/>
|
||||
<rect width="600" height="380" rx="8" fill="url(#bgGrad)"/>
|
||||
<rect width="600" height="380" rx="8" fill="url(#lattice)" opacity="0.65"/>
|
||||
<rect x="1" y="1" width="598" height="378" rx="7" fill="none" stroke="#E2E8F0" stroke-width="1.5"/>
|
||||
|
||||
<!-- 顶部视窗 -->
|
||||
<rect x="0" y="0" width="640" height="36" rx="8 8 0 0" fill="#F1F5F9" stroke="#E2E8F0"/>
|
||||
<circle cx="18" cy="18" r="4" fill="#EF4444"/>
|
||||
<circle cx="32" cy="18" r="4" fill="#F59E0B"/>
|
||||
<circle cx="46" cy="18" r="4" fill="#10B981"/>
|
||||
<rect x="64" y="8" width="460" height="20" rx="4" fill="#FFFFFF" stroke="#E2E8F0"/>
|
||||
<text x="76" y="22" fill="#64748B" font-family="'Inter', sans-serif" font-size="10">https://mall-admin.enterprise.com · 多商户分销商城业务控制台</text>
|
||||
<rect x="540" y="8" width="85" height="20" rx="2" fill="#EFF6FF" stroke="#BFDBFE"/>
|
||||
<text x="548" y="22" fill="#2563EB" font-size="9" font-weight="700">商用级商城系统</text>
|
||||
|
||||
<!-- 顶部统计与指标卡 -->
|
||||
<g transform="translate(16, 48)">
|
||||
<rect width="144" height="64" rx="4" fill="#FFFFFF" stroke="#E2E8F0"/>
|
||||
<text x="10" y="20" fill="#64748B" font-size="10">订单归集引擎</text>
|
||||
<text x="10" y="42" fill="#0F172A" font-size="14" font-weight="700">全渠道实时归集</text>
|
||||
<text x="10" y="56" fill="#10B981" font-size="9">小程序/H5/App 多端并入</text>
|
||||
|
||||
<rect x="156" width="144" height="64" rx="4" fill="#FFFFFF" stroke="#E2E8F0"/>
|
||||
<text x="10" y="20" fill="#64748B" font-size="10" transform="translate(156, 0)">履约调度中枢</text>
|
||||
<text x="10" y="42" fill="#2563EB" font-size="14" font-weight="700" transform="translate(156, 0)">自动化分单拆单</text>
|
||||
<text x="10" y="56" fill="#10B981" font-size="9" transform="translate(156, 0)">支持跨仓联动与就近出库</text>
|
||||
|
||||
<rect x="312" width="144" height="64" rx="4" fill="#FFFFFF" stroke="#E2E8F0"/>
|
||||
<text x="10" y="20" fill="#64748B" font-size="10" transform="translate(312, 0)">分销风控体系</text>
|
||||
<text x="10" y="42" fill="#0F172A" font-size="14" font-weight="700" transform="translate(312, 0)">多级阶梯佣金</text>
|
||||
<text x="10" y="56" fill="#2563EB" font-size="9" transform="translate(312, 0)">合伙人权益强隔离规则</text>
|
||||
|
||||
<rect x="468" width="140" height="64" rx="4" fill="#FAF5FF" stroke="#E9D5FF"/>
|
||||
<text x="10" y="20" fill="#6B21A8" font-size="10" transform="translate(468, 0)">营销裂变组件</text>
|
||||
<text x="10" y="42" fill="#7C3AED" font-size="14" font-weight="700" transform="translate(468, 0)">拼团秒杀与优惠券</text>
|
||||
<text x="10" y="56" fill="#6B21A8" font-size="9" transform="translate(468, 0)">开箱即用丰富营销玩法</text>
|
||||
<g transform="translate(554, 20)">
|
||||
<rect width="26" height="26" rx="4" fill="#FEF2F2" stroke="#DC2626" stroke-width="1.2"/>
|
||||
<rect x="2.5" y="2.5" width="21" height="21" rx="2" fill="none" stroke="#DC2626" stroke-width="0.5" stroke-opacity="0.5"/>
|
||||
<text x="13" y="18" fill="#DC2626" font-family="'Noto Serif SC', 'SimSun', serif" font-size="13" font-weight="700" text-anchor="middle">商</text>
|
||||
</g>
|
||||
|
||||
<!-- 中部主功能区 -->
|
||||
<g transform="translate(16, 122)">
|
||||
<!-- 左侧订单流 -->
|
||||
<rect width="380" height="215" rx="4" fill="#FFFFFF" stroke="#E2E8F0"/>
|
||||
<text x="14" y="22" fill="#1E293B" font-size="11" font-weight="700">实时分单与多商户协同流转</text>
|
||||
|
||||
<g transform="translate(14, 34)">
|
||||
<rect width="352" height="32" rx="3" fill="#F8FAFC" stroke="#E2E8F0"/>
|
||||
<text x="12" y="20" fill="#0F172A" font-size="10" font-weight="600">订单 #ORD-8921 · 贵州生态茶业</text>
|
||||
<rect x="250" y="6" width="90" height="20" rx="2" fill="#ECFDF5"/>
|
||||
<text x="258" y="20" fill="#047857" font-size="9" font-weight="700">已自动完成拆单</text>
|
||||
<g transform="translate(300, 195)">
|
||||
<ellipse cx="0" cy="60" rx="190" ry="75" fill="none" stroke="#E2E8F0" stroke-width="1.5" stroke-dasharray="4,4"/>
|
||||
|
||||
<rect y="40" width="352" height="32" rx="3" fill="#F8FAFC" stroke="#E2E8F0"/>
|
||||
<text x="12" y="60" fill="#0F172A" font-size="10" font-weight="600">订单 #ORD-8922 · 刺梨原汁果饮</text>
|
||||
<rect x="250" y="46" width="90" height="20" rx="2" fill="#EFF6FF"/>
|
||||
<text x="258" y="60" fill="#1D4ED8" font-size="9" font-weight="700">物流电子面单就绪</text>
|
||||
<polygon points="0,-20 140,40 0,100 -140,40" fill="url(#glassGrad)" stroke="#CBD5E1" stroke-width="1.5"/>
|
||||
<polygon points="-140,40 0,100 0,116 -140,56" fill="#E2E8F0"/>
|
||||
<polygon points="0,100 140,40 140,56 0,116" fill="#F1F5F9"/>
|
||||
|
||||
<rect y="80" width="352" height="32" rx="3" fill="#F8FAFC" stroke="#E2E8F0"/>
|
||||
<text x="12" y="100" fill="#0F172A" font-size="10" font-weight="600">订单 #ORD-8923 · 智能文创礼盒</text>
|
||||
<rect x="250" y="86" width="90" height="20" rx="2" fill="#ECFDF5"/>
|
||||
<text x="258" y="100" fill="#047857" font-size="9" font-weight="700">已自动完成拆单</text>
|
||||
|
||||
<rect y="120" width="352" height="48" rx="3" fill="#F1F5F9"/>
|
||||
<text x="12" y="140" fill="#334155" font-size="9" font-weight="600">全渠道数据一致性保障机制:</text>
|
||||
<text x="12" y="156" fill="#64748B" font-size="8">分布式事务与双向幂等设计,杜绝并发重单与账实不符风险</text>
|
||||
<g transform="translate(0, 5)" filter="url(#cardShadow)">
|
||||
<polygon points="0,-32 40,-12 0,10 -40,-12" fill="url(#blueGrad)"/>
|
||||
<polygon points="-40,-12 0,10 0,42 -40,20" fill="#1D4ED8"/>
|
||||
<polygon points="0,10 40,-12 40,20 0,42" fill="#1E40AF"/>
|
||||
</g>
|
||||
|
||||
<!-- 右侧商户端结算 -->
|
||||
<g transform="translate(392, 0)">
|
||||
<rect width="216" height="215" rx="4" fill="#FFFFFF" stroke="#E2E8F0"/>
|
||||
<text x="14" y="22" fill="#1E293B" font-size="11" font-weight="700">商户结算与营销工具</text>
|
||||
|
||||
<g transform="translate(12, 34)">
|
||||
<rect width="192" height="52" rx="3" fill="#F8FAFC" stroke="#E2E8F0"/>
|
||||
<text x="10" y="20" fill="#0F172A" font-size="10" font-weight="600">微信/支付宝分账集成</text>
|
||||
<text x="10" y="38" fill="#10B981" font-size="8">支持多商户资金合规自动分账</text>
|
||||
|
||||
<rect y="60" width="192" height="52" rx="3" fill="#F8FAFC" stroke="#E2E8F0"/>
|
||||
<text x="10" y="80" fill="#0F172A" font-size="10" font-weight="600">全套营销工具链</text>
|
||||
<text x="10" y="98" fill="#2563EB" font-size="8">限时折扣 / 阶梯拼团 / 积分抵扣</text>
|
||||
|
||||
<rect y="120" width="192" height="48" rx="3" fill="#EFF6FF" stroke="#BFDBFE"/>
|
||||
<text x="10" y="140" fill="#1E40AF" font-size="10" font-weight="700">完整工程源码交付</text>
|
||||
<text x="10" y="156" fill="#3B82F6" font-size="8">完整交付后端+UniApp移动端工程源码</text>
|
||||
<g transform="translate(-75, -20)" filter="url(#cardShadow)">
|
||||
<polygon points="0,-24 30,-9 0,8 -30,-9" fill="url(#cyanGrad)"/>
|
||||
<polygon points="-30,-9 0,8 0,30 -30,13" fill="#0891B2"/>
|
||||
<polygon points="0,8 30,-9 30,13 0,30" fill="#0E7490"/>
|
||||
</g>
|
||||
|
||||
<g transform="translate(75, -20)" filter="url(#cardShadow)">
|
||||
<polygon points="0,-24 30,-9 0,8 -30,-9" fill="url(#purpleGrad)"/>
|
||||
<polygon points="-30,-9 0,8 0,30 -30,13" fill="#6D28D9"/>
|
||||
<polygon points="0,8 30,-9 30,13 0,30" fill="#5B21B6"/>
|
||||
</g>
|
||||
|
||||
<g transform="translate(0, -75)" filter="url(#cardShadow)">
|
||||
<polygon points="0,-18 22,-6 0,6 -22,-6" fill="url(#glassGrad)" stroke="#2563EB" stroke-width="1.2"/>
|
||||
<polygon points="-22,-6 0,6 0,20 -22,8" fill="#DBEAFE"/>
|
||||
<polygon points="0,6 22,-6 22,8 0,20" fill="#BFDBFE"/>
|
||||
<circle cx="0" cy="0" r="3" fill="#2563EB"/>
|
||||
</g>
|
||||
|
||||
<path d="M -75 -10 Q 0 -50 75 -10" fill="none" stroke="url(#blueGrad)" stroke-width="2" stroke-linecap="round"/>
|
||||
<path d="M 75 10 Q 0 50 -75 10" fill="none" stroke="url(#cyanGrad)" stroke-width="1.8" stroke-linecap="round" stroke-dasharray="4,3"/>
|
||||
<line x1="0" y1="-50" x2="0" y2="-25" stroke="#2563EB" stroke-width="1.5" stroke-dasharray="2,2"/>
|
||||
|
||||
<circle cx="-35" cy="-35" r="3.5" fill="#2563EB" opacity="0.6"/>
|
||||
<circle cx="45" cy="-35" r="3" fill="#7C3AED" opacity="0.6"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
之前 宽度: | 高度: | 大小: 5.8 KiB 之后 宽度: | 高度: | 大小: 4.4 KiB |
@@ -1,119 +1,72 @@
|
||||
<svg width="600" height="380" viewBox="0 0 600 380" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<defs>
|
||||
<linearGradient id="posBg" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
|
||||
<linearGradient id="bgGrad" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#FFFFFF"/>
|
||||
<stop offset="100%" stop-color="#F8FAFC"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="blueGrad" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#2563EB"/>
|
||||
<stop offset="100%" stop-color="#1D4ED8"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="cyanGrad" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#06B6D4"/>
|
||||
<stop offset="100%" stop-color="#0EA5E9"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="purpleGrad" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#7C3AED"/>
|
||||
<stop offset="100%" stop-color="#6366F1"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="glassGrad" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#FFFFFF" stop-opacity="0.85"/>
|
||||
<stop offset="100%" stop-color="#F1F5F9" stop-opacity="0.6"/>
|
||||
</linearGradient>
|
||||
<pattern id="lattice" width="28" height="28" patternUnits="userSpaceOnUse">
|
||||
<path d="M 28 0 L 0 0 0 28" fill="none" stroke="#E2E8F0" stroke-width="0.7" stroke-dasharray="3,3"/>
|
||||
</pattern>
|
||||
<filter id="softGlow" x="-20%" y="-20%" width="140%" height="140%">
|
||||
<feGaussianBlur stdDeviation="12" result="blur"/>
|
||||
<feComposite in="SourceGraphic" in2="blur" operator="over"/>
|
||||
</filter>
|
||||
<filter id="cardShadow" x="-10%" y="-10%" width="120%" height="120%">
|
||||
<feDropShadow dx="0" dy="6" stdDeviation="10" flood-color="#0F172A" flood-opacity="0.06"/>
|
||||
</filter>
|
||||
|
||||
</defs>
|
||||
|
||||
<rect width="600" height="380" rx="8" fill="url(#posBg)"/>
|
||||
<rect width="600" height="380" rx="8" fill="url(#bgGrad)"/>
|
||||
<rect width="600" height="380" rx="8" fill="url(#lattice)" opacity="0.65"/>
|
||||
<rect x="1" y="1" width="598" height="378" rx="7" fill="none" stroke="#E2E8F0" stroke-width="1.5"/>
|
||||
|
||||
<!-- 顶部控制条 -->
|
||||
<rect x="20" y="20" width="560" height="34" rx="4" fill="#FFFFFF" stroke="#E2E8F0"/>
|
||||
<circle cx="36" cy="37" r="4.5" fill="#EF4444"/>
|
||||
<circle cx="50" cy="37" r="4.5" fill="#F59E0B"/>
|
||||
<circle cx="64" cy="37" r="4.5" fill="#10B981"/>
|
||||
<text x="84" y="41" fill="#475569" font-family="'Inter', sans-serif" font-size="12" font-weight="600">Smart Cashier & Offline Store POS · 软硬一体离线收银终端</text>
|
||||
<rect x="500" y="27" width="66" height="20" rx="2" fill="#FEF2F2" stroke="#EF4444" stroke-width="1"/>
|
||||
<text x="506" y="41" fill="#DC2626" font-family="'Noto Serif SC', 'SimSun', serif" font-size="11" font-weight="700">毫秒核销</text>
|
||||
|
||||
<!-- 左侧:双屏收银主操作视窗 (双屏交互) -->
|
||||
<g transform="translate(20, 65)">
|
||||
<rect width="360" height="295" rx="6" fill="#0F172A" stroke="#334155" stroke-width="2"/>
|
||||
<rect x="6" y="6" width="348" height="283" rx="4" fill="#FFFFFF"/>
|
||||
|
||||
<!-- 顶部状态栏 -->
|
||||
<rect x="6" y="6" width="348" height="36" rx="4 4 0 0" fill="#1E293B"/>
|
||||
<text x="18" y="28" fill="#FFFFFF" font-size="12" font-weight="700">纳海川智能收银台 · 门店01号机</text>
|
||||
<circle cx="280" cy="24" r="4" fill="#10B981"/>
|
||||
<text x="290" y="28" fill="#10B981" font-size="10">网络畅通 / 离线就绪</text>
|
||||
|
||||
<!-- 收银左侧:商品点单分类 -->
|
||||
<rect x="12" y="48" width="80" height="235" rx="3" fill="#F8FAFC" stroke="#E2E8F0"/>
|
||||
<rect x="14" y="52" width="76" height="26" rx="2" fill="#2563EB"/>
|
||||
<text x="24" y="69" fill="#FFFFFF" font-size="10" font-weight="600">推荐爆款</text>
|
||||
<text x="24" y="98" fill="#475569" font-size="10">现磨咖啡</text>
|
||||
<text x="24" y="126" fill="#475569" font-size="10">烘焙面包</text>
|
||||
<text x="24" y="154" fill="#475569" font-size="10">特调饮品</text>
|
||||
<text x="24" y="182" fill="#475569" font-size="10">联名周边</text>
|
||||
<text x="24" y="210" fill="#475569" font-size="10">代金卡券</text>
|
||||
|
||||
<!-- 收银中间:点单流 -->
|
||||
<g transform="translate(98, 48)">
|
||||
<rect width="130" height="235" rx="3" fill="#FFFFFF" stroke="#E2E8F0"/>
|
||||
<rect x="6" y="8" width="118" height="36" rx="2" fill="#F8FAFC" stroke="#E2E8F0"/>
|
||||
<text x="12" y="24" fill="#0F172A" font-size="10" font-weight="700">经典美式咖啡 × 2</text>
|
||||
<text x="12" y="36" fill="#EF4444" font-size="9" font-weight="700">¥ 38.00</text>
|
||||
|
||||
<rect x="6" y="48" width="118" height="36" rx="2" fill="#F8FAFC" stroke="#E2E8F0"/>
|
||||
<text x="12" y="64" fill="#0F172A" font-size="10" font-weight="700">法式牛角包 × 1</text>
|
||||
<text x="12" y="76" fill="#EF4444" font-size="9" font-weight="700">¥ 18.00</text>
|
||||
|
||||
<rect x="6" y="88" width="118" height="36" rx="2" fill="#F8FAFC" stroke="#E2E8F0"/>
|
||||
<text x="12" y="104" fill="#0F172A" font-size="10" font-weight="700">会员尊享折扣券</text>
|
||||
<text x="12" y="116" fill="#10B981" font-size="9" font-weight="700">- ¥ 10.00</text>
|
||||
|
||||
<!-- 结算汇总 -->
|
||||
<line x1="8" y1="180" x2="122" y2="180" stroke="#CBD5E1"/>
|
||||
<text x="10" y="200" fill="#64748B" font-size="10">合计 3 件应收:</text>
|
||||
<text x="10" y="222" fill="#EF4444" font-size="18" font-weight="700">¥ 46.00</text>
|
||||
<g transform="translate(554, 20)">
|
||||
<rect width="26" height="26" rx="4" fill="#FEF2F2" stroke="#DC2626" stroke-width="1.2"/>
|
||||
<rect x="2.5" y="2.5" width="21" height="21" rx="2" fill="none" stroke="#DC2626" stroke-width="0.5" stroke-opacity="0.5"/>
|
||||
<text x="13" y="18" fill="#DC2626" font-family="'Noto Serif SC', 'SimSun', serif" font-size="13" font-weight="700" text-anchor="middle">笃</text>
|
||||
</g>
|
||||
|
||||
<!-- 收银右侧:结算键盘与扫码交互 -->
|
||||
<g transform="translate(234, 48)">
|
||||
<rect width="114" height="235" rx="3" fill="#F8FAFC" stroke="#E2E8F0"/>
|
||||
<rect x="6" y="8" width="102" height="42" rx="3" fill="#ECFDF5" stroke="#A7F3D0"/>
|
||||
<text x="12" y="26" fill="#065F46" font-size="10" font-weight="700">扫码枪已就绪</text>
|
||||
<text x="12" y="40" fill="#047857" font-size="8">聚合支持微信/支付宝</text>
|
||||
|
||||
<!-- 快速数字键盘 -->
|
||||
<g fill="#FFFFFF" stroke="#CBD5E1" font-size="11" font-weight="600" text-anchor="middle">
|
||||
<rect x="6" y="58" width="30" height="26" rx="2"/><text x="21" y="75" fill="#334155">1</text>
|
||||
<rect x="42" y="58" width="30" height="26" rx="2"/><text x="57" y="75" fill="#334155">2</text>
|
||||
<rect x="78" y="58" width="30" height="26" rx="2"/><text x="93" y="75" fill="#334155">3</text>
|
||||
<g transform="translate(300, 190)">
|
||||
<circle cx="0" cy="0" r="140" fill="none" stroke="#E2E8F0" stroke-width="1" stroke-dasharray="4,4"/>
|
||||
<circle cx="0" cy="0" r="110" fill="none" stroke="#CBD5E1" stroke-width="1.2"/>
|
||||
<circle cx="0" cy="0" r="80" fill="#EFF6FF" opacity="0.7"/>
|
||||
|
||||
<rect x="6" y="90" width="30" height="26" rx="2"/><text x="21" y="107" fill="#334155">4</text>
|
||||
<rect x="42" y="90" width="30" height="26" rx="2"/><text x="57" y="107" fill="#334155">5</text>
|
||||
<rect x="78" y="90" width="30" height="26" rx="2"/><text x="93" y="107" fill="#334155">6</text>
|
||||
<path d="M 0 -85 L 55 -55 V 0 C 55 45 0 85 0 85 C 0 85 -55 45 -55 0 V -55 Z" fill="url(#glassGrad)" stroke="#CBD5E1" stroke-width="1.5" filter="url(#cardShadow)"/>
|
||||
<path d="M 0 -70 L 42 -45 V 0 C 42 35 0 68 0 68 C 0 68 -42 35 -42 0 V -45 Z" fill="none" stroke="#93C5FD" stroke-width="1"/>
|
||||
|
||||
<rect x="6" y="122" width="30" height="26" rx="2"/><text x="21" y="139" fill="#334155">7</text>
|
||||
<rect x="42" y="122" width="30" height="26" rx="2"/><text x="57" y="139" fill="#334155">8</text>
|
||||
<rect x="78" y="122" width="30" height="26" rx="2"/><text x="93" y="139" fill="#334155">9</text>
|
||||
<circle cx="0" cy="0" r="28" fill="url(#blueGrad)" filter="url(#softGlow)"/>
|
||||
<circle cx="0" cy="0" r="14" fill="#FFFFFF"/>
|
||||
<circle cx="0" cy="0" r="7" fill="#2563EB"/>
|
||||
|
||||
<rect x="6" y="154" width="30" height="26" rx="2"/><text x="21" y="171" fill="#334155">0</text>
|
||||
<rect x="42" y="154" width="30" height="26" rx="2"/><text x="57" y="171" fill="#334155">.</text>
|
||||
<rect x="78" y="154" width="30" height="26" rx="2"/><text x="93" y="171" fill="#EF4444">C</text>
|
||||
</g>
|
||||
<line x1="-120" y1="0" x2="-28" y2="0" stroke="url(#cyanGrad)" stroke-width="2" stroke-linecap="round"/>
|
||||
<circle cx="-120" cy="0" r="5" fill="#06B6D4"/>
|
||||
<circle cx="-120" cy="0" r="9" fill="none" stroke="#06B6D4" stroke-width="1" opacity="0.5"/>
|
||||
|
||||
<rect x="6" y="190" width="102" height="40" rx="4" fill="#10B981"/>
|
||||
<text x="57" y="214" fill="#FFFFFF" font-size="12" font-weight="700" text-anchor="middle">极速结算 (Enter)</text>
|
||||
</g>
|
||||
</g>
|
||||
<line x1="28" y1="0" x2="120" y2="0" stroke="url(#blueGrad)" stroke-width="2" stroke-linecap="round"/>
|
||||
<circle cx="120" cy="0" r="5" fill="#2563EB"/>
|
||||
<circle cx="120" cy="0" r="9" fill="none" stroke="#2563EB" stroke-width="1" opacity="0.5"/>
|
||||
|
||||
<!-- 右侧:软硬件一体化特性 -->
|
||||
<g transform="translate(395, 65)">
|
||||
<rect width="185" height="295" rx="6" fill="#FFFFFF" stroke="#E2E8F0" stroke-width="1.2"/>
|
||||
<rect width="185" height="32" rx="6 6 0 0" fill="#F1F5F9"/>
|
||||
<text x="12" y="21" fill="#1E293B" font-family="'Inter', sans-serif" font-size="12" font-weight="700">商用级软硬件能力</text>
|
||||
|
||||
<rect x="12" y="44" width="161" height="52" rx="4" fill="#EFF6FF" stroke="#BFDBFE"/>
|
||||
<text x="20" y="65" fill="#1E40AF" font-size="11" font-weight="700">断网脱机收银机制</text>
|
||||
<text x="20" y="82" fill="#3B82F6" font-size="9">本地 SQLite 离线记账</text>
|
||||
<text x="20" y="92" fill="#3B82F6" font-size="9">联网后自动幂等重传防掉单</text>
|
||||
|
||||
<rect x="12" y="106" width="161" height="52" rx="4" fill="#F8FAFC" stroke="#E2E8F0"/>
|
||||
<text x="20" y="127" fill="#0F172A" font-size="11" font-weight="700">后厨 KDS 实时分单</text>
|
||||
<text x="20" y="144" fill="#64748B" font-size="9">按档口精准分拆菜品</text>
|
||||
<text x="20" y="154" fill="#64748B" font-size="9">超时出餐大屏红色预警</text>
|
||||
|
||||
<rect x="12" y="168" width="161" height="52" rx="4" fill="#F8FAFC" stroke="#E2E8F0"/>
|
||||
<text x="20" y="189" fill="#0F172A" font-size="11" font-weight="700">全硬件生态驱动适配</text>
|
||||
<text x="20" y="206" fill="#64748B" font-size="9">商米 / 联想 / 智联 / 映美</text>
|
||||
<text x="20" y="216" fill="#64748B" font-size="9">电子秤、钱箱、客显无缝直连</text>
|
||||
|
||||
<rect x="12" y="230" width="161" height="52" rx="4" fill="#ECFDF5" stroke="#A7F3D0"/>
|
||||
<text x="20" y="251" fill="#065F46" font-size="11" font-weight="700">单店与千店连锁统一管理</text>
|
||||
<text x="20" y="268" fill="#047857" font-size="9">云端报表与权限垂直下发</text>
|
||||
<line x1="0" y1="-85" x2="0" y2="-120" stroke="#7C3AED" stroke-width="1.8" stroke-dasharray="3,3"/>
|
||||
<circle cx="0" cy="-120" r="4.5" fill="#7C3AED"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
之前 宽度: | 高度: | 大小: 7.5 KiB 之后 宽度: | 高度: | 大小: 3.8 KiB |
@@ -1,82 +1,81 @@
|
||||
<svg width="640" height="360" viewBox="0 0 640 360" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<svg width="600" height="380" viewBox="0 0 600 380" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<defs>
|
||||
<linearGradient id="saasBg" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
|
||||
<linearGradient id="bgGrad" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#FFFFFF"/>
|
||||
<stop offset="100%" stop-color="#F8FAFC"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="blueGrad" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#2563EB"/>
|
||||
<stop offset="100%" stop-color="#1D4ED8"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="cyanGrad" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#06B6D4"/>
|
||||
<stop offset="100%" stop-color="#0EA5E9"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="purpleGrad" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#7C3AED"/>
|
||||
<stop offset="100%" stop-color="#6366F1"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="glassGrad" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#FFFFFF" stop-opacity="0.85"/>
|
||||
<stop offset="100%" stop-color="#F1F5F9" stop-opacity="0.6"/>
|
||||
</linearGradient>
|
||||
<pattern id="lattice" width="28" height="28" patternUnits="userSpaceOnUse">
|
||||
<path d="M 28 0 L 0 0 0 28" fill="none" stroke="#E2E8F0" stroke-width="0.7" stroke-dasharray="3,3"/>
|
||||
</pattern>
|
||||
<filter id="softGlow" x="-20%" y="-20%" width="140%" height="140%">
|
||||
<feGaussianBlur stdDeviation="12" result="blur"/>
|
||||
<feComposite in="SourceGraphic" in2="blur" operator="over"/>
|
||||
</filter>
|
||||
<filter id="cardShadow" x="-10%" y="-10%" width="120%" height="120%">
|
||||
<feDropShadow dx="0" dy="6" stdDeviation="10" flood-color="#0F172A" flood-opacity="0.06"/>
|
||||
</filter>
|
||||
|
||||
</defs>
|
||||
|
||||
<rect width="640" height="360" rx="8" fill="url(#saasBg)"/>
|
||||
<rect x="1" y="1" width="638" height="358" rx="7" fill="none" stroke="#CBD5E1" stroke-width="1.5"/>
|
||||
<rect width="600" height="380" rx="8" fill="url(#bgGrad)"/>
|
||||
<rect width="600" height="380" rx="8" fill="url(#lattice)" opacity="0.65"/>
|
||||
<rect x="1" y="1" width="598" height="378" rx="7" fill="none" stroke="#E2E8F0" stroke-width="1.5"/>
|
||||
|
||||
<!-- 顶部视窗 -->
|
||||
<rect x="0" y="0" width="640" height="36" rx="8 8 0 0" fill="#F1F5F9" stroke="#E2E8F0"/>
|
||||
<circle cx="18" cy="18" r="4" fill="#EF4444"/>
|
||||
<circle cx="32" cy="18" r="4" fill="#F59E0B"/>
|
||||
<circle cx="46" cy="18" r="4" fill="#10B981"/>
|
||||
<rect x="64" y="8" width="460" height="20" rx="4" fill="#FFFFFF" stroke="#E2E8F0"/>
|
||||
<text x="76" y="22" fill="#64748B" font-family="'Inter', sans-serif" font-size="10">https://saas-cloud.enterprise.com · 多租户 SaaS 云原生架构管理台</text>
|
||||
<rect x="540" y="8" width="85" height="20" rx="2" fill="#EFF6FF" stroke="#BFDBFE"/>
|
||||
<text x="548" y="22" fill="#2563EB" font-size="9" font-weight="700">多租户云架构</text>
|
||||
|
||||
<!-- 架构布局 -->
|
||||
<g transform="translate(16, 48)">
|
||||
<!-- 租户强隔离卡片 -->
|
||||
<rect width="190" height="135" rx="4" fill="#FFFFFF" stroke="#E2E8F0"/>
|
||||
<text x="14" y="24" fill="#1E293B" font-size="11" font-weight="700">多租户数据隔离</text>
|
||||
<rect x="14" y="38" width="162" height="28" rx="3" fill="#F8FAFC" stroke="#E2E8F0"/>
|
||||
<text x="22" y="56" fill="#0F172A" font-size="9">共享模式:字段租户隔离 (TenantID)</text>
|
||||
<rect x="14" y="72" width="162" height="28" rx="3" fill="#F8FAFC" stroke="#E2E8F0"/>
|
||||
<text x="22" y="90" fill="#0F172A" font-size="9">专属模式:库级/实例级完全独立</text>
|
||||
<rect x="14" y="106" width="162" height="22" rx="2" fill="#ECFDF5"/>
|
||||
<text x="22" y="121" fill="#047857" font-size="8" font-weight="700">● 数据主权与隐私安全物理隔离</text>
|
||||
|
||||
<!-- 容器集群与水平扩展 -->
|
||||
<g transform="translate(202, 0)">
|
||||
<rect width="190" height="135" rx="4" fill="#FFFFFF" stroke="#E2E8F0"/>
|
||||
<text x="14" y="24" fill="#1E293B" font-size="11" font-weight="700">弹性容器化与高可用</text>
|
||||
<rect x="14" y="38" width="162" height="28" rx="3" fill="#F8FAFC" stroke="#E2E8F0"/>
|
||||
<text x="22" y="56" fill="#0F172A" font-size="9">微服务集群按需弹性水平扩容</text>
|
||||
<rect x="14" y="72" width="162" height="28" rx="3" fill="#F8FAFC" stroke="#E2E8F0"/>
|
||||
<text x="22" y="90" fill="#0F172A" font-size="9">故障节点秒级自动摘除与转移</text>
|
||||
<rect x="14" y="106" width="162" height="22" rx="2" fill="#EFF6FF"/>
|
||||
<text x="22" y="121" fill="#1E40AF" font-size="8" font-weight="700">● 生产级双机热备与主从同步</text>
|
||||
<g transform="translate(554, 20)">
|
||||
<rect width="26" height="26" rx="4" fill="#FEF2F2" stroke="#DC2626" stroke-width="1.2"/>
|
||||
<rect x="2.5" y="2.5" width="21" height="21" rx="2" fill="none" stroke="#DC2626" stroke-width="0.5" stroke-opacity="0.5"/>
|
||||
<text x="13" y="18" fill="#DC2626" font-family="'Noto Serif SC', 'SimSun', serif" font-size="13" font-weight="700" text-anchor="middle">云</text>
|
||||
</g>
|
||||
|
||||
<!-- 开放生态与扩展能力 -->
|
||||
<g transform="translate(404, 0)">
|
||||
<rect width="204" height="135" rx="4" fill="#FFFFFF" stroke="#E2E8F0"/>
|
||||
<text x="14" y="24" fill="#1E293B" font-size="11" font-weight="700">开放 API 与订阅计费</text>
|
||||
<rect x="14" y="38" width="176" height="28" rx="3" fill="#F8FAFC" stroke="#E2E8F0"/>
|
||||
<text x="22" y="56" fill="#0F172A" font-size="9">标准化 RESTful / Webhook 接口</text>
|
||||
<rect x="14" y="72" width="176" height="28" rx="3" fill="#F8FAFC" stroke="#E2E8F0"/>
|
||||
<text x="22" y="90" fill="#0F172A" font-size="9">支持灵活按用量、坐席与功能订阅</text>
|
||||
<rect x="14" y="106" width="176" height="22" rx="2" fill="#FAF5FF"/>
|
||||
<text x="22" y="121" fill="#7C3AED" font-size="8" font-weight="700">● 便捷连接 ERP / CRM / 第三方系统</text>
|
||||
|
||||
<g transform="translate(300, 190)">
|
||||
<ellipse cx="0" cy="65" rx="195" ry="70" fill="none" stroke="#E2E8F0" stroke-width="1.2" stroke-dasharray="6,4"/>
|
||||
|
||||
<g transform="translate(0, 55)" filter="url(#cardShadow)">
|
||||
<polygon points="0,-25 110,12 0,48 -110,12" fill="url(#glassGrad)" stroke="#CBD5E1" stroke-width="1.2"/>
|
||||
<polygon points="-110,12 0,48 0,58 -110,22" fill="#E2E8F0"/>
|
||||
<polygon points="0,48 110,12 110,22 0,58" fill="#F1F5F9"/>
|
||||
<circle cx="-50" cy="12" r="3" fill="#2563EB"/>
|
||||
<circle cx="50" cy="12" r="3" fill="#06B6D4"/>
|
||||
</g>
|
||||
|
||||
<!-- 底部特性总结 -->
|
||||
<g transform="translate(0, 148)">
|
||||
<rect width="608" height="140" rx="4" fill="#FFFFFF" stroke="#E2E8F0"/>
|
||||
<text x="16" y="26" fill="#1E293B" font-size="11" font-weight="700">企业级多租户 SaaS 部署与运营闭环</text>
|
||||
|
||||
<g transform="translate(16, 38)">
|
||||
<rect width="180" height="42" rx="3" fill="#F8FAFC" stroke="#E2E8F0"/>
|
||||
<text x="12" y="18" fill="#0F172A" font-size="10" font-weight="600">按需订阅 / 快速上线</text>
|
||||
<text x="12" y="32" fill="#64748B" font-size="8">开通即用,降低前期技术与运维门槛</text>
|
||||
|
||||
<rect x="194" width="180" height="42" rx="3" fill="#F8FAFC" stroke="#E2E8F0"/>
|
||||
<text x="12" y="18" fill="#0F172A" font-size="10" font-weight="600" transform="translate(194, 0)">支持私有化与混合云</text>
|
||||
<text x="12" y="32" fill="#64748B" font-size="8" transform="translate(194, 0)">可随时平滑迁移至客户私有服务器</text>
|
||||
|
||||
<rect x="388" width="186" height="42" rx="3" fill="#EFF6FF" stroke="#BFDBFE"/>
|
||||
<text x="12" y="18" fill="#1E40AF" font-size="10" font-weight="700" transform="translate(388, 0)">安全审计与合规留痕</text>
|
||||
<text x="12" y="32" fill="#3B82F6" font-size="8" transform="translate(388, 0)">租户操作日志全程记录与审计防篡改</text>
|
||||
<g transform="translate(0, 5)" filter="url(#cardShadow)">
|
||||
<polygon points="0,-25 110,12 0,48 -110,12" fill="url(#glassGrad)" stroke="#93C5FD" stroke-width="1.2"/>
|
||||
<polygon points="-110,12 0,48 0,58 -110,22" fill="#BFDBFE"/>
|
||||
<polygon points="0,48 110,12 110,22 0,58" fill="#DBEAFE"/>
|
||||
<circle cx="0" cy="12" r="5" fill="#2563EB" filter="url(#softGlow)"/>
|
||||
</g>
|
||||
|
||||
<rect x="16" y="90" width="576" height="38" rx="3" fill="#F1F5F9"/>
|
||||
<text x="24" y="106" fill="#0F172A" font-size="10" font-weight="600">架构承诺:</text>
|
||||
<text x="24" y="120" fill="#64748B" font-size="9">坚持企业级工程标准交付,支持独立数据库部署,客户完全掌握数据资产归属。</text>
|
||||
<g transform="translate(0, -45)" filter="url(#cardShadow)">
|
||||
<polygon points="0,-25 110,12 0,48 -110,12" fill="url(#glassGrad)" stroke="#C4B5FD" stroke-width="1.2"/>
|
||||
<polygon points="-110,12 0,48 0,58 -110,22" fill="#DDD6FE"/>
|
||||
<polygon points="0,48 110,12 110,22 0,58" fill="#EDE9FE"/>
|
||||
<circle cx="0" cy="12" r="6" fill="#7C3AED" filter="url(#softGlow)"/>
|
||||
</g>
|
||||
|
||||
<line x1="0" y1="-75" x2="0" y2="70" stroke="url(#blueGrad)" stroke-width="2.5" stroke-linecap="round"/>
|
||||
<line x1="-60" y1="-30" x2="-60" y2="60" stroke="#CBD5E1" stroke-width="1" stroke-dasharray="3,3"/>
|
||||
<line x1="60" y1="-30" x2="60" y2="60" stroke="#CBD5E1" stroke-width="1" stroke-dasharray="3,3"/>
|
||||
|
||||
<circle cx="-130" cy="-20" r="4" fill="#06B6D4"/>
|
||||
<circle cx="130" cy="-20" r="4" fill="#2563EB"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
之前 宽度: | 高度: | 大小: 5.4 KiB 之后 宽度: | 高度: | 大小: 4.1 KiB |
@@ -1,67 +1,83 @@
|
||||
<svg width="400" height="360" viewBox="0 0 400 360" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<svg width="600" height="380" viewBox="0 0 600 380" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<defs>
|
||||
<linearGradient id="aiBgGrad" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
|
||||
<linearGradient id="bgGrad" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#FFFFFF"/>
|
||||
<stop offset="100%" stop-color="#F8FAFC"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="blueGrad" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#2563EB"/>
|
||||
<stop offset="100%" stop-color="#1D4ED8"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="cyanGrad" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#06B6D4"/>
|
||||
<stop offset="100%" stop-color="#0EA5E9"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="purpleGrad" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#7C3AED"/>
|
||||
<stop offset="100%" stop-color="#6366F1"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="glassGrad" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#FFFFFF" stop-opacity="0.85"/>
|
||||
<stop offset="100%" stop-color="#F1F5F9" stop-opacity="0.6"/>
|
||||
</linearGradient>
|
||||
<pattern id="lattice" width="28" height="28" patternUnits="userSpaceOnUse">
|
||||
<path d="M 28 0 L 0 0 0 28" fill="none" stroke="#E2E8F0" stroke-width="0.7" stroke-dasharray="3,3"/>
|
||||
</pattern>
|
||||
<filter id="softGlow" x="-20%" y="-20%" width="140%" height="140%">
|
||||
<feGaussianBlur stdDeviation="12" result="blur"/>
|
||||
<feComposite in="SourceGraphic" in2="blur" operator="over"/>
|
||||
</filter>
|
||||
<filter id="cardShadow" x="-10%" y="-10%" width="120%" height="120%">
|
||||
<feDropShadow dx="0" dy="6" stdDeviation="10" flood-color="#0F172A" flood-opacity="0.06"/>
|
||||
</filter>
|
||||
|
||||
</defs>
|
||||
|
||||
<rect width="400" height="360" rx="8" fill="url(#aiBgGrad)"/>
|
||||
<rect x="1" y="1" width="398" height="358" rx="7" fill="none" stroke="#CBD5E1" stroke-width="1.5"/>
|
||||
<rect width="600" height="380" rx="8" fill="url(#bgGrad)"/>
|
||||
<rect width="600" height="380" rx="8" fill="url(#lattice)" opacity="0.65"/>
|
||||
<rect x="1" y="1" width="598" height="378" rx="7" fill="none" stroke="#E2E8F0" stroke-width="1.5"/>
|
||||
|
||||
<!-- 视窗标题 -->
|
||||
<rect x="0" y="0" width="400" height="36" rx="8 8 0 0" fill="#F1F5F9" stroke="#E2E8F0"/>
|
||||
<circle cx="16" cy="18" r="4" fill="#EF4444"/>
|
||||
<circle cx="28" cy="18" r="4" fill="#F59E0B"/>
|
||||
<circle cx="40" cy="18" r="4" fill="#10B981"/>
|
||||
<rect x="56" y="8" width="260" height="20" rx="4" fill="#FFFFFF" stroke="#E2E8F0"/>
|
||||
<text x="66" y="22" fill="#64748B" font-family="'Inter', sans-serif" font-size="9">ai-agent.framework · 企业私有化智能体架构</text>
|
||||
<rect x="326" y="8" width="62" height="20" rx="2" fill="#FAF5FF" stroke="#E9D5FF"/>
|
||||
<text x="332" y="22" fill="#7C3AED" font-size="9" font-weight="700">智能体开发</text>
|
||||
|
||||
<!-- 核心架构流 -->
|
||||
<g transform="translate(16, 48)">
|
||||
<rect width="368" height="96" rx="4" fill="#FFFFFF" stroke="#E2E8F0"/>
|
||||
<text x="14" y="22" fill="#1E293B" font-size="11" font-weight="700">RAG 检索增强架构与向量知识库</text>
|
||||
|
||||
<g transform="translate(14, 34)">
|
||||
<rect width="105" height="48" rx="3" fill="#F8FAFC" stroke="#E2E8F0"/>
|
||||
<text x="8" y="18" fill="#0F172A" font-size="9" font-weight="600">文档分块与清洗</text>
|
||||
<text x="8" y="36" fill="#64748B" font-size="8">PDF/Doc/表格解析</text>
|
||||
|
||||
<rect x="115" width="105" height="48" rx="3" fill="#F8FAFC" stroke="#E2E8F0"/>
|
||||
<text x="8" y="18" fill="#0F172A" font-size="9" font-weight="600" transform="translate(115, 0)">向量化与索引</text>
|
||||
<text x="8" y="36" fill="#2563EB" font-size="8" transform="translate(115, 0)">Milvus / PGVector</text>
|
||||
|
||||
<rect x="230" width="110" height="48" rx="3" fill="#FAF5FF" stroke="#E9D5FF"/>
|
||||
<text x="8" y="18" fill="#6B21A8" font-size="9" font-weight="700" transform="translate(230, 0)">多路召回重排</text>
|
||||
<text x="8" y="36" fill="#7C3AED" font-size="8" transform="translate(230, 0)">语义比对与法条匹配</text>
|
||||
<g transform="translate(554, 20)">
|
||||
<rect width="26" height="26" rx="4" fill="#FEF2F2" stroke="#DC2626" stroke-width="1.2"/>
|
||||
<rect x="2.5" y="2.5" width="21" height="21" rx="2" fill="none" stroke="#DC2626" stroke-width="0.5" stroke-opacity="0.5"/>
|
||||
<text x="13" y="18" fill="#DC2626" font-family="'Noto Serif SC', 'SimSun', serif" font-size="13" font-weight="700" text-anchor="middle">智</text>
|
||||
</g>
|
||||
|
||||
<!-- 工作流编排 -->
|
||||
<g transform="translate(0, 108)">
|
||||
<rect width="368" height="105" rx="4" fill="#FFFFFF" stroke="#E2E8F0"/>
|
||||
<text x="14" y="22" fill="#1E293B" font-size="11" font-weight="700">多 Agent 协同流程与工单闭环</text>
|
||||
|
||||
<g transform="translate(14, 34)">
|
||||
<rect width="165" height="58" rx="3" fill="#F8FAFC" stroke="#E2E8F0"/>
|
||||
<text x="10" y="18" fill="#0F172A" font-size="9" font-weight="600">意图识别与路由</text>
|
||||
<text x="10" y="34" fill="#64748B" font-size="8">智能分流至专业审查节点</text>
|
||||
<text x="10" y="48" fill="#10B981" font-size="8">自动提取核心风险要素</text>
|
||||
<g transform="translate(300, 190)">
|
||||
<circle cx="0" cy="0" r="110" fill="#FAF5FF" opacity="0.7"/>
|
||||
<circle cx="0" cy="0" r="80" fill="#EFF6FF" opacity="0.9"/>
|
||||
|
||||
<rect x="175" width="165" height="58" rx="3" fill="#F8FAFC" stroke="#E2E8F0"/>
|
||||
<text x="10" y="18" fill="#0F172A" font-size="9" font-weight="600" transform="translate(175, 0)">人机协同初审</text>
|
||||
<text x="10" y="34" fill="#64748B" font-size="8" transform="translate(175, 0)">出具审查建议与法条出处</text>
|
||||
<text x="10" y="48" fill="#2563EB" font-size="8" transform="translate(175, 0)">辅助人工决策,审计留痕</text>
|
||||
<ellipse cx="0" cy="0" rx="170" ry="70" fill="none" stroke="#E2E8F0" stroke-width="1.2" stroke-dasharray="6,4" transform="rotate(-25)"/>
|
||||
<ellipse cx="0" cy="0" rx="170" ry="70" fill="none" stroke="#E2E8F0" stroke-width="1.2" stroke-dasharray="6,4" transform="rotate(35)"/>
|
||||
<circle cx="0" cy="0" r="130" fill="none" stroke="#CBD5E1" stroke-width="0.8"/>
|
||||
|
||||
<g transform="rotate(-25)">
|
||||
<circle cx="-150" cy="0" r="6" fill="#7C3AED" filter="url(#softGlow)"/>
|
||||
<circle cx="150" cy="0" r="5" fill="#2563EB"/>
|
||||
</g>
|
||||
<g transform="rotate(35)">
|
||||
<circle cx="0" cy="-65" r="5.5" fill="#06B6D4" filter="url(#softGlow)"/>
|
||||
<circle cx="0" cy="65" r="4.5" fill="#2563EB"/>
|
||||
</g>
|
||||
|
||||
<!-- 底部物理安全说明 -->
|
||||
<g transform="translate(0, 224)">
|
||||
<rect width="368" height="74" rx="4" fill="#F8FAFC" stroke="#E2E8F0"/>
|
||||
<text x="14" y="22" fill="#0F172A" font-size="10" font-weight="700">安全与私有化机制:</text>
|
||||
<text x="14" y="40" fill="#475569" font-size="9">支持纯内网服务器部署,数据严格不出企业本地机房;</text>
|
||||
<text x="14" y="58" fill="#475569" font-size="9">适配国产算力平台与开源大模型量化微调,保障自主可控与合规审计。</text>
|
||||
</g>
|
||||
<polygon points="0,-60 52,-25 52,35 0,68 -52,35 -52,-25" fill="none" stroke="#93C5FD" stroke-width="1.2"/>
|
||||
<polygon points="0,-40 35,-15 35,25 0,48 -35,25 -35,-15" fill="none" stroke="#C4B5FD" stroke-width="1"/>
|
||||
<line x1="0" y1="-60" x2="0" y2="68" stroke="#CBD5E1" stroke-width="1" stroke-dasharray="3,3"/>
|
||||
<line x1="-52" y1="-25" x2="52" y2="35" stroke="#CBD5E1" stroke-width="1" stroke-dasharray="3,3"/>
|
||||
<line x1="-52" y1="35" x2="52" y2="-25" stroke="#CBD5E1" stroke-width="1" stroke-dasharray="3,3"/>
|
||||
|
||||
<circle cx="0" cy="0" r="26" fill="url(#purpleGrad)" filter="url(#cardShadow)"/>
|
||||
<circle cx="0" cy="0" r="18" fill="url(#blueGrad)"/>
|
||||
<circle cx="0" cy="0" r="8" fill="#FFFFFF"/>
|
||||
|
||||
<circle cx="0" cy="-60" r="3.5" fill="#2563EB"/>
|
||||
<circle cx="52" cy="-25" r="3.5" fill="#06B6D4"/>
|
||||
<circle cx="52" cy="35" r="3.5" fill="#7C3AED"/>
|
||||
<circle cx="0" cy="68" r="3.5" fill="#2563EB"/>
|
||||
<circle cx="-52" cy="35" r="3.5" fill="#06B6D4"/>
|
||||
<circle cx="-52" cy="-25" r="3.5" fill="#7C3AED"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
之前 宽度: | 高度: | 大小: 4.0 KiB 之后 宽度: | 高度: | 大小: 4.2 KiB |
@@ -1,136 +1,81 @@
|
||||
<svg width="600" height="380" viewBox="0 0 600 380" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<defs>
|
||||
<linearGradient id="appBgGrad" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
|
||||
<linearGradient id="bgGrad" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#FFFFFF"/>
|
||||
<stop offset="100%" stop-color="#F8FAFC"/>
|
||||
</linearGradient>
|
||||
<pattern id="appGrid" width="20" height="20" patternUnits="userSpaceOnUse">
|
||||
<path d="M 20 0 L 0 0 0 20" fill="none" stroke="#E2E8F0" stroke-width="0.75" stroke-dasharray="2,2"/>
|
||||
<linearGradient id="blueGrad" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#2563EB"/>
|
||||
<stop offset="100%" stop-color="#1D4ED8"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="cyanGrad" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#06B6D4"/>
|
||||
<stop offset="100%" stop-color="#0EA5E9"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="purpleGrad" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#7C3AED"/>
|
||||
<stop offset="100%" stop-color="#6366F1"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="glassGrad" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#FFFFFF" stop-opacity="0.85"/>
|
||||
<stop offset="100%" stop-color="#F1F5F9" stop-opacity="0.6"/>
|
||||
</linearGradient>
|
||||
<pattern id="lattice" width="28" height="28" patternUnits="userSpaceOnUse">
|
||||
<path d="M 28 0 L 0 0 0 28" fill="none" stroke="#E2E8F0" stroke-width="0.7" stroke-dasharray="3,3"/>
|
||||
</pattern>
|
||||
<filter id="softGlow" x="-20%" y="-20%" width="140%" height="140%">
|
||||
<feGaussianBlur stdDeviation="12" result="blur"/>
|
||||
<feComposite in="SourceGraphic" in2="blur" operator="over"/>
|
||||
</filter>
|
||||
<filter id="cardShadow" x="-10%" y="-10%" width="120%" height="120%">
|
||||
<feDropShadow dx="0" dy="6" stdDeviation="10" flood-color="#0F172A" flood-opacity="0.06"/>
|
||||
</filter>
|
||||
|
||||
</defs>
|
||||
|
||||
<rect width="600" height="380" rx="8" fill="url(#appBgGrad)"/>
|
||||
<rect width="600" height="380" rx="8" fill="url(#appGrid)" opacity="0.6"/>
|
||||
<rect width="600" height="380" rx="8" fill="url(#bgGrad)"/>
|
||||
<rect width="600" height="380" rx="8" fill="url(#lattice)" opacity="0.65"/>
|
||||
<rect x="1" y="1" width="598" height="378" rx="7" fill="none" stroke="#E2E8F0" stroke-width="1.5"/>
|
||||
|
||||
<!-- 顶部控制条 -->
|
||||
<rect x="20" y="20" width="560" height="34" rx="4" fill="#FFFFFF" stroke="#E2E8F0"/>
|
||||
<circle cx="36" cy="37" r="4.5" fill="#EF4444"/>
|
||||
<circle cx="50" cy="37" r="4.5" fill="#F59E0B"/>
|
||||
<circle cx="64" cy="37" r="4.5" fill="#10B981"/>
|
||||
<text x="84" y="41" fill="#475569" font-family="'Inter', sans-serif" font-size="12" font-weight="600">Cross-Platform Native Experience · iOS / Android / 小程序全端互通</text>
|
||||
<rect x="500" y="27" width="66" height="20" rx="2" fill="#EFF6FF" stroke="#2563EB" stroke-width="1"/>
|
||||
<text x="506" y="41" fill="#2563EB" font-family="'Noto Serif SC', 'SimSun', serif" font-size="11" font-weight="700">精工原生</text>
|
||||
|
||||
<!-- 左侧:手机外框 1 (原生应用 APP 界面) -->
|
||||
<g transform="translate(45, 75)">
|
||||
<!-- 手机机身 -->
|
||||
<rect width="150" height="280" rx="20" fill="#0F172A" stroke="#334155" stroke-width="2"/>
|
||||
<!-- 屏幕 -->
|
||||
<rect x="6" y="6" width="138" height="268" rx="15" fill="#FFFFFF"/>
|
||||
<!-- 灵动岛/听筒 -->
|
||||
<rect x="50" y="11" width="50" height="10" rx="5" fill="#0F172A"/>
|
||||
|
||||
<!-- 顶部状态栏 -->
|
||||
<text x="16" y="20" fill="#0F172A" font-size="8" font-family="'Inter', sans-serif" font-weight="600">9:41</text>
|
||||
<circle cx="132" cy="18" r="2.5" fill="#10B981"/>
|
||||
|
||||
<!-- App 头部 -->
|
||||
<rect x="12" y="32" width="126" height="38" rx="4" fill="#2563EB"/>
|
||||
<text x="20" y="48" fill="#FFFFFF" font-size="10" font-weight="700">纳海川定制移动中枢</text>
|
||||
<text x="20" y="60" fill="#BFDBFE" font-size="8">全流程业务流已安全接入</text>
|
||||
|
||||
<!-- 快捷功能九宫格 -->
|
||||
<rect x="12" y="76" width="38" height="36" rx="4" fill="#F8FAFC" stroke="#E2E8F0"/>
|
||||
<rect x="56" y="76" width="38" height="36" rx="4" fill="#F8FAFC" stroke="#E2E8F0"/>
|
||||
<rect x="100" y="76" width="38" height="36" rx="4" fill="#F8FAFC" stroke="#E2E8F0"/>
|
||||
<circle cx="31" cy="90" r="6" fill="#EFF6FF"/>
|
||||
<circle cx="75" cy="90" r="6" fill="#ECFDF5"/>
|
||||
<circle cx="119" cy="90" r="6" fill="#FAF5FF"/>
|
||||
<text x="20" y="106" fill="#64748B" font-size="7">订单核销</text>
|
||||
<text x="64" y="106" fill="#64748B" font-size="7">库存调拨</text>
|
||||
<text x="108" y="106" fill="#64748B" font-size="7">实时报表</text>
|
||||
|
||||
<!-- 列表数据卡片 -->
|
||||
<rect x="12" y="120" width="126" height="42" rx="4" fill="#F8FAFC" stroke="#E2E8F0"/>
|
||||
<text x="18" y="136" fill="#1E293B" font-size="9" font-weight="700">全国总仓实时出库单</text>
|
||||
<text x="18" y="152" fill="#10B981" font-size="8">已同步 · 蓝牙扫码枪正常</text>
|
||||
|
||||
<rect x="12" y="170" width="126" height="42" rx="4" fill="#F8FAFC" stroke="#E2E8F0"/>
|
||||
<text x="18" y="186" fill="#1E293B" font-size="9" font-weight="700">智能 POS 聚合收款记录</text>
|
||||
<text x="18" y="202" fill="#2563EB" font-size="8">¥ 28,490.00 · 刚刚核对完成</text>
|
||||
|
||||
<!-- 底部 Tabbar -->
|
||||
<rect x="6" y="238" width="138" height="36" rx="0 0 15 15" fill="#F8FAFC" stroke="#E2E8F0" stroke-width="0.5"/>
|
||||
<circle cx="36" cy="254" r="5" fill="#2563EB"/>
|
||||
<circle cx="75" cy="254" r="5" fill="#CBD5E1"/>
|
||||
<circle cx="114" cy="254" r="5" fill="#CBD5E1"/>
|
||||
<g transform="translate(554, 20)">
|
||||
<rect width="26" height="26" rx="4" fill="#FEF2F2" stroke="#DC2626" stroke-width="1.2"/>
|
||||
<rect x="2.5" y="2.5" width="21" height="21" rx="2" fill="none" stroke="#DC2626" stroke-width="0.5" stroke-opacity="0.5"/>
|
||||
<text x="13" y="18" fill="#DC2626" font-family="'Noto Serif SC', 'SimSun', serif" font-size="13" font-weight="700" text-anchor="middle">端</text>
|
||||
</g>
|
||||
|
||||
<!-- 中间:手机外框 2 (微信小程序 / 微信生态) -->
|
||||
<g transform="translate(225, 75)">
|
||||
<rect width="150" height="280" rx="20" fill="#0F172A" stroke="#334155" stroke-width="2"/>
|
||||
<rect x="6" y="6" width="138" height="268" rx="15" fill="#FFFFFF"/>
|
||||
<!-- 胶囊按钮 -->
|
||||
<rect x="96" y="14" width="42" height="14" rx="7" fill="#F1F5F9" stroke="#E2E8F0"/>
|
||||
<circle cx="106" cy="21" r="2.5" fill="#64748B"/>
|
||||
<circle cx="128" cy="21" r="2.5" fill="#64748B"/>
|
||||
<line x1="117" y1="17" x2="117" y2="25" stroke="#E2E8F0"/>
|
||||
|
||||
<text x="16" y="24" fill="#0F172A" font-size="10" font-weight="700">品牌定制小程序</text>
|
||||
<g transform="translate(300, 190)">
|
||||
<ellipse cx="0" cy="70" rx="200" ry="70" fill="none" stroke="#E2E8F0" stroke-width="1.5" stroke-dasharray="4,4"/>
|
||||
|
||||
<!-- 小程序 Banner 幻灯展示 -->
|
||||
<rect x="12" y="36" width="126" height="56" rx="6" fill="#06B6D4"/>
|
||||
<text x="20" y="58" fill="#FFFFFF" font-size="11" font-weight="700">会员权益与分销专区</text>
|
||||
<text x="20" y="74" fill="#CFFAFE" font-size="8">双轨裂变机制 · 一键授权登录</text>
|
||||
|
||||
<!-- 商城分类与列表 -->
|
||||
<rect x="12" y="100" width="60" height="66" rx="4" fill="#F8FAFC" stroke="#E2E8F0"/>
|
||||
<rect x="18" y="106" width="48" height="32" rx="3" fill="#E2E8F0"/>
|
||||
<text x="18" y="148" fill="#1E293B" font-size="8" font-weight="600">热销商品A</text>
|
||||
<text x="18" y="158" fill="#EF4444" font-size="8" font-weight="700">¥ 199.00</text>
|
||||
|
||||
<rect x="78" y="100" width="60" height="66" rx="4" fill="#F8FAFC" stroke="#E2E8F0"/>
|
||||
<rect x="84" y="106" width="48" height="32" rx="3" fill="#E2E8F0"/>
|
||||
<text x="84" y="148" fill="#1E293B" font-size="8" font-weight="600">热销商品B</text>
|
||||
<text x="84" y="158" fill="#EF4444" font-size="8" font-weight="700">¥ 358.00</text>
|
||||
|
||||
<!-- 微信支付安全保障 -->
|
||||
<rect x="12" y="174" width="126" height="52" rx="4" fill="#ECFDF5" stroke="#A7F3D0"/>
|
||||
<text x="20" y="194" fill="#065F46" font-size="9" font-weight="700">微信支付分账与资金闭环</text>
|
||||
<text x="20" y="210" fill="#047857" font-size="8">自动分润清算 · 交易毫秒回执</text>
|
||||
|
||||
<!-- 底部 Tabbar -->
|
||||
<rect x="6" y="238" width="138" height="36" rx="0 0 15 15" fill="#F8FAFC" stroke="#E2E8F0" stroke-width="0.5"/>
|
||||
<circle cx="36" cy="254" r="5" fill="#06B6D4"/>
|
||||
<circle cx="75" cy="254" r="5" fill="#CBD5E1"/>
|
||||
<circle cx="114" cy="254" r="5" fill="#CBD5E1"/>
|
||||
<g transform="translate(-110, -10)" filter="url(#cardShadow)">
|
||||
<rect x="-65" y="-85" width="130" height="170" rx="8" fill="url(#glassGrad)" stroke="#CBD5E1" stroke-width="1.5"/>
|
||||
<rect x="-55" y="-75" width="110" height="135" rx="4" fill="#FFFFFF" stroke="#E2E8F0"/>
|
||||
<line x1="-45" y1="-60" x2="0" y2="-60" stroke="#CBD5E1" stroke-width="2.5" stroke-linecap="round"/>
|
||||
<rect x="-45" y="-45" width="42" height="36" rx="3" fill="#EFF6FF" stroke="#BFDBFE"/>
|
||||
<rect x="3" y="-45" width="42" height="36" rx="3" fill="#F1F5F9" stroke="#E2E8F0"/>
|
||||
<rect x="-45" y="0" width="90" height="48" rx="3" fill="#F8FAFC" stroke="#E2E8F0"/>
|
||||
<circle cx="0" cy="72" r="4" fill="#94A3B8"/>
|
||||
</g>
|
||||
|
||||
<!-- 右侧:工程指标与硬核互联看板 -->
|
||||
<g transform="translate(395, 75)">
|
||||
<rect width="175" height="280" rx="6" fill="#FFFFFF" stroke="#E2E8F0" stroke-width="1.2"/>
|
||||
<rect width="175" height="32" rx="6 6 0 0" fill="#F1F5F9"/>
|
||||
<text x="12" y="21" fill="#1E293B" font-family="'Inter', sans-serif" font-size="12" font-weight="700">跨端底层技术体系</text>
|
||||
<g transform="translate(75, 10)" filter="url(#cardShadow)">
|
||||
<rect x="-45" y="-95" width="90" height="190" rx="14" fill="#FFFFFF" stroke="#2563EB" stroke-width="1.8"/>
|
||||
<rect x="-14" y="-87" width="28" height="6" rx="3" fill="#E2E8F0"/>
|
||||
<rect x="-37" y="-74" width="74" height="154" rx="8" fill="url(#bgGrad)"/>
|
||||
<circle cx="0" cy="-35" r="18" fill="url(#blueGrad)"/>
|
||||
<rect x="-24" y="-8" width="48" height="6" rx="3" fill="#93C5FD"/>
|
||||
<rect x="-18" y="4" width="36" height="5" rx="2.5" fill="#CBD5E1"/>
|
||||
<rect x="-28" y="20" width="56" height="45" rx="4" fill="#FFFFFF" stroke="#E2E8F0"/>
|
||||
<rect x="-15" y="86" width="30" height="3" rx="1.5" fill="#94A3B8"/>
|
||||
</g>
|
||||
|
||||
<!-- 模块 1 -->
|
||||
<rect x="12" y="44" width="151" height="50" rx="4" fill="#F8FAFC" stroke="#E2E8F0"/>
|
||||
<text x="20" y="64" fill="#2563EB" font-size="11" font-weight="700">UniApp / Taro 统一内核</text>
|
||||
<text x="20" y="80" fill="#64748B" font-size="10">一套代码多端同构编译</text>
|
||||
<path d="M -45 -15 C -10 -50 30 -40 75 -25" fill="none" stroke="url(#cyanGrad)" stroke-width="2.5" stroke-linecap="round"/>
|
||||
<path d="M 75 45 C 30 70 -20 60 -45 35" fill="none" stroke="url(#purpleGrad)" stroke-width="2" stroke-linecap="round" stroke-dasharray="5,3"/>
|
||||
|
||||
<!-- 模块 2 -->
|
||||
<rect x="12" y="104" width="151" height="50" rx="4" fill="#F8FAFC" stroke="#E2E8F0"/>
|
||||
<text x="20" y="124" fill="#0F172A" font-size="11" font-weight="700">60 FPS 原生交互渲染</text>
|
||||
<text x="20" y="140" fill="#64748B" font-size="10">手势防抖 · 离线平滑加载</text>
|
||||
|
||||
<!-- 模块 3 -->
|
||||
<rect x="12" y="164" width="151" height="50" rx="4" fill="#F8FAFC" stroke="#E2E8F0"/>
|
||||
<text x="20" y="184" fill="#7C3AED" font-size="11" font-weight="700">IoT 蓝牙与热敏打印集成</text>
|
||||
<text x="20" y="200" fill="#64748B" font-size="10">ESC/POS 协议秒级吐单</text>
|
||||
|
||||
<!-- 模块 4 -->
|
||||
<rect x="12" y="224" width="151" height="46" rx="4" fill="#EFF6FF" stroke="#BFDBFE"/>
|
||||
<text x="20" y="244" fill="#1E40AF" font-size="11" font-weight="700">100% 完整交付前端源码</text>
|
||||
<text x="20" y="258" fill="#3B82F6" font-size="9">无闭源混淆,可自主二次开发</text>
|
||||
<circle cx="15" cy="-35" r="4" fill="#06B6D4" filter="url(#softGlow)"/>
|
||||
<circle cx="12" cy="55" r="3.5" fill="#7C3AED" filter="url(#softGlow)"/>
|
||||
<circle cx="-135" cy="40" r="3" fill="#2563EB"/>
|
||||
<circle cx="145" cy="-20" r="3" fill="#06B6D4"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
之前 宽度: | 高度: | 大小: 7.8 KiB 之后 宽度: | 高度: | 大小: 4.4 KiB |
@@ -1,69 +1,95 @@
|
||||
<svg width="400" height="360" viewBox="0 0 400 360" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<svg width="600" height="380" viewBox="0 0 600 380" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<defs>
|
||||
|
||||
<linearGradient id="bgGrad" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#FFFFFF"/>
|
||||
<stop offset="100%" stop-color="#F8FAFC"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="blueGrad" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#2563EB"/>
|
||||
<stop offset="100%" stop-color="#1D4ED8"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="cyanGrad" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#06B6D4"/>
|
||||
<stop offset="100%" stop-color="#0EA5E9"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="purpleGrad" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#7C3AED"/>
|
||||
<stop offset="100%" stop-color="#6366F1"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="glassGrad" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#FFFFFF" stop-opacity="0.85"/>
|
||||
<stop offset="100%" stop-color="#F1F5F9" stop-opacity="0.6"/>
|
||||
</linearGradient>
|
||||
<pattern id="lattice" width="28" height="28" patternUnits="userSpaceOnUse">
|
||||
<path d="M 28 0 L 0 0 0 28" fill="none" stroke="#E2E8F0" stroke-width="0.7" stroke-dasharray="3,3"/>
|
||||
</pattern>
|
||||
<filter id="softGlow" x="-20%" y="-20%" width="140%" height="140%">
|
||||
<feGaussianBlur stdDeviation="12" result="blur"/>
|
||||
<feComposite in="SourceGraphic" in2="blur" operator="over"/>
|
||||
</filter>
|
||||
<filter id="cardShadow" x="-10%" y="-10%" width="120%" height="120%">
|
||||
<feDropShadow dx="0" dy="6" stdDeviation="10" flood-color="#0F172A" flood-opacity="0.06"/>
|
||||
</filter>
|
||||
|
||||
</defs>
|
||||
|
||||
<rect width="400" height="360" rx="8" fill="url(#bgGrad)"/>
|
||||
<rect x="1" y="1" width="398" height="358" rx="7" fill="none" stroke="#CBD5E1" stroke-width="1.5"/>
|
||||
<rect width="600" height="380" rx="8" fill="url(#bgGrad)"/>
|
||||
<rect width="600" height="380" rx="8" fill="url(#lattice)" opacity="0.65"/>
|
||||
<rect x="1" y="1" width="598" height="378" rx="7" fill="none" stroke="#E2E8F0" stroke-width="1.5"/>
|
||||
|
||||
<!-- 视窗标题 -->
|
||||
<rect x="0" y="0" width="400" height="36" rx="8 8 0 0" fill="#F1F5F9" stroke="#E2E8F0"/>
|
||||
<circle cx="16" cy="18" r="4" fill="#EF4444"/>
|
||||
<circle cx="28" cy="18" r="4" fill="#F59E0B"/>
|
||||
<circle cx="40" cy="18" r="4" fill="#10B981"/>
|
||||
<rect x="56" y="8" width="260" height="20" rx="4" fill="#FFFFFF" stroke="#E2E8F0"/>
|
||||
<text x="66" y="22" fill="#64748B" font-family="'Inter', sans-serif" font-size="9">arch.cluster · 分布式高可用微服务治理中枢</text>
|
||||
<rect x="326" y="8" width="62" height="20" rx="2" fill="#EFF6FF" stroke="#BFDBFE"/>
|
||||
<text x="332" y="22" fill="#2563EB" font-size="9" font-weight="700">软件开发</text>
|
||||
|
||||
<!-- 架构分层 -->
|
||||
<g transform="translate(16, 48)">
|
||||
<!-- 网关路由 -->
|
||||
<rect width="368" height="60" rx="4" fill="#FFFFFF" stroke="#E2E8F0"/>
|
||||
<text x="14" y="20" fill="#1E293B" font-size="10" font-weight="700">统一 API 接入网关</text>
|
||||
<g transform="translate(14, 28)">
|
||||
<rect width="105" height="24" rx="2" fill="#F8FAFC" stroke="#E2E8F0"/>
|
||||
<text x="12" y="16" fill="#0F172A" font-size="9">流量削峰与限流</text>
|
||||
|
||||
<rect x="115" width="105" height="24" rx="2" fill="#F8FAFC" stroke="#E2E8F0"/>
|
||||
<text x="12" y="16" fill="#0F172A" font-size="9" transform="translate(115, 0)">服务鉴权与防刷</text>
|
||||
|
||||
<rect x="230" width="108" height="24" rx="2" fill="#EFF6FF"/>
|
||||
<text x="12" y="16" fill="#2563EB" font-size="9" font-weight="600" transform="translate(230, 0)">全链路负载均衡</text>
|
||||
<g transform="translate(554, 20)">
|
||||
<rect width="26" height="26" rx="4" fill="#FEF2F2" stroke="#DC2626" stroke-width="1.2"/>
|
||||
<rect x="2.5" y="2.5" width="21" height="21" rx="2" fill="none" stroke="#DC2626" stroke-width="0.5" stroke-opacity="0.5"/>
|
||||
<text x="13" y="18" fill="#DC2626" font-family="'Noto Serif SC', 'SimSun', serif" font-size="13" font-weight="700" text-anchor="middle">研</text>
|
||||
</g>
|
||||
|
||||
<!-- 微服务集群 -->
|
||||
<g transform="translate(0, 70)">
|
||||
<rect width="368" height="130" rx="4" fill="#FFFFFF" stroke="#E2E8F0"/>
|
||||
<text x="14" y="22" fill="#1E293B" font-size="10" font-weight="700">分布式微服务集群与数据层治理</text>
|
||||
|
||||
<g transform="translate(14, 34)">
|
||||
<rect width="165" height="40" rx="3" fill="#F8FAFC" stroke="#E2E8F0"/>
|
||||
<text x="10" y="18" fill="#0F172A" font-size="9" font-weight="600">服务注册与熔断降级</text>
|
||||
<text x="10" y="32" fill="#64748B" font-size="8">Sentinel / Nacos 高可用集群</text>
|
||||
<g transform="translate(300, 195)">
|
||||
<ellipse cx="0" cy="50" rx="210" ry="85" fill="none" stroke="#E2E8F0" stroke-width="1.5" stroke-dasharray="6,6"/>
|
||||
<ellipse cx="0" cy="50" rx="150" ry="60" fill="none" stroke="#CBD5E1" stroke-width="1"/>
|
||||
|
||||
<rect x="175" width="165" height="40" rx="3" fill="#F8FAFC" stroke="#E2E8F0"/>
|
||||
<text x="10" y="18" fill="#0F172A" font-size="9" font-weight="600" transform="translate(175, 0)">分布式事务一致性</text>
|
||||
<text x="10" y="32" fill="#2563EB" font-size="8" transform="translate(175, 0)">Seata / 最终一致性保障</text>
|
||||
<g transform="translate(-140, 45)" filter="url(#cardShadow)">
|
||||
<polygon points="0,-16 28,-2 0,12 -28,-2" fill="url(#glassGrad)" stroke="#CBD5E1" stroke-width="1"/>
|
||||
<polygon points="-28,-2 0,12 0,26 -28,12" fill="#E2E8F0"/>
|
||||
<polygon points="0,12 28,-2 28,12 0,26" fill="#F1F5F9"/>
|
||||
<circle cx="0" cy="-2" r="3" fill="#2563EB"/>
|
||||
</g>
|
||||
<g transform="translate(140, 45)" filter="url(#cardShadow)">
|
||||
<polygon points="0,-16 28,-2 0,12 -28,-2" fill="url(#glassGrad)" stroke="#CBD5E1" stroke-width="1"/>
|
||||
<polygon points="-28,-2 0,12 0,26 -28,12" fill="#E2E8F0"/>
|
||||
<polygon points="0,12 28,-2 28,12 0,26" fill="#F1F5F9"/>
|
||||
<circle cx="0" cy="-2" r="3" fill="#06B6D4"/>
|
||||
</g>
|
||||
|
||||
<g transform="translate(14, 82)">
|
||||
<rect width="340" height="38" rx="3" fill="#F8FAFC" stroke="#E2E8F0"/>
|
||||
<text x="12" y="16" fill="#0F172A" font-size="9" font-weight="600">数据库主从读写分离 + Redis 分布式多级缓存架构</text>
|
||||
<text x="12" y="30" fill="#10B981" font-size="8">双向幂等校验设计,支持弹性横向扩展与平滑扩容</text>
|
||||
<path d="M -140 45 L 0 -10 M 140 45 L 0 -10 M 0 -10 L 0 -75" stroke="#94A3B8" stroke-width="1.5" stroke-dasharray="4,4"/>
|
||||
<path d="M -80 75 Q 0 40 80 75" fill="none" stroke="#2563EB" stroke-width="1.5" opacity="0.6"/>
|
||||
|
||||
<g transform="translate(-60, 10)" filter="url(#cardShadow)">
|
||||
<polygon points="0,-22 36,-4 0,14 -36,-4" fill="url(#blueGrad)"/>
|
||||
<polygon points="-36,-4 0,14 0,36 -36,18" fill="#1D4ED8"/>
|
||||
<polygon points="0,14 36,-4 36,18 0,36" fill="#1E40AF"/>
|
||||
</g>
|
||||
<g transform="translate(60, 10)" filter="url(#cardShadow)">
|
||||
<polygon points="0,-22 36,-4 0,14 -36,-4" fill="url(#cyanGrad)"/>
|
||||
<polygon points="-36,-4 0,14 0,36 -36,18" fill="#0891B2"/>
|
||||
<polygon points="0,14 36,-4 36,18 0,36" fill="#0E7490"/>
|
||||
</g>
|
||||
|
||||
<!-- 底部工程规范 -->
|
||||
<g transform="translate(0, 210)">
|
||||
<rect width="368" height="88" rx="4" fill="#F8FAFC" stroke="#E2E8F0"/>
|
||||
<text x="14" y="20" fill="#0F172A" font-size="10" font-weight="700">质量与工程交付标准:</text>
|
||||
<text x="14" y="38" fill="#475569" font-size="9">规范化工程架构与严格代码审查,核心业务模块自动化测试覆盖;</text>
|
||||
<text x="14" y="54" fill="#475569" font-size="9">完整交付后端与前端源代码、数据库字典及详尽部署运维文档;</text>
|
||||
<text x="14" y="70" fill="#475569" font-size="9">支持私有专网物理隔离部署与多中心容灾方案选型。</text>
|
||||
<g transform="translate(0, -60)" filter="url(#cardShadow)">
|
||||
<circle cx="0" cy="0" r="48" fill="#EFF6FF" opacity="0.8"/>
|
||||
<circle cx="0" cy="0" r="38" fill="none" stroke="#2563EB" stroke-width="1.2" stroke-dasharray="5,3"/>
|
||||
<polygon points="0,-32 30,-12 0,8 -30,-12" fill="url(#glassGrad)" stroke="#2563EB" stroke-width="1.5"/>
|
||||
<polygon points="-30,-12 0,8 0,32 -30,12" fill="#DBEAFE"/>
|
||||
<polygon points="0,8 30,-12 30,12 0,32" fill="#BFDBFE"/>
|
||||
<circle cx="0" cy="8" r="5" fill="#2563EB"/>
|
||||
<circle cx="0" cy="8" r="8" fill="none" stroke="#2563EB" stroke-width="1" opacity="0.5"/>
|
||||
</g>
|
||||
|
||||
<circle cx="-120" cy="-30" r="3" fill="#2563EB" opacity="0.6"/>
|
||||
<circle cx="110" cy="-40" r="3.5" fill="#06B6D4" opacity="0.6"/>
|
||||
<circle cx="-50" cy="90" r="2.5" fill="#7C3AED" opacity="0.5"/>
|
||||
<circle cx="70" cy="80" r="3" fill="#2563EB" opacity="0.5"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
之前 宽度: | 高度: | 大小: 4.0 KiB 之后 宽度: | 高度: | 大小: 4.9 KiB |
@@ -1,7 +1,8 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
"""
|
||||
生成文章资讯专属现代中式浅色专业风矢量封面图 (SVG)
|
||||
尺寸 600x380,浅色专业背景、科技蓝与中国印章点缀、窗棂细线、无 emoji
|
||||
生成文章资讯专属现代中式极简矢量封面图 (Concise Article Covers Generator)
|
||||
彻底杜绝文字介绍类图片,纯粹以现代中式浅色专业风空间几何、流光、细线窗棂与单字印章呈现。
|
||||
尺寸 600x380,浅色专业底色 #FFFFFF / #F8FAFC,主色 #2563EB,辅色 #06B6D4 / #7C3AED。
|
||||
"""
|
||||
import os
|
||||
|
||||
@@ -9,310 +10,217 @@ BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
|
||||
TARGET_DIR = os.path.join(BASE_DIR, 'public', 'assets', 'addons', 'official', 'images', 'articles')
|
||||
os.makedirs(TARGET_DIR, exist_ok=True)
|
||||
|
||||
# 模板定义
|
||||
def create_article_svg(title_cn, subtitle_en, tag_text, badge_label, content_elements):
|
||||
return f'''<svg width="600" height="380" viewBox="0 0 600 380" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<defs>
|
||||
<linearGradient id="bgGrad" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
COMMON_DEFS = '''
|
||||
<linearGradient id="artBgGrad" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#FFFFFF"/>
|
||||
<stop offset="100%" stop-color="#F8FAFC"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="primaryGrad" x1="0%" y1="0%" x2="100%" y2="0%">
|
||||
<linearGradient id="artBlue" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#2563EB"/>
|
||||
<stop offset="100%" stop-color="#3B82F6"/>
|
||||
<stop offset="100%" stop-color="#1D4ED8"/>
|
||||
</linearGradient>
|
||||
<pattern id="latticeGrid" width="24" height="24" patternUnits="userSpaceOnUse">
|
||||
<path d="M 24 0 L 0 0 0 24" fill="none" stroke="#E2E8F0" stroke-width="0.75" stroke-dasharray="2,2"/>
|
||||
<linearGradient id="artCyan" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#06B6D4"/>
|
||||
<stop offset="100%" stop-color="#0EA5E9"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="artPurple" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#7C3AED"/>
|
||||
<stop offset="100%" stop-color="#6366F1"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="artGlass" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#FFFFFF" stop-opacity="0.85"/>
|
||||
<stop offset="100%" stop-color="#F1F5F9" stop-opacity="0.6"/>
|
||||
</linearGradient>
|
||||
<pattern id="artLattice" width="24" height="24" patternUnits="userSpaceOnUse">
|
||||
<path d="M 24 0 L 0 0 0 24" fill="none" stroke="#E2E8F0" stroke-width="0.75" stroke-dasharray="3,3"/>
|
||||
</pattern>
|
||||
<filter id="artShadow" x="-10%" y="-10%" width="120%" height="120%">
|
||||
<feDropShadow dx="0" dy="6" stdDeviation="10" flood-color="#0F172A" flood-opacity="0.06"/>
|
||||
</filter>
|
||||
<filter id="artGlow" x="-20%" y="-20%" width="140%" height="140%">
|
||||
<feGaussianBlur stdDeviation="10" result="blur"/>
|
||||
<feComposite in="SourceGraphic" in2="blur" operator="over"/>
|
||||
</filter>
|
||||
'''
|
||||
|
||||
def make_art_seal(x, y, char):
|
||||
return f'''
|
||||
<g transform="translate({x}, {y})">
|
||||
<rect width="24" height="24" rx="4" fill="#FEF2F2" stroke="#DC2626" stroke-width="1.2"/>
|
||||
<rect x="2" y="2" width="20" height="20" rx="2" fill="none" stroke="#DC2626" stroke-width="0.5" stroke-opacity="0.5"/>
|
||||
<text x="12" y="17" fill="#DC2626" font-family="'Noto Serif SC', 'SimSun', serif" font-size="12" font-weight="700" text-anchor="middle">{char}</text>
|
||||
</g>
|
||||
'''
|
||||
|
||||
def create_base_svg(seal_char, visual_elements):
|
||||
return f'''<svg width="600" height="380" viewBox="0 0 600 380" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<defs>
|
||||
{COMMON_DEFS}
|
||||
</defs>
|
||||
|
||||
<!-- 背景卡片与淡雅窗棂网格 -->
|
||||
<rect width="600" height="380" rx="8" fill="url(#bgGrad)"/>
|
||||
<rect width="600" height="380" rx="8" fill="url(#latticeGrid)" opacity="0.6"/>
|
||||
<rect width="600" height="380" rx="8" fill="url(#artBgGrad)"/>
|
||||
<rect width="600" height="380" rx="8" fill="url(#artLattice)" opacity="0.6"/>
|
||||
<rect x="1" y="1" width="598" height="378" rx="7" fill="none" stroke="#E2E8F0" stroke-width="1.5"/>
|
||||
|
||||
<!-- 顶部控制台标题栏 -->
|
||||
<rect x="20" y="20" width="560" height="36" rx="4" fill="#FFFFFF" stroke="#E2E8F0"/>
|
||||
<circle cx="36" cy="38" r="4.5" fill="#EF4444"/>
|
||||
<circle cx="50" cy="38" r="4.5" fill="#F59E0B"/>
|
||||
<circle cx="64" cy="38" r="4.5" fill="#10B981"/>
|
||||
<text x="84" y="42" fill="#334155" font-family="'Inter', 'Noto Sans SC', sans-serif" font-size="12" font-weight="600">{subtitle_en}</text>
|
||||
{make_art_seal(554, 20, seal_char)}
|
||||
|
||||
<!-- 中式印章 -->
|
||||
<rect x="495" y="26" width="72" height="22" rx="2" fill="#FEF2F2" stroke="#EF4444" stroke-width="1"/>
|
||||
<text x="502" y="42" fill="#DC2626" font-family="'Noto Serif SC', 'SimSun', serif" font-size="11" font-weight="700">{badge_label}</text>
|
||||
|
||||
<!-- 核心图解视窗区域 -->
|
||||
{content_elements}
|
||||
|
||||
<!-- 底部文章标签条 -->
|
||||
<rect x="20" y="324" width="560" height="36" rx="4" fill="#F1F5F9" stroke="#E2E8F0"/>
|
||||
<rect x="32" y="332" width="76" height="20" rx="2" fill="#EFF6FF" stroke="#BFDBFE"/>
|
||||
<text x="40" y="346" fill="#1D4ED8" font-family="'Inter', 'Noto Sans SC', sans-serif" font-size="11" font-weight="600">{tag_text}</text>
|
||||
<text x="120" y="347" fill="#64748B" font-family="'Noto Serif SC', 'SimSun', serif" font-size="12">{title_cn}</text>
|
||||
<text x="480" y="346" fill="#2563EB" font-family="'Inter', sans-serif" font-size="11" font-weight="600">NAHAICHUAN TECH</text>
|
||||
<g transform="translate(300, 190)">
|
||||
{visual_elements}
|
||||
</g>
|
||||
</svg>'''
|
||||
|
||||
articles = [
|
||||
{
|
||||
'file': 'article_microservice.svg',
|
||||
'title': '高并发商城微服务中台分布式事务与分库分表实践',
|
||||
'sub': 'Engineering Insight · High-Concurrency Mall Architecture',
|
||||
'tag': '技术洞察',
|
||||
'badge': '高可用中台',
|
||||
'content': '''
|
||||
<rect x="30" y="75" width="250" height="230" rx="6" fill="#FFFFFF" stroke="#E2E8F0"/>
|
||||
<rect x="30" y="75" width="250" height="32" rx="6 6 0 0" fill="#F8FAFC"/>
|
||||
<text x="44" y="96" fill="#0F172A" font-family="'Inter', 'Noto Sans SC', sans-serif" font-size="12" font-weight="700">分布式核心拓扑 (Distributed Mesh)</text>
|
||||
<rect x="44" y="120" width="222" height="36" rx="4" fill="#EFF6FF" stroke="#BFDBFE"/>
|
||||
<text x="54" y="142" fill="#1E40AF" font-family="'Inter', sans-serif" font-size="11">API 网关 · 限流熔断与路由分发</text>
|
||||
<rect x="44" y="166" width="222" height="36" rx="4" fill="#F8FAFC" stroke="#CBD5E1"/>
|
||||
<text x="54" y="188" fill="#334155" font-family="'Inter', sans-serif" font-size="11">交易订单集群 · RocketMQ 事务消息</text>
|
||||
<rect x="44" y="212" width="222" height="36" rx="4" fill="#F8FAFC" stroke="#CBD5E1"/>
|
||||
<text x="54" y="234" fill="#334155" font-family="'Inter', sans-serif" font-size="11">库存防超卖 · Redis RedLock + Lua 脚本</text>
|
||||
<rect x="44" y="258" width="222" height="32" rx="4" fill="#ECFDF5" stroke="#A7F3D0"/>
|
||||
<text x="54" y="278" fill="#065F46" font-family="'Inter', sans-serif" font-size="11">压测吞吐量: 8,500+ TPS · 延迟 < 35ms</text>
|
||||
articles = {
|
||||
# 1. 微服务分布式事务
|
||||
'article_microservice.svg': ('枢', '''
|
||||
<ellipse cx="0" cy="50" rx="190" ry="75" fill="none" stroke="#E2E8F0" stroke-width="1.2" stroke-dasharray="5,4"/>
|
||||
<g transform="translate(-70, 0)" filter="url(#artShadow)">
|
||||
<polygon points="0,-28 35,-10 0,10 -35,-10" fill="url(#artBlue)"/>
|
||||
<polygon points="-35,-10 0,10 0,34 -35,14" fill="#1D4ED8"/>
|
||||
<polygon points="0,10 35,-10 35,14 0,34" fill="#1E40AF"/>
|
||||
</g>
|
||||
<g transform="translate(70, 0)" filter="url(#artShadow)">
|
||||
<polygon points="0,-28 35,-10 0,10 -35,-10" fill="url(#artCyan)"/>
|
||||
<polygon points="-35,-10 0,10 0,34 -35,14" fill="#0891B2"/>
|
||||
<polygon points="0,10 35,-10 35,14 0,34" fill="#0E7490"/>
|
||||
</g>
|
||||
<g transform="translate(0, -50)" filter="url(#artShadow)">
|
||||
<polygon points="0,-24 28,-8 0,8 -28,-8" fill="url(#artGlass)" stroke="#2563EB" stroke-width="1.2"/>
|
||||
<circle cx="0" cy="0" r="4" fill="#2563EB"/>
|
||||
</g>
|
||||
<path d="M -70 0 Q 0 -40 70 0" fill="none" stroke="url(#artBlue)" stroke-width="2" stroke-linecap="round"/>
|
||||
<path d="M 70 15 Q 0 55 -70 15" fill="none" stroke="url(#artCyan)" stroke-width="1.8" stroke-dasharray="4,3"/>
|
||||
'''),
|
||||
|
||||
<rect x="300" y="75" width="270" height="230" rx="6" fill="#FFFFFF" stroke="#E2E8F0"/>
|
||||
<rect x="300" y="75" width="270" height="32" rx="6 6 0 0" fill="#F8FAFC"/>
|
||||
<text x="314" y="96" fill="#0F172A" font-family="'Inter', 'Noto Sans SC', sans-serif" font-size="12" font-weight="700">数据一致性与多租户分片</text>
|
||||
<path d="M 320 135 L 550 135 M 320 180 L 550 180 M 320 225 L 550 225" stroke="#F1F5F9" stroke-width="1"/>
|
||||
<text x="320" y="125" fill="#64748B" font-family="'Inter', sans-serif" font-size="10">分库分表策略 (Sharding-Sphere)</text>
|
||||
<text x="320" y="150" fill="#0F172A" font-family="'Inter', sans-serif" font-size="12" font-weight="600">按商户ID哈希分区 + 订单月份归档</text>
|
||||
<text x="320" y="195" fill="#64748B" font-family="'Inter', sans-serif" font-size="10">分布式事务协调 (Seata AT 模式)</text>
|
||||
<text x="320" y="220" fill="#0F172A" font-family="'Inter', sans-serif" font-size="12" font-weight="600">两阶段提交 · 自动全局锁回滚机制</text>
|
||||
<rect x="320" y="248" width="230" height="42" rx="4" fill="#F8FAFC" stroke="#E2E8F0"/>
|
||||
<text x="330" y="274" fill="#475569" font-family="'Noto Serif SC', 'SimSun', serif" font-size="11">严谨设计:双向对账机制与死信队列自动报警</text>
|
||||
'''
|
||||
},
|
||||
{
|
||||
'file': 'article_ai_agent.svg',
|
||||
'title': '企业私域AI智能体落地:RAG本地知识库与安全隔离工程',
|
||||
'sub': 'AI Engineering · Private RAG & Knowledge Governance',
|
||||
'tag': '技术洞察',
|
||||
'badge': '私域智能体',
|
||||
'content': '''
|
||||
<rect x="30" y="75" width="260" height="230" rx="6" fill="#FFFFFF" stroke="#E2E8F0"/>
|
||||
<rect x="30" y="75" width="260" height="32" rx="6 6 0 0" fill="#F8FAFC"/>
|
||||
<text x="44" y="96" fill="#0F172A" font-family="'Inter', 'Noto Sans SC', sans-serif" font-size="12" font-weight="700">RAG 双路检索与溯源流水线</text>
|
||||
<rect x="44" y="120" width="232" height="36" rx="4" fill="#EFF6FF" stroke="#BFDBFE"/>
|
||||
<text x="54" y="142" fill="#1E40AF" font-family="'Inter', sans-serif" font-size="11">密集向量检索 (Milvus) + BM25 稀疏全文</text>
|
||||
<rect x="44" y="166" width="232" height="36" rx="4" fill="#F8FAFC" stroke="#CBD5E1"/>
|
||||
<text x="54" y="188" fill="#334155" font-family="'Inter', sans-serif" font-size="11">跨编码器 Rerank 重排序引擎 (Top-5)</text>
|
||||
<rect x="44" y="212" width="232" height="36" rx="4" fill="#F8FAFC" stroke="#CBD5E1"/>
|
||||
<text x="54" y="234" fill="#334155" font-family="'Inter', sans-serif" font-size="11">原文章节双向锚定 (章节溯源防幻觉)</text>
|
||||
<rect x="44" y="258" width="232" height="32" rx="4" fill="#ECFDF5" stroke="#A7F3D0"/>
|
||||
<text x="54" y="278" fill="#065F46" font-family="'Inter', sans-serif" font-size="11">检索命中准确率: 95.8% · 响应 < 1.2s</text>
|
||||
# 2. 跨端APP与小程序
|
||||
'article_cross_app.svg': ('端', '''
|
||||
<ellipse cx="0" cy="60" rx="180" ry="65" fill="none" stroke="#E2E8F0" stroke-width="1.2" stroke-dasharray="4,4"/>
|
||||
<g transform="translate(-65, -10)" filter="url(#artShadow)">
|
||||
<rect x="-45" y="-65" width="90" height="130" rx="6" fill="url(#artGlass)" stroke="#CBD5E1" stroke-width="1.2"/>
|
||||
<rect x="-35" y="-55" width="70" height="95" rx="3" fill="#FFFFFF" stroke="#E2E8F0"/>
|
||||
<circle cx="0" cy="52" r="3" fill="#94A3B8"/>
|
||||
</g>
|
||||
<g transform="translate(65, 10)" filter="url(#artShadow)">
|
||||
<rect x="-32" y="-70" width="64" height="140" rx="10" fill="#FFFFFF" stroke="#2563EB" stroke-width="1.5"/>
|
||||
<rect x="-26" y="-55" width="52" height="110" rx="5" fill="url(#artBgGrad)"/>
|
||||
<circle cx="0" cy="-20" r="14" fill="url(#artPurple)"/>
|
||||
</g>
|
||||
<path d="M -20 -15 C 10 -40 30 -30 65 -15" fill="none" stroke="url(#artCyan)" stroke-width="2" stroke-linecap="round"/>
|
||||
<circle cx="20" cy="-25" r="4" fill="#06B6D4" filter="url(#artGlow)"/>
|
||||
'''),
|
||||
|
||||
<rect x="310" y="75" width="260" height="230" rx="6" fill="#FFFFFF" stroke="#E2E8F0"/>
|
||||
<rect x="310" y="75" width="260" height="32" rx="6 6 0 0" fill="#F8FAFC"/>
|
||||
<text x="324" y="96" fill="#0F172A" font-family="'Inter', 'Noto Sans SC', sans-serif" font-size="12" font-weight="700">纯内网物理隔离安全沙箱</text>
|
||||
<rect x="324" y="120" width="232" height="48" rx="4" fill="#FEF2F2" stroke="#FECACA"/>
|
||||
<text x="334" y="142" fill="#991B1B" font-family="'Inter', sans-serif" font-size="11" font-weight="600">物理隔离隔离域 · 零外网数据外泄</text>
|
||||
<text x="334" y="158" fill="#B91C1C" font-family="'Inter', sans-serif" font-size="10">私有算力服务器量化部署 · 内网专网运行</text>
|
||||
<rect x="324" y="178" width="232" height="42" rx="4" fill="#F8FAFC" stroke="#E2E8F0"/>
|
||||
<text x="334" y="196" fill="#334155" font-family="'Inter', sans-serif" font-size="11" font-weight="600">企业角色级敏感数据脱敏 (RBAC)</text>
|
||||
<text x="334" y="210" fill="#64748B" font-family="'Inter', sans-serif" font-size="10">动态字段脱敏 · 问答审计日志永久加密归档</text>
|
||||
<rect x="324" y="230" width="232" height="60" rx="4" fill="#F1F5F9" stroke="#E2E8F0"/>
|
||||
<text x="334" y="254" fill="#475569" font-family="'Noto Serif SC', 'SimSun', serif" font-size="11">工程交付:提供完整微调脚本、</text>
|
||||
<text x="334" y="272" fill="#475569" font-family="'Noto Serif SC', 'SimSun', serif" font-size="11">向量分块策略与内网环境 Docker 镜像包</text>
|
||||
'''
|
||||
},
|
||||
{
|
||||
'file': 'article_erp_bom.svg',
|
||||
'title': '全链路进销存系统的业财一体化构建与动态BOM算法',
|
||||
'sub': 'Enterprise Systems · Multi-Level BOM & Financial Cohesion',
|
||||
'tag': '技术洞察',
|
||||
'badge': '进销存架构',
|
||||
'content': '''
|
||||
<rect x="30" y="75" width="260" height="230" rx="6" fill="#FFFFFF" stroke="#E2E8F0"/>
|
||||
<rect x="30" y="75" width="260" height="32" rx="6 6 0 0" fill="#F8FAFC"/>
|
||||
<text x="44" y="96" fill="#0F172A" font-family="'Inter', 'Noto Sans SC', sans-serif" font-size="12" font-weight="700">多级动态 BOM 树状递归模型</text>
|
||||
<rect x="44" y="120" width="232" height="34" rx="4" fill="#EFF6FF" stroke="#BFDBFE"/>
|
||||
<text x="54" y="141" fill="#1E40AF" font-family="'Inter', sans-serif" font-size="11">成品装配节点 · 动态工时与损耗率核算</text>
|
||||
<rect x="44" y="162" width="232" height="34" rx="4" fill="#F8FAFC" stroke="#CBD5E1"/>
|
||||
<text x="54" y="183" fill="#334155" font-family="'Inter', sans-serif" font-size="11">半成品自递归拆解 · 齐套率缺料实时预警</text>
|
||||
<rect x="44" y="204" width="232" height="34" rx="4" fill="#F8FAFC" stroke="#CBD5E1"/>
|
||||
<text x="54" y="225" fill="#334155" font-family="'Inter', sans-serif" font-size="11">原料批次批号绑定 · 一物一码全流程溯源</text>
|
||||
<rect x="44" y="246" width="232" height="44" rx="4" fill="#ECFDF5" stroke="#A7F3D0"/>
|
||||
<text x="54" y="265" fill="#065F46" font-family="'Inter', sans-serif" font-size="11">35,000+ SKU 大数据量下</text>
|
||||
<text x="54" y="280" fill="#065F46" font-family="'Inter', sans-serif" font-size="10">生产需求计算 (MRP) 耗时稳定在 1.8 秒内</text>
|
||||
# 3. 私域AI智能体落地
|
||||
'article_ai_agent.svg': ('智', '''
|
||||
<circle cx="0" cy="0" r="100" fill="#FAF5FF" opacity="0.7"/>
|
||||
<ellipse cx="0" cy="0" rx="150" ry="60" fill="none" stroke="#E2E8F0" stroke-width="1.2" stroke-dasharray="5,4" transform="rotate(-30)"/>
|
||||
<ellipse cx="0" cy="0" rx="150" ry="60" fill="none" stroke="#E2E8F0" stroke-width="1.2" stroke-dasharray="5,4" transform="rotate(30)"/>
|
||||
<polygon points="0,-50 45,-20 45,25 0,55 -45,25 -45,-20" fill="none" stroke="#93C5FD" stroke-width="1.2"/>
|
||||
<circle cx="0" cy="0" r="24" fill="url(#artPurple)" filter="url(#artShadow)"/>
|
||||
<circle cx="0" cy="0" r="15" fill="url(#artBlue)"/>
|
||||
<circle cx="0" cy="0" r="6" fill="#FFFFFF"/>
|
||||
<circle cx="-130" cy="0" r="5" fill="#7C3AED" transform="rotate(-30)"/>
|
||||
<circle cx="130" cy="0" r="5" fill="#06B6D4" transform="rotate(30)"/>
|
||||
'''),
|
||||
|
||||
<rect x="310" y="75" width="260" height="230" rx="6" fill="#FFFFFF" stroke="#E2E8F0"/>
|
||||
<rect x="310" y="75" width="260" height="32" rx="6 6 0 0" fill="#F8FAFC"/>
|
||||
<text x="324" y="96" fill="#0F172A" font-family="'Inter', 'Noto Sans SC', sans-serif" font-size="12" font-weight="700">业务与财务闭环核算引擎</text>
|
||||
<text x="324" y="125" fill="#64748B" font-family="'Inter', sans-serif" font-size="10">三单智能自动匹配 (Three-Way Match)</text>
|
||||
<text x="324" y="148" fill="#0F172A" font-family="'Inter', sans-serif" font-size="12" font-weight="600">采购订单 = 验收送货单 = 进项发票</text>
|
||||
<text x="324" y="185" fill="#64748B" font-family="'Inter', sans-serif" font-size="10">不停产动态快照盘点 (Dynamic Stocktake)</text>
|
||||
<text x="324" y="208" fill="#0F172A" font-family="'Inter', sans-serif" font-size="12" font-weight="600">基于快照时点 + 增量出入库流水对冲</text>
|
||||
<rect x="324" y="235" width="232" height="55" rx="4" fill="#F8FAFC" stroke="#E2E8F0"/>
|
||||
<text x="334" y="258" fill="#475569" font-family="'Noto Serif SC', 'SimSun', serif" font-size="11">消除信息孤岛:财务科目凭证自动生成,</text>
|
||||
<text x="334" y="275" fill="#475569" font-family="'Noto Serif SC', 'SimSun', serif" font-size="11">应收应付账期与信用额度实时联锁控制</text>
|
||||
'''
|
||||
},
|
||||
{
|
||||
'file': 'article_cross_app.svg',
|
||||
'title': '跨端移动开发工程化实践:Flutter与Uni-app选型与调优',
|
||||
'sub': 'Mobile & IoT · Cross-Platform Rendering & Bluetooth BLE',
|
||||
'tag': '技术洞察',
|
||||
'badge': '跨端开发',
|
||||
'content': '''
|
||||
<rect x="30" y="75" width="260" height="230" rx="6" fill="#FFFFFF" stroke="#E2E8F0"/>
|
||||
<rect x="30" y="75" width="260" height="32" rx="6 6 0 0" fill="#F8FAFC"/>
|
||||
<text x="44" y="96" fill="#0F172A" font-family="'Inter', 'Noto Sans SC', sans-serif" font-size="12" font-weight="700">架构选型决策矩阵</text>
|
||||
<rect x="44" y="120" width="232" height="50" rx="4" fill="#EFF6FF" stroke="#BFDBFE"/>
|
||||
<text x="54" y="142" fill="#1E40AF" font-family="'Inter', sans-serif" font-size="11" font-weight="600">Flutter 自绘引擎 (iOS / Android)</text>
|
||||
<text x="54" y="158" fill="#2563EB" font-family="'Inter', sans-serif" font-size="10">Skia/Impeller 底层渲染 · 稳定 60fps 高帧率</text>
|
||||
<rect x="44" y="178" width="232" height="50" rx="4" fill="#F8FAFC" stroke="#CBD5E1"/>
|
||||
<text x="54" y="200" fill="#334155" font-family="'Inter', sans-serif" font-size="11" font-weight="600">Uni-app 全生态 (微信 / 支付宝 / 抖音)</text>
|
||||
<text x="54" y="216" fill="#64748B" font-family="'Inter', sans-serif" font-size="10">轻量跨小程序运行环境 · 微信生态无缝裂变</text>
|
||||
<rect x="44" y="236" width="232" height="54" rx="4" fill="#ECFDF5" stroke="#A7F3D0"/>
|
||||
<text x="54" y="258" fill="#065F46" font-family="'Inter', sans-serif" font-size="11">首屏启动性能冷启动优化</text>
|
||||
<text x="54" y="274" fill="#065F46" font-family="'Inter', sans-serif" font-size="10">分包预加载 + 异步骨架屏,启动压缩至 680ms</text>
|
||||
# 4. 断网离线收银
|
||||
'article_pos_offline.svg': ('笃', '''
|
||||
<circle cx="0" cy="0" r="120" fill="none" stroke="#E2E8F0" stroke-width="1" stroke-dasharray="4,4"/>
|
||||
<circle cx="0" cy="0" r="90" fill="none" stroke="#CBD5E1" stroke-width="1.2"/>
|
||||
<path d="M 0 -70 L 45 -45 V 0 C 45 35 0 70 0 70 C 0 70 -45 35 -45 0 V -45 Z" fill="url(#artGlass)" stroke="#CBD5E1" stroke-width="1.5" filter="url(#artShadow)"/>
|
||||
<circle cx="0" cy="0" r="22" fill="url(#artBlue)" filter="url(#artGlow)"/>
|
||||
<circle cx="0" cy="0" r="10" fill="#FFFFFF"/>
|
||||
<line x1="-90" y1="0" x2="-22" y2="0" stroke="url(#artCyan)" stroke-width="2" stroke-linecap="round"/>
|
||||
<line x1="22" y1="0" x2="90" y2="0" stroke="url(#artBlue)" stroke-width="2" stroke-linecap="round"/>
|
||||
<circle cx="-90" cy="0" r="4.5" fill="#06B6D4"/>
|
||||
<circle cx="90" cy="0" r="4.5" fill="#2563EB"/>
|
||||
'''),
|
||||
|
||||
<rect x="310" y="75" width="260" height="230" rx="6" fill="#FFFFFF" stroke="#E2E8F0"/>
|
||||
<rect x="310" y="75" width="260" height="32" rx="6 6 0 0" fill="#F8FAFC"/>
|
||||
<text x="324" y="96" fill="#0F172A" font-family="'Inter', 'Noto Sans SC', sans-serif" font-size="12" font-weight="700">低功耗蓝牙 (BLE) 工业外设直连</text>
|
||||
<text x="324" y="125" fill="#64748B" font-family="'Inter', sans-serif" font-size="10">状态机自动重连与心跳保活机制</text>
|
||||
<text x="324" y="148" fill="#0F172A" font-family="'Inter', sans-serif" font-size="12" font-weight="600">扫描 -> GATT握手 -> 特征订阅 -> 丢包重传</text>
|
||||
<text x="324" y="185" fill="#64748B" font-family="'Inter', sans-serif" font-size="10">原生平台通道双向通信 (MethodChannel)</text>
|
||||
<text x="324" y="208" fill="#0F172A" font-family="'Inter', sans-serif" font-size="12" font-weight="600">热敏打印机 / 工业手持扫码枪指令秒级解析</text>
|
||||
<rect x="324" y="235" width="232" height="55" rx="4" fill="#F8FAFC" stroke="#E2E8F0"/>
|
||||
<text x="334" y="258" fill="#475569" font-family="'Noto Serif SC', 'SimSun', serif" font-size="11">内存优化实录:大图纹理缓存精细回收,</text>
|
||||
<text x="334" y="275" fill="#475569" font-family="'Noto Serif SC', 'SimSun', serif" font-size="11">连续操作 8 小时无卡顿与 OOM 闪退</text>
|
||||
'''
|
||||
},
|
||||
{
|
||||
'file': 'article_pos_offline.svg',
|
||||
'title': '新零售商业收银系统容灾:弱网断网离线记账机制解析',
|
||||
'sub': 'POS Reliability · Offline Transactions & Queue Recovery',
|
||||
'tag': '技术洞察',
|
||||
'badge': '收银容灾',
|
||||
'content': '''
|
||||
<rect x="30" y="75" width="260" height="230" rx="6" fill="#FFFFFF" stroke="#E2E8F0"/>
|
||||
<rect x="30" y="75" width="260" height="32" rx="6 6 0 0" fill="#F8FAFC"/>
|
||||
<text x="44" y="96" fill="#0F172A" font-family="'Inter', 'Noto Sans SC', sans-serif" font-size="12" font-weight="700">门店离线记账沙箱架构</text>
|
||||
<rect x="44" y="120" width="232" height="36" rx="4" fill="#EFF6FF" stroke="#BFDBFE"/>
|
||||
<text x="54" y="142" fill="#1E40AF" font-family="'Inter', sans-serif" font-size="11">本地 SQLite 离线存储 · 全加密暂存凭单</text>
|
||||
<rect x="44" y="166" width="232" height="36" rx="4" fill="#F8FAFC" stroke="#CBD5E1"/>
|
||||
<text x="54" y="188" fill="#334155" font-family="'Inter', sans-serif" font-size="11">后厨 ESC/POS 打印机双网口局域网直连</text>
|
||||
<rect x="44" y="212" width="232" height="36" rx="4" fill="#F8FAFC" stroke="#CBD5E1"/>
|
||||
<text x="54" y="234" fill="#334155" font-family="'Inter', sans-serif" font-size="11">断网期间保障点单、出票、挂账平稳运行</text>
|
||||
<rect x="44" y="258" width="232" height="32" rx="4" fill="#ECFDF5" stroke="#A7F3D0"/>
|
||||
<text x="54" y="278" fill="#065F46" font-family="'Inter', sans-serif" font-size="11">离线丢单率: 0% · 扫码付响应 < 0.3s</text>
|
||||
# 5. 进销存BOM物料匹配
|
||||
'article_erp_bom.svg': ('准', '''
|
||||
<ellipse cx="0" cy="55" rx="170" ry="60" fill="none" stroke="#E2E8F0" stroke-width="1.2" stroke-dasharray="4,4"/>
|
||||
<g transform="translate(-65, 15)" filter="url(#artShadow)">
|
||||
<polygon points="0,-25 30,-8 0,8 -30,-8" fill="url(#artGlass)" stroke="#CBD5E1" stroke-width="1.2"/>
|
||||
<polygon points="-30,-8 0,8 0,28 -30,12" fill="#E2E8F0"/>
|
||||
<polygon points="0,8 30,-8 30,12 0,28" fill="#F1F5F9"/>
|
||||
</g>
|
||||
<g transform="translate(65, 15)" filter="url(#artShadow)">
|
||||
<polygon points="0,-25 30,-8 0,8 -30,-8" fill="url(#artGlass)" stroke="#CBD5E1" stroke-width="1.2"/>
|
||||
<polygon points="-30,-8 0,8 0,28 -30,12" fill="#E2E8F0"/>
|
||||
<polygon points="0,8 30,-8 30,12 0,28" fill="#F1F5F9"/>
|
||||
</g>
|
||||
<g transform="translate(0, -30)" filter="url(#artShadow)">
|
||||
<circle cx="0" cy="0" r="32" fill="none" stroke="#2563EB" stroke-width="1.2" stroke-dasharray="4,4"/>
|
||||
<circle cx="0" cy="0" r="22" fill="url(#artBlue)"/>
|
||||
<circle cx="0" cy="0" r="8" fill="#FFFFFF"/>
|
||||
</g>
|
||||
<path d="M -65 5 Q 0 -15 65 5" fill="none" stroke="url(#artCyan)" stroke-width="2" stroke-linecap="round"/>
|
||||
'''),
|
||||
|
||||
<rect x="310" y="75" width="260" height="230" rx="6" fill="#FFFFFF" stroke="#E2E8F0"/>
|
||||
<rect x="310" y="75" width="260" height="32" rx="6 6 0 0" fill="#F8FAFC"/>
|
||||
<text x="324" y="96" fill="#0F172A" font-family="'Inter', 'Noto Sans SC', sans-serif" font-size="12" font-weight="700">网络恢复幂等自动同步状态机</text>
|
||||
<text x="324" y="125" fill="#64748B" font-family="'Inter', sans-serif" font-size="10">幂等性与重试控制 (Idempotency Engine)</text>
|
||||
<text x="324" y="148" fill="#0F172A" font-family="'Inter', sans-serif" font-size="12" font-weight="600">全局雪花ID防重校验 · 事务幂等入库</text>
|
||||
<text x="324" y="185" fill="#64748B" font-family="'Inter', sans-serif" font-size="10">增量冲突消解策略 (Conflict Resolution)</text>
|
||||
<text x="324" y="208" fill="#0F172A" font-family="'Inter', sans-serif" font-size="12" font-weight="600">版本号时钟排序 · 差异对账自动生成补差单</text>
|
||||
<rect x="324" y="235" width="232" height="55" rx="4" fill="#F8FAFC" stroke="#E2E8F0"/>
|
||||
<text x="334" y="258" fill="#475569" font-family="'Noto Serif SC', 'SimSun', serif" font-size="11">经受 300+ 实体门店连续 720 天生产考验,</text>
|
||||
<text x="334" y="275" fill="#475569" font-family="'Noto Serif SC', 'SimSun', serif" font-size="11">高可靠断网防御与零财务差错保障</text>
|
||||
'''
|
||||
},
|
||||
{
|
||||
'file': 'article_tdd_standards.svg',
|
||||
'title': '贵阳纳海川科技全线推行规范工程与完整源码交付标准',
|
||||
'sub': 'Quality Assurance · Engineering Standards & Full Source Code Delivery',
|
||||
'tag': '公司动态',
|
||||
'badge': '交付规范',
|
||||
'content': '''
|
||||
<rect x="30" y="75" width="260" height="230" rx="6" fill="#FFFFFF" stroke="#E2E8F0"/>
|
||||
<rect x="30" y="75" width="260" height="32" rx="6 6 0 0" fill="#F8FAFC"/>
|
||||
<text x="44" y="96" fill="#0F172A" font-family="'Inter', 'Noto Sans SC', sans-serif" font-size="12" font-weight="700">规范化持续集成与自动化测试</text>
|
||||
<rect x="44" y="120" width="232" height="36" rx="4" fill="#FEF2F2" stroke="#FECACA"/>
|
||||
<text x="54" y="142" fill="#991B1B" font-family="'Inter', sans-serif" font-size="11">1. 编写业务需求与接口自动化用例</text>
|
||||
<rect x="44" y="166" width="232" height="36" rx="4" fill="#ECFDF5" stroke="#A7F3D0"/>
|
||||
<text x="54" y="188" fill="#065F46" font-family="'Inter', sans-serif" font-size="11">2. 规范化高质量代码实现与接口对接</text>
|
||||
<rect x="44" y="212" width="232" height="36" rx="4" fill="#EFF6FF" stroke="#BFDBFE"/>
|
||||
<text x="54" y="234" fill="#1E40AF" font-family="'Inter', sans-serif" font-size="11">3. 多轮代码审查与自动化回归测试</text>
|
||||
<rect x="44" y="258" width="232" height="32" rx="4" fill="#F8FAFC" stroke="#CBD5E1"/>
|
||||
<text x="54" y="278" fill="#334155" font-family="'Inter', sans-serif" font-size="11">核心接口自动化测试覆盖率 > 85%</text>
|
||||
# 6. 安全合规白皮书
|
||||
'article_security_whitepaper.svg': ('安', '''
|
||||
<polygon points="0,-95 82,-47 82,47 0,95 -82,47 -82,-47" fill="none" stroke="#E2E8F0" stroke-width="1.2" stroke-dasharray="4,4"/>
|
||||
<polygon points="0,-75 65,-37 65,37 0,75 -65,37 -65,-37" fill="url(#artGlass)" stroke="#CBD5E1" stroke-width="1.5" filter="url(#artShadow)"/>
|
||||
<circle cx="0" cy="0" r="26" fill="url(#artPurple)"/>
|
||||
<circle cx="0" cy="0" r="14" fill="url(#artBlue)"/>
|
||||
<circle cx="0" cy="0" r="6" fill="#FFFFFF"/>
|
||||
<circle cx="0" cy="-75" r="4" fill="#2563EB"/>
|
||||
<circle cx="65" cy="-37" r="4" fill="#7C3AED"/>
|
||||
<circle cx="65" cy="37" r="4" fill="#06B6D4"/>
|
||||
<circle cx="0" cy="75" r="4" fill="#2563EB"/>
|
||||
<circle cx="-65" cy="37" r="4" fill="#7C3AED"/>
|
||||
<circle cx="-65" cy="-37" r="4" fill="#06B6D4"/>
|
||||
'''),
|
||||
|
||||
<rect x="310" y="75" width="260" height="230" rx="6" fill="#FFFFFF" stroke="#E2E8F0"/>
|
||||
<rect x="310" y="75" width="260" height="32" rx="6 6 0 0" fill="#F8FAFC"/>
|
||||
<text x="324" y="96" fill="#0F172A" font-family="'Inter', 'Noto Sans SC', sans-serif" font-size="12" font-weight="700">100% 完整工程源码交付清单</text>
|
||||
<text x="324" y="125" fill="#64748B" font-family="'Inter', sans-serif" font-size="10">工程可控资产 (Engineering Assets)</text>
|
||||
<text x="324" y="148" fill="#0F172A" font-family="'Inter', sans-serif" font-size="12" font-weight="600">完整无加密 Git 源码仓库与提交历史</text>
|
||||
<text x="324" y="185" fill="#64748B" font-family="'Inter', sans-serif" font-size="10">设计与架构文档 (Documentation)</text>
|
||||
<text x="324" y="208" fill="#0F172A" font-family="'Inter', sans-serif" font-size="12" font-weight="600">数据库字典 + 拓扑蓝图 + 运维部署手册</text>
|
||||
<rect x="324" y="235" width="232" height="55" rx="4" fill="#F8FAFC" stroke="#E2E8F0"/>
|
||||
<text x="334" y="258" fill="#475569" font-family="'Noto Serif SC', 'SimSun', serif" font-size="11">坚决杜绝外包套壳模板代码,</text>
|
||||
<text x="334" y="275" fill="#475569" font-family="'Noto Serif SC', 'SimSun', serif" font-size="11">确保企业客户对数字资产拥有完整掌控权</text>
|
||||
'''
|
||||
},
|
||||
{
|
||||
'file': 'article_security_whitepaper.svg',
|
||||
'title': '纳海川发布《企业级微服务安全审计与合规防护白皮书》',
|
||||
'sub': 'Security Whitepaper · Microservice Defense & Cryptography',
|
||||
'tag': '公司动态',
|
||||
'badge': '安全合规',
|
||||
'content': '''
|
||||
<rect x="30" y="75" width="260" height="230" rx="6" fill="#FFFFFF" stroke="#E2E8F0"/>
|
||||
<rect x="30" y="75" width="260" height="32" rx="6 6 0 0" fill="#F8FAFC"/>
|
||||
<text x="44" y="96" fill="#0F172A" font-family="'Inter', 'Noto Sans SC', sans-serif" font-size="12" font-weight="700">微服务零信任纵深防御模型</text>
|
||||
<rect x="44" y="120" width="232" height="36" rx="4" fill="#EFF6FF" stroke="#BFDBFE"/>
|
||||
<text x="54" y="142" fill="#1E40AF" font-family="'Inter', sans-serif" font-size="11">mTLS 双向证书通信 · 服务间调用零信任</text>
|
||||
<rect x="44" y="166" width="232" height="36" rx="4" fill="#F8FAFC" stroke="#CBD5E1"/>
|
||||
<text x="54" y="188" fill="#334155" font-family="'Inter', sans-serif" font-size="11">国密 SM4 敏感信息加密存储与脱敏传输</text>
|
||||
<rect x="44" y="212" width="232" height="36" rx="4" fill="#F8FAFC" stroke="#CBD5E1"/>
|
||||
<text x="54" y="234" fill="#334155" font-family="'Inter', sans-serif" font-size="11">SQL 预编译防注入 + XSS 白名单严格转义</text>
|
||||
<rect x="44" y="258" width="232" height="32" rx="4" fill="#ECFDF5" stroke="#A7F3D0"/>
|
||||
<text x="54" y="278" fill="#065F46" font-family="'Inter', sans-serif" font-size="11">国家信息系统安全等级保护三级对照设计</text>
|
||||
# 7. 数字化转型路径
|
||||
'article_southwest_digital.svg': ('融', '''
|
||||
<ellipse cx="0" cy="20" rx="180" ry="80" fill="none" stroke="#E2E8F0" stroke-width="1.2" stroke-dasharray="5,4"/>
|
||||
<g filter="url(#artShadow)">
|
||||
<circle cx="0" cy="0" r="28" fill="url(#artBlue)"/>
|
||||
<circle cx="0" cy="0" r="12" fill="#FFFFFF"/>
|
||||
</g>
|
||||
<g transform="translate(-110, -25)">
|
||||
<circle cx="0" cy="0" r="16" fill="url(#artGlass)" stroke="#2563EB" stroke-width="1.2"/>
|
||||
<circle cx="0" cy="0" r="5" fill="#2563EB"/>
|
||||
<line x1="0" y1="0" x2="85" y2="20" stroke="#93C5FD" stroke-width="1.5" stroke-dasharray="3,3"/>
|
||||
</g>
|
||||
<g transform="translate(110, -25)">
|
||||
<circle cx="0" cy="0" r="16" fill="url(#artGlass)" stroke="#06B6D4" stroke-width="1.2"/>
|
||||
<circle cx="0" cy="0" r="5" fill="#06B6D4"/>
|
||||
<line x1="0" y1="0" x2="-85" y2="20" stroke="#93C5FD" stroke-width="1.5" stroke-dasharray="3,3"/>
|
||||
</g>
|
||||
<g transform="translate(0, 70)">
|
||||
<circle cx="0" cy="0" r="14" fill="url(#artGlass)" stroke="#7C3AED" stroke-width="1"/>
|
||||
<circle cx="0" cy="0" r="4.5" fill="#7C3AED"/>
|
||||
<line x1="0" y1="0" x2="0" y2="-42" stroke="#CBD5E1" stroke-width="1.2"/>
|
||||
</g>
|
||||
'''),
|
||||
|
||||
<rect x="310" y="75" width="260" height="230" rx="6" fill="#FFFFFF" stroke="#E2E8F0"/>
|
||||
<rect x="310" y="75" width="260" height="32" rx="6 6 0 0" fill="#F8FAFC"/>
|
||||
<text x="324" y="96" fill="#0F172A" font-family="'Inter', 'Noto Sans SC', sans-serif" font-size="12" font-weight="700">全链路审计闭环与合规追溯</text>
|
||||
<text x="324" y="125" fill="#64748B" font-family="'Inter', sans-serif" font-size="10">全链路跟踪 (Distributed TraceID)</text>
|
||||
<text x="324" y="148" fill="#0F172A" font-family="'Inter', sans-serif" font-size="12" font-weight="600">网关到存储统一链路标识,毫秒级定位异常</text>
|
||||
<text x="324" y="185" fill="#64748B" font-family="'Inter', sans-serif" font-size="10">不可篡改审计日志 (Tamper-Proof Audit)</text>
|
||||
<text x="324" y="208" fill="#0F172A" font-family="'Inter', sans-serif" font-size="12" font-weight="600">管理端关键动作数字签名存证归档</text>
|
||||
<rect x="324" y="235" width="232" height="55" rx="4" fill="#F8FAFC" stroke="#E2E8F0"/>
|
||||
<text x="334" y="258" fill="#475569" font-family="'Noto Serif SC', 'SimSun', serif" font-size="11">白皮书全面总结政企系统交付经验,</text>
|
||||
<text x="334" y="275" fill="#475569" font-family="'Noto Serif SC', 'SimSun', serif" font-size="11">赋能实体企业低成本达成数据安全法规合规</text>
|
||||
'''
|
||||
},
|
||||
{
|
||||
'file': 'article_southwest_digital.svg',
|
||||
'title': '立足贵阳服务全国:纳海川助力数十家实体企业数字化转型纪实',
|
||||
'sub': 'Regional Practice · Southwest Digital Middle Platform Realization',
|
||||
'tag': '公司动态',
|
||||
'badge': '本地服务',
|
||||
'content': '''
|
||||
<rect x="30" y="75" width="260" height="230" rx="6" fill="#FFFFFF" stroke="#E2E8F0"/>
|
||||
<rect x="30" y="75" width="260" height="32" rx="6 6 0 0" fill="#F8FAFC"/>
|
||||
<text x="44" y="96" fill="#0F172A" font-family="'Inter', 'Noto Sans SC', sans-serif" font-size="12" font-weight="700">贵阳本土驻场服务技术优势</text>
|
||||
<rect x="44" y="120" width="232" height="36" rx="4" fill="#EFF6FF" stroke="#BFDBFE"/>
|
||||
<text x="54" y="142" fill="#1E40AF" font-family="'Inter', sans-serif" font-size="11">自有本地研发团队 · 资深架构师面对面沟通</text>
|
||||
<rect x="44" y="166" width="232" height="36" rx="4" fill="#F8FAFC" stroke="#CBD5E1"/>
|
||||
<text x="54" y="188" fill="#334155" font-family="'Inter', sans-serif" font-size="11">深入车间、门店与仓库现场梳理真实业务逻辑</text>
|
||||
<rect x="44" y="212" width="232" height="36" rx="4" fill="#F8FAFC" stroke="#CBD5E1"/>
|
||||
<text x="54" y="234" fill="#334155" font-family="'Inter', sans-serif" font-size="11">拒绝二次转包 · 杜绝异地沟通信息失真</text>
|
||||
<rect x="44" y="258" width="232" height="32" rx="4" fill="#ECFDF5" stroke="#A7F3D0"/>
|
||||
<text x="54" y="278" fill="#065F46" font-family="'Inter', sans-serif" font-size="11">响应时效: <15分钟响应 · 紧急现场2小时内到达</text>
|
||||
|
||||
<rect x="310" y="75" width="260" height="230" rx="6" fill="#FFFFFF" stroke="#E2E8F0"/>
|
||||
<rect x="310" y="75" width="260" height="32" rx="6 6 0 0" fill="#F8FAFC"/>
|
||||
<text x="324" y="96" fill="#0F172A" font-family="'Inter', 'Noto Sans SC', sans-serif" font-size="12" font-weight="700">实体企业转型标杆收益矩阵</text>
|
||||
<text x="324" y="125" fill="#64748B" font-family="'Inter', sans-serif" font-size="10">生产周转效率 (Operational Velocity)</text>
|
||||
<text x="324" y="148" fill="#0F172A" font-family="'Inter', sans-serif" font-size="12" font-weight="600">库存物料占用压降 35% · 交付周期缩短 40%</text>
|
||||
<text x="324" y="185" fill="#64748B" font-family="'Inter', sans-serif" font-size="10">售后与维保承诺 (Warranty & SLA)</text>
|
||||
<text x="324" y="208" fill="#0F172A" font-family="'Inter', sans-serif" font-size="12" font-weight="600">首年 365 天免费运维 · 终身技术架构咨询支持</text>
|
||||
<rect x="324" y="235" width="232" height="55" rx="4" fill="#F8FAFC" stroke="#E2E8F0"/>
|
||||
<text x="334" y="258" fill="#475569" font-family="'Noto Serif SC', 'SimSun', serif" font-size="11">立足贵阳研发优势,以严谨务实技术态度,</text>
|
||||
<text x="334" y="275" fill="#475569" font-family="'Noto Serif SC', 'SimSun', serif" font-size="11">为实体企业交付扎实稳固的数字化业务系统</text>
|
||||
'''
|
||||
# 8. TDD 工程规范
|
||||
'article_tdd_standards.svg': ('律', '''
|
||||
<circle cx="0" cy="0" r="110" fill="none" stroke="#E2E8F0" stroke-width="1" stroke-dasharray="5,5"/>
|
||||
<g transform="translate(-60, 0)" filter="url(#artShadow)">
|
||||
<circle cx="0" cy="0" r="30" fill="url(#artBlue)"/>
|
||||
<circle cx="0" cy="0" r="12" fill="#FFFFFF"/>
|
||||
<circle cx="0" cy="0" r="5" fill="#1D4ED8"/>
|
||||
</g>
|
||||
<g transform="translate(60, 0)" filter="url(#artShadow)">
|
||||
<circle cx="0" cy="0" r="30" fill="url(#artCyan)"/>
|
||||
<circle cx="0" cy="0" r="12" fill="#FFFFFF"/>
|
||||
<circle cx="0" cy="0" r="5" fill="#0891B2"/>
|
||||
</g>
|
||||
<path d="M -30 -15 C 0 -35 0 -35 30 -15" fill="none" stroke="url(#artBlue)" stroke-width="2.2" stroke-linecap="round"/>
|
||||
<path d="M 30 15 C 0 35 0 35 -30 15" fill="none" stroke="url(#artCyan)" stroke-width="2.2" stroke-linecap="round"/>
|
||||
<circle cx="0" cy="-26" r="4" fill="#2563EB" filter="url(#artGlow)"/>
|
||||
<circle cx="0" cy="26" r="4" fill="#06B6D4" filter="url(#artGlow)"/>
|
||||
''')
|
||||
}
|
||||
]
|
||||
|
||||
for a in articles:
|
||||
svg_code = create_article_svg(a['title'], a['sub'], a['tag'], a['badge'], a['content'])
|
||||
file_path = os.path.join(TARGET_DIR, a['file'])
|
||||
with open(file_path, 'w', encoding='utf-8') as f:
|
||||
f.write(svg_code)
|
||||
print(f"Generated: {a['file']}")
|
||||
def generate_all_articles():
|
||||
for fname, (seal, vis) in articles.items():
|
||||
content = create_base_svg(seal, vis)
|
||||
path = os.path.join(TARGET_DIR, fname)
|
||||
with open(path, 'w', encoding='utf-8') as f:
|
||||
f.write(content.strip())
|
||||
print(f"Generated concise article cover: {fname} ({len(content)} bytes)")
|
||||
|
||||
print("All 8 article covers successfully generated!")
|
||||
if __name__ == '__main__':
|
||||
generate_all_articles()
|
||||
|
||||
@@ -279,6 +279,15 @@ def test_dedicated_service_pages_suite():
|
||||
res.assert_true(test_result.wasSuccessful(), f"三大服务独立页断言全部通过 (共 {test_result.testsRun} 项)")
|
||||
return res.summary()
|
||||
|
||||
def test_concise_showcase_images_suite():
|
||||
res = TestResult("配图简洁性与去文字化专项测试 (ConciseShowcaseImages)")
|
||||
from tests.test_concise_showcase_images import ConciseShowcaseImagesTest
|
||||
suite = unittest.TestLoader().loadTestsFromTestCase(ConciseShowcaseImagesTest)
|
||||
runner = unittest.TextTestRunner(verbosity=0)
|
||||
test_result = runner.run(suite)
|
||||
res.assert_true(test_result.wasSuccessful(), f"配图简洁性与去文字化断言全部通过 (共 {test_result.testsRun} 项)")
|
||||
return res.summary()
|
||||
|
||||
def main():
|
||||
import unittest
|
||||
results = [
|
||||
@@ -294,7 +303,8 @@ def main():
|
||||
test_natural_copywriting_suite(),
|
||||
test_homepage_button_links_suite(),
|
||||
test_journalism_and_articles_suite(),
|
||||
test_dedicated_service_pages_suite()
|
||||
test_dedicated_service_pages_suite(),
|
||||
test_concise_showcase_images_suite()
|
||||
]
|
||||
sys.exit(0 if all(results) else 1)
|
||||
|
||||
|
||||
@@ -0,0 +1,128 @@
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: utf-8 -*-
|
||||
"""
|
||||
配图简洁性与去文字化自动化测试 (TDD - Test-Driven Development)
|
||||
验证要求:
|
||||
1. 网站配图必须简洁高质感,绝不能是文字介绍类的图片(无冗余业务文字、功能列表、参数指标等)。
|
||||
2. showcases 核心配图(服务3张、产品4张、案例4张)必须为纯粹的高端视觉图形或概念拓扑,text 标签数量严格限制(≤ 1,仅允许极简中式印章微标如单字印文或纯图形无文字)。
|
||||
3. articles 封面配图必须为极简抽象科技艺术构图,杜绝长篇标题与说明文字堆砌(text 标签 ≤ 1)。
|
||||
4. 严格遵循现代中式浅色专业风规范(背景 #FFFFFF / #F8FAFC,主色 #2563EB 科技蓝,辅色 #06B6D4 青 / #7C3AED 紫,细线与留白)。
|
||||
5. 配图文件完整存在且大小合理,SVG 语法严格闭合。
|
||||
"""
|
||||
|
||||
import os
|
||||
import re
|
||||
import unittest
|
||||
|
||||
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
|
||||
|
||||
class ConciseShowcaseImagesTest(unittest.TestCase):
|
||||
def setUp(self):
|
||||
self.showcases_dir = os.path.join(BASE_DIR, 'public', 'assets', 'addons', 'official', 'images', 'showcases')
|
||||
self.articles_dir = os.path.join(BASE_DIR, 'public', 'assets', 'addons', 'official', 'images', 'articles')
|
||||
|
||||
self.core_showcase_files = [
|
||||
# 服务类
|
||||
'service_middle.svg',
|
||||
'service_app.svg',
|
||||
'service_agent.svg',
|
||||
# 产品类
|
||||
'product_mall.svg',
|
||||
'product_pos.svg',
|
||||
'product_erp.svg',
|
||||
'product_saas.svg',
|
||||
# 案例类
|
||||
'case_distrib.svg',
|
||||
'case_catering.svg',
|
||||
'case_gov_agent.svg',
|
||||
'case_manufacture.svg'
|
||||
]
|
||||
|
||||
self.article_files = [
|
||||
'article_microservice.svg',
|
||||
'article_cross_app.svg',
|
||||
'article_ai_agent.svg',
|
||||
'article_pos_offline.svg',
|
||||
'article_erp_bom.svg',
|
||||
'article_security_whitepaper.svg',
|
||||
'article_southwest_digital.svg',
|
||||
'article_tdd_standards.svg'
|
||||
]
|
||||
|
||||
def test_01_showcases_are_concise_not_text_intro(self):
|
||||
"""核心业务配图必须简洁纯粹,杜绝文字介绍类图片(text 标签不超过1个,严禁包含业务功能段落)"""
|
||||
self.assertTrue(os.path.isdir(self.showcases_dir), "showcases 目录必须存在")
|
||||
|
||||
text_regex = re.compile(r'<text[^>]*>(.*?)</text>', re.DOTALL | re.IGNORECASE)
|
||||
|
||||
for fname in self.core_showcase_files:
|
||||
fpath = os.path.join(self.showcases_dir, fname)
|
||||
self.assertTrue(os.path.isfile(fpath), f"配图 {fname} 必须存在")
|
||||
with open(fpath, 'r', encoding='utf-8') as f:
|
||||
content = f.read()
|
||||
|
||||
# 提取所有 <text> 标签中实际显示的文字
|
||||
matches = text_regex.findall(content)
|
||||
clean_texts = [re.sub(r'<[^>]+>', '', m).strip() for m in matches if m.strip()]
|
||||
|
||||
# 简洁要求:可见文字数量 ≤ 1(纯图形无文字,或最多仅含极简单字印章如'研'/'商'/'通'等)
|
||||
self.assertLessEqual(
|
||||
len(clean_texts), 1,
|
||||
f"配图 {fname} 必须简洁,不能是文字介绍类图片!当前检测到 {len(clean_texts)} 处文字: {clean_texts[:5]}"
|
||||
)
|
||||
|
||||
# 严禁在可见文本中出现功能描述词、参数指标词、业务列表等
|
||||
forbidden_intro_words = [
|
||||
'控制台', '架构', '文档分块', '向量化', '网关', '订单', '履约', '调度',
|
||||
'分销', '营销', '收银', '核销', '物料', '进销存', 'SaaS', '多租户', 'API'
|
||||
]
|
||||
all_visible_text = ' '.join(clean_texts)
|
||||
for word in forbidden_intro_words:
|
||||
self.assertNotIn(word, all_visible_text, f"配图 {fname} 中严禁出现业务介绍文字: '{word}'")
|
||||
|
||||
def test_02_articles_are_concise_artwork(self):
|
||||
"""文章封面必须简洁大气,不能包含大段标题或业务文字(text 标签不超过1个)"""
|
||||
if os.path.isdir(self.articles_dir):
|
||||
text_regex = re.compile(r'<text[^>]*>(.*?)</text>', re.DOTALL | re.IGNORECASE)
|
||||
for fname in self.article_files:
|
||||
fpath = os.path.join(self.articles_dir, fname)
|
||||
if os.path.isfile(fpath):
|
||||
with open(fpath, 'r', encoding='utf-8') as f:
|
||||
content = f.read()
|
||||
matches = text_regex.findall(content)
|
||||
clean_texts = [re.sub(r'<[^>]+>', '', m).strip() for m in matches if m.strip()]
|
||||
self.assertLessEqual(
|
||||
len(clean_texts), 1,
|
||||
f"文章配图 {fname} 必须简洁,不能堆砌冗长介绍文字!当前有 {len(clean_texts)} 处文字: {clean_texts[:5]}"
|
||||
)
|
||||
|
||||
def test_03_color_palette_and_modern_style(self):
|
||||
"""配图必须符合浅色专业风现代中式设计规范(含 #2563EB 科技蓝与浅色背景)"""
|
||||
for fname in self.core_showcase_files:
|
||||
fpath = os.path.join(self.showcases_dir, fname)
|
||||
with open(fpath, 'r', encoding='utf-8') as f:
|
||||
content = f.read()
|
||||
|
||||
# 浅色系与主色
|
||||
self.assertTrue(
|
||||
'#2563EB' in content or '#1D4ED8' in content or '#3B82F6' in content,
|
||||
f"配图 {fname} 必须包含主色科技蓝 (#2563EB)"
|
||||
)
|
||||
self.assertTrue(
|
||||
'#FFFFFF' in content or '#F8FAFC' in content or '#EFF6FF' in content,
|
||||
f"配图 {fname} 必须为浅色专业风底色"
|
||||
)
|
||||
|
||||
def test_04_svg_structure_validity(self):
|
||||
"""SVG 必须具有合法闭合结构与合理的 viewBox"""
|
||||
for fname in self.core_showcase_files:
|
||||
fpath = os.path.join(self.showcases_dir, fname)
|
||||
with open(fpath, 'r', encoding='utf-8') as f:
|
||||
content = f.read()
|
||||
self.assertTrue(content.strip().startswith('<svg'), f"{fname} 必须以 <svg 开头")
|
||||
self.assertTrue(content.strip().endswith('</svg>'), f"{fname} 必须以 </svg> 闭合")
|
||||
self.assertIn('viewBox', content, f"{fname} 必须指定 viewBox 属性以确保自适应")
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
||||