diff --git a/src/bidmaster/cli/project.py b/src/bidmaster/cli/project.py index 65fc876..2803b85 100644 --- a/src/bidmaster/cli/project.py +++ b/src/bidmaster/cli/project.py @@ -12,6 +12,7 @@ from rich.table import Table from rich.panel import Panel from ..tools.parser import BidParser +from ..tools.word import WordProcessor console = Console() logger = logging.getLogger(__name__) @@ -252,6 +253,21 @@ def new(): with open(tasks_file, 'w', encoding='utf-8') as f: json.dump(tasks, f, ensure_ascii=False, indent=2) + # 生成Word模板 + console.print("\n📄 生成Word模板...", style="blue") + word_processor = WordProcessor() + template_file = project_path / f"{project_name}.docx" + + with console.status("正在生成Word模板..."): + success = word_processor.create_template_from_chapters( + bid_structure.chapters, + str(template_file), + project_name + ) + + if not success: + console.print("⚠️ Word模板生成失败,但项目已创建", style="yellow") + # 显示创建结果 console.print("✅ 项目创建成功!", style="green") @@ -265,12 +281,16 @@ def new(): console.print("\n📂 生成的文件:") console.print(f" • {analysis_file.name} - 解析结果") console.print(f" • {tasks_file.name} - 任务清单") + if success: + console.print(f" • {template_file.name} - Word标书模板") # 显示目录结构 console.print("\n📚 项目目录结构:") _display_chapters_recursive(bid_structure.chapters) - console.print(f"\n🎯 下一步: 使用 'generate task ' 为具体任务生成内容", style="dim") + console.print(f"\n🎯 下一步:", style="dim") + console.print(f" • 打开 {template_file.name} 开始编写标书", style="dim") + console.print(f" • 使用 'generate task ' 为具体任务生成内容", style="dim") except Exception as e: console.print(f"❌ 项目创建失败: {e}", style="red") diff --git a/src/bidmaster/tools/word.py b/src/bidmaster/tools/word.py index c1aa5d9..6a1bac5 100644 --- a/src/bidmaster/tools/word.py +++ b/src/bidmaster/tools/word.py @@ -1 +1,89 @@ -# Word文档处理器 \ No newline at end of file +"""Word文档处理器 + +根据三级标题结构生成专业的标书Word模板。 +""" + +import logging +from pathlib import Path +from typing import List + +from docx import Document +from docx.shared import Inches +from docx.enum.style import WD_STYLE_TYPE +from docx.enum.text import WD_ALIGN_PARAGRAPH + +from .parser import DocumentChapter + +logger = logging.getLogger(__name__) + + +class WordProcessor: + """Word文档处理器""" + + def __init__(self): + pass + + def create_template_from_chapters(self, chapters: List[DocumentChapter], output_path: str, project_name: str = "标书项目") -> bool: + """根据章节结构创建Word模板""" + try: + doc = Document() + + # 设置文档标题 + title = doc.add_heading(project_name, 0) + title.alignment = WD_ALIGN_PARAGRAPH.CENTER + + # 添加目录占位符 + doc.add_paragraph() + toc_para = doc.add_paragraph("【此处为目录,请在Word中按Ctrl+A全选后按F9更新】") + toc_para.alignment = WD_ALIGN_PARAGRAPH.CENTER + + doc.add_page_break() + + # 递归添加章节 + self._add_chapters_to_doc(doc, chapters) + + # 保存文档 + doc.save(output_path) + logger.info(f"Word模板已生成: {output_path}") + return True + + except Exception as e: + logger.error(f"生成Word模板失败: {e}") + return False + + def _add_chapters_to_doc(self, doc: Document, chapters: List[DocumentChapter]): + """递归添加章节到文档""" + for chapter in chapters: + # 添加标题 + if chapter.level <= 3: + heading = doc.add_heading(chapter.title, level=chapter.level) + else: + # 超过3级的用普通段落加粗 + para = doc.add_paragraph() + run = para.add_run(chapter.title) + run.bold = True + + # 为有内容的章节添加占位符 + if chapter.template_placeholder: + content_para = doc.add_paragraph(f"\n{chapter.template_placeholder}\n") + + # 添加写作指导 + if chapter.score and chapter.score > 0: + guide_text = f"【评分项 - {chapter.score}分】\n" \ + f"请根据招标要求和公司实际情况撰写相关内容。\n" + guide_para = doc.add_paragraph(guide_text) + for run in guide_para.runs: + run.font.italic = True + else: + # 非评分项的提示 + guide_para = doc.add_paragraph("【请填写相关内容】\n") + for run in guide_para.runs: + run.font.italic = True + + # 递归处理子章节 + if chapter.children: + self._add_chapters_to_doc(doc, chapter.children) + + # 一级章节后添加适当间距 + if chapter.level == 1: + doc.add_paragraph() # 添加空行 \ No newline at end of file diff --git a/测试项目1/analysis_result.json b/测试项目1/analysis_result.json new file mode 100644 index 0000000..008a098 --- /dev/null +++ b/测试项目1/analysis_result.json @@ -0,0 +1,484 @@ +{ + "project_name": "标书项目-test1", + "source_file": "C:\\Users\\sladr\\Downloads\\test1.docx", + "technical_criteria": [ + { + "item_name": "技术条款应答", + "max_score": 2.0, + "description": "供应商对在询比文件中规定的技术条款做出应答或填写偏离表;根据供应商是否满足要求进行评分。全部满足或优于得满分,有一项不满足或部分满足,本项得0分。", + "category": "compliance", + "chapter_id": "compliance" + }, + { + "item_name": "技术方案-基本要求", + "max_score": 3.0, + "description": "供应商须针对本项目出具总体架构设计方案,包括但不限于总体架构设计说明、总体性能说明、功能模块构成、底层代码设计语言。以上内容均包含得基本分3分。内容不齐全,每缺少一条扣减1分,扣完为止。", + "category": "technical_solution", + "chapter_id": "tech_solution" + }, + { + "item_name": "技术方案-质量评分", + "max_score": 2.0, + "description": "A.方案内容详细具体、合理完善、有针对性得(1.5,2]分;B.方案内容较详细具体、较合理完善、针对性较好得(0.5,1.5]分;C.方案内容不够详细具体、不够合理完善、针对性一般得(0,0.5]分;步长为0.1分,不提供不得分。", + "category": "technical_solution", + "chapter_id": "tech_solution" + }, + { + "item_name": "质量保证措施-基本要求", + "max_score": 3.0, + "description": "根据供应商提供的质量保证措施方案进行评审,包含但不限于关键的质量控制因素、工作流程质量监督方案、质量问题处置方案。以上内容均包含得基本分3分。内容不齐全,每缺少一条扣减1分,扣完为止。", + "category": "quality_safety", + "chapter_id": "quality" + }, + { + "item_name": "质量保证措施-质量评分", + "max_score": 2.0, + "description": "A.方案内容详细具体、合理完善、有针对性得(1.5,2]分;B.方案内容较详细具体、较合理完善、针对性较好得(0.5,1.5]分;C.方案内容不够详细具体、不够合理完善、针对性一般得(0,0.5]分;步长为0.1分,不提供不得分。", + "category": "quality_safety", + "chapter_id": "quality" + }, + { + "item_name": "进度计划-基本要求", + "max_score": 3.0, + "description": "根据供应商提供的进度计划方案进行评审,包含但不限于进度计划安排、进度保障措施、进度应急措施。以上内容均包含得基本分3分。内容不齐全,每缺少一条扣减1分,扣完为止。", + "category": "implementation", + "chapter_id": "implementation" + }, + { + "item_name": "进度计划-质量评分", + "max_score": 2.0, + "description": "A.方案内容详细具体、合理完善、有针对性得(1.5,2]分;B.方案内容较详细具体、较合理完善、针对性较好得(0.5,1.5]分;C.方案内容不够详细具体、不够合理完善、针对性一般得(0,0.5]分;步长为0.1分,不提供不得分。", + "category": "implementation", + "chapter_id": "implementation" + }, + { + "item_name": "软件开发安全建议-基本要求", + "max_score": 3.0, + "description": "根据供应商提供的整个软件开发过程中各个环节的安全管控方案进行评审,包括(1)开源组件/第三方软件的选型、开发/测试工具的选用;(2)对引入组件/各类工具的安全漏洞/病毒的定位;(3)是否建立开源组件/工具的资产台账,并动态管理。以上内容均包含得基本分3分。内容不齐全,每缺少一条扣减1分,扣完为止。", + "category": "quality_safety", + "chapter_id": "quality" + }, + { + "item_name": "软件开发安全建议-质量评分", + "max_score": 2.0, + "description": "A.方案内容详细具体、合理完善、有针对性得(1.5,2]分;B.方案内容较详细具体、较合理完善、针对性较好得(0.5,1.5]分;C.方案内容不够详细具体、不够合理完善、针对性一般得(0,0.5]分;步长为0.1分,不提供不得分。", + "category": "quality_safety", + "chapter_id": "quality" + }, + { + "item_name": "人员配置-基本要求", + "max_score": 3.0, + "description": "根据供应商提供人员配置方案进行评审,包含但不限于人员组织架构职责分工、人员分配合理程度、项目人员经验需求满足程度。以上内容均包含得基本分3分。内容不齐全,每缺少一条扣减1分,扣完为止。", + "category": "implementation", + "chapter_id": "implementation" + }, + { + "item_name": "人员配置-质量评分", + "max_score": 2.0, + "description": "A.方案内容详细具体、合理完善、有针对性得(1.5,2]分;B.方案内容较详细具体、较合理完善、针对性较好得(0.5,1.5]分;C.方案内容不够详细具体、不够合理完善、针对性一般得(0,0.5]分;步长为0.1分,不提供不得分。", + "category": "implementation", + "chapter_id": "implementation" + }, + { + "item_name": "平台维护方案-基本要求", + "max_score": 3.0, + "description": "根据供应商提供的平台维护方案进行评审。内容包含但不限于漏洞修复、软件升级、故障解决等。以上内容均包含得基本分3分。内容不齐全,每缺少一条扣减1分,扣完为止。", + "category": "after_sales", + "chapter_id": "after_sales" + }, + { + "item_name": "平台维护方案-质量评分", + "max_score": 2.0, + "description": "A.方案内容详细具体、合理完善、有针对性得(1.5,2]分;B.方案内容较详细具体、较合理完善、针对性较好得(0.5,1.5]分;C.方案内容不够详细具体、不够合理完善、针对性一般得(0,0.5]分;步长为0.1分,不提供不得分。", + "category": "after_sales", + "chapter_id": "after_sales" + }, + { + "item_name": "投入机械设备、仪器、车辆", + "max_score": 3.0, + "description": "对本工程的投入机械设备、仪器、车辆配置合理,能满足本工程的要求。A.方案内容详细具体、合理完善、有针对性得(2,3]分;B.方案内容较详细具体、较合理完善、针对性较好得(1,2]分;C.方案内容不够详细具体、不够合理完善、针对性一般得(0,1]分;步长为0.1分,不提供不得分。", + "category": "equipment_spec", + "chapter_id": "equipment" + }, + { + "item_name": "交付期", + "max_score": 5.0, + "description": "仅满足询比文件交付期要求(自合同签订生效之日起30日内完成所有工作)得0分,每提前1天加0.5分,最多加至满分。", + "category": "implementation", + "chapter_id": "implementation" + }, + { + "item_name": "售后服务方案-基本要求", + "max_score": 3.0, + "description": "根据供应商提供的针对本项目编制售后服务方案进行评审,方案内容包括服务人员的配备、解决问题的能力、响应时间以及响应程度。以上内容均包含得基本分3分。内容不齐全,每缺少一条扣减1分,扣完为止。", + "category": "after_sales", + "chapter_id": "after_sales" + }, + { + "item_name": "售后服务方案-质量评分", + "max_score": 2.0, + "description": "A.方案内容详细具体、合理完善、有针对性得(1.5,2]分;B.方案内容较详细具体、较合理完善、针对性较好得(0.5,1.5]分;C.方案内容不够详细具体、不够合理完善、针对性一般得(0,0.5]分;步长为0.1分,不提供不得分。", + "category": "after_sales", + "chapter_id": "after_sales" + }, + { + "item_name": "供应商在研发、管理、安全保障等方面能力-基本要求", + "max_score": 3.0, + "description": "根据供应商提供的软件安全开发生命周期管理制度、管理流程、安全保障相关方案进行评审。以上内容均包含得基本分3分。内容不齐全,每缺少一条扣减1分,扣完为止。", + "category": "compliance", + "chapter_id": "compliance" + }, + { + "item_name": "供应商在研发、管理、安全保障等方面能力-质量评分", + "max_score": 2.0, + "description": "A.方案内容详细具体、合理完善、有针对性得(1.5,2]分;B.方案内容较详细具体、较合理完善、针对性较好得(0.5,1.5]分;C.方案内容不够详细具体、不够合理完善、针对性一般得(0,0.5]分;步长为0.1分,不提供不得分。", + "category": "compliance", + "chapter_id": "compliance" + } + ], + "commercial_criteria": [ + { + "item_name": "响应文件制作质量", + "max_score": 3.0, + "description": "A.响应文件格式和内容严格按照询比文件要求编制;B.文字清晰、内容完整,目录清晰、查找方便;C.正文有页码,图纸表格等有编号;以上A、B、C三项内容全部满足得3分,A、B、C三项每有1项不满足者扣1分。", + "category": "commercial", + "chapter_id": "chapter_01" + }, + { + "item_name": "同类项目业绩", + "max_score": 5.0, + "description": "供应商须提供2022年1月1日至响应截止日完成的同类项目业绩,在满足资质要求得基础上,每多提供1个有效合同加1分,加满为止;提供相应的业绩证明材料。", + "category": "commercial", + "chapter_id": "chapter_02" + }, + { + "item_name": "商务条款应答", + "max_score": 2.0, + "description": "供应商对在询比文件中规定的商务条款做出应答或填写偏离表;根据供应商是否满足或优于询比文件要求进行评分。全部满足或优于得2分。每有一条\"不满足\"或者\"部分满足\"此项不得分。", + "category": "commercial", + "chapter_id": "chapter_03" + }, + { + "item_name": "有效响应报价", + "max_score": 40.0, + "description": "评审基准价法,评审基准价的确定:当供应商超过五个时,所有供应商的有效响应报价去掉一个最高价,去掉一个最低价的算术平均值为评审基准价;当供应商等于或少于五个时,所有供应商的有效响应报价的算术平均值为评审基准价。", + "category": "commercial", + "chapter_id": "chapter_23" + } + ], + "deviation_items": [], + "chapters": [ + { + "id": "eval_index", + "title": "1. 评标索引表(技术评分完全对应)", + "level": 1, + "score": null, + "template_placeholder": "{{evaluation_index_content}}", + "children": [] + }, + { + "id": "compliance", + "title": "2. 实质性响应/星号条款偏离表", + "level": 1, + "score": null, + "template_placeholder": "{{compliance_response_content}}", + "children": [ + { + "id": "compliance_01", + "title": "2.1 其他要求", + "level": 2, + "score": null, + "template_placeholder": "{{compliance_01_content}}", + "children": [ + { + "id": "compliance_01_01", + "title": "2.1.1 技术条款应答 (2.0分)", + "level": 3, + "score": 2.0, + "template_placeholder": "{{compliance_01_01_content}}", + "children": [] + }, + { + "id": "compliance_01_02", + "title": "2.1.2 供应商在研发、管理、安全保障等方面能力-基本要求 (3.0分)", + "level": 3, + "score": 3.0, + "template_placeholder": "{{compliance_01_02_content}}", + "children": [] + }, + { + "id": "compliance_01_03", + "title": "2.1.3 供应商在研发、管理、安全保障等方面能力-质量评分 (2.0分)", + "level": 3, + "score": 2.0, + "template_placeholder": "{{compliance_01_03_content}}", + "children": [] + } + ] + } + ] + }, + { + "id": "tech_solution", + "title": "3. 总体技术方案", + "level": 1, + "score": null, + "template_placeholder": "{{technical_solution_content}}", + "children": [ + { + "id": "tech_solution_01", + "title": "3.1 技术方案要求", + "level": 2, + "score": null, + "template_placeholder": "{{tech_solution_01_content}}", + "children": [ + { + "id": "tech_solution_01_01", + "title": "3.1.1 技术方案-基本要求 (3.0分)", + "level": 3, + "score": 3.0, + "template_placeholder": "{{tech_solution_01_01_content}}", + "children": [] + }, + { + "id": "tech_solution_01_02", + "title": "3.1.2 技术方案-质量评分 (2.0分)", + "level": 3, + "score": 2.0, + "template_placeholder": "{{tech_solution_01_02_content}}", + "children": [] + } + ] + } + ] + }, + { + "id": "equipment", + "title": "4. 关键设备规格书及检测报告", + "level": 1, + "score": null, + "template_placeholder": "{{equipment_spec_content}}", + "children": [ + { + "id": "equipment_01", + "title": "4.1 其他要求", + "level": 2, + "score": null, + "template_placeholder": "{{equipment_01_content}}", + "children": [ + { + "id": "equipment_01_01", + "title": "4.1.1 投入机械设备、仪器、车辆 (3.0分)", + "level": 3, + "score": 3.0, + "template_placeholder": "{{equipment_01_01_content}}", + "children": [] + } + ] + } + ] + }, + { + "id": "implementation", + "title": "5. 项目实施与交付计划", + "level": 1, + "score": null, + "template_placeholder": "{{implementation_content}}", + "children": [ + { + "id": "implementation_01", + "title": "5.1 进度计划要求", + "level": 2, + "score": null, + "template_placeholder": "{{implementation_01_content}}", + "children": [ + { + "id": "implementation_01_01", + "title": "5.1.1 进度计划-基本要求 (3.0分)", + "level": 3, + "score": 3.0, + "template_placeholder": "{{implementation_01_01_content}}", + "children": [] + }, + { + "id": "implementation_01_02", + "title": "5.1.2 进度计划-质量评分 (2.0分)", + "level": 3, + "score": 2.0, + "template_placeholder": "{{implementation_01_02_content}}", + "children": [] + } + ] + }, + { + "id": "implementation_02", + "title": "5.2 人员配置要求", + "level": 2, + "score": null, + "template_placeholder": "{{implementation_02_content}}", + "children": [ + { + "id": "implementation_02_01", + "title": "5.2.1 人员配置-基本要求 (3.0分)", + "level": 3, + "score": 3.0, + "template_placeholder": "{{implementation_02_01_content}}", + "children": [] + }, + { + "id": "implementation_02_02", + "title": "5.2.2 人员配置-质量评分 (2.0分)", + "level": 3, + "score": 2.0, + "template_placeholder": "{{implementation_02_02_content}}", + "children": [] + } + ] + }, + { + "id": "implementation_03", + "title": "5.3 其他要求", + "level": 2, + "score": null, + "template_placeholder": "{{implementation_03_content}}", + "children": [ + { + "id": "implementation_03_01", + "title": "5.3.1 交付期 (5.0分)", + "level": 3, + "score": 5.0, + "template_placeholder": "{{implementation_03_01_content}}", + "children": [] + } + ] + } + ] + }, + { + "id": "quality", + "title": "6. 质量、安全、环境体系", + "level": 1, + "score": null, + "template_placeholder": "{{quality_system_content}}", + "children": [ + { + "id": "quality_01", + "title": "6.1 质量保证措施要求", + "level": 2, + "score": null, + "template_placeholder": "{{quality_01_content}}", + "children": [ + { + "id": "quality_01_01", + "title": "6.1.1 质量保证措施-基本要求 (3.0分)", + "level": 3, + "score": 3.0, + "template_placeholder": "{{quality_01_01_content}}", + "children": [] + }, + { + "id": "quality_01_02", + "title": "6.1.2 质量保证措施-质量评分 (2.0分)", + "level": 3, + "score": 2.0, + "template_placeholder": "{{quality_01_02_content}}", + "children": [] + } + ] + }, + { + "id": "quality_02", + "title": "6.2 软件开发安全建议要求", + "level": 2, + "score": null, + "template_placeholder": "{{quality_02_content}}", + "children": [ + { + "id": "quality_02_01", + "title": "6.2.1 软件开发安全建议-基本要求 (3.0分)", + "level": 3, + "score": 3.0, + "template_placeholder": "{{quality_02_01_content}}", + "children": [] + }, + { + "id": "quality_02_02", + "title": "6.2.2 软件开发安全建议-质量评分 (2.0分)", + "level": 3, + "score": 2.0, + "template_placeholder": "{{quality_02_02_content}}", + "children": [] + } + ] + } + ] + }, + { + "id": "after_sales", + "title": "7. 运维服务及备品备件", + "level": 1, + "score": null, + "template_placeholder": "{{after_sales_content}}", + "children": [ + { + "id": "after_sales_01", + "title": "7.1 平台维护方案要求", + "level": 2, + "score": null, + "template_placeholder": "{{after_sales_01_content}}", + "children": [ + { + "id": "after_sales_01_01", + "title": "7.1.1 平台维护方案-基本要求 (3.0分)", + "level": 3, + "score": 3.0, + "template_placeholder": "{{after_sales_01_01_content}}", + "children": [] + }, + { + "id": "after_sales_01_02", + "title": "7.1.2 平台维护方案-质量评分 (2.0分)", + "level": 3, + "score": 2.0, + "template_placeholder": "{{after_sales_01_02_content}}", + "children": [] + } + ] + }, + { + "id": "after_sales_02", + "title": "7.2 售后服务方案要求", + "level": 2, + "score": null, + "template_placeholder": "{{after_sales_02_content}}", + "children": [ + { + "id": "after_sales_02_01", + "title": "7.2.1 售后服务方案-基本要求 (3.0分)", + "level": 3, + "score": 3.0, + "template_placeholder": "{{after_sales_02_01_content}}", + "children": [] + }, + { + "id": "after_sales_02_02", + "title": "7.2.2 售后服务方案-质量评分 (2.0分)", + "level": 3, + "score": 2.0, + "template_placeholder": "{{after_sales_02_02_content}}", + "children": [] + } + ] + } + ] + }, + { + "id": "delivery", + "title": "8. 验收与绩效考核对应表", + "level": 1, + "score": null, + "template_placeholder": "{{contract_delivery_content}}", + "children": [] + } + ] +} \ No newline at end of file diff --git a/测试项目1/tasks.json b/测试项目1/tasks.json new file mode 100644 index 0000000..c79615d --- /dev/null +++ b/测试项目1/tasks.json @@ -0,0 +1,173 @@ +[ + { + "id": 1, + "title": "2.1.1 技术条款应答 (2.0分)", + "chapter_id": "compliance_01_01", + "score": 2.0, + "status": "pending", + "content": "", + "placeholder": "{{compliance_01_01_content}}" + }, + { + "id": 2, + "title": "2.1.2 供应商在研发、管理、安全保障等方面能力-基本要求 (3.0分)", + "chapter_id": "compliance_01_02", + "score": 3.0, + "status": "pending", + "content": "", + "placeholder": "{{compliance_01_02_content}}" + }, + { + "id": 3, + "title": "2.1.3 供应商在研发、管理、安全保障等方面能力-质量评分 (2.0分)", + "chapter_id": "compliance_01_03", + "score": 2.0, + "status": "pending", + "content": "", + "placeholder": "{{compliance_01_03_content}}" + }, + { + "id": 4, + "title": "3.1.1 技术方案-基本要求 (3.0分)", + "chapter_id": "tech_solution_01_01", + "score": 3.0, + "status": "pending", + "content": "", + "placeholder": "{{tech_solution_01_01_content}}" + }, + { + "id": 5, + "title": "3.1.2 技术方案-质量评分 (2.0分)", + "chapter_id": "tech_solution_01_02", + "score": 2.0, + "status": "pending", + "content": "", + "placeholder": "{{tech_solution_01_02_content}}" + }, + { + "id": 6, + "title": "4.1.1 投入机械设备、仪器、车辆 (3.0分)", + "chapter_id": "equipment_01_01", + "score": 3.0, + "status": "pending", + "content": "", + "placeholder": "{{equipment_01_01_content}}" + }, + { + "id": 7, + "title": "5.1.1 进度计划-基本要求 (3.0分)", + "chapter_id": "implementation_01_01", + "score": 3.0, + "status": "pending", + "content": "", + "placeholder": "{{implementation_01_01_content}}" + }, + { + "id": 8, + "title": "5.1.2 进度计划-质量评分 (2.0分)", + "chapter_id": "implementation_01_02", + "score": 2.0, + "status": "pending", + "content": "", + "placeholder": "{{implementation_01_02_content}}" + }, + { + "id": 9, + "title": "5.2.1 人员配置-基本要求 (3.0分)", + "chapter_id": "implementation_02_01", + "score": 3.0, + "status": "pending", + "content": "", + "placeholder": "{{implementation_02_01_content}}" + }, + { + "id": 10, + "title": "5.2.2 人员配置-质量评分 (2.0分)", + "chapter_id": "implementation_02_02", + "score": 2.0, + "status": "pending", + "content": "", + "placeholder": "{{implementation_02_02_content}}" + }, + { + "id": 11, + "title": "5.3.1 交付期 (5.0分)", + "chapter_id": "implementation_03_01", + "score": 5.0, + "status": "pending", + "content": "", + "placeholder": "{{implementation_03_01_content}}" + }, + { + "id": 12, + "title": "6.1.1 质量保证措施-基本要求 (3.0分)", + "chapter_id": "quality_01_01", + "score": 3.0, + "status": "pending", + "content": "", + "placeholder": "{{quality_01_01_content}}" + }, + { + "id": 13, + "title": "6.1.2 质量保证措施-质量评分 (2.0分)", + "chapter_id": "quality_01_02", + "score": 2.0, + "status": "pending", + "content": "", + "placeholder": "{{quality_01_02_content}}" + }, + { + "id": 14, + "title": "6.2.1 软件开发安全建议-基本要求 (3.0分)", + "chapter_id": "quality_02_01", + "score": 3.0, + "status": "pending", + "content": "", + "placeholder": "{{quality_02_01_content}}" + }, + { + "id": 15, + "title": "6.2.2 软件开发安全建议-质量评分 (2.0分)", + "chapter_id": "quality_02_02", + "score": 2.0, + "status": "pending", + "content": "", + "placeholder": "{{quality_02_02_content}}" + }, + { + "id": 16, + "title": "7.1.1 平台维护方案-基本要求 (3.0分)", + "chapter_id": "after_sales_01_01", + "score": 3.0, + "status": "pending", + "content": "", + "placeholder": "{{after_sales_01_01_content}}" + }, + { + "id": 17, + "title": "7.1.2 平台维护方案-质量评分 (2.0分)", + "chapter_id": "after_sales_01_02", + "score": 2.0, + "status": "pending", + "content": "", + "placeholder": "{{after_sales_01_02_content}}" + }, + { + "id": 18, + "title": "7.2.1 售后服务方案-基本要求 (3.0分)", + "chapter_id": "after_sales_02_01", + "score": 3.0, + "status": "pending", + "content": "", + "placeholder": "{{after_sales_02_01_content}}" + }, + { + "id": 19, + "title": "7.2.2 售后服务方案-质量评分 (2.0分)", + "chapter_id": "after_sales_02_02", + "score": 2.0, + "status": "pending", + "content": "", + "placeholder": "{{after_sales_02_02_content}}" + } +] \ No newline at end of file