项目实训(八)|中医智能诊疗系统 中医知识百科 -知识卡片分享功能
2026/6/10 7:29:48 网站建设 项目流程

项目实训(八)|中医智能诊疗系统 中医知识百科 -知识卡片分享功能

功能模块:中医知识百科-知识卡片分享功能

开发周期:多阶段迭代开发

核心目标:实现知识卡片 / 详情页图片分享,结合 AI 生成分享文案,优化用户预览、编辑、风格选择等交互体验

一、整体规划与方案选型

1. 需求分析

支持用户将中医知识卡片(食材、穴位等内容)对外分享,提供链接分享、文本分享、图片分享三种主流形态,结合项目社交传播场景,优先选择图片化分享作为核心方案,适配微信等社交平台使用习惯。

2. 方案对比与选型

分享方式实现难度优缺点最终选择
链接分享中等实现简单,需后端维护独立页面 / 快照备选方案
纯文本分享无需后端,丢失样式、视觉效果差降级兜底方案
图片分享中等视觉还原度高,适配社交传播,需处理截图、跨域问题主方案

3. 技术栈确定

前端采用html2canvas实现 DOM 转图片,基于 Vue3 +<script setup>开发;移动端尝试原生Web Share API调用系统分享,后端基于现有 LLM 接口拓展文案生成能力。

二、第一阶段:基础卡片图片分享功能开发

1. 功能目标

实现列表页知识卡片一键生成图片、保存下载,完成基础分享闭环。

2. 核心开发动作

  1. 安装依赖:引入html2canvas截图库
npminstallhtml2canvas
  1. 前端编写分享逻辑:绑定卡片分享按钮,通过event.closest精准获取卡片 DOM,配置截图参数(高清缩放、跨域支持、白底背景)。
  2. 逻辑分支处理:移动端优先调用系统分享 API,桌面端直接触发图片下载;截图异常时降级为文本复制,保证功能可用。
  3. 页面样式:新增分享按钮样式,hover 交互优化视觉体验。

3. 问题与解决方案

  • 预判风险:卡片若包含外部图片会出现跨域渲染失败,通过useCORS: true提前配置,当前项目以纯文本为主,暂未触发该问题。

4. 阶段成果

列表页卡片点击分享,可正常生成高清 PNG 图片,桌面端自动下载,移动端唤起系统分享面板,基础分享功能落地。

三、第二阶段:详情弹窗分享功能开发

1. 功能目标

拓展分享范围,支持卡片点击展开后的详情弹窗内容分享,满足用户分享完整详情内容的需求。

2. 核心开发动作

  1. 在详情弹窗头部新增分享按钮,独立编写shareDetail方法,定向截取弹窗 DOM。
  2. 复用html2canvas截图逻辑,沿用加载提示、异常降级复制文本的兜底策略。

3. 核心问题与排查优化

问题描述

详情弹窗内容较长、自带滚动条,生成图片仅截取可视区域,完整内容丢失。

根因分析

html2canvas默认仅捕获元素视口内可见内容,无法自动识别滚动区域。

优化方案
  1. 临时修改 DOM 样式:截图前将弹窗height: autooverflow: visiblemax-height: none,强制内容完整展开;
  2. 强制浏览器重排:通过offsetHeight让样式立即生效;
  3. 指定截图尺寸:使用元素原生scrollHeight/scrollWidth作为截图宽高,捕获全部内容;
  4. 样式还原:通过try...finally语法,截图完成后恢复弹窗原始样式与滚动能力,不影响原有交互。

4. 阶段成果

详情页可完整截取全部滚动内容,长文本、大篇幅详情均可正常生成完整分享图。

四、第三阶段:社交平台分享适配与方案调整

1. 功能目标

打通浏览器与第三方社交平台,实现图片直接分享至微信等 APP,替代单纯下载。

2. 技术尝试

基于Web Share API标准能力,将 Canvas 转为 Blob 文件,拼接文件参数后调用系统分享接口,实现图片直传社交平台。

3. 问题分析与方案变更

问题

移动端选择分享至微信后,频繁出现分享失败、无响应

原因分析
  1. Web Share API受微信生态限制,微信内无法直接接收浏览器传递的图片文件;
  2. 若要适配微信专属分享,需后端配置安全域名、JS 签名等复杂配置,且仅支持链接分享,无法传递图片,改造成本高、体验提升有限。
最终决策

放弃跨平台直接分享能力,统一功能为生成图片并本地下载保存,由用户手动转发至社交平台;同时新增产品优化方向:基于 LLM 自动生成社交分享文案,提升图片传播价值。

五、第四阶段:AI 分享文案集成(图片合成优化)

1. 功能目标

对接项目现有 LLM 大模型,自动生成适配社交传播的简短文案,并将文案绘制在分享图片中。

2. 后端开发

  1. 新增接口/generate_share_text,接收卡片标题、摘要参数;
  2. 定制 Prompt:结合中医文化传播定位,要求文案简短、易懂、有吸引力,限制字数;
  3. 异常兜底:LLM 调用失败时,截取卡片原有内容作为默认文案,保证功能稳定。

3. 前端开发

  1. 新增接口请求方法,向后端获取 AI 文案;
  2. 拓展 Canvas 绘图逻辑:在原图基础上拼接文案区域,实现文字自动换行、背景配色;
  3. 统一改造shareCardshareDetail两大分享方法,截图→获取文案→图文合成→下载图片全链路打通。

4. 视觉优化迭代

问题

默认文案字体偏小、位于图片底部,视觉辨识度低。

优化思路
  1. 布局调整:将文案区域从图片底部迁移至顶部,强化展示优先级;
  2. 样式升级:调大字体、加宽行高与内边距,使用醒目浅黄背景 + 深橙色文字,区分内容区域;
  3. 结构重构:新建 Canvas 容器,先绘制顶部文案区,再绘制原卡片内容,保证图文层级。

5. 阶段成果

所有分享图片顶部自动附带 AI 生成的传播文案,图片视觉效果、传播属性大幅提升。

六、第五阶段:分享预览弹窗开发(交互体验升级)

1. 功能目标

解决现有痛点:用户点击分享后直接触发下载,无法提前预览图片与文案,体验不友好。新增预览弹窗,下载前可查看成品效果。

2. 核心开发动作

  1. 全局状态新增:弹窗显隐、预览图片地址、当前分享数据等响应式变量;
  2. 公共方法抽离:将「文案绘制到图片」逻辑封装为通用函数addTextToImage,减少代码冗余,统一列表 / 详情页图文合成规则;
  3. 逻辑改造:修改原有分享方法,先生成图片、再唤起预览弹窗,不再直接下载;弹窗内提供「下载」「取消」按钮,由用户自主操作;
  4. 页面搭建:编写预览弹窗 DOM 结构与样式,做居中、遮罩、滚动适配,兼容移动端与桌面端。

3. 阶段成果

分享流程优化为:点击分享→生成图片→弹窗预览→按需下载,用户可直观查看图片与文案,交互体验显著改善。

七、第六阶段:AI 文案高阶交互(风格切换 + 编辑 + 重生成)

1. 功能目标

深化 AI 文案能力,增加用户自主控制权,实现风格切换、手动编辑、重新生成文案三大交互,丰富个性化能力。

2. 后端迭代

改造/generate_share_text接口,新增style入参,划分三种文案风格:

  • 专业版:严谨、正式,适配专业中医传播场景;

  • 通俗版:口语化、接地气,面向普通用户;

  • 幽默版:轻松有趣,增强社交趣味性。

    根据不同风格动态拼接 Prompt,控制 LLM 输出方向。

3. 前端迭代

  1. 状态拓展:新增当前风格、可编辑文案、原始截图 Canvas 缓存等变量;

  2. 性能优化:缓存原始无文案的卡片 Canvas,切换 / 重绘文案时仅重新合成图文,无需重复 DOM 截图,提升响应速度;

  3. 交互功能实现:

    • 风格切换:点击风格按钮,调用后端接口获取对应文案,实时更新预览图;
    • 重新生成:同风格下再次请求 LLM,生成全新文案;
    • 手动编辑:输入框支持自定义修改文案,添加防抖逻辑,修改后实时刷新预览;
  4. 界面优化:在预览弹窗内增加风格按钮组、文案编辑输入框,补充按钮选中态样式。

4. 阶段成果

分享功能完成全链路交互升级:预览、风格选择、文案编辑、一键重生成、下载一体化,满足不同用户的个性化分享需求。

八、整体功能总结与后续规划

1. 已完成能力清单

  1. 基础能力:列表卡片、详情弹窗完整图片截取与下载,异常场景降级为文本复制;
  2. AI 能力:对接 LLM 实现自动文案生成,支持专业 / 通俗 / 幽默三种风格切换、同风格重生成;
  3. 交互能力:下载前图片预览、文案手动编辑、防抖实时预览;
  4. 兼容能力:处理滚动 DOM 完整截图、图片跨域、多端样式适配等问题。

2. 现存待优化点

  1. 长文案多行排版可进一步优化行间距、对齐方式;
  2. 大尺寸卡片图片在移动端预览弹窗可增加缩放功能;
  3. 可补充分享记录、常用文案模板等拓展功能。

3. 技术复盘

  1. html2canvas核心难点集中在滚动区域截取、样式临时变更与还原,通过 DOM 样式动态修改 + 浏览器重排机制完美解决;
  2. 第三方平台分享受生态限制,技术选型需结合平台规则综合判断,避免无效开发;
  3. 前端结合 AI 场景时,合理缓存原始资源、抽离公共方法,可大幅提升交互流畅度与代码可维护性;
  4. 功能迭代遵循「基础可用→体验优化→个性化拓展」的思路,逐步落地需求,保障每一个版本功能稳定。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询