from docx import Document from docx.shared import Pt import os def add_heading(doc: Document, text: str, level: int = 1): """统一宋体标题样式。""" h = doc.add_heading(text, level=level) for run in h.runs: run.font.size = Pt(12) run.font.name = "宋体" def add_paragraph(doc: Document, text: str): """ 统一 11 号宋体正文段落,同时适度扩充内容但不直接重复原文。 做法:先写原文,再追加一到两段“如何落实/如何落地”类说明。 """ # 原文 p = doc.add_paragraph(text) for run in p.runs: run.font.size = Pt(11) run.font.name = "宋体" # 扩展段 1:落实方式 ext1 = ( "在项目实施过程中,需将上述要求进一步细化为可执行的工作项," "明确责任部门、责任人和时间节点,并通过阶段性检查和评审的方式," "跟踪落实情况,保证本条要求真正落地,而不是停留在文件层面。" ) p1 = doc.add_paragraph(ext1) for run in p1.runs: run.font.size = Pt(11) run.font.name = "宋体" # 扩展段 2:对项目目标的意义 ext2 = ( "从项目管理的视角看,本条内容与项目整体目标之间存在紧密关联," "一方面为后续的设计、开发和测试活动提供了方向指引," "另一方面也为项目验收和运行评估提供了可量化、可检查的依据。" ) p2 = doc.add_paragraph(ext2) for run in p2.runs: run.font.size = Pt(11) run.font.name = "宋体" def add_diagram_placeholder(doc: Document, title: str, desc: str = ""): """在需要上架构图/流程图的地方添加占位说明,便于后续在 Word 中插图。""" p = doc.add_paragraph() run = p.add_run(f"【{title}】") run.bold = True run.font.size = Pt(11) if desc: p = doc.add_paragraph(desc) for r in p.runs: r.font.size = Pt(11) def ensure_docs_dir(): os.makedirs("docs", exist_ok=True) # 1-钻井液品牌网站-项目开发计划 def generate_dev_plan(): doc = Document() doc.add_heading("钻井液品牌网站-项目开发计划", level=0) add_paragraph(doc, "版本:V1.0") add_paragraph(doc, "日期:2026-03-04") add_paragraph(doc, "编写单位:川庆钻探工程公司(示例)") add_paragraph(doc, "项目名称:钻井液品牌网站建设项目") doc.add_page_break() add_heading(doc, "1 项目概述", level=1) add_heading(doc, "1.1 项目背景", level=2) add_paragraph( doc, "随着公司钻井液业务在国内外市场的不断拓展,对外宣传窗口和品牌形象建设的要求日益提高。" "现有官网在多语言支持、产品与技术体系展示、生产制造能力呈现等方面已难以满足当前业务发展的需要。" "为系统性展示公司钻井液品牌形象和技术优势,需建设统一的“钻井液品牌网站”。", ) add_heading(doc, "1.2 建设目标", level=2) add_paragraph( doc, "本项目拟通过建设钻井液品牌网站,实现以下目标:\n" "• 搭建多语言对外宣传平台,面向中、英、俄、西等不同语种客户;\n" "• 全面展示公司钻井液产品、体系、技术、实验室/团队、生产制造等核心能力;\n" "• 形成规范统一的页面结构和信息架构,便于后续维护与扩展;\n" "• 为公司后续数字化营销、客户服务等系统做支撑和预留接口。", ) add_heading(doc, "1.3 项目范围", level=2) add_paragraph( doc, "本项目范围包括:\n" "• 前端多语言静态网站的设计与开发;\n" "• 统一导航与页脚、产品与技术展示页面、生产制造模块选项卡逻辑实现;\n" "• 基本访问统计与运行监控方案设计(如纳入公司统一监控体系);\n" "• 部署上线、试运行以及验收阶段的支持工作。\n" "本项目暂不包含后台内容管理系统(CMS)和复杂交互业务,如有需要可在后续阶段扩展。", ) add_heading(doc, "1.4 项目里程碑", level=2) add_paragraph( doc, "初步拟定的项目里程碑如下(具体时间根据实际立项日期调整):\n" "• M1:项目启动与需求调研完成;\n" "• M2:软件需求说明书评审通过;\n" "• M3:概要设计与详细设计评审通过;\n" "• M4:开发与联调完成,进入系统测试阶段;\n" "• M5:测试通过,形成测试报告与上线申请;\n" "• M6:系统上线运行,完成项目验收。", ) add_heading(doc, "2 项目组织与职责分工", level=1) add_heading(doc, "2.1 项目组织架构", level=2) add_paragraph( doc, "本项目建议成立项目领导小组和项目实施组:\n" "• 项目领导小组:由公司分管领导、信息化主管部门领导及业务部门负责人组成,负责决策重大事项;\n" "• 项目实施组:由业务代表、产品经理、架构师、开发工程师、测试工程师及运维人员组成,负责具体实施工作。", ) add_diagram_placeholder( doc, "图 2-1 项目组织结构示意图", "建议在此处插入项目组织结构图,包括项目领导小组、项目经理、业务组、技术组、测试组等层级关系。", ) add_heading(doc, "2.2 各角色职责", level=2) add_paragraph( doc, "• 项目负责人:对项目整体目标、范围、进度和质量负责,协调各方资源;\n" "• 业务负责人:明确业务需求,确认页面文案和业务逻辑;\n" "• 架构师:负责网站总体技术路线、架构设计和关键技术决策;\n" "• 开发工程师:实现前端页面和交互逻辑,完成多语言和导航逻辑;\n" "• 测试工程师:制定测试计划和测试用例,执行各类测试并出具测试报告;\n" "• 运维工程师:负责部署、监控和日常运行维护工作。", ) add_heading(doc, "3 开发计划与进度安排", level=1) add_heading(doc, "3.1 阶段划分", level=2) add_paragraph( doc, "项目总体建议划分为以下阶段:\n" "• 需求分析阶段:完成需求调研、需求确认和《软件需求说明书》编制;\n" "• 设计阶段:完成系统概要设计和详细设计,输出相应设计文档;\n" "• 开发与单元测试阶段:按设计完成前端页面开发和单元测试;\n" "• 集成与系统测试阶段:完成多语言整体联调和系统级测试;\n" "• 部署与试运行阶段:在目标环境中部署系统并进行试运行;\n" "• 验收阶段:根据验收标准完成项目验收工作。", ) add_heading(doc, "3.2 进度计划甘特图(示意)", level=2) add_paragraph( doc, "本节可在 Word 中插入具体的项目进度甘特图,此处给出文字说明占位:\n" "• 第 1-2 周:需求调研与需求说明书编制;\n" "• 第 3-4 周:概要设计与详细设计;\n" "• 第 5-8 周:开发与单元测试;\n" "• 第 9-10 周:系统测试与问题修复;\n" "• 第 11 周:上线准备与部署;\n" "• 第 12 周:试运行与项目验收。", ) add_heading(doc, "4 质量保证与配置管理", level=1) add_heading(doc, "4.1 质量保证措施", level=2) add_paragraph( doc, "• 严格按照公司软件开发流程执行,关键文档需经过评审;\n" "• 采用代码审查机制,保证代码质量与可维护性;\n" "• 按照测试大纲执行功能测试、兼容性测试和回归测试;\n" "• 对发现的问题进行缺陷跟踪和闭环管理。", ) add_heading(doc, "4.2 配置管理", level=2) add_paragraph( doc, "• 采用统一的代码版本管理工具(如 Git),规范分支策略;\n" "• 对关键配置项(如部署路径、语言目录结构)进行文档化说明;\n" "• 构建脚本和部署脚本纳入配置管理,避免人工操作差错。", ) add_heading(doc, "5 风险分析与应对措施", level=1) add_paragraph( doc, "• 需求变更风险:通过需求评审和变更控制流程,降低频繁大范围变更带来的影响;\n" "• 进度风险:合理安排资源投入,必要时通过加班或增加人手保障关键节点;\n" "• 内容准备滞后风险:提前与业务部门沟通,确保多语言文案按期交付;\n" "• 技术风险:重点关注多语言链接一致性、选项卡参数逻辑等实现细节,提前进行技术验证。", ) add_heading(doc, "6 项目管理与沟通机制", level=1) add_paragraph( doc, "• 例会机制:项目实施期间,建议每周召开至少一次项目例会,通报进展、梳理问题和风险;\n" "• 重大事项汇报:涉及范围、进度、费用等重大调整时,由项目负责人及时向项目领导小组汇报;\n" "• 文档管理:所有计划、需求、设计、测试等文档统一纳入项目文档库管理,版本可追溯;\n" "• 沟通渠道:建立项目微信群或 Teams 频道,方便跨部门即时沟通,重要结论需在工作记录或会议纪要中沉淀。", ) add_heading(doc, "7 项目验收与成果移交", level=1) add_paragraph( doc, "项目完成后,应依据合同或立项批复中的要求开展正式验收工作:\n" "• 由项目领导小组或指定验收小组组织验收会议;\n" "• 依据软件需求说明书、设计文档和测试报告进行现场演示和资料审查;\n" "• 验收通过后,形成《项目验收报告》并完成项目成果移交,包括源代码、部署脚本、配置说明及所有文档;\n" "• 项目移交给运维或后续负责单位,进入日常运行维护阶段。", ) ensure_docs_dir() output_path = os.path.join("docs", "钻井液品牌网站-项目开发计划.docx") doc.save(output_path) # 2-钻井液品牌网站-软件需求说明书 def generate_srs(): doc = Document() doc.add_heading("钻井液品牌网站-软件需求说明书", level=0) add_paragraph(doc, "版本:V1.0") add_paragraph(doc, "日期:2026-03-04") add_paragraph(doc, "编写单位:川庆钻探工程公司(示例)") doc.add_page_break() add_heading(doc, "1 引言", level=1) add_heading(doc, "1.1 编写目的", level=2) add_paragraph( doc, "本软件需求说明书用于系统、完整地描述“钻井液品牌网站”的业务需求和功能需求," "为后续的概要设计、详细设计、开发实现、测试验证及验收评审提供统一依据。" "本说明书既面向项目技术团队,也面向项目管理和业务领导层。", ) add_heading(doc, "1.2 项目背景", level=2) add_paragraph( doc, "钻井液业务是公司核心业务板块之一,对外宣传和品牌展示需求迫切。" "现有官网在内容组织、页面风格、多语言支持、产品与技术体系呈现等方面存在不足," "难以满足领导决策、客户了解和市场拓展的多重诉求。" "基于此,公司决定建设统一的钻井液品牌网站,通过多语言形式集中展示公司相关能力。", ) add_heading(doc, "1.3 读者对象", level=2) add_paragraph( doc, "本说明书适用于以下读者:\n" "• 领导与管理层:了解系统建设目标和主要功能;\n" "• 业务部门人员:核对业务需求的完整性与准确性;\n" "• 架构师和开发工程师:依据本说明书进行系统设计和实现;\n" "• 测试工程师:依据需求编写测试用例和测试场景;\n" "• 运维人员:理解系统运行特性和部署要求。", ) add_heading(doc, "1.4 名词定义与缩写", level=2) add_paragraph( doc, "• 钻井液品牌网站:指本项目中建设的多语言对外展示网站;\n" "• 多语言版本:Chinese、English、Russian、Spain 四个语种的网站页面集合;\n" "• 前台:面向外部访客的网页界面部分;\n" "• 体系:在钻井液领域形成的技术方案与产品组合;\n" "• 生产制造模块:突出生产基地、车间、质量检验实验室和仓库能力的展示模块。", ) add_heading(doc, "1.5 参考资料", level=2) add_paragraph( doc, "• 公司现有官网及宣传手册;\n" "• 公司信息化建设相关管理制度和标准规范;\n" "• 与钻井液业务部门的调研记录和访谈纪要;\n" "• 行业内同类企业官网的调研结果(如友商网站)。", ) add_heading(doc, "2 系统总体描述", level=1) add_heading(doc, "2.1 系统目标", level=2) add_paragraph( doc, "系统目标可概括为“一个平台、四种语言、统一形象、稳定可靠”四个方面:\n" "• 一个平台:建设统一的钻井液品牌对外展示平台;\n" "• 四种语言:提供中、英、俄、西四种语言版本;\n" "• 统一形象:保持公司品牌视觉形象一致,强化品牌辨识度;\n" "• 稳定可靠:系统运行稳定,易于维护与扩展。", ) add_heading(doc, "2.2 用户角色与使用场景", level=2) add_paragraph( doc, "• 外部访客:包括国内外油公司客户、合作伙伴及潜在客户,主要通过浏览器访问网站,了解公司能力;\n" "• 内部员工:在与客户交流时,用于演示公司产品与技术体系;\n" "• 运维人员:负责网站的部署、监控以及静态内容更新。", ) add_heading(doc, "2.3 业务功能范围", level=2) add_paragraph( doc, "本系统业务功能范围包括但不限于:\n" "• 首页门户展示;\n" "• 关于我们板块;\n" "• 钻井液产品展示及产品类型详情;\n" "• 钻井液体系展示及体系详情;\n" "• 钻井液技术展示及技术详情;\n" "• 实验室与服务团队介绍;\n" "• 生产制造板块(含选项卡及图文展示);\n" "• 联系我们及联系方式展示;\n" "• 统一的导航和页脚链接逻辑。", ) add_diagram_placeholder( doc, "图 2-1 网站业务功能结构图", "建议在此处插入网站功能模块结构图,展示首页、产品、体系、技术、实验室/团队、生产制造、联系我们等模块关系。", ) add_heading(doc, "3 功能性需求", level=1) add_heading(doc, "3.1 多语言与导航需求", level=2) add_paragraph( doc, "• 系统需提供中、英、俄、西四种语言版本,顶部提供语言切换按钮;\n" "• 各语言版本的导航结构保持一致,导航名称采用对应语言文案;\n" "• 切换语言时,优先保持业务上下文的一致性(如从英文产品详情跳转到相同产品的西语详情页);\n" "• 导航点击后,页面应在同窗口打开对应模块。", ) add_heading(doc, "3.2 产品展示需求", level=2) add_paragraph( doc, "• 按产品小类划分展示产品列表,支持点击进入产品类型页面;\n" "• 产品类型页面通过 URL 参数 data 和 title 标识具体分类;\n" "• 产品详情页需展示产品名称、所属系列、主要参数、适用工况、优势说明等内容;\n" "• 页脚中所有产品相关链接需准确指向对应产品类型页面。", ) add_heading(doc, "3.3 体系展示需求", level=2) add_paragraph( doc, "• 展示钻井液体系清单,包含名称、适用场景简要说明;\n" "• 详情页需说明体系组成、性能指标、典型应用等重要信息;\n" "• 不同语言版本的体系详情页在内容逻辑上保持一致,由业务部门提供翻译文本。", ) add_heading(doc, "3.4 技术展示需求", level=2) add_paragraph( doc, "• 展示代表性技术列表,如 LONGLARTEC、HIPRESATEC 等;\n" "• 技术详情页应突出技术原理、关键性能、应用案例等信息;\n" "• 页脚技术栏目中的链接应与技术详情页面一一对应。", ) add_heading(doc, "3.5 实验室与团队展示需求", level=2) add_paragraph( doc, "• 实验室相关页面需展示实验条件、设备情况、测试能力等;\n" "• 服务团队相关页面需强调服务经验、项目覆盖区域和服务模式;\n" "• 允许通过图片轮播等方式展示实验场景和服务团队风采。", ) add_heading(doc, "3.6 生产制造模块需求", level=2) add_paragraph( doc, "• 生产制造模块采用选项卡形式展示多个子板块,包括生产基地、车间、质量检验实验室和仓库等;\n" "• 支持通过 URL 参数 tab 定位到特定选项卡,例如 manu.html?tab=2 直接进入“车间”页签;\n" "• 页脚中“生产制造/Fabricación”等栏目链接带有相应 tab 参数,方便从其他页面直接跳转;\n" "• 各子页面需通过文字和图片结合的方式,全面展示生产能力和质量管理体系。", ) add_heading(doc, "3.7 联系我们需求", level=2) add_paragraph( doc, "• 至少展示公司总部的地址、电话、传真、邮箱等信息;\n" "• 可选展示境外机构联系方式,如中东分公司等;\n" "• 文案应在不同语言版本中准确翻译,并定期由业务部门核对更新。", ) add_heading(doc, "4 非功能性需求", level=1) add_paragraph( doc, "非功能性需求主要包括性能、可用性、安全性、可维护性和易用性等方面," "用于保证网站长期稳定、安全、高效地运行。", ) add_heading(doc, "4.1 性能需求", level=2) add_paragraph( doc, "• 普通访问条件下,首页和主要内容页面加载时间不超过 3 秒;\n" "• 支持至少数百并发用户同时访问而无明显性能下降;\n" "• 图片资源应做压缩和缓存配置,避免过大文件影响加载速度。", ) add_heading(doc, "4.2 可用性与可靠性", level=2) add_paragraph( doc, "• 年度可用性目标不低于 99%;\n" "• 建议配置基础监控,对关键 URL 进行可用性监测,并在出现异常时告警;\n" "• 部署环境需具备容错能力,如通过服务器冗余或负载均衡提高可靠性(如有条件)。", ) add_heading(doc, "4.3 安全性", level=2) add_paragraph( doc, "• 网站仅用于信息展示,不涉及用户登录和敏感数据收集,安全风险较低;\n" "• 部署时须开启基础安全配置,防止目录遍历、脚本注入等常见攻击;\n" "• 建议采用 HTTPS 协议,为对外访问提供加密保护。", ) add_heading(doc, "4.4 可维护性", level=2) add_paragraph( doc, "• 代码结构清晰,目录规范,方便后续维护人员快速理解;\n" "• 公共组件(如页脚、导航、语言切换等)应抽取为统一模块,避免重复实现;\n" "• 对重要业务逻辑(如 URL 参数解析、选项卡切换逻辑)应有简要注释说明。", ) add_heading(doc, "5 验收标准", level=1) add_paragraph( doc, "• 功能验收:本说明书列出的功能点全部实现且测试通过;\n" "• 外观与文案验收:页面布局、配色、图片以及多语言文案经业务部门及领导审阅确认;\n" "• 非功能验收:性能、可用性和安全性满足公司相关标准或本说明书要求;\n" "• 文档验收:开发计划、需求、设计、测试等文档齐全并归档。", ) add_heading(doc, "6 附录:页面清单与链接规范", level=1) add_paragraph( doc, "本附录用于整理关键页面及其链接规范,便于领导和运维人员整体把握网站结构。" "正式文档中可根据实际最终页面进行补充和调整:\n" "• 首页:/{lang}/index.html;\n" "• 关于我们:/{lang}/about/about.html;\n" "• 产品列表:/{lang}/product/product.html;\n" "• 产品类型详情:/{lang}/product/product_type.html?data=xx&title=yy;\n" "• 体系列表及详情:/{lang}/system/system.html 与 system_detail.html?data=xx;\n" "• 技术列表及详情:/{lang}/technology/technology.html 与 technology_detail.html?data=xx;\n" "• 实验室与团队:/{lang}/team_lab 下各类页面;\n" "• 生产制造:/{lang}/manu/manu.html?tab=n;\n" "• 联系我们:/{lang}/contact/contact.html。", ) ensure_docs_dir() output_path = os.path.join("docs", "钻井液品牌网站-软件需求说明书.docx") doc.save(output_path) # 3-钻井液品牌网站-系统概要设计说明书 def generate_high_level_design(): doc = Document() doc.add_heading("钻井液品牌网站-系统概要设计说明书", level=0) add_paragraph(doc, "版本:V1.0") add_paragraph(doc, "日期:2026-03-04") add_paragraph(doc, "编写:架构与设计小组") doc.add_page_break() add_heading(doc, "1 概述", level=1) add_heading(doc, "1.1 编写目的", level=2) add_paragraph( doc, "本概要设计说明书在软件需求说明书的基础上,从系统架构与模块划分的角度描述钻井液品牌网站的整体技术方案," "为详细设计和开发实现提供指导依据。", ) add_heading(doc, "1.2 适用范围", level=2) add_paragraph( doc, "本说明书主要适用于:\n" "• 系统架构师和开发人员,理解整体设计思路和模块划分;\n" "• 测试和运维人员,了解系统结构与关键组件;\n" "• 项目管理和领导层,从宏观层面把握系统技术实现路径。", ) add_heading(doc, "2 总体架构设计", level=1) add_paragraph( doc, "钻井液品牌网站采用前后端简化架构,前端为多语言静态页面,后端由 Web 服务器或反向代理提供静态资源访问服务。" "如后续接入日志分析、监控平台等,可在本架构基础上扩展。", ) add_diagram_placeholder( doc, "图 2-1 系统总体架构图", "建议绘制“浏览器-反向代理/Web 服务器-静态资源目录-监控/日志系统”的整体架构图。", ) add_heading(doc, "2.1 部署架构", level=2) add_paragraph( doc, "• 前端静态资源部署于公司内部或云上 Web 服务器;\n" "• 通过 Nginx 等反向代理对外提供统一访问入口;\n" "• 可接入公司统一监控与日志平台,实现访问统计与异常监控;\n" "• 采用 HTTPS 对外开放,提高安全性。", ) add_heading(doc, "2.2 模块划分", level=2) add_paragraph( doc, "从功能维度划分,系统主要模块包括:\n" "• 公共模块:头部导航、页脚、多语言切换、公共样式等;\n" "• 首页模块:多语言首页内容与轮播展示;\n" "• 产品模块:产品列表与产品类型详情页;\n" "• 体系模块:体系列表与详情页;\n" "• 技术模块:技术列表与详情页;\n" "• 实验室与团队模块:实验室介绍、团队介绍等;\n" "• 生产制造模块:选项卡页面及子页面包含的图文内容;\n" "• 联系我们模块:联系方式展示页面。", ) add_diagram_placeholder( doc, "图 2-2 功能模块划分示意图", "建议绘制模块方框图,各模块之间通过箭头表示导航关系和复用关系。", ) add_heading(doc, "3 前端总体设计", level=1) add_heading(doc, "3.1 页面结构设计", level=2) add_paragraph( doc, "页面结构采用统一的布局框架:顶部导航区 + 主内容区 + 页脚区。" "导航和页脚通过公共样式与组件统一控制,主内容区根据不同模块进行布局。", ) add_heading(doc, "3.2 路由与目录设计", level=2) add_paragraph( doc, "• 按语种划分顶层目录:/Chinese、/English、/Russian、/Spain;\n" "• 各语种下按业务模块划分子目录,如 /product、/system、/technology、/team_lab、/manu、/contact 等;\n" "• 详情页通过 URL 参数 data 等区分不同实体;\n" "• 生产制造模块通过 URL 参数 tab 控制选项卡显示。", ) add_heading(doc, "3.3 公共样式与组件设计", level=2) add_paragraph( doc, "• 统一定义基础样式文件(如 index.css、公共 footer.css 等);\n" "• 通过 JavaScript 封装语言切换、导航下划线动画、选项卡切换等公共逻辑;\n" "• 鼓励对头部导航和页脚采用 include 或模板方式统一维护。", ) add_heading(doc, "4 安全与性能设计概述", level=1) add_heading(doc, "4.1 安全设计概述", level=2) add_paragraph( doc, "• 对外提供 HTTPS 访问,防止中间人攻击;\n" "• Web 服务器限制目录浏览与脚本执行,避免目录遍历和任意文件访问;\n" "• 对引用的第三方脚本和样式进行审查,避免引入不必要的外部依赖。", ) add_heading(doc, "4.2 性能设计概述", level=2) add_paragraph( doc, "• 采用浏览器缓存策略,对 CSS、JS、图片等资源设置合理缓存期限;\n" "• 对图片进行压缩与尺寸控制,避免超大图片影响首屏加载;\n" "• 对共用脚本进行合并与压缩,减少网络请求次数。", ) add_heading(doc, "3 模块间关系与依赖", level=1) add_paragraph( doc, "从技术实现角度看,各业务模块之间既相互独立又存在一定复用关系:\n" "• 公共模块为其他模块提供统一的导航、页脚、样式和脚本支持;\n" "• 产品、体系和技术模块在页面结构和参数规则上具有相似性,可共享部分脚本逻辑;\n" "• 实验室与团队、生产制造模块大量复用图片资源与版式布局;\n" "• 联系我们模块在所有语言版本中共用统一的数据源和展示模板。", ) ensure_docs_dir() output_path = os.path.join("docs", "钻井液品牌网站-系统概要设计说明书.docx") doc.save(output_path) # 4-钻井液品牌网站-详细设计说明书 def generate_detail_design(): doc = Document() doc.add_heading("钻井液品牌网站-详细设计说明书", level=0) add_paragraph(doc, "版本:V1.0") add_paragraph(doc, "日期:2026-03-04") add_paragraph(doc, "编写:开发与前端设计小组") doc.add_page_break() add_heading(doc, "1 概述", level=1) add_heading(doc, "1.1 文档目的", level=2) add_paragraph( doc, "本详细设计说明书在概要设计基础上,对各模块的页面结构、脚本逻辑、参数规则等进行更细粒度的说明," "以指导开发人员具体实现,并为测试与维护人员提供技术参考。", ) add_heading(doc, "2 公共部分详细设计", level=1) add_heading(doc, "2.1 头部导航组件", level=2) add_paragraph( doc, "• 导航结构:包含 logo 区、主导航菜单和语言切换区;\n" "• 菜单项:不同语言版本的文案与路径设置对应;\n" "• 交互逻辑:当前页面对应菜单项添加高亮样式(如 red_bold),下划线动画使用 jQuery 计算位置;\n" "• 语言切换:点击相应语言时,根据当前路径跳转到对应语言下的等效页面(如有映射规则)。", ) add_heading(doc, "2.2 页脚组件", level=2) add_paragraph( doc, "• 页脚分为多个板块:产品、体系、技术、实验室/团队、生产制造、联系我们;\n" "• 每个板块包含若干链接,链接 URL 为绝对路径,指向当前语种下的对应页面;\n" "• 页脚中生产制造相关链接须带上 tab 参数,用于定位到生产制造页面对应选项卡。", ) add_heading(doc, "2.3 公共脚本模块", level=2) add_paragraph( doc, "• include.js:用于处理页面中 标签,将子页面内容嵌入主页面;\n" "• public.js:封装语言切换、导航下划线移动等公共逻辑;\n" "• 各页面业务脚本(如 system_detail.js、technology.js)负责本页面特定交互效果。", ) add_heading(doc, "3 各业务模块详细设计", level=1) add_heading(doc, "3.1 产品模块详细设计", level=2) add_paragraph( doc, "• 文件结构:/pages/{lang}/product/product.html 及 product_type.html 等;\n" "• 参数约定:通过 URL 参数 data 与 title 确定产品类型;\n" "• 页面元素:列表区、详情区、图片展示区等;\n" "• 页脚链接:指向 product_type.html 对应 data 值,确保导航统一。", ) add_heading(doc, "3.2 体系与技术模块详细设计", level=2) add_paragraph( doc, "• 体系和技术模块的文件与参数结构类似产品模块;\n" "• 体系详情页和技术详情页需在页面中特定位置渲染标题、简介和详细说明;\n" "• 通过脚本从 URL 中解析 data 参数,用于控制页面内容呈现(如有需要)。", ) add_heading(doc, "3.3 实验室与团队模块详细设计", level=2) add_paragraph( doc, "• 采用多个页面配合轮播或图文展示组件呈现实验室和团队信息;\n" "• 页脚中 R&D 中心、实验室、服务团队等链接与对应页面关联;\n" "• 如采用 Swiper 等轮播库,需要在页面底部引入其 CSS 和 JS 资源,并初始化相应实例。", ) add_heading(doc, "3.4 生产制造模块详细设计", level=2) add_paragraph( doc, "• 核心页面:/pages/{lang}/manu/manu.html;\n" "• 选项卡结构:通过 div.tab 和 div.tab-content 组织四个子模块;\n" "• 切换函数 openTab:负责隐藏/显示 tab-content,并处理 active 样式切换;\n" "• URL 参数解析:页面加载完成后从 window.location.search 中解析 tab 参数," "根据映射关系调用相应 .tab 元素的 click 事件,实现默认选中不同选项卡;\n" "• 页脚链接:在 Chinese/English/Russian/Spain 四个语种的 manu 页脚中,将生产制造相关链接改为带 tab 参数的形式。", ) add_diagram_placeholder( doc, "图 3-1 生产制造模块页面结构示意图", "建议插入选项卡结构示意图,展示 tab 区和内容区的层次关系。", ) add_heading(doc, "4 流程与时序说明", level=1) add_paragraph( doc, "本章节可补充页面加载流程、语言切换流程等简单时序说明,必要时可在 Word 中插入时序图," "此处以文字形式给出:\n" "1)用户访问 manu.html 页面;\n" "2)页面完成基础渲染后,执行公共脚本;\n" "3)脚本解析 URL 中的 tab 参数;\n" "4)根据 tab 参数触发对应选项卡点击事件;\n" "5)渲染对应子页面内容。", ) add_heading(doc, "5 代码与资源组织建议", level=1) add_paragraph( doc, "为方便后续维护,建议在实现时遵循以下组织方式:\n" "• 将不同语种公共样式抽取为同一套 CSS,只在极少数语种差异处单独覆盖;\n" "• 将通用脚本(如 include.js、public.js)放置在统一目录下,避免多处拷贝;\n" "• 对图片资源按模块进行归类存放,例如 home、product、system、technology、team_lab、manu 等子目录;\n" "• 在代码注释中清晰标注每个页面的用途、入口路径和与其它页面的跳转关系。", ) ensure_docs_dir() output_path = os.path.join("docs", "钻井液品牌网站-详细设计说明书.docx") doc.save(output_path) # 5-钻井液品牌网站-测试大纲 def generate_test_plan(): doc = Document() doc.add_heading("钻井液品牌网站-测试大纲", level=0) add_paragraph(doc, "版本:V1.0") add_paragraph(doc, "日期:2026-03-04") add_paragraph(doc, "编写:测试与质量保障小组") doc.add_page_break() add_heading(doc, "1 引言", level=1) add_heading(doc, "1.1 编写目的", level=2) add_paragraph( doc, "本测试大纲用于指导钻井液品牌网站的测试工作,明确测试范围、测试方法、测试环境、质量标准等," "为形成具体测试用例和测试报告奠定基础。", ) add_heading(doc, "1.2 测试目标", level=2) add_paragraph( doc, "• 验证网站功能实现是否符合软件需求说明书要求;\n" "• 确保多语言页面在主流浏览器中的展示效果一致、链接正确;\n" "• 确保生产制造模块选项卡及 URL 参数逻辑正确;\n" "• 发现并推动修复潜在缺陷,提升系统稳定性和用户体验。", ) add_heading(doc, "2 测试范围与测试项", level=1) add_heading(doc, "2.1 功能测试范围", level=2) add_paragraph( doc, "• 导航与页脚:包括顶部导航和页脚所有链接的正确性;\n" "• 多语言切换:四种语言版本切换的可用性和正确性;\n" "• 产品模块:产品列表与产品类型详情页;\n" "• 体系模块:体系列表与详情页;\n" "• 技术模块:技术列表与详情页;\n" "• 实验室与团队模块:各子页面内容展示;\n" "• 生产制造模块:选项卡和 URL 参数控制逻辑;\n" "• 联系我们:联系方式展示正确性。", ) add_heading(doc, "2.2 非功能测试范围", level=2) add_paragraph( doc, "• 兼容性测试:在主流浏览器和不同分辨率下的展示效果;\n" "• 性能简单测试:页面加载时间和并发访问基本表现;\n" "• 安全性测试(基础):检查是否存在明显的安全风险,如目录遍历等。", ) add_heading(doc, "3 测试策略与方法", level=1) add_paragraph( doc, "• 功能测试采用黑盒测试方法,以需求为依据设计测试用例;\n" "• 回归测试在修复缺陷后执行,确保不引入新的问题;\n" "• 兼容性测试通过人工与自动化工具结合进行;\n" "• 测试结果通过缺陷管理工具或缺陷列表进行跟踪和关闭。", ) add_heading(doc, "4 测试环境与工具", level=1) add_paragraph( doc, "• 测试环境建议与生产环境配置尽量接近,包括操作系统、Web 服务器软件版本等;\n" "• 测试浏览器包括 Chrome、Edge、Firefox、Safari 等;\n" "• 可使用浏览器开发者工具、网络抓包工具等辅助分析问题;\n" "• 如有条件,可使用简单的性能测试工具(如 JMeter)进行页面访问压力测试。", ) add_heading(doc, "5 测试用例设计原则", level=1) add_paragraph( doc, "• 覆盖核心业务路径,如从首页进入各模块并返回首页;\n" "• 覆盖所有导航与页脚链接的点击场景;\n" "• 覆盖多语言切换后的关键页面内容检查;\n" "• 覆盖生产制造模块中使用不同 tab 参数的访问场景;\n" "• 对重要页面至少设计一条异常场景用例(如错误 URL 参数)。", ) add_heading(doc, "6 测试进度与人员安排", level=1) add_paragraph( doc, "• 测试阶段开始前完成测试大纲和测试用例评审;\n" "• 根据开发进度安排多轮测试迭代;\n" "• 明确测试负责人和测试执行人员,确保测试资源充足;\n" "• 测试阶段结束后出具测试总结报告,为项目验收提供依据。", ) add_heading(doc, "7 测试成果与缺陷管理", level=1) add_paragraph( doc, "• 测试成果包括测试用例、测试记录、缺陷列表和测试报告等文档;\n" "• 缺陷管理可采用电子表格或缺陷管理系统记录,至少包含编号、标题、严重级别、状态、发现版本、修复版本等字段;\n" "• 在项目验收前,所有高优先级和中优先级缺陷需得到关闭或明确豁免说明;\n" "• 测试阶段经验教训应形成简要总结,供后续类似项目参考。", ) ensure_docs_dir() output_path = os.path.join("docs", "钻井液品牌网站-测试大纲.docx") doc.save(output_path) def main(): generate_dev_plan() generate_srs() generate_high_level_design() generate_detail_design() generate_test_plan() print("All brand site Word documents generated under docs/.") if __name__ == "__main__": main()