feat: 实现Word标书模板生成功能

- 新增WordProcessor类,支持从三级章节结构生成专业Word模板
- 集成Word生成功能到project new命令,实现完整工作流
- 自动生成标题层级结构,支持1-3级标题格式
- 为评分项添加占位符和评分提示,指导用户编写
- 添加目录占位符提示,支持Word自动更新功能
- 项目创建现在输出:JSON解析结果 + 任务清单 + Word模板
- 符合开发规范:解析招标文件,生成任务清单和Word框架

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
sladro 2025-09-25 15:25:00 +08:00
parent 835f4b604c
commit 43f56eeffa
4 changed files with 767 additions and 2 deletions

View File

@ -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 <id>' 为具体任务生成内容", style="dim")
console.print(f"\n🎯 下一步:", style="dim")
console.print(f" • 打开 {template_file.name} 开始编写标书", style="dim")
console.print(f" • 使用 'generate task <id>' 为具体任务生成内容", style="dim")
except Exception as e:
console.print(f"❌ 项目创建失败: {e}", style="red")

View File

@ -1 +1,89 @@
# Word文档处理器
"""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() # 添加空行

View File

@ -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.52]分B.方案内容较详细具体、较合理完善、针对性较好得0.51.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.52]分B.方案内容较详细具体、较合理完善、针对性较好得0.51.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.52]分B.方案内容较详细具体、较合理完善、针对性较好得0.51.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.52]分B.方案内容较详细具体、较合理完善、针对性较好得0.51.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.52]分B.方案内容较详细具体、较合理完善、针对性较好得0.51.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.52]分B.方案内容较详细具体、较合理完善、针对性较好得0.51.5]分C.方案内容不够详细具体、不够合理完善、针对性一般得0,0.5]分步长为0.1分,不提供不得分。",
"category": "after_sales",
"chapter_id": "after_sales"
},
{
"item_name": "投入机械设备、仪器、车辆",
"max_score": 3.0,
"description": "对本工程的投入机械设备、仪器、车辆配置合理能满足本工程的要求。A.方案内容详细具体、合理完善、有针对性得23]分B.方案内容较详细具体、较合理完善、针对性较好得12]分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.52]分B.方案内容较详细具体、较合理完善、针对性较好得0.51.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.52]分B.方案内容较详细具体、较合理完善、针对性较好得0.51.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": []
}
]
}

173
测试项目1/tasks.json Normal file
View File

@ -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}}"
}
]