Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
R
risk-monitor
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
蔡建
risk-monitor
Commits
58dd1d06
提交
58dd1d06
authored
3月 26, 2026
作者:
安云鹏
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
修改 底部 侧边栏 分析 报文
上级
581d2dec
显示空白字符变更
内嵌
并排
正在显示
11 个修改的文件
包含
364 行增加
和
1253 行删除
+364
-1253
2.md
src/assets/icons/aiBox/2.md
+151
-0
Steps步骤条_亮色_图标-待处理.png
src/assets/icons/aiBox/Steps步骤条_亮色_图标-待处理.png
+0
-0
index.vue
src/components/intelligenceLeftTabBar/index.vue
+4
-0
useMarkdownStream.js
src/hooks/useMarkdownStream.js
+7
-4
writtingAsstaintStore.js
src/stores/writtingAsstaintStore.js
+35
-414
WrittingBottom.vue
src/views/writtingAsstaint/components/WrittingBottom.vue
+20
-5
WrittingLeftBox.vue
src/views/writtingAsstaint/components/WrittingLeftBox.vue
+89
-7
WrittingMainBox.vue
src/views/writtingAsstaint/components/WrittingMainBox.vue
+3
-0
WrittingMind.vue
src/views/writtingAsstaint/components/WrittingMind.vue
+43
-813
WrittingNavr.vue
src/views/writtingAsstaint/components/WrittingNavr.vue
+0
-0
index.vue
src/views/writtingAsstaint/index.vue
+12
-10
没有找到文件。
src/assets/icons/aiBox/2.md
0 → 100644
浏览文件 @
58dd1d06
# 美国对华科技政令分析报告(2025-21665)
## 1.政令概览
**美国通过总统行政命令全面整合国家科技资源,以应对全球关键技术领域的竞争格局变化,重点推动人工智能、半导体、量子信息、先进制造等八大战略方向的协同突破。**
该政令依托国家科学与技术政策备忘录2号的授权,构建统一的联邦级科学与安全平台,整合超级计算能力、多源科学数据与智能代理系统,旨在重塑关键技术研发体系与基础设施优势。尽管政令涵盖多个前沿科技领域并设置七项具体条款,其中六项直接关联科技研发,但未明确指向任何特定国家或实体,体现出以能力构建为核心、以系统性优势为路径的政策导向。政令于2025年11月24日签署,28日正式生效,标志着美国在科技安全与创新协同机制上的重大制度升级。
### 基本情况
**政令名称**
为“启动创世纪任务”,
**政令编号**
为
**14363**
,由
**白宫**
颁布,于
**2025-11-24**
由总统签署,并于
**2025-11-28**
正式颁布生效。
### 政令背景
中国在人工智能、半导体、量子信息科学和先进制造等领域持续加速技术突破,引发美国对全球科技主导权的担忧。
### 政令简介
《启动创世纪任务》通过构建统一的美国科学与安全平台,整合联邦超级计算资源、多领域科学数据集与AI代理系统,推动人工智能在先进制造、生物技术、关键材料、核能、量子信息及半导体等战略领域的颠覆性突破,同时建立严格的安全管控与国际合作框架,强化美国在关键科技赛道的全球主导地位,尤其聚焦对华科技竞争中的基础设施与研发优势重构。
### 法律依据
**国家科学与技术备忘录2**
,即
**国家科学与技术政策备忘录2号(2025年9月23日)**
,作为本项政令的直接法律依据,明确了美国在科技领域对华政策的行政指导框架,确立了相关管制措施的授权基础与执行路径。
### 数据概览
**条款总数**
为
**7条**
,其中
**科技条款总数**
为
**6条**
,
**涉华科技条款总数**
为
**0条**
。政令涉及领域共涵盖
**8个**
,分别为
**人工智能**
、
**先进制造**
、
**集成电路**
、
**核**
、
**生物科技**
、
**新材料**
、
**量子科技**
和
**新能源**
。
**风险研判**
**该政令通过技术整合与资源集中,可能加剧全球科技体系的碎片化趋势。**
美国将超级计算与AI代理系统深度绑定国家战略产业,形成封闭式创新闭环,易引发盟友阵营的技术依赖与非盟友国家的反制性技术脱钩,长期可能催生多极化技术标准体系,增加全球供应链的协调成本与不确定性。
**战略目标解读**
**政令旨在重构美国在前沿科技领域的系统性优势,而非单纯遏制单一国家。**
通过整合八大高技术领域资源,建立跨部门协同的国家级科研平台,其核心是提升研发效率与技术转化速度,确保在下一代计算、材料与能源等关键赛道中保持领先,形成以基础设施为支点的长期竞争壁垒。
**对华影响**
**中国虽未被直接点名,但政令的实施将间接强化对华技术围堵的底层架构。**
美国通过强化自身在AI、量子与半导体等领域的研发能力,加速技术代差扩大,可能压缩中国获取高端设备与算法工具的外部空间,迫使中国在基础科研与自主生态建设上投入更大资源以对冲外部压力。
## 2.政令深度分析
### 2.1 条款分析
**科技政策体系以人工智能为核心引擎,构建了覆盖先进制造、集成电路、核能等六大关键领域的国家级协同研发框架,通过统一的“美国科学与安全平台”整合联邦计算资源、AI模型与安全数据基础设施,形成以白宫科技政策办公室统筹、能源部主导执行、多部门协同推进的层级化治理结构,27项核心任务聚焦平台建设、资源标准化与跨机构协作,时间轴明确锚定在30至270天内分阶段落地,而生物科技、新材料、量子科技与新能源等新兴领域虽被纳入国家科技挑战清单并要求动态更新,但其政策实施仍依附于主平台机制,整体呈现以AI为中枢、多领域梯次跟进、执行高度制度化与集中化的战略布局特征。**
#### 2.1.1 科技条款领域分布
人工智能领域以5项条款居首,显著领先于其他领域;先进制造与核领域并列第二,均为3项,显示其在科技政策中的稳定地位;集成电路与新材料领域各占2项,处于中等活跃水平;生物科技、量子科技与新能源领域均为1项,表明其在当前条款分布中仍属新兴或低频关注方向,整体呈现头部集中、尾部分散的分布特征。
!
[
](./out/img/300d35e7-3c44-41cf-8ec7-ba1636ce8587/bar_20260325_154830_11b7d6cb.png)
结论:科技条款分布高度集中于人工智能,其余领域呈现梯队式分化,新兴技术领域整体关注度仍显不足。
#### 2.1.2 科技条款内容
#### 人工智能
人工智能驱动的“Genesis Mission”国家重大计划旨在通过构建统一的“美国科学与安全平台”,整合联邦计算资源、多领域AI基础模型、安全数据集与自动化实验工具,加速科学发现与技术创新;该计划由总统科技助理统筹协调跨部门协作,能源部长负责具体实施与资源整合,强制推行严格的数据安全、访问授权与网络安全标准,并配套建立联邦奖学金、跨机构资助机制与标准化合作框架,同时明确知识产权与商业化政策,全面推动AI在科学研发中的深度应用,确保国家安全、公共利益与创新活力的协同提升。
人工智能领域举措以多部门协同为核心,形成以白宫科学和技术政策办公室、能源部及国家科学技术委员会为主导的治理架构。高层机构通过任务驱动机制向下分解具体行动,27项执行节点集中于平台建设、资源整合、安全合规与跨机构协作,显示政策执行高度聚焦于系统性基础设施构建与标准化流程确立,呈现从战略规划到操作落地的清晰传导路径。
!
[
](./out/img/300d35e7-3c44-41cf-8ec7-ba1636ce8587/mind_map_20260325_154842_3809c030.png)
结论:该举措通过集中联邦资源与跨机构协同,构建以AI驱动科学突破为核心的国家平台,凸显美国在关键科技领域强化系统性布局与公私协同的战略意图。
#### 先进制造
先进制造领域通过建立并运营美国科学与安全平台,整合联邦高性能计算资源、AI建模框架与安全数据环境,构建覆盖全科学领域的领域基础模型与AI赋能的预测、模拟与设计优化工具,支持自主与AI增强的实验与制造流程;平台聚焦高影响力制造场景,确保符合国家安全与网络安全标准,系统性整合能源部国家实验室、学术机构及私营部门的计算、数据与设施资源,并在限定时间内完成初始能力部署与挑战清单扩展;通过年度报告机制持续追踪平台运行、资源整合、用户参与及科研突破,推动先进制造等国家科技挑战的加速突破与技术转化。
先进制造领域举措由白宫管理和预算办公室、科学和技术政策办公室、国家科学技术委员会参与机构、能源部及国务院共同推动,形成以能源部为核心执行主体的多层级协同架构。各机构在90至270天内密集部署平台建设、资源评估、数据整合与能力审查等关键任务,同步建立国家科技挑战清单机制与年度更新流程,体现政策推进的阶段性、系统性与跨部门联动特征。
!
[
](./out/img/300d35e7-3c44-41cf-8ec7-ba1636ce8587/mind_map_20260325_154853_0937faf9.png)
结论:该举措通过构建统一计算与实验平台,系统整合联邦资源与跨机构协作机制,以明确时间轴和责任分工推动先进制造领域国家科技挑战的规模化攻关。
#### 集成电路
集成电路领域被明确列为美国科学与安全平台的优先研发方向之一,该平台通过整合联邦高性能计算资源、AI驱动的建模与仿真工具、领域专用基础模型及安全数据集,系统性支持半导体与微电子领域的前沿研发;平台将在法案生效后60天内识别至少20项国家重要技术挑战,并在90至270天内完成资源盘点、数据资产标准化、网络安全框架构建及AI增强实验设施评估,旨在加速芯片设计优化、制造自动化与新材料开发,同时确保所有操作符合国家安全与供应链安全标准,推动美国在集成电路领域的技术自主与全球竞争力。
集成电路领域举措由国家科学技术委员会、能源部、国务院及白宫科学和技术政策办公室协同推动,形成以平台建设为核心的多层级任务体系。能源部主导技术平台构建与资源评估,国务院负责国家科技挑战清单的识别与更新,白宫科学和技术政策办公室协调跨机构整合,国家科学技术委员会统筹执行。各机构在90至270天内分阶段推进计算资源整合、数据标准化、设施能力审查与初始能力验证,时间轴呈现清晰的阶段性递进特征。
!
[
](./out/img/300d35e7-3c44-41cf-8ec7-ba1636ce8587/mind_map_20260325_154904_6074e105.png)
结论:该举措通过跨部门协同与明确时间锚点,构建了以国家科技挑战为导向、平台为枢纽的集成电路研发协同体系。
#### 核
核:建立并运营一个国家级“美国科学与安全平台”,整合能源部国家实验室及联邦与行业伙伴的高性能计算、AI建模、数据资源与智能实验设施,重点支撑核裂变与核聚变等国家科技挑战,通过安全可控的AI驱动模型训练、模拟优化、合成数据生成与自动化研发工具,加速前沿核能科研与工程突破;平台需在法定时限内完成资源识别、数据资产标准化、网络安全框架构建与设施审查,并建立年度报告机制,确保平台运行符合国家安全标准,推动跨机构协同研发,提升美国在核能领域的科技竞争力与自主创新能力。
核领域举措由五大联邦机构协同推动,其中能源部主导平台建设与技术评估,涉及计算资源整合、数据资产标准化、AI驱动实验能力提升等11项具体任务,时间跨度从90天至年度周期,形成递进式实施路径。国务院负责国家科技挑战清单的初始识别与年度更新,白宫科学和技术政策办公室协同国家科学技术委员会协调任务扩展与跨机构对齐,体现多层级、分阶段、任务导向的治理结构。
!
[
](./out/img/300d35e7-3c44-41cf-8ec7-ba1636ce8587/mind_map_20260325_154914_854d35fa.png)
结论:该举措以能源部为核心执行主体,通过联邦机构协同与时间轴驱动的任务分解,构建了以AI和高性能计算为支撑、安全合规为前提的国家核科技研发协同体系。
#### 生物科技
生物科技被明确列为国家科学技术挑战的六大优先领域之一,纳入国家使命框架下的核心支持范围;相关机构须依据由总统科学技术顾问委员会与国家科学技术委员会协同制定并年度更新的扩展清单开展研发活动==4、(c)在完成第(b)款所述扩展清单后,参与本使命的各机构应利用该平台推进与扩展清单中所确定的国家科技挑战相一致的研究与开发工作,须符合适用法律及其各自使命,并受可用拨款限制==,该清单需反映技术进展、新兴国家需求及政府研发优先事项的一致性,涵盖至少20项具有国家重要性的生物技术挑战,并整合各成员机构提案,其实施受法律约束与拨款限制,确保在《国家科学技术备忘录2》定义的优先方向下系统推进生物科技领域的突破性创新。
生物科技领域举措以国家科技挑战为核心,形成由国务院与白宫科学和技术政策办公室主导的多层次协同机制。国务院负责初始清单制定,白宫机构负责协调扩展,国家科学技术委员会参与机构推动研发落地,年度更新机制确保挑战清单与研发优先事项动态对齐。各层级职责明确,流程闭环,体现政策执行的系统性与持续性。
!
[
](./out/img/300d35e7-3c44-41cf-8ec7-ba1636ce8587/mind_map_20260325_154925_99bec68c.png)
结论:国家科技挑战的制定与实施形成以行政主导、跨部门协同、动态更新为特征的闭环治理体系,强化生物科技领域战略资源的集中配置与长期对齐。
#### 新材料
新材料领域通过识别至少20项国家优先科学技术挑战,系统推动先进制造与关键材料等核心方向的研发突破;由APST与NSTC协同扩展并动态更新挑战清单,确保与国家需求和新兴技术趋势同步;要求联邦机构依托平台推进相关研发,每年评估国家实验室与研究设施的资源整合、用户参与(含学生培训)、科研成果(如突破性论文与原型技术)、公私合作与技术转化成效,并据此提出权限或跨机构支持建议,构建全链条、可衡量、持续优化的新材料创新生态系统。
新材料领域举措由五大核心机构协同推动,形成以国务院、白宫科学和技术政策办公室、国家科学技术委员会、能源部及管理和预算办公室为关键节点的多层级联动体系。二级节点聚焦清单制定、协调扩展、研发推进与年度更新等任务,三级节点明确时间节点与责任主体,体现政策执行的流程化与周期性特征,整体呈现从顶层设计到落地实施的递进式治理结构。
!
[
](./out/img/300d35e7-3c44-41cf-8ec7-ba1636ce8587/mind_map_20260325_154936_50d08430.png)
结论:国家科技挑战的系统性管理通过跨机构协同与定期审查机制,实现从清单识别到研发整合的闭环运行,强化了新材料领域战略优先事项的动态响应能力。
#### 量子科技
量子科技被明确列为国家科学技术挑战的优先领域之一,美国政府将识别至少20项具有国家重要性的关键科技挑战==4、(a)在本命令颁布之日起60天内,部长应识别并提交一份详细清单至总统科学技术顾问委员会(APST),列出至少20项具有国家重要性、部长评估可通过本使命加以解决的科学技术挑战,这些挑战须涵盖2025年9月23日《国家科学技术备忘录2号》所确定的优先领域,包括:(i)先进制造==,其中量子信息科学为核心方向==4、(v)量子信息科学==;总统科学技术顾问委员会与国家科学技术委员会将在30天内联合制定扩展清单==4、(b)在提交第(a)款所述清单后30天内,总统科学技术顾问委员会(APST)应审查该拟议清单,并与国家科学技术委员会(NSTC)的参与机构合作,协调制定一份扩展清单,作为本使命拟应对的首批国家科技挑战,该清单应包括通过NSTC由各参与机构提出的其他挑战,但须受可用拨款限制==,作为国家使命驱动研发的基准框架,相关机构须据此推进对齐研究,并由部长会同委员会每年审查更新清单==4、(d)此后每年,部长应与总统科学技术顾问委员会(APST)和国家科学技术委员会(NSTC)协商,审查并更新挑战清单,以反映已取得的进展、新兴的国家需求以及与本政府研究与开发优先事项的一致性==,动态响应技术进展与国家战略需求,构建系统化、持续演进的量子科技国家研发体系。
量子科技领域举措呈现多层级协同治理结构,国家科学技术委员会、国务院与白宫科学和技术政策办公室构成核心决策节点,分别主导清单制定、审查与跨机构协调。国务院负责初始挑战清单的识别与年度更新,白宫机构主导协同扩展与战略对齐,各参与方通过制度化流程推动研发活动与国家优先事项一致,体现政策执行的系统性与动态响应特征。
!
[
](./out/img/300d35e7-3c44-41cf-8ec7-ba1636ce8587/mind_map_20260325_154946_b4e086c9.png)
结论:量子科技发展由顶层机构协同驱动,形成以清单管理为核心、动态更新为机制、跨部门联动为特征的国家科技治理模式。
#### 新能源
新能源领域要求能源部秘书在本命令生效后一年内及之后每年向总统提交年度报告,全面汇报新能源相关平台的运行状态与能力,重点包括国家实验室及联邦研究伙伴在计算资源、数据基础设施和研究设施方面的共享进展;用户参与情况,特别是学生研究人员的参与与培训活动;研究工作进展与可衡量的科学突破、论文发表和原型技术成果;公私合作伙伴关系的范围、合作项目及技术转化与商业化成效;并提出为实现新能源使命目标所需的新授权或跨机构支持建议,以推动新能源技术创新与系统性发展。
新能源领域举措由三大核心机构协同推动,能源部、白宫管理和预算办公室、白宫科学和技术政策办公室均作为关键节点接入顶层决策框架。所有关联路径均指向单一执行指令,表明政策执行高度集中,信息流与责任链呈单向收敛结构,体现跨部门协同的统一性与指令性特征。
!
[
](./out/img/300d35e7-3c44-41cf-8ec7-ba1636ce8587/mind_map_20260325_154957_17ad9ce2.png)
结论:新能源政策执行高度依赖三大机构协同,且所有责任最终汇聚于单一年度报告机制,凸显集中化决策与标准化监控的治理模式。
**该科技战略体系通过集中资源构建统一国家平台,以人工智能为引擎、先进制造与核能为支柱,形成高度结构化、任务导向的跨部门协同治理模式,其本质是通过制度化清单管理、强制性时间轴与标准化安全框架,系统性压缩关键技术突破周期并强化对全球科技主导权的掌控;风险层面,该架构将科研活动深度绑定国家安全议程,可能加剧技术脱钩与研发封闭化,尤其在芯片、量子与生物领域设置排他性准入机制,实质构建了以美国为中心的科技同盟壁垒;战略目标上,其不仅追求技术领先,更意图通过平台化整合重塑全球创新生态的规则制定权,迫使他国在技术标准、数据流动与供应链协作上被动适应;对华影响则体现为多维压制:一方面通过出口管制与实体清单限制关键设备与人才流动,另一方面以“安全合规”为名构建技术隔离区,使中国在AI训练数据、高性能算力、先进材料与核技术等核心环节面临更严苛的外部约束,同时其年度评估与清单动态更新机制,意味着对华技术竞争已从单点封锁转向长期、系统、可迭代的制度性围堵。**
## 3.风险研判
### 风险研判
该政令通过构建封闭式国家科技平台,将高性能计算、人工智能代理与敏感科学数据深度绑定,形成以国家安全为名的制度性技术壁垒。其核心风险在于推动全球科技体系向“阵营化”演进:一方面,美国通过强制数据访问标准、供应链安全审查与知识产权管控,将盟友纳入其技术生态,加剧全球研发资源的碎片化;另一方面,非盟友国家面临技术准入被系统性排除的风险,可能触发多边技术脱钩、标准互不兼容与创新生态割裂,显著提升全球科技协作的制度性成本与不确定性。平台所依赖的动态挑战清单机制,使技术围堵具备持续迭代能力,长期可能固化美国在关键领域的技术代差优势。
### 对华影响
尽管政令未直接点名中国,但其资源集中机制与安全准入框架构成对华技术压制的底层架构。中国在人工智能训练数据、高性能算力获取、先进材料研发与核能仿真工具等方面将面临更严苛的外部约束。美国通过平台整合国家实验室、私营企业与高校资源,形成闭环式创新体系,压缩中国获取高端算法模型、实验设施与协同研发渠道的外部空间。同时,年度挑战清单更新机制与公私合作准入标准,使技术隔离从单点管制升级为制度性、可扩展的长期围堵,迫使中国在基础科研、自主算力体系与国产材料替代上投入更大资源以对冲系统性压力。
### 政策建议
应加快构建自主可控的国家级科研协同基础设施,推动科学数据资源的标准化整合与安全共享机制建设。强化基础研究与前沿技术的系统性布局,建立跨部门、跨领域的研发任务清单动态响应机制。完善科技人才跨境流动与国际合作的法律保障框架,鼓励本土企业与科研机构通过非传统路径参与国际科研协作。推动形成符合自身发展需求的技术标准体系与安全评估规范,提升在关键领域自主定义技术路径与规则的能力。建立科技竞争风险预警与政策弹性调整机制,增强对国际技术规则演变的预判与应对韧性。
## 4.总结
美国通过总统行政命令14363启动“创世纪任务”,依托国家科学与技术政策备忘录2号,构建统一的“美国科学与安全平台”,以人工智能为引擎,整合联邦超级计算、AI模型、多领域数据集与实验设施,系统推进人工智能、先进制造、集成电路、核能、生物科技、新材料、量子科技与新能源八大战略方向的协同突破。政令虽未明确指向特定国家,但其通过制度化清单管理、强制性时间轴与安全合规框架,构建了高度集中、闭环运行的国家科技研发体系,旨在重塑全球科技主导权。该体系以基础设施为支点、以安全为名构建技术壁垒,其深层意图在于长期巩固美国在下一代关键技术领域的系统性优势,间接加剧全球科技体系的分裂风险,并对中国形成多维度、制度性、可迭代的技术围堵压力。
## 5.附录
| 条款编号 | 条款内容摘要 |
|----------|--------------|
| 1 | 宗旨:正式启动“创世计划”,作为国家级努力,整合联邦科学数据、AI模型、国家实验室、大学与企业资源,构建AI驱动的科学发现平台,以加速科学突破、强化国家安全、提升能源主导力与技术领导力,类比“曼哈顿计划”的历史意义。 |
| 2 | 创世任务设立:由能源部长负责在能源部内实施,总统科技助理提供总体领导,通过国家科学与技术委员会协调跨部门协作。 |
| 3 | 美国科学与安全平台运行:能源部长须建立并运营平台,整合高性能计算资源、AI建模框架、预测与仿真工具、领域基础模型、安全数据集(含专有、联邦、开放与合成数据)、AI增强实验与制造工具;确保符合国家安全、分类、隐私、知识产权与网络安全标准;90日内识别联邦计算资源,120日内完成相关部署。 |
| 4 | 识别国家科技挑战:60日内识别至少20项涵盖先进制造、生物技术、关键材料、核裂变与聚变、量子信息科学、半导体与微电子的国家科技挑战;30日内由总统科技顾问委员会与国家科学与技术委员会联合制定扩展清单;各机构据此推进研发;此后每年更新清单,反映进展与优先事项变化。 |
| 5 | 机构间协调与外部合作:总统科技助理通过国家科学与技术委员会协调机构,避免重复、促进互操作、整合数据与基础设施;发起跨机构资助或竞赛激励私营部门;设立面向AI科学应用的奖学金、实习与学徒计划,安排至国家实验室;建立机制促进与外部合作伙伴(含企业)通过合作协议、用户设施等方式协作,保护联邦资产并最大化公共利益。 |
| 6 | 评估与报告:能源部长每年通过总统科技助理与管理与预算办公室向总统提交报告,内容包括平台运行状况、计算与数据基础设施共享进展、用户参与(含学生培训)、科研成果(论文、原型)、公私合作范围与技术转化成效,以及实现目标所需的权限或跨机构支持建议。 |
| 7 | 一般规定:本命令不削弱任何部门法定权力或管理与预算局局长职能;实施须符合法律并受拨款限制;不创设任何可强制执行的权利或利益;出版费用由能源部承担。 |
src/assets/icons/aiBox/Steps步骤条_亮色_图标-待处理.png
0 → 100644
浏览文件 @
58dd1d06
831 Bytes
src/components/intelligenceLeftTabBar/index.vue
浏览文件 @
58dd1d06
...
@@ -50,7 +50,11 @@ if(route.path){
...
@@ -50,7 +50,11 @@ if(route.path){
navPath
.
value
=
route
.
path
navPath
.
value
=
route
.
path
}
}
const
onNavListClick
=
(
path
)
=>
{
const
onNavListClick
=
(
path
)
=>
{
if
(
path
==
'/writtingAsstaint'
){
navPath
.
value
=
path
navPath
.
value
=
path
}
else
{
ElMessage
.
error
(
'正在开发中'
)
}
}
}
</
script
>
</
script
>
<
style
lang=
"scss"
scoped
>
<
style
lang=
"scss"
scoped
>
...
...
src/hooks/useMarkdownStream.js
浏览文件 @
58dd1d06
...
@@ -295,12 +295,15 @@ export function useMarkdownStream() {
...
@@ -295,12 +295,15 @@ export function useMarkdownStream() {
// 预处理内容
// 预处理内容
// const processedContent = preprocessMarkdown(rawContent.value)
// const processedContent = preprocessMarkdown(rawContent.value)
let
content
=
rawContent
.
value
||
''
let
content
=
rawContent
.
value
||
''
// 将 ==n== 转换为按钮样式的 HTML
// 将 ==n== 转换为按钮样式的 HTML
// 使用正向预读和反向预读确保只匹配被 == 包裹的数字
// 使用正向预读和反向预读确保只匹配被 == 包裹的数字
content
=
content
.
replace
(
/==
(\d
+
)
==/g
,
(
match
,
p1
)
=>
{
// content = content.replace(/==(\d+)、==/g, (match, p1) => {
return
`<button class="clause-ref-btn" data-clause="
${
p1
}
">
${
p1
}
</button>`
// return `<button class="clause-ref-btn" data-clause="${p1}">${p1}</button>`
})
// })
content
=
content
.
replace
(
/==
\s
*
(\d
+
)
、.*
?
==/g
,
(
match
,
p1
)
=>
{
return
`<button class="clause-ref-btn" data-clause="
${
match
.
replace
(
/==/g
,
''
)
}
">
${
p1
}
</button>`
;
});
return
md
.
render
(
content
)
return
md
.
render
(
content
)
})
})
...
...
src/stores/writtingAsstaintStore.js
浏览文件 @
58dd1d06
import
{
defineStore
}
from
'pinia'
import
{
defineStore
}
from
'pinia'
import
{
ElMessage
,
ElMessageBox
}
from
'element-plus'
import
{
ElMessage
,
ElMessageBox
}
from
'element-plus'
import
md
from
'@/assets/icons/aiBox/2.md?raw'
export
const
useWrittingAsstaintStore
=
defineStore
(
'writtingAsstaint'
,
{
export
const
useWrittingAsstaintStore
=
defineStore
(
'writtingAsstaint'
,
{
state
:
()
=>
({
state
:
()
=>
({
...
@@ -178,405 +179,24 @@ export const useWrittingAsstaintStore = defineStore('writtingAsstaint', {
...
@@ -178,405 +179,24 @@ export const useWrittingAsstaintStore = defineStore('writtingAsstaint', {
// 关闭搜索栏
// 关闭搜索栏
handleIsSsearchFor
(){
handleIsSsearchFor
(){
this
.
isSsearchFor
=!
this
.
isSsearchFor
this
.
isSsearchFor
=!
this
.
isSsearchFor
console
.
log
(
this
.
isSsearchFor
)
},
},
// 智能写报
// 智能写报
async
generateWrite
(){
async
generateWrite
(){
this
.
isWriteStart
=
true
this
.
isWriteStart
=
true
const
obj
=
{
"query"
:
""
,
// const obj={}
"desc"
:
""
,
"topic"
:
"政令"
,
"result"
:
{
"报告标题"
:
"美国对华科技政令分析报告(2025-14218)"
,
"政令概览"
:
{
"基本情况"
:
{
"政令名称"
:
"促进美国人工智能技术栈的出口"
,
"政令编号"
:
"14320"
,
"颁布机构"
:
"白宫"
,
"签署日期"
:
"2025-07-23"
,
"颁布日期"
:
"2025-07-28"
},
"政令背景"
:
{
"content"
:
[
"中国在人工智能技术栈的多个关键环节取得快速发展,成为美国在全球AI领域保持主导地位的主要竞争者。"
],
"source_section_num"
:
[
"2"
,
"4"
,
"1"
,
"3"
]
},
"政令简介"
:
{
"source_section_num"
:
[
"1"
,
"2"
,
"3"
,
"4"
],
"content"
:
"《促进美国人工智能技术栈的出口》要求美国商务部联合国务院、科技政策办公室等机构,建立美国人工智能出口计划,系统性推动包含AI芯片、数据中心、数据管道、模型系统、安全机制及行业应用的全栈技术包向全球出口,重点拓展对华技术替代市场,通过联邦融资工具与外交协同强化美国AI标准与基础设施的国际渗透,以巩固其在全球人工智能治理与供应链中的主导地位。"
},
"法律依据"
:
[
"《美国法典》第3编第301条"
,
"《2019年通过外交推动美国商业卓越法案》第708条"
,
"《美国法典》第50编第58章"
],
"数据概览"
:
[
{
"名称"
:
"条款总数"
,
"数值"
:
5
,
"单位"
:
"条"
},
{
"名称"
:
"科技条款总数"
,
"数值"
:
4
,
"单位"
:
"条"
},
{
"名称"
:
"涉华科技条款总数"
,
"数值"
:
3
,
"单位"
:
"条"
},
{
"名称"
:
"政令涉及领域"
,
"数值"
:
1
,
"单位"
:
"个"
,
"细节"
:
[
"人工智能"
]
}
]
},
"政令深度分析"
:
{
"条款分析"
:
{
"科技条款领域分布"
:
{
"type"
:
"柱状图"
,
"name"
:
"科技条款领域分布情况"
,
"data"
:
[
{
"domain_type"
:
"人工智能"
,
"count"
:
4
}
]
},
"科技条款内容"
:
[
{
"领域名称"
:
"人工智能"
,
"核心条款内容"
:
[
"建立美国人工智能出口计划,支持全栈美国人工智能技术包的开发与部署"
,
"美国人工智能出口计划要求提交的提案必须包含优化的AI硬件(如芯片、服务器、加速器)、数据中心存储、云服务和网络设施,并说明其在美国的制造程度"
,
"美国人工智能出口计划要求提案必须包含数据管道与标注系统"
,
"美国人工智能出口计划要求提案必须包含AI模型与系统"
,
"美国人工智能出口计划要求提案必须包含保障AI模型与系统安全与网络安全的措施"
,
"美国人工智能出口计划要求提案必须包含针对特定应用场景的AI应用(如软件工程、教育、医疗、农业或交通)"
,
"美国人工智能出口计划要求提案必须明确指定目标出口国家或区域 bloc"
,
"美国人工智能出口计划要求提案必须描述数据中枢及相关基础设施的建设、所有与运营的商业与运营模式"
,
"美国人工智能出口计划要求提案必须详细说明所申请的联邦激励与支持机制"
,
"美国人工智能出口计划要求提案必须遵守所有适用的美国出口管制制度、对外投资法规和最终用户政策,包括《美国法典》第50编第58章及商务部工业与安全局的相关指引"
,
"美国人工智能出口计划由商务部长在与国务卿和科技政策办公室主任协商后于本命令发布后90天内建立并实施"
,
"商务部长应在发布公开征集提案后90天内接收提案,并对提案进行滚动评估以纳入计划"
,
"被选定为优先人工智能出口包的提案,须经商务部长与国务卿、国防部长、能源部长及科技政策办公室主任共同评估确定"
,
"优先人工智能出口包将获得本命令第4节所列工具的优先访问权"
,
"成立经济外交行动组(EDAG),协调联邦融资工具以支持优先人工智能出口包"
,
"经济外交行动组由国务卿主持,成员可由小企业管理局局长和科技政策办公室主任根据《2019年通过外交促进美国商业法案》第708(c)(3)条任命"
,
"国务卿负责制定并执行统一的联邦战略,以促进美国人工智能技术与标准的出口"
,
"国务卿负责协调技术、金融与外交资源,加速优先人工智能出口包的部署"
,
"国务卿负责协调美国参与多边倡议及国别伙伴关系,以推动人工智能部署与出口推广"
,
"联邦机构应利用现有工具(包括直接贷款、贷款担保、股权投资、联合融资、政治风险保险、信用担保、技术援助与可行性研究)最大限度支持优先人工智能出口包"
],
"领域举措"
:
{
"type"
:
"思维导图"
,
"name"
:
"人工智能领域举措一览"
,
"data"
:
{
"node"
:
[
{
"id"
:
"1-1"
,
"name"
:
"人工智能领域举措"
,
"depth"
:
0
},
{
"id"
:
"2-1"
,
"name"
:
"商务部"
,
"depth"
:
1
},
{
"id"
:
"2-2"
,
"name"
:
"美国贸易代表办公室"
,
"depth"
:
1
},
{
"id"
:
"2-3"
,
"name"
:
"经济外交行动组"
,
"depth"
:
1
},
{
"id"
:
"2-4"
,
"name"
:
"小企业管理局"
,
"depth"
:
1
},
{
"id"
:
"2-5"
,
"name"
:
"白宫科学和技术政策办公室"
,
"depth"
:
1
},
{
"id"
:
"2-6"
,
"name"
:
"能源部"
,
"depth"
:
1
},
{
"id"
:
"2-7"
,
"name"
:
"国务院"
,
"depth"
:
1
},
{
"id"
:
"2-8"
,
"name"
:
"国防部"
,
"depth"
:
1
},
{
"id"
:
"3-1"
,
"name"
:
"建立协调的国家努力,通过促进全栈美国人工智能技术包的出口来支持美国人工智能产业。"
,
"depth"
:
2
},
{
"id"
:
"3-2"
,
"name"
:
"支持美国原产人工智能技术的全球部署,以减少对竞争对手开发的人工智能技术的依赖。"
,
"depth"
:
2
},
{
"id"
:
"3-3"
,
"name"
:
"商务部长应在90天内联合国务卿和科技政策办公室主任,建立并实施美国人工智能出口计划,征集由行业联盟提交的全栈AI出口包提案,提案须包含AI优化硬件、数据管道、AI模型、安全措施和应用场景,并明确目标出口国家或地区、运营模式及所需联邦支持。"
,
"depth"
:
2
},
{
"id"
:
"3-4"
,
"name"
:
"商务部须评估所提交的提案,与国务卿、国防部长、能源部长和科技政策办公室主任协商,选定优先AI出口包,并给予其优先获取本命令第4节所列工具的支持。"
,
"depth"
:
2
},
{
"id"
:
"3-5"
,
"name"
:
"由国务卿牵头,协调经济外交行动组(EDAG),制定并执行统一的联邦战略,促进美国人工智能技术与标准的出口,整合技术、金融与外交资源加优先AI出口包的部署,并支持多边倡议与国别合作。"
,
"depth"
:
2
},
{
"id"
:
"3-6"
,
"name"
:
"授权小企业管理局局长与白宫科技政策办公室主任依据CABDA第708(c)(3)条,任命其部门和机构的高级官员担任EDAG成员。"
,
"depth"
:
2
},
{
"id"
:
"3-7"
,
"name"
:
"EDAG成员应最大限度利用现有联邦融资工具支持优先AI出口包,包括直接贷款与贷款担保、股权融资、联合融资、政治风险保险、信用担保、技术援助与可行性研究。"
,
"depth"
:
2
},
{
"id"
:
"3-8"
,
"name"
:
"支持伙伴国家建立有利于创新的监管、数据和基础设施环境,以促进美国AI系统的部署,并分析阻碍美国AI产品市场准入的技术性贸易壁垒与监管措施。"
,
"depth"
:
2
},
{
"id"
:
"3-9"
,
"name"
:
"与小企业管理局的投资与创新办公室协调,促进在适用法律允许范围内,对美国中小企业投资,以支持其开发美国人工智能技术及制造AI基础设施、硬件和系统。"
,
"depth"
:
2
}
],
"links"
:
[
{
"source"
:
"1-1"
,
"target"
:
"2-1"
,
"value"
:
10
},
{
"source"
:
"1-1"
,
"target"
:
"2-2"
,
"value"
:
10
},
{
"source"
:
"1-1"
,
"target"
:
"2-3"
,
"value"
:
10
},
{
"source"
:
"1-1"
,
"target"
:
"2-4"
,
"value"
:
10
},
{
"source"
:
"1-1"
,
"target"
:
"2-5"
,
"value"
:
10
},
{
"source"
:
"1-1"
,
"target"
:
"2-6"
,
"value"
:
10
},
{
"source"
:
"1-1"
,
"target"
:
"2-7"
,
"value"
:
10
},
{
"source"
:
"1-1"
,
"target"
:
"2-8"
,
"value"
:
10
},
{
"source"
:
"2-1"
,
"target"
:
"3-1"
,
"value"
:
10
},
{
"source"
:
"2-1"
,
"target"
:
"3-2"
,
"value"
:
10
},
{
"source"
:
"2-1"
,
"target"
:
"3-3"
,
"value"
:
10
},
{
"source"
:
"2-5"
,
"target"
:
"3-3"
,
"value"
:
10
},
{
"source"
:
"2-7"
,
"target"
:
"3-3"
,
"value"
:
10
},
{
"source"
:
"2-1"
,
"target"
:
"3-4"
,
"value"
:
10
},
{
"source"
:
"2-5"
,
"target"
:
"3-4"
,
"value"
:
10
},
{
"source"
:
"2-6"
,
"target"
:
"3-4"
,
"value"
:
10
},
{
"source"
:
"2-7"
,
"target"
:
"3-4"
,
"value"
:
10
},
{
"source"
:
"2-8"
,
"target"
:
"3-4"
,
"value"
:
10
},
{
"source"
:
"2-1"
,
"target"
:
"3-5"
,
"value"
:
10
},
{
"source"
:
"2-2"
,
"target"
:
"3-5"
,
"value"
:
10
},
{
"source"
:
"2-3"
,
"target"
:
"3-5"
,
"value"
:
10
},
{
"source"
:
"2-4"
,
"target"
:
"3-5"
,
"value"
:
10
},
{
"source"
:
"2-5"
,
"target"
:
"3-5"
,
"value"
:
10
},
{
"source"
:
"2-7"
,
"target"
:
"3-5"
,
"value"
:
10
},
{
"source"
:
"2-4"
,
"target"
:
"3-6"
,
"value"
:
10
},
{
"source"
:
"2-5"
,
"target"
:
"3-6"
,
"value"
:
10
},
{
"source"
:
"2-3"
,
"target"
:
"3-7"
,
"value"
:
10
},
{
"source"
:
"2-3"
,
"target"
:
"3-8"
,
"value"
:
10
},
{
"source"
:
"2-7"
,
"target"
:
"3-8"
,
"value"
:
10
},
{
"source"
:
"2-4"
,
"target"
:
"3-9"
,
"value"
:
10
},
{
"source"
:
"2-7"
,
"target"
:
"3-9"
,
"value"
:
10
}
]
}
},
"source_section_num"
:
[
"1"
,
"2"
,
"3"
,
"4"
]
}
]
}
},
"附录"
:
{
"政令条款内容"
:
[
{
"section_num"
:
"1"
,
"section_text"
:
"目的。人工智能(AI)是一项基础性技术,将在未来数十年内决定经济增长、国家安全和全球竞争力的走向。美国不仅必须在开发通用型和前沿人工智能能力方面保持领先,还必须确保美国的人工智能技术、标准和治理模式在全球范围内得到采纳,以加强与盟友的关系并保障我们持续的技术主导地位。本命令确立了一项协调一致的国家努力,通过促进全套美国人工智能技术包的出口来支持美国人工智能产业。"
},
{
"section_num"
:
"2"
,
"section_text"
:
"美国的政策是保持并扩大美国在人工智能领域的领导地位,并通过支持美国原产人工智能技术的全球部署,减少对我国竞争对手所开发的人工智能技术的国际依赖。"
},
{
"section_num"
:
"3"
,
"section_text"
:
"(ii)确定具体的出口目标国家或区域集团;
\
n(iii)描述商业和运营模式,从宏观层面说明哪些实体将建设、拥有和运营数据中心及相关基础设施;
\
n(iv)详细说明所申请的联邦激励措施和支持机制;
\
n(v)遵守所有相关的美国出口管制制度、对外投资法规和最终用户政策,包括《美国法典》第50编第58章以及商务部工业与安全局发布的相关指南。
\
n
\
n(c)商务部应要求提案在公开征集提案发布后90天内提交,并应按滚动方式对提案进行审核,以纳入本计划。
\
n
\
n(d)商务部长应会同国务卿、国防部长、能源部长和总统科技政策办公室主任,评估所提交的提案以纳入本计划。经商务部长会同国务卿、国防部长、能源部长和总统科技政策办公室主任选定的提案,将被指定为优先人工智能出口包,并根据适用法律,获得本命令第4节所列工具的优先使用权。"
},
{
"section_num"
:
"4"
,
"section_text"
:
"联邦融资工具的动员。(a) 根据2024年6月21日总统备忘录设立的经济外交行动组(Economic Diplomacy Action Group, EDAG),由国务卿担任主席,并与商务部长和美国贸易代表协商,依据《2019年通过外交促进美国商业法案》第708条(《2019年公共法116-94》第J分编第VII标题)(以下简称“CABDA”),负责协调动员联邦融资工具以支持优先的人工智能出口项目。(b) 我依据CABDA第708(c)(3)条,授权小企业管理局局长和科技政策办公室主任任命其各自行政部门和机构的高级官员作为EDAG成员。(c) 国务卿应与EDAG协商,负责:(i) 制定并实施联邦政府统一战略,以促进美国人工智能技术及标准的出口;(ii) 整合技术、金融和外交资源,加推进计划下优先人工智能出口项目的部署;(iii) 协调美国参与多边倡议及针对特定国家的人工智能部署与出口促进伙伴关系;(iv) 支持伙伴国家建立有利于美国人工智能系统部署的促进创新的监管、数据和基础设施环境;(v) 分析市场准入情况,包括可能阻碍美国产品竞争力的技术性贸易壁垒和监管措施;以及(vi) 与小企业管理局投资与创新办公室协调,在适用法律允许的范围内,促进对美国中小企业投资,以支持美国人工智能技术的研发及人工智能基础设施、硬件和系统的制造。(d) EDAG成员应尽最大可能依法动用现有联邦工具,支持被选入本计划的优先出口项目,包括直接贷款和贷款担保(12 U.S.C. 635);股权投资、联合融资、政治风险保险和信用担保(22 U.S.C. 9621);以及技术援助和可行性研究(22 U.S.C. 2421(b))。"
},
{
"section_num"
:
"5"
,
"section_text"
:
"一般规定。(a) 本命令的任何内容均不得被解释为削弱或以其他方式影响:(i) 任何行政部门或机构及其负责人根据法律所享有的权力;或(ii) 行政管理和预算局局长在预算、行政或立法提案方面的职能。(b) 本命令的实施应符合适用法律,并受可用拨款的限制。(c) 本命令无意且并未创设任何可由任何一方对美国、其部门、机构或实体、其官员、雇员或代理人,或任何其他人,在法律或衡平法上强制执行的权利或利益,无论是实体性还是程序性的。(d) 本命令的出版费用由商务部承担。白宫,2025年7月23日。[FR Doc. 2025-14218 归档日期:2025年7月25日 上午8:45;公布日期:2025年7月28日]"
}
]
}
}
}
// await this.fetchReportData(obj);
// await this.fetchReportData(obj);
// this.isShowClauseTranslation=true
// this.headerTabType='message'
// this.reportContent=md
// this.tabList[2].active=true //写报生成之后放开写报按钮
// this.bottomProgressNum=100
// this.writeProgressNum=100 //写报假进度
// this.headerTabType='message'
await
this
.
fetchReportData
({
await
this
.
fetchReportData
({
query
:
this
.
writtingTitle
,
query
:
this
.
writtingTitle
,
...
@@ -584,13 +204,15 @@ export const useWrittingAsstaintStore = defineStore('writtingAsstaint', {
...
@@ -584,13 +204,15 @@ export const useWrittingAsstaintStore = defineStore('writtingAsstaint', {
topic
:
this
.
curTempTitle
,
topic
:
this
.
curTempTitle
,
result
:
this
.
resultWriteData
result
:
this
.
resultWriteData
});
});
},
},
// 停止写报
// 停止写报
writeGenerateState
(){
writeGenerateState
(){
// this.bottomProgressNum=100
// this.bottomProgressNum=100
store
.
headerTabType
=
'translate'
this
.
writeProgressNum
=
0
this
.
writeProgressNum
=
0
this
.
processWriteLog
=
''
this
.
processWriteLog
=
''
this
.
tabList
[
2
].
active
=
false
this
.
abortController
.
abort
()
this
.
abortController
.
abort
()
},
},
...
@@ -808,18 +430,10 @@ export const useWrittingAsstaintStore = defineStore('writtingAsstaint', {
...
@@ -808,18 +430,10 @@ export const useWrittingAsstaintStore = defineStore('writtingAsstaint', {
break
;
break
;
case
'result'
:
case
'result'
:
if
(
jsonData
&&
Object
.
keys
(
jsonData
).
length
)
{
if
(
jsonData
&&
Object
.
keys
(
jsonData
).
length
)
{
console
.
log
(
{
query
:
this
.
writtingTitle
,
desc
:
this
.
descText
,
topic
:
this
.
curTempTitle
,
result
:
jsonData
}
)
this
.
bottomProgressNum
=
100
// 假进度完成
this
.
bottomProgressNum
=
100
// 假进度完成
this
.
resultWriteData
=
jsonData
//给写报使用
this
.
resultWriteData
=
jsonData
//给写报使用
this
.
tabList
[
1
].
active
=
true
this
.
tabList
[
1
].
active
=
true
//放开思维导图
this
.
processLog
=
`点击查看`
;
// await this.fetchReportData({
// await this.fetchReportData({
// query: this.writtingTitle,
// query: this.writtingTitle,
// desc: this.descText,
// desc: this.descText,
...
@@ -845,6 +459,7 @@ export const useWrittingAsstaintStore = defineStore('writtingAsstaint', {
...
@@ -845,6 +459,7 @@ export const useWrittingAsstaintStore = defineStore('writtingAsstaint', {
this
.
resetGenerateState
();
this
.
resetGenerateState
();
},
},
onclose
:
()
=>
{
onclose
:
()
=>
{
this
.
bottomProgressNum
=
100
// 假进度完成
console
.
log
(
'SSE连接正常关闭'
);
console
.
log
(
'SSE连接正常关闭'
);
this
.
isGenerating
=
false
;
this
.
isGenerating
=
false
;
}
}
...
@@ -862,7 +477,7 @@ export const useWrittingAsstaintStore = defineStore('writtingAsstaint', {
...
@@ -862,7 +477,7 @@ export const useWrittingAsstaintStore = defineStore('writtingAsstaint', {
// ========== AI 生成报文 SSE(更新报文内容 + 执行步骤) ==========
// ========== AI 生成报文 SSE(更新报文内容 + 执行步骤) ==========
async
fetchReportData
(
params
)
{
async
fetchReportData
(
params
)
{
console
.
log
(
">"
)
if
(
this
.
abortController
)
this
.
abortController
.
abort
();
if
(
this
.
abortController
)
this
.
abortController
.
abort
();
this
.
abortController
=
new
AbortController
();
this
.
abortController
=
new
AbortController
();
this
.
processLog
=
''
;
this
.
processLog
=
''
;
...
@@ -948,15 +563,17 @@ export const useWrittingAsstaintStore = defineStore('writtingAsstaint', {
...
@@ -948,15 +563,17 @@ export const useWrittingAsstaintStore = defineStore('writtingAsstaint', {
streamBuffer
+=
str
;
streamBuffer
+=
str
;
updateFlushIndexByBoundary
();
updateFlushIndexByBoundary
();
flushToReport
(
false
);
flushToReport
(
false
);
console
.
log
(
streamBuffer
,
456
)
}
else
{
}
else
{
// 结束时把剩余内容强制 flush
// 结束时把剩余内容强制 flush
flushToReport
(
true
);
flushToReport
(
true
);
this
.
isGenerating
=
false
;
this
.
isGenerating
=
false
;
this
.
isShowSteps
=
false
;
// 报文生成结束后关闭步骤侧边栏
this
.
isShowSteps
=
false
;
// 报文生成结束后关闭步骤侧边栏
ElMessage
.
success
(
'报文生成结束0'
);
ElMessage
.
success
(
'报文生成结束'
);
this
.
tabList
[
2
].
active
=
true
//写报生成之后放开写报按钮
this
.
writeProgressNum
=
100
//写报假进度
this
.
writeProgressNum
=
100
//写报假进度
this
.
processWriteLog
=
'点击查看'
;
// 这里不再调用 resetGenerateState,因为可能需要保留翻译内容
// 这里不再调用 resetGenerateState,因为可能需要保留翻译内容
}
}
...
@@ -965,11 +582,11 @@ export const useWrittingAsstaintStore = defineStore('writtingAsstaint', {
...
@@ -965,11 +582,11 @@ export const useWrittingAsstaintStore = defineStore('writtingAsstaint', {
flushToReport
(
true
);
flushToReport
(
true
);
this
.
isGenerating
=
false
;
this
.
isGenerating
=
false
;
this
.
isShowSteps
=
false
;
// 报文生成结束后关闭步骤侧边栏
this
.
isShowSteps
=
false
;
// 报文生成结束后关闭步骤侧边栏
ElMessage
.
success
(
'报文生成结束
1
'
);
ElMessage
.
success
(
'报文生成结束'
);
this
.
tabList
[
2
].
active
=
true
//写报生成之后放开写报按钮
this
.
tabList
[
2
].
active
=
true
//写报生成之后放开写报按钮
this
.
writeProgressNum
=
100
//写报假进度
this
.
writeProgressNum
=
100
//写报假进度
this
.
processWriteLog
=
'点击查看'
;
}
else
if
((
msgData
.
event_type
||
''
).
toLowerCase
().
includes
(
'error'
))
{
}
else
if
((
msgData
.
event_type
||
''
).
toLowerCase
().
includes
(
'error'
))
{
// 优先从 data.error 获取详细错误描述
// 优先从 data.error 获取详细错误描述
const
errorMsg
=
msgData
.
data
?.
error
||
str
||
'生成失败'
;
const
errorMsg
=
msgData
.
data
?.
error
||
str
||
'生成失败'
;
...
@@ -983,7 +600,6 @@ export const useWrittingAsstaintStore = defineStore('writtingAsstaint', {
...
@@ -983,7 +600,6 @@ export const useWrittingAsstaintStore = defineStore('writtingAsstaint', {
if
(
this
.
writeProgressNum
<=
90
){
if
(
this
.
writeProgressNum
<=
90
){
this
.
writeProgressNum
+=
0.05
this
.
writeProgressNum
+=
0.05
}
}
console
.
log
(
this
.
writeProgressNum
)
}
}
this
.
curAgentTool
=
msgData
.
tool
||
'无'
;
this
.
curAgentTool
=
msgData
.
tool
||
'无'
;
}
}
...
@@ -1005,15 +621,18 @@ export const useWrittingAsstaintStore = defineStore('writtingAsstaint', {
...
@@ -1005,15 +621,18 @@ export const useWrittingAsstaintStore = defineStore('writtingAsstaint', {
// ========== 业务入口 ==========
// ========== 业务入口 ==========
async
generateReport
()
{
async
generateReport
()
{
console
.
log
(
77777
)
this
.
bottomProgressNum
=
1
if
(
Object
.
keys
(
this
.
routeQuery
).
length
!==
0
)
{
if
(
Object
.
keys
(
this
.
routeQuery
).
length
!==
0
)
{
// 路由参数优先
// 路由参数优先
this
.
isGenerating
=
true
;
this
.
isShowProcess
=
true
;
const
{
fileId
}
=
this
.
routeQuery
;
const
{
fileId
}
=
this
.
routeQuery
;
// 外部跳转:根据 topic 决定调用哪种数据获取接口,再触发生成
// 外部跳转:根据 topic 决定调用哪种数据获取接口,再触发生成
if
(
fileId
)
{
if
(
fileId
)
{
this
.
isGenerating
=
true
;
this
.
isShowProcess
=
true
;
if
(
this
.
curTempTitle
===
'法案'
)
{
if
(
this
.
curTempTitle
===
'法案'
)
{
await
this
.
fetchBillReportData
(
fileId
);
await
this
.
fetchBillReportData
(
fileId
);
}
else
if
(
this
.
curTempTitle
===
'清单'
)
{
}
else
if
(
this
.
curTempTitle
===
'清单'
)
{
...
@@ -1027,6 +646,7 @@ export const useWrittingAsstaintStore = defineStore('writtingAsstaint', {
...
@@ -1027,6 +646,7 @@ export const useWrittingAsstaintStore = defineStore('writtingAsstaint', {
}
}
// 兼容:若仅有 routeQuery 但无 fileId,则直接走原生成接口
// 兼容:若仅有 routeQuery 但无 fileId,则直接走原生成接口
console
.
log
(
99999
)
const
params
=
{
const
params
=
{
query
:
this
.
writtingTitle
,
query
:
this
.
writtingTitle
,
desc
:
this
.
descText
,
desc
:
this
.
descText
,
...
@@ -1035,6 +655,7 @@ export const useWrittingAsstaintStore = defineStore('writtingAsstaint', {
...
@@ -1035,6 +655,7 @@ export const useWrittingAsstaintStore = defineStore('writtingAsstaint', {
};
};
await
this
.
fetchReportData
(
params
);
await
this
.
fetchReportData
(
params
);
}
else
{
}
else
{
console
.
log
(
10101010101010
)
// 政令模板需要先解析PDF
// 政令模板需要先解析PDF
if
(
this
.
curTempTitle
===
'政令'
)
{
if
(
this
.
curTempTitle
===
'政令'
)
{
if
(
this
.
uploadFileList
.
length
===
0
)
{
if
(
this
.
uploadFileList
.
length
===
0
)
{
...
...
src/views/writtingAsstaint/components/WrittingBottom.vue
浏览文件 @
58dd1d06
...
@@ -2,7 +2,7 @@
...
@@ -2,7 +2,7 @@
<div
class=
"writtingBottom"
>
<div
class=
"writtingBottom"
>
<!-- 文档停止解析 -->
<!-- 文档停止解析 -->
<div
class=
"parsed"
v-if=
"store.bottomProgressNum>0&&store.bottomProgressNum
<10
0
"
>
<div
class=
"parsed"
v-if=
"store.bottomProgressNum>0&&store.bottomProgressNum
!=100&&store.writeProgressNum
<1
0
"
>
<div
class=
"analysis"
@
click=
"store.resetGenerateState"
>
<div
class=
"analysis"
@
click=
"store.resetGenerateState"
>
<div
class=
"icon"
></div>
<div
class=
"icon"
></div>
<span
class=
"text-tip-2-bold"
>
停止
</span>
<span
class=
"text-tip-2-bold"
>
停止
</span>
...
@@ -10,7 +10,9 @@
...
@@ -10,7 +10,9 @@
<div
class=
"progress"
>
<div
class=
"progress"
>
<div
class=
"login"
>
<div
class=
"login"
>
<el-progress
type=
"circle"
:percentage=
"store.bottomProgressNum"
:width=
"24"
:height=
"24"
style=
"margin-right: 15px;"
:show-text=
"false"
color=
"rgb(5, 95, 194)"
/>
<el-progress
type=
"circle"
:percentage=
"store.bottomProgressNum"
:width=
"24"
:height=
"24"
style=
"margin-right: 15px;"
:show-text=
"false"
color=
"rgb(5, 95, 194)"
/>
<span
class=
"text-tip-2-bold"
>
文档翻译中
</span>
<span
class=
"text-tip-2-bold"
>
文档翻译中
</span>
</div>
</div>
<div
class=
"text-tip-2"
>
<div
class=
"text-tip-2"
>
<div
ref=
"processContainerRef"
v-html=
"renderedProcess"
></div>
<div
ref=
"processContainerRef"
v-html=
"renderedProcess"
></div>
...
@@ -21,7 +23,7 @@
...
@@ -21,7 +23,7 @@
<!-- 开始写报 -->
<!-- 开始写报 -->
<!-- -->
<!-- -->
<div
class=
"parsed"
v-else-if=
"store.bottomProgressNum>=100"
>
<div
class=
"parsed"
v-else-if=
"store.bottomProgressNum>=100"
>
<div
class=
"analysis"
v-if=
"store.
isWriteStart&&store.writeProgressNum
<
100
"
@
click=
"store.writeGenerateState"
>
<div
class=
"analysis"
v-if=
"store.
writeProgressNum>0&&store.writeProgressNum!=
100"
@
click=
"store.writeGenerateState"
>
<div
class=
"icon"
></div>
<div
class=
"icon"
></div>
<span
class=
"text-tip-2-bold"
>
停止
</span>
<span
class=
"text-tip-2-bold"
>
停止
</span>
</div>
</div>
...
@@ -35,10 +37,21 @@
...
@@ -35,10 +37,21 @@
</div>
</div>
<div
class=
"progress"
>
<div
class=
"progress"
>
<div
class=
"login"
>
<!-- 如果store.writeProgressNum>=1 点击了写报 否则是思维导图已完成 -->
<div
class=
"login"
v-if=
"store.writeProgressNum>=1&&store.writeProgressNum
<100
"
>
<el-progress
type=
"circle"
:percentage=
"store.writeProgressNum"
:width=
"24"
:height=
"24"
style=
"margin-right: 15px;"
:show-text=
"false"
color=
"rgb(5, 95, 194)"
/>
<el-progress
type=
"circle"
:percentage=
"store.writeProgressNum"
:width=
"24"
:height=
"24"
style=
"margin-right: 15px;"
:show-text=
"false"
color=
"rgb(5, 95, 194)"
/>
<span
class=
"text-tip-2-bold"
>
智能写报中
</span>
<span
class=
"text-tip-2-bold"
>
智能写报中
</span>
</div>
<div
class=
"login"
v-else-if=
"store.writeProgressNum>=100"
>
<el-icon
style=
"width: 24px;height: 24px;margin-right: 4px;"
><CircleCheckFilled
style=
"width: 24px;height: 24px;"
class=
"var(--color-primary-35)"
/></el-icon>
<span
class=
"text-tip-2-bold"
>
文档解析完成
</span>
</div>
<div
class=
"login"
v-else-if=
"store.bottomProgressNum>=100"
>
<el-icon
style=
"width: 24px;height: 24px;margin-right: 4px;"
><CircleCheckFilled
style=
"width: 24px;height: 24px;"
class=
"var(--color-primary-35)"
/></el-icon>
<!--
<el-progress
type=
"circle"
:percentage=
"store.writeProgressNum"
:width=
"24"
:height=
"24"
style=
"margin-right: 15px;"
:show-text=
"false"
color=
"rgb(5, 95, 194)"
/>
-->
<span
class=
"text-tip-2-bold"
>
思维导图已完成
</span>
</div>
</div>
<div
class=
"text-tip-2"
>
<div
class=
"text-tip-2"
>
<div
ref=
"processWriteLogRef"
v-html=
"renderedProcess"
>
</div>
<div
ref=
"processWriteLogRef"
v-html=
"renderedProcess"
>
</div>
</div>
</div>
...
@@ -76,6 +89,8 @@ const onAnalysisClick=()=>{
...
@@ -76,6 +89,8 @@ const onAnalysisClick=()=>{
}
}
const
onWriteClick
=
()
=>
{
const
onWriteClick
=
()
=>
{
store
.
isShowSteps
=
false
emit
(
"write"
);
emit
(
"write"
);
}
}
const
{
renderedProcess
,
updateProcess
,
clearContent
}
=
useStream
();
const
{
renderedProcess
,
updateProcess
,
clearContent
}
=
useStream
();
...
...
src/views/writtingAsstaint/components/WrittingLeftBox.vue
浏览文件 @
58dd1d06
...
@@ -159,7 +159,7 @@
...
@@ -159,7 +159,7 @@
<!-- </div>
<!-- </div>
</div> -->
</div> -->
<!-- 条款翻译侧边栏 srot -->
<!-- 条款翻译侧边栏 srot -->
<div
class=
"left-box translation-box"
:class=
"{ 'has-back-btn': store.isGenerating }"
v-if=
"store.isShow
ClauseTranslation
&&store.headerTabType=='message'"
>
<div
class=
"left-box translation-box"
:class=
"{ 'has-back-btn': store.isGenerating }"
v-if=
"store.isShow
Steps
&&store.headerTabType=='message'"
>
<div
class=
"translation-main-box"
>
<div
class=
"translation-main-box"
>
<!-- <div class="translation-actions" v-if="!store.isGenerating">
<!-- <div class="translation-actions" v-if="!store.isGenerating">
<div class="back-input-btn" @click="store.backToInputAndClear">返回输入栏</div>
<div class="back-input-btn" @click="store.backToInputAndClear">返回输入栏</div>
...
@@ -198,9 +198,9 @@
...
@@ -198,9 +198,9 @@
</div>
</div>
</div>
</div>
<!-- 步骤侧边栏显隐按钮 -->
<!-- 步骤侧边栏显隐按钮 -->
<
!-- <
div class="toggle-steps-btn" @click="store.isShowSteps = !store.isShowSteps">
<div
class=
"toggle-steps-btn"
@
click=
"store.isShowSteps = !store.isShowSteps"
>
<div
class=
"arrow"
:class=
"{ 'is-active': store.isShowSteps }"
></div>
<div
class=
"arrow"
:class=
"{ 'is-active': store.isShowSteps }"
></div>
</div>
-->
</div>
</div>
</div>
</div>
</div>
</template>
</template>
...
@@ -245,16 +245,27 @@ watch(
...
@@ -245,16 +245,27 @@ watch(
async
(
newId
)
=>
{
async
(
newId
)
=>
{
if
(
!
newId
||
!
translationContentRef
.
value
)
return
;
if
(
!
newId
||
!
translationContentRef
.
value
)
return
;
await
nextTick
();
await
nextTick
();
const
container
=
translationContentRef
.
value
;
const
container
=
translationContentRef
.
value
;
const
item
=
container
.
querySelector
(
`.translation-item[data-clause-number="
${
newId
}
"]`
);
const
result
=
newId
.
replace
(
/^
\d
+、/
,
''
);
const
item
=
container
.
querySelector
(
`.translation-item[data-clause-number="
${
newId
.
match
(
/^
(\d
+
)
/
)[
1
]}
"]`
);
const
itemHtml
=
item
.
querySelector
(
`.translated-text`
);
if
(
!
item
)
return
;
if
(
!
item
)
return
;
// 你已经拿到的 外层大标签
const
element
=
itemHtml
// 你要找的文字
const
targetText
=
result
const
location
=
findTextInElement
(
element
,
targetText
);
const
containerRect
=
container
.
getBoundingClientRect
();
const
containerRect
=
container
.
getBoundingClientRect
();
const
itemRect
=
item
.
getBoundingClientRect
()
;
const
itemRect
=
location
;
const
delta
=
itemRect
.
top
-
containerRect
.
top
;
const
delta
=
itemRect
.
top
-
containerRect
.
top
;
const
targetTop
=
container
.
scrollTop
+
delta
;
const
targetTop
=
container
.
scrollTop
+
delta
;
console
.
log
(
delta
)
// 让高亮条款的“标题区域”贴到容器顶部
// 让高亮条款的“标题区域”贴到容器顶部
container
.
scrollTo
({
container
.
scrollTo
({
top
:
Math
.
max
(
0
,
targetTop
),
top
:
Math
.
max
(
0
,
targetTop
),
...
@@ -262,6 +273,77 @@ watch(
...
@@ -262,6 +273,77 @@ watch(
});
});
}
}
);
);
// 👇 核心:在 element 内部找文字位置
// =========================================
function
findTextInElement
(
element
,
targetText
)
{
// 遍历标签内的所有内容
const
nodes
=
element
.
childNodes
;
let
rect
=
''
for
(
let
i
=
0
;
i
<
nodes
.
length
;
i
++
)
{
const
node
=
nodes
[
i
];
// 只找纯文字
if
(
node
.
nodeType
===
3
)
{
const
originalText
=
node
.
textContent
;
function
cleanText
(
str
)
{
return
str
.
replace
(
/(/g
,
'('
)
.
replace
(
/)/g
,
')'
)
.
replace
(
/,/g
,
','
)
.
replace
(
/。/g
,
'.'
)
.
replace
(
/:/g
,
':'
)
.
replace
(
/;/g
,
';'
);
}
// 清理后的文字(无标点)
const
nodeClean
=
cleanText
(
originalText
);
const
targetClean
=
cleanText
(
targetText
);
console
.
log
(
nodeClean
)
console
.
log
(
targetClean
)
console
.
log
(
nodeClean
.
includes
(
targetClean
))
// 用干净文字对比
if
(
nodeClean
.
includes
(
targetClean
))
{
// 找到真实位置(用原始文本定位,不影响)
const
index
=
originalText
.
indexOf
(
originalText
.
includes
(
targetText
)
?
targetText
:
originalText
);
const
range
=
document
.
createRange
();
range
.
setStart
(
node
,
index
);
range
.
setEnd
(
node
,
index
+
targetText
.
length
);
// 拿到位置
rect
=
range
.
getBoundingClientRect
();
const
marks
=
element
.
querySelectorAll
(
'mark'
);
marks
.
forEach
(
mark
=>
{
// 把 mark 里的文字放回原位,删除标签
const
parent
=
mark
.
parentNode
;
while
(
mark
.
firstChild
)
{
parent
.
insertBefore
(
mark
.
firstChild
,
mark
);
}
parent
.
removeChild
(
mark
);
// 合并相邻文本节点(恢复页面原貌)
parent
.
normalize
();
});
const
mark
=
document
.
createElement
(
"mark"
);
mark
.
style
.
backgroundColor
=
'#055FC2'
;
mark
.
style
.
color
=
"#fff"
;
// 文字颜色
range
.
surroundContents
(
mark
);
break
;
}
}
}
return
rect
}
// 监听 store.processLog 变化,更新步骤内容并滚动
// 监听 store.processLog 变化,更新步骤内容并滚动
watch
(
watch
(
...
...
src/views/writtingAsstaint/components/WrittingMainBox.vue
浏览文件 @
58dd1d06
...
@@ -42,6 +42,8 @@ const handleGlobalClick = (e) => {
...
@@ -42,6 +42,8 @@ const handleGlobalClick = (e) => {
if
(
clauseId
)
{
if
(
clauseId
)
{
store
.
highlightClauseId
=
clauseId
;
store
.
highlightClauseId
=
clauseId
;
// 翻译栏一直显示,所以这里只需要确保它在视图内
// 翻译栏一直显示,所以这里只需要确保它在视图内
store
.
isShowSteps
=
true
;
console
.
log
(
store
.
highlightClauseId
)
}
}
}
}
};
};
...
@@ -88,6 +90,7 @@ watch(
...
@@ -88,6 +90,7 @@ watch(
},
},
{
immediate
:
true
}
{
immediate
:
true
}
);
);
</
script
>
</
script
>
<
style
lang=
"scss"
scoped
>
<
style
lang=
"scss"
scoped
>
...
...
src/views/writtingAsstaint/components/WrittingMind.vue
浏览文件 @
58dd1d06
...
@@ -7,808 +7,64 @@
...
@@ -7,808 +7,64 @@
<
script
setup
>
<
script
setup
>
import
{
ref
,
onMounted
,
onUnmounted
}
from
'vue'
import
{
ref
,
onMounted
,
onUnmounted
}
from
'vue'
import
G6
from
'@antv/g6'
import
G6
from
'@antv/g6'
import
{
useWrittingAsstaintStore
}
from
"@/stores/writtingAsstaintStore"
;
// 子组件直接获取Pinia Store(核心优化)
const
store
=
useWrittingAsstaintStore
();
const
data
=
{
let
mindMapData
=
{
"报告标题"
:
"美国对华科技政令分析报告(2025-06836)"
,
"政令概览"
:
{
"基本情况"
:
{
"政令名称"
:
"通过确保国家安全和经济韧性"
,
"政令编号"
:
"14272"
,
"颁布机构"
:
"白宫"
,
"签署日期"
:
"2025-04-15"
,
"颁布日期"
:
"2025-04-18"
},
"政令背景"
:
{
"content"
:
[
"中国在全球 processed critical minerals 及其衍生产品供应链中占据主导地位,且被指存在价格操纵、出口限制等市场扭曲行为,导致美国在关键矿物供应上高度依赖中国。"
],
"source_section_num"
:
[
"2"
,
"1"
,
"3"
]
},
"政令简介"
:
{
"source_section_num"
:
[
"1"
,
"2"
,
"3"
],
"content"
:
"《通过确保国家安全和经济韧性》法案要求对加工关键矿物及其衍生产品的进口展开国家安全审查,重点评估中国等国家在稀土元素与加工矿物供应链中的主导地位、市场操纵行为及对美国国防工业和高科技制造业的系统性依赖风险,并推动建立本土加工能力与供应链韧性,以降低对特定地缘政治实体的战略性资源依赖。"
},
"法律依据"
:
[
"1962年贸易扩展法"
,
"《国际紧急经济权力法》"
,
"《1962年贸易扩展法》第232条"
,
"《1962年贸易扩展法》第1862(d)条"
],
"数据概览"
:
[
{
"名称"
:
"条款总数"
,
"数值"
:
4
,
"单位"
:
"条"
},
{
"名称"
:
"科技条款总数"
,
"数值"
:
3
,
"单位"
:
"条"
},
{
"名称"
:
"涉华科技条款总数"
,
"数值"
:
2
,
"单位"
:
"条"
},
{
"名称"
:
"政令涉及领域"
,
"数值"
:
3
,
"单位"
:
"个"
,
"细节"
:
[
"先进制造"
,
"新材料"
,
"新能源"
]
}
]
},
"政令深度分析"
:
{
"条款分析"
:
{
"科技条款领域分布"
:
{
"type"
:
"柱状图"
,
"name"
:
"科技条款领域分布情况"
,
"data"
:
[
{
"domain_type"
:
"先进制造"
,
"count"
:
3
},
{
"domain_type"
:
"新材料"
,
"count"
:
3
},
{
"domain_type"
:
"新能源"
,
"count"
:
2
}
]
},
"科技条款内容"
:
[
{
"领域名称"
:
"先进制造"
,
"核心条款内容"
:
[
" processed critical minerals及其衍生产品对美国经济安全和国家安全至关重要,是关键产业、技术创新和基础设施的核心投入品"
,
"processed critical minerals包括从矿石提取后经氧化物浓缩、分离为氧化物、转化为金属、金属粉末或母合金的矿物"
,
"衍生产品包括所有将processed critical minerals作为投入品的货物,如半导体晶圆、阳极、阴极、永磁体、电机、电动汽车、电池、智能手机、微处理器、雷达系统、风力涡轮机及其组件和先进光学设备"
,
"关键矿物包括美国地质调查局根据《2020年能源法案》发布的“关键矿物清单”所列矿物,以及铀"
,
"稀土元素包括美国能源部2020年4月报告中认定的17种元素,以及美国地质调查局或能源部后续官方报告中新增的元素"
,
"美国在processed critical minerals及其衍生产品上高度依赖外国进口,存在供应链脆弱性和市场扭曲风险"
,
"外国供应商通过价格操纵、产能过剩、任意出口限制和供应链主导地位,扭曲全球市场并获取对美国的地缘政治和经济杠杆"
,
"美国制造业和国防工业基地对外国processed critical minerals的依赖,可能导致供应中断并影响产品制造能力"
,
"全球供应链易受地缘政治紧张、战争、自然灾害、大流行病和贸易冲突的破坏"
,
"过度依赖少数地理区域加剧了地缘政治不稳定和区域中断带来的风险"
,
"美国商务部应根据《1930年关税法》第232条启动调查,评估processed critical minerals及其衍生产品进口对国家安全的影响"
,
"调查需评估美国对processed critical minerals及其衍生产品的进口量、来源国占比、具体风险及高风险国家"
,
"调查需分析出口国对processed critical minerals实施的掠夺性经济策略、定价操纵和市场扭曲行为对美国国内投资和生产 viability 的影响"
,
"调查需评估美国及全球对processed critical minerals的需求来源,特别是来自高风险国家的需求比例"
,
"调查需审查processed critical minerals及其衍生产品的全球供应链并进行风险评估"
,
"调查需分析美国当前和潜在的processed critical minerals及其衍生产品加工能力"
,
"调查需评估processed critical minerals及其衍生产品的进口总价值及其来源国分布"
,
"商务部应在本命令发布后90天内提交中期报告草案,180天内向总统提交最终报告和建议"
,
"商务部在提出建议时应考虑征收关税、其他进口限制、防止规避措施、激励国内生产加工与回收的政策,以及依据《国际紧急经济权力法》采取的其他措施"
,
"processed critical minerals及其衍生产品是军事基础设施、能源基础设施和先进国防系统与技术的基础构件"
],
"领域举措"
:
{
"type"
:
"思维导图"
,
"name"
:
"先进制造领域举措一览"
,
"data"
:
{
"node"
:
[
{
"id"
:
"1-1"
,
"name"
:
"先进制造领域举措"
,
"depth"
:
0
},
{
"id"
:
"2-1"
,
"name"
:
"商务部"
,
"depth"
:
1
},
{
"id"
:
"2-2"
,
"name"
:
"白宫经济政策助理"
,
"depth"
:
1
},
{
"id"
:
"2-3"
,
"name"
:
"美国贸易代表办公室"
,
"depth"
:
1
},
{
"id"
:
"2-4"
,
"name"
:
"总统贸易与制造高级顾问"
,
"depth"
:
1
},
{
"id"
:
"2-5"
,
"name"
:
"财政部"
,
"depth"
:
1
},
{
"id"
:
"2-6"
,
"name"
:
"美国地质调查局"
,
"depth"
:
1
},
{
"id"
:
"2-7"
,
"name"
:
"能源部"
,
"depth"
:
1
},
{
"id"
:
"2-8"
,
"name"
:
"国防部"
,
"depth"
:
1
},
{
"id"
:
"3-1"
,
"name"
:
"根据《1962年贸易扩展法》第232条,启动调查以确定进口加工关键矿物及其衍生产品是否威胁损害美国国家安全。"
,
"depth"
:
2
},
{
"id"
:
"3-2"
,
"name"
:
"明确关键矿物、稀土元素、加工关键矿物及衍生产品的定义,以统一联邦机构在供应链管理、贸易政策和产业支持中的标准和执行依据。"
,
"depth"
:
2
},
{
"id"
:
"3-3"
,
"name"
:
"商务部应根据19 U.S.C. 1862(d)所列因素,调查进口加工关键矿物及其衍生物对国家安全的影响,包括识别进口来源、分析外国市场操纵行为、评估全球供应链风险、分析美国本土加工能力等。"
,
"depth"
:
2
},
{
"id"
:
"3-4"
,
"name"
:
"商务部应在90天内向财政部、国防部、美国贸易代表、总统经济政策助理和总统贸易与制造高级顾问提交中期报告草案供内部审查和评论。"
,
"depth"
:
2
},
{
"id"
:
"3-5"
,
"name"
:
"相关官员应在收到中期报告草案后15天内向商务部提供评论意见。"
,
"depth"
:
2
},
{
"id"
:
"3-6"
,
"name"
:
"商务部在考虑是否建议采取行动时,应评估征收关税、其他进口限制、规避防范措施、激励国内生产与回收的政策,以及依据《国际紧急经济权力法》可能采取的其他措施。"
,
"depth"
:
2
}
],
"links"
:
[
{
"source"
:
"1-1"
,
"target"
:
"2-1"
,
"value"
:
10
},
{
"source"
:
"1-1"
,
"target"
:
"2-2"
,
"value"
:
10
},
{
"source"
:
"1-1"
,
"target"
:
"2-3"
,
"value"
:
10
},
{
"source"
:
"1-1"
,
"target"
:
"2-4"
,
"value"
:
10
},
{
"source"
:
"1-1"
,
"target"
:
"2-5"
,
"value"
:
10
},
{
"source"
:
"1-1"
,
"target"
:
"2-6"
,
"value"
:
10
},
{
"source"
:
"1-1"
,
"target"
:
"2-7"
,
"value"
:
10
},
{
"source"
:
"1-1"
,
"target"
:
"2-8"
,
"value"
:
10
},
{
"source"
:
"2-1"
,
"target"
:
"3-1"
,
"value"
:
10
},
{
"source"
:
"2-1"
,
"target"
:
"3-2"
,
"value"
:
10
},
{
"source"
:
"2-6"
,
"target"
:
"3-2"
,
"value"
:
10
},
{
"source"
:
"2-7"
,
"target"
:
"3-2"
,
"value"
:
10
},
{
"source"
:
"2-1"
,
"target"
:
"3-3"
,
"value"
:
10
},
{
"source"
:
"2-1"
,
"target"
:
"3-4"
,
"value"
:
10
},
{
"source"
:
"2-2"
,
"target"
:
"3-5"
,
"value"
:
10
},
{
"source"
:
"2-3"
,
"target"
:
"3-5"
,
"value"
:
10
},
{
"source"
:
"2-4"
,
"target"
:
"3-5"
,
"value"
:
10
},
{
"source"
:
"2-5"
,
"target"
:
"3-5"
,
"value"
:
10
},
{
"source"
:
"2-8"
,
"target"
:
"3-5"
,
"value"
:
10
},
{
"source"
:
"2-1"
,
"target"
:
"3-6"
,
"value"
:
10
}
]
}
},
"source_section_num"
:
[
"1"
,
"2"
,
"3"
]
},
{
"领域名称"
:
"新材料"
,
"核心条款内容"
:
[
"关键矿物包括美国地质调查局根据2020年能源法发布的关键矿物清单中所列矿物,以及铀"
,
"稀土元素指能源部2020年4月报告中确定的17种元素,以及美国地质调查局或能源部后续官方报告中认定为稀土元素的任何其他元素"
,
"加工关键矿物指从矿石开采后经过转化为氧化物浓缩物、分离为氧化物、并转化为金属、金属粉末或母合金的所有加工活动"
,
"衍生产品包括所有将加工关键矿物作为投入品的货物,包括半成品(如半导体晶圆、阳极、阴极)和最终产品(如永磁体、电机、电动汽车、电池、智能手机、微处理器、雷达系统、风力涡轮机及其组件、先进光学设备)"
,
"美国商业和国防制造基地严重依赖外国来源的加工关键矿物及其衍生产品"
,
"加工关键矿物及其衍生产品是经济安全和韧性的基础,支撑关键产业、推动技术创新并支持现代美国经济的关键基础设施"
,
"加工关键矿物及其衍生产品是国家安全的基础,构成军事基础设施、能源基础设施和先进防御系统与技术的核心组成部分"
,
"美国对加工关键矿物进口的依赖可能对经济安全、国防准备、价格稳定和经济繁荣构成严重国家安全风险"
,
"全球供应链易受地缘政治紧张、战争、自然灾害、大流行病和贸易冲突的干扰"
,
"主要外国加工关键矿物生产国存在广泛的价格操纵、产能过剩、任意出口限制及利用供应链主导地位扭曲全球市场以获取地缘经济杠杆的行为"
,
"美国必须确保对可负担、有韧性、可持续的加工关键矿物供应的稳定获取,以制造衍生产品"
,
"建立有韧性和可持续的衍生产品制造基础对于创造加工关键矿物的稳定需求至关重要"
,
"过度依赖少数地理区域加剧了地缘政治不稳定和区域中断带来的风险"
,
"商务部长应根据第232条启动调查,以评估加工关键矿物及其衍生产品进口对国家安全的影响"
,
"调查需评估19 U.S.C. 1862(d)所列因素,包括国内国防生产能力和外国竞争对国内产业经济福利的影响"
,
"调查需分析美国所有加工关键矿物及衍生产品进口的来源国占比、体积、具体风险及高风险国家"
,
"调查需分析出口至美国的加工关键矿物生产国所采用的掠夺性经济、定价和市场操纵策略及其对国内投资、美国生产可行性及衍生产品市场价格的扭曲效应"
,
"调查需评估美国国内加工关键矿物及其衍生产品的当前和潜在能力"
,
"商务部长应在调查启动后180天内向总统提交最终报告和建议"
,
"在考虑是否建议采取行动时,应评估征收关税、其他进口限制、规避防范措施、激励国内生产加工与回收的政策,以及依据《国际紧急经济权力法》可能采取的其他措施"
],
"领域举措"
:
{
"type"
:
"思维导图"
,
"name"
:
"新材料领域举措一览"
,
"data"
:
{
"node"
:
[
{
"id"
:
"1-1"
,
"name"
:
"新材料领域举措"
,
"depth"
:
0
},
{
"id"
:
"2-1"
,
"name"
:
"商务部"
,
"depth"
:
1
},
{
"id"
:
"2-2"
,
"name"
:
"白宫经济政策助理"
,
"depth"
:
1
},
{
"id"
:
"2-3"
,
"name"
:
"美国贸易代表办公室"
,
"depth"
:
1
},
{
"id"
:
"2-4"
,
"name"
:
"总统贸易与制造高级顾问"
,
"depth"
:
1
},
{
"id"
:
"2-5"
,
"name"
:
"财政部"
,
"depth"
:
1
},
{
"id"
:
"2-6"
,
"name"
:
"美国地质调查局"
,
"depth"
:
1
},
{
"id"
:
"2-7"
,
"name"
:
"能源部"
,
"depth"
:
1
},
{
"id"
:
"2-8"
,
"name"
:
"国防部"
,
"depth"
:
1
},
{
"id"
:
"3-1"
,
"name"
:
"根据《1962年贸易扩展法》第232条,启动调查以确定进口加工关键矿物及其衍生产品是否威胁损害美国国家安全。"
,
"depth"
:
2
},
{
"id"
:
"3-2"
,
"name"
:
"明确关键矿物、稀土元素、加工关键矿物及衍生产品的定义,以统一联邦机构在供应链管理、贸易政策和产业支持中的标准和执行依据。"
,
"depth"
:
2
},
{
"id"
:
"3-3"
,
"name"
:
"商务部应根据19 U.S.C. 1862(d)所列因素,调查进口加工关键矿物及其衍生物对国家安全的影响,包括识别进口来源、分析外国市场操纵行为、评估全球供应链风险、分析美国本土加工能力等。"
,
"depth"
:
2
},
{
"id"
:
"3-4"
,
"name"
:
"商务部应在90天内向财政部、国防部、美国贸易代表、总统经济政策助理和总统贸易与制造高级顾问提交中期报告草案供内部审查和评论。"
,
"depth"
:
2
},
{
"id"
:
"3-5"
,
"name"
:
"相关官员应在收到中期报告草案后15天内向商务部提供评论意见。"
,
"depth"
:
2
},
{
"id"
:
"3-6"
,
"name"
:
"商务部在考虑是否建议采取行动时,应评估征收关税、其他进口限制、规避防范措施、激励国内生产与回收的政策,以及依据《国际紧急经济权力法》可能采取的其他措施。"
,
"depth"
:
2
}
],
"links"
:
[
{
"source"
:
"1-1"
,
"target"
:
"2-1"
,
"value"
:
10
},
{
"source"
:
"1-1"
,
"target"
:
"2-2"
,
"value"
:
10
},
{
"source"
:
"1-1"
,
"target"
:
"2-3"
,
"value"
:
10
},
{
"source"
:
"1-1"
,
"target"
:
"2-4"
,
"value"
:
10
},
{
"source"
:
"1-1"
,
"target"
:
"2-5"
,
"value"
:
10
},
{
"source"
:
"1-1"
,
"target"
:
"2-6"
,
"value"
:
10
},
{
"source"
:
"1-1"
,
"target"
:
"2-7"
,
"value"
:
10
},
{
"source"
:
"1-1"
,
"target"
:
"2-8"
,
"value"
:
10
},
{
"source"
:
"2-1"
,
"target"
:
"3-1"
,
"value"
:
10
},
{
"source"
:
"2-1"
,
"target"
:
"3-2"
,
"value"
:
10
},
{
"source"
:
"2-6"
,
"target"
:
"3-2"
,
"value"
:
10
},
{
"source"
:
"2-7"
,
"target"
:
"3-2"
,
"value"
:
10
},
{
"source"
:
"2-1"
,
"target"
:
"3-3"
,
"value"
:
10
},
{
"source"
:
"2-1"
,
"target"
:
"3-4"
,
"value"
:
10
},
{
"source"
:
"2-2"
,
"target"
:
"3-5"
,
"value"
:
10
},
{
"source"
:
"2-3"
,
"target"
:
"3-5"
,
"value"
:
10
},
{
"source"
:
"2-4"
,
"target"
:
"3-5"
,
"value"
:
10
},
{
"source"
:
"2-5"
,
"target"
:
"3-5"
,
"value"
:
10
},
{
"source"
:
"2-8"
,
"target"
:
"3-5"
,
"value"
:
10
},
{
"source"
:
"2-1"
,
"target"
:
"3-6"
,
"value"
:
10
}
]
}
},
"source_section_num"
:
[
"1"
,
"2"
,
"3"
]
},
{
"领域名称"
:
"新能源"
,
"核心条款内容"
:
[
"关键矿物包括美国地质调查局根据2020年能源法第7002(c)条发布的《关键矿物清单》中所列矿物,以及铀"
,
"稀土元素包括能源部在2020年4月发布的《关键材料:稀土供应链》中认定的17种元素,以及美国地质调查局或能源部后续官方报告中新增的元素"
,
"加工后的关键矿物指从矿石开采后至转化为金属、金属粉末或母合金所经历的全部加工活动,起始于矿石转化为氧化物浓缩物、分离为氧化物并转化为金属、金属粉末和母合金的阶段"
,
"衍生产品包括所有将加工后的关键矿物作为投入品的货物,包括半成品(如半导体晶圆、阳极、阴极)和最终产品(如永磁体、电机、电动汽车、电池、智能手机、微处理器、雷达系统、风力涡轮机及其组件、先进光学设备)"
,
"商务部长应依据第232条启动调查,评估进口加工后的关键矿物及其衍生产品对国家安全的影响"
,
"在开展第232条调查时,商务部长应评估《美国法典》第19编第1862(d)条所列因素,包括国内生产对国防的影响及外国竞争对国内产业经济福利的影响"
,
"在第232条调查中,需评估美国进口的所有加工后关键矿物及其衍生产品的来源国占比、数量、具体风险类型及被认定为重大风险的国家"
,
"在第232条调查中,需分析出口至美国的国家在关键矿物加工领域所采用的掠夺性经济、定价和市场操纵策略及其对国内投资、生产可行性及衍生产品市场价格的扭曲效应"
,
"在第232条调查中,需分析美国及全球衍生产品制造商对加工后关键矿物的需求量,并评估其需求是否源自被认定为高风险的国家"
,
"在第232条调查中,需审查和评估全球加工后关键矿物及其衍生产品的供应链风险"
,
"在第232条调查中,需分析美国当前及潜在的加工关键矿物及其衍生产品的能力"
,
"在第232条调查中,需统计美国进口所有加工后关键矿物及其衍生产品的总价值及按出口国划分的金额"
,
"商务部长应在本命令发布后90天内提交中期报告草案供财政部长、国防部长、美国贸易代表、总统经济政策助理及总统贸易与制造事务高级顾问内部审阅和评论"
,
"在中期报告草案提交后15天内,相关官员须向商务部长提供评论意见"
,
"商务部长应在调查启动后180天内向总统提交最终报告和建议"
,
"在依据第232条提出建议时,商务部长应考虑征收关税及其他进口限制措施及其适当水平"
,
"在依据第232条提出建议时,商务部长应考虑实施保障措施以防止规避行为及削弱第232条措施的效果"
,
"在依据第232条提出建议时,商务部长应考虑激励国内生产、加工和回收的政策"
,
"在依据第232条提出建议时,商务部长应考虑根据《国际紧急经济权力法》采取其他适当措施以缓解美国国家安全风险"
,
"加工后的关键矿物的定义涵盖从氧化物浓缩物开始的转化过程,包括分离为氧化物、转化为金属、金属粉末和母合金"
],
"领域举措"
:
{
"type"
:
"思维导图"
,
"name"
:
"新能源领域举措一览"
,
"data"
:
{
"node"
:
[
{
"id"
:
"1-1"
,
"name"
:
"新能源领域举措"
,
"depth"
:
0
},
{
"id"
:
"2-1"
,
"name"
:
"商务部"
,
"depth"
:
1
},
{
"id"
:
"2-2"
,
"name"
:
"白宫经济政策助理"
,
"depth"
:
1
},
{
"id"
:
"2-3"
,
"name"
:
"美国贸易代表办公室"
,
"depth"
:
1
},
{
"id"
:
"2-4"
,
"name"
:
"总统贸易与制造高级顾问"
,
"depth"
:
1
},
{
"id"
:
"2-5"
,
"name"
:
"财政部"
,
"depth"
:
1
},
{
"id"
:
"2-6"
,
"name"
:
"美国地质调查局"
,
"depth"
:
1
},
{
"id"
:
"2-7"
,
"name"
:
"能源部"
,
"depth"
:
1
},
{
"id"
:
"2-8"
,
"name"
:
"国防部"
,
"depth"
:
1
},
{
"id"
:
"3-1"
,
"name"
:
"明确关键矿物、稀土元素、加工关键矿物及衍生产品的定义,以统一联邦机构在供应链管理、贸易政策和产业支持中的标准和执行依据。"
,
"depth"
:
2
},
{
"id"
:
"3-2"
,
"name"
:
"商务部应根据19 U.S.C. 1862(d)所列因素,调查进口加工关键矿物及其衍生物对国家安全的影响,包括识别进口来源、分析外国市场操纵行为、评估全球供应链风险、分析美国本土加工能力等。"
,
"depth"
:
2
},
{
"id"
:
"3-3"
,
"name"
:
"商务部应在90天内向财政部、国防部、美国贸易代表、总统经济政策助理和总统贸易与制造高级顾问提交中期报告草案供内部审查和评论。"
,
"depth"
:
2
},
{
"id"
:
"3-4"
,
"name"
:
"相关官员应在收到中期报告草案后15天内向商务部提供评论意见。"
,
"depth"
:
2
},
{
"id"
:
"3-5"
,
"name"
:
"商务部在考虑是否建议采取行动时,应评估征收关税、其他进口限制、规避防范措施、激励国内生产与回收的政策,以及依据《国际紧急经济权力法》可能采取的其他措施。"
,
"depth"
:
2
}
],
"links"
:
[
{
"source"
:
"1-1"
,
"target"
:
"2-1"
,
"value"
:
10
},
{
"source"
:
"1-1"
,
"target"
:
"2-2"
,
"value"
:
10
},
{
"source"
:
"1-1"
,
"target"
:
"2-3"
,
"value"
:
10
},
{
"source"
:
"1-1"
,
"target"
:
"2-4"
,
"value"
:
10
},
{
"source"
:
"1-1"
,
"target"
:
"2-5"
,
"value"
:
10
},
{
"source"
:
"1-1"
,
"target"
:
"2-6"
,
"value"
:
10
},
{
"source"
:
"1-1"
,
"target"
:
"2-7"
,
"value"
:
10
},
{
"source"
:
"1-1"
,
"target"
:
"2-8"
,
"value"
:
10
},
{
"source"
:
"2-1"
,
"target"
:
"3-1"
,
"value"
:
10
},
{
"source"
:
"2-6"
,
"target"
:
"3-1"
,
"value"
:
10
},
{
"source"
:
"2-7"
,
"target"
:
"3-1"
,
"value"
:
10
},
{
"source"
:
"2-1"
,
"target"
:
"3-2"
,
"value"
:
10
},
{
"source"
:
"2-1"
,
"target"
:
"3-3"
,
"value"
:
10
},
{
"source"
:
"2-2"
,
"target"
:
"3-4"
,
"value"
:
10
},
{
"source"
:
"2-3"
,
"target"
:
"3-4"
,
"value"
:
10
},
{
"source"
:
"2-4"
,
"target"
:
"3-4"
,
"value"
:
10
},
{
"source"
:
"2-5"
,
"target"
:
"3-4"
,
"value"
:
10
},
{
"source"
:
"2-8"
,
"target"
:
"3-4"
,
"value"
:
10
},
{
"source"
:
"2-1"
,
"target"
:
"3-5"
,
"value"
:
10
}
]
}
},
"source_section_num"
:
[
"2"
,
"3"
]
}
]
}
},
"附录"
:
{
"政令条款内容"
:
[
{
"section_num"
:
"1"
,
"section_text"
:
"相关风险源于多种因素。首先,全球供应链容易受到地缘政治紧张局势、战争、自然灾害、大流行病和贸易冲突的干扰。其次,全球主要的加工关键矿物外国生产商普遍存在价格操纵、产能过剩、任意出口限制等行为,并利用其在供应链中的主导地位扭曲全球市场,从而对依赖加工关键矿物制造对其经济和国家安全及国防至关重要的衍生产品的美国及其他竞争对手获取地缘政治和经济杠杆。因此,美国对来自外国来源的加工关键矿物的进口依赖,可能对美国经济和国防准备构成严重国家安全风险。第三,美国对加工关键矿物的进口依赖所引发的风险,还延伸至对美国经济、经济安全和国家安全至关重要的衍生产品。为了制造衍生产品,美国必须能够获得价格合理、具有韧性且可持续的加工关键矿物供应。同时,建立一个具有韧性和可持续性的衍生产品制造基础,对于创造加工关键矿物的稳定需求基础至关重要。二者必须并存,以确保经济稳定与国家安全。最后,过度依赖少数地理区域会加剧地缘政治不稳定和区域中断所带来的风险。鉴于上述风险与现实,有必要依据《法案》第232条(第232条)开展调查,以确定加工关键矿物及其衍生产品的进口是否威胁损害美国的国家安全。"
},
{
"section_num"
:
"2"
,
"section_text"
:
"定义。在本命令中:(a)“关键矿物”是指美国地质调查局(USGS)根据《2020年能源法》第7002(c)条(30 U.S.C. 1606)在87 FR 10381中发布的“关键矿物清单”所列的矿物,或任何后续此类清单。术语“关键矿物”也包括铀。(b)“稀土元素”是指美国能源部(DOE)在2020年4月发布的题为《关键材料:稀土供应链》的出版物中确定的17种稀土元素。该术语还包括美国地质调查局或美国能源部在任何后续官方报告或出版物中确定应视为稀土元素的任何其他元素。(c)“加工后的关键矿物”是指在从矿山开采出关键矿物矿石后,直至其转化为金属、金属粉末或母合金过程中所经历的活动。这些活动具体始于矿石转化为氧化物浓缩物、分离为氧化物,并转化为金属、金属粉末和母合金的阶段。(d)“衍生产品”包括所有将加工后的关键矿物作为投入品的货物。这些货物包括半成品(如半导体晶圆、阳和阴)以及最终产品(如永磁体、电机、电动汽车、电池、智能手机、微处理器、雷达系统、风力涡轮机及其组件、先进光学器件)。"
},
{
"section_num"
:
"3"
,
"section_text"
:
"第232条调查。(a) 商务部长应根据第232条启动一项调查,以确定进口的加工关键矿物及其衍生产品的国家安全影响。(b) 在进行本款(a)项所述的调查时,商务部长应评估《美国法典》第19卷第1862(d)条所列因素,即“国内国防生产;外国竞争对国内产业经济福利的影响”,以及其他相关因素,包括:(i) 识别美国进口的所有加工关键矿物及含有此类加工关键矿物的衍生产品;(ii) 各国在加工关键矿物进口及衍生产品进口中的占比和数量,各来源国可能关联的具体风险类型,以及被认定为具有重大风险的来源国;(iii) 分析向美国出口加工关键矿物的国家所采用的掠夺性经济、定价和市场操纵策略与做法所造成的扭曲效应,包括对国内投资和美国生产的可行性的影响,以及评估此类策略和做法如何使这些国家维持其对关键矿物加工行业的控制并扭曲美国衍生产品的市场价格;(iv) 分析美国及全球衍生产品制造商对加工关键矿物的需求,包括评估此类制造商对加工关键矿物的需求中有多少源自本款(b)(ii)和(b)(iii)项所确定的国家;(v) 对加工关键矿物及其衍生产品的全球供应链进行审查与风险评估;(vi) 分析美国当前及潜在的加工关键矿物及其衍生产品的能力;以及(vii) 按总价值和出口国统计的当前所有加工关键矿物及衍生产品进口的美元价值。(c) 商务部长应依照适用法律,迅开展上述调查:"
},
{
"section_num"
:
"4"
,
"section_text"
:
"一般规定。(a) 本命令的任何内容均不得被解释为损害或以其他方式影响:
\
n (i) 法律授予各行政部门或机构及其负责人之权力;或
\
n
\
n (ii) 管理和预算办公室主任在预算、行政或立法提案方面的职能。
\
n
\
n(b) 本命令的实施应符合适用法律,并受可用拨款的限制。
\
n
\
n(c) 本命令无意且并未创建任何可由任何一方对美国、其部门、机构或实体、其官员、雇员或代理人,或任何其他人,在法律或衡平法上强制执行的权利或利益,无论是实体性还是程序性的。白宫,2025年4月15日。[联邦登记号2025-06836,于2025年4月17日8:45am归档;公布日期:2025年4月18日]"
}
]
}
}
const
mindMapData
=
{
id
:
'root'
,
id
:
'root'
,
label
:
'名称'
,
label
:
'名称'
,
children
:
[
children
:
[
]
]
}
}
// 核心:绝对不重复
console
.
log
(
store
.
resultWriteData
.
政令深度分析
.
条款分析
.
科技条款内容
[
0
].
领域举措
,
890
)
let
idCounter
=
10
;
// 从1000开始自增,纯数字
let
uniqueId
=
1
;
// 自增ID:永远不重复、长度最短、纯数字、最安全
function
getUniqueId
()
{
return
idCounter
++
;
}
const
list
=
data
.
政令深度分析
.
条款分析
.
科技条款内容
;
const
treeData
=
list
.
map
(
item
=>
{
const
raw
=
item
.
领域举措
.
data
;
mindMapData
.
label
=
item
.
领域举措
.
name
// console.log(item.领域举措.name)
return
convertMindMap
(
raw
);
});
function
convertMindMap
(
rawData
)
{
function
convertMindMap
(
rawData
)
{
const
nodeMap
=
{};
uniqueId
=
1
;
// 每次重置
const
tree
=
buildTreeRecursive
(
rawData
.
node
,
rawData
.
links
);
// 生成 自增ID(纯数字 4位起,永不重复)
return
tree
[
0
];
// 返回单个根节点
rawData
.
node
.
forEach
(
n
=>
{
nodeMap
[
n
.
id
]
=
{
id
:
getUniqueId
()
+
'-'
+
n
.
id
,
// 👈 纯数字 ID
label
:
n
.
name
,
children
:
[]
};
});
// 建立父子关系
rawData
.
links
.
forEach
(
link
=>
{
const
p
=
nodeMap
[
link
.
source
];
const
c
=
nodeMap
[
link
.
target
];
if
(
p
&&
c
)
p
.
children
.
push
(
c
);
});
const
root
=
rawData
.
node
.
find
(
n
=>
n
.
depth
===
0
);
return
nodeMap
[
root
.
id
];
}
}
const
raw
=
store
.
resultWriteData
.
政令深度分析
.
条款分析
.
科技条款内容
[
0
].
领域举措
.
data
;
mindMapData
.
children
=
treeData
const
treeData
=
convertMindMap
(
raw
);
console
.
log
(
treeData
,
6
);
// [ 制造树, 材料树, 能源树 ]
console
.
log
(
mindMapData
,
7
)
// 全局唯一自增计数器(最稳、最短、永不重复)
// 递归构建树 + 自动生成全局唯一数字ID
function
buildTreeRecursive
(
nodes
,
links
,
parentId
=
null
)
{
const
tree
=
[];
// 找到当前父节点的所有子节点
const
childrenNodes
=
nodes
.
filter
(
node
=>
{
if
(
parentId
===
null
)
{
return
node
.
depth
===
0
;
}
return
links
.
some
(
link
=>
link
.
source
===
parentId
&&
link
.
target
===
node
.
id
);
});
// 遍历子节点,递归生成
for
(
const
node
of
childrenNodes
)
{
const
currentNode
=
{
id
:
`
${
uniqueId
++
}
_`
,
// 🔥 纯数字自增,绝对唯一!
label
:
node
.
name
,
children
:
buildTreeRecursive
(
nodes
,
links
,
node
.
id
)
};
tree
.
push
(
currentNode
);
}
return
tree
;
}
treeData
.
id
=
'root'
,
console
.
log
(
treeData
)
mindMapData
=
treeData
...
@@ -819,35 +75,7 @@ console.log( mindMapData,7)
...
@@ -819,35 +75,7 @@ console.log( mindMapData,7)
const
containerRef
=
ref
(
null
)
const
containerRef
=
ref
(
null
)
// 你的 4 层数据(正常支持)
// const mindMapData = {
// id: 'root',
// label: '人工智能领域举措',
// children: [
// {
// id: 'dept1',
// label: '商务部',
// children: [
// {
// id: 'task1',
// label: '在本命令发布之日起90天内,商务部长应与国务卿和白宫科学技术政策办公室(OSTP)主任协商,建立并实施“美国人工智能出口计划”,支持全栈人工智能出口包开发部署。',
// children: [
// { id: 'task11', label: '在本命令发布之日起90天内,商务部长应与国务卿和白宫科学技术政策办公室(OSTP)主任协商,建立并实施“美国人工智能出口计划”,支持全栈人工智能出口包开发部署。' },
// { id: 'task22', label: '商务部长应向产业界主导联合体发布公开征集提案,需包含全栈AI技术包、目标出口国家、数据中心建设运营、所需联邦激励支持机制。' }
// ]
// },
// { id: 'task2', label: '商务部长应向产业界主导联合体发布公开征集提案,需包含全栈AI技术包、目标出口国家、数据中心建设运营、所需联邦激励支持机制。' }
// ]
// },
// {
// id: 'dept2',
// label: '国务院',
// children: [
// { id: 'task3', label: '配合商务部推进AI出口部署,协调外交资源与监管环境。' }
// ]
// }
// ]
// }
...
@@ -881,6 +109,8 @@ function splitTextToLines(text, maxWidth, fontSize) {
...
@@ -881,6 +109,8 @@ function splitTextToLines(text, maxWidth, fontSize) {
}
}
onMounted
(()
=>
{
onMounted
(()
=>
{
if
(
graph
)
graph
.
destroy
()
const
el
=
containerRef
.
value
const
el
=
containerRef
.
value
if
(
!
el
)
return
if
(
!
el
)
return
...
@@ -932,7 +162,7 @@ onMounted(() => {
...
@@ -932,7 +162,7 @@ onMounted(() => {
getAnchorPoints
:
()
=>
[[
0
,
0.5
],
[
1
,
0.5
]]
getAnchorPoints
:
()
=>
[[
0
,
0.5
],
[
1
,
0.5
]]
},
'single-node'
)
},
'single-node'
)
// ✅ 恢复正常 TreeGraph,图表不会消失
graph
=
new
G6
.
TreeGraph
({
graph
=
new
G6
.
TreeGraph
({
container
:
el
,
container
:
el
,
width
:
el
.
offsetWidth
,
width
:
el
.
offsetWidth
,
...
@@ -945,7 +175,7 @@ onMounted(() => {
...
@@ -945,7 +175,7 @@ onMounted(() => {
type
:
'cubic-horizontal'
,
type
:
'cubic-horizontal'
,
style
:
{
stroke
:
'rgba(5, 95, 194, 0.4)'
,
lineWidth
:
1
}
style
:
{
stroke
:
'rgba(5, 95, 194, 0.4)'
,
lineWidth
:
1
}
},
},
// ✅ 核心:固定节点宽度,强制所有层级间距相等
layout
:
{
layout
:
{
type
:
'compactBox'
,
type
:
'compactBox'
,
direction
:
'LR'
,
direction
:
'LR'
,
...
...
src/views/writtingAsstaint/components/WrittingNavr.vue
deleted
100644 → 0
浏览文件 @
581d2dec
src/views/writtingAsstaint/index.vue
浏览文件 @
58dd1d06
...
@@ -33,24 +33,25 @@
...
@@ -33,24 +33,25 @@
<div
class=
"writting-main"
>
<div
class=
"writting-main"
>
<!-- 左侧子组件:绑定ref -->
<!-- 左侧子组件:绑定ref -->
<!--
<writtingleftBox
ref=
"leftBoxRef"
@
generate=
"handleGenerate"
/>
-->
<!--
<writtingleftBox
ref=
"leftBoxRef"
@
generate=
"handleGenerate"
/>
-->
<
!--
<writtingleftBox
ref=
"leftBoxRef"
/>
--
>
<
WrittingLeftBox
ref=
"leftBoxRef"
/
>
<!-- 翻译 -->
<!-- 翻译 -->
<
!--
<WrittingTranslate
v-if=
"store.isShowClauseTranslation&&store.headerTabType=='translate'"
></WrittingTranslate>
--
>
<
WrittingTranslate
v-if=
"store.isShowClauseTranslation&&store.headerTabType=='translate'"
></WrittingTranslate
>
<!-- 思维导图
v-else-if="store.isShowClauseTranslation&&store.headerTabType=='mind'"
-->
<!-- 思维导图
"
-->
<WrittingMind
></WrittingMind>
<WrittingMind
v-else-if=
"store.isShowClauseTranslation&&store.headerTabType=='mind' "
></WrittingMind>
<!-- 写报 -->
<!-- 写报 -->
<!--
<WrittingMessage
v-else-if=
"store.isShowClauseTranslation&&store.headerTabType=='message'"
></WrittingMessage>
-->
<WrittingMessage
v-else-if=
"store.isShowClauseTranslation&&store.headerTabType=='message'"
></WrittingMessage>
<!-- 无数据时显示占位图 -->
<!-- 无数据时显示占位图 -->
<
!--
<
div
v-else
class=
"main-placeholder"
>
<div
v-else
class=
"main-placeholder"
>
<img
src=
"./assets/images/container-image.png"
alt=
"无数据占位图"
/>
<img
src=
"./assets/images/container-image.png"
alt=
"无数据占位图"
/>
<div
class=
"placeholder-text"
>
<div
class=
"placeholder-text"
>
<div
v-if=
"store.isGenerating"
>
智能体写报任务执行中...
</div>
<div
v-if=
"store.isGenerating"
>
智能体写报任务执行中...
</div>
<div
v-else
>
上传文件后点击“生成报文”开始写报...
</div>
<div
v-else
>
上传文件后点击“生成报文”开始写报...
</div>
</div>
</div>
</div>
-->
</div>
<!-- 右侧子组件:绑定ref -->
<!-- 右侧子组件:绑定ref -->
<!--
<writtingMainBox
v-show=
"!!store.reportContent"
ref=
"mainBoxRef"
:report-content=
"store.reportContent"
/>
-->
<!--
<writtingMainBox
v-show=
"!!store.reportContent"
ref=
"mainBoxRef"
:report-content=
"store.reportContent"
/>
-->
...
@@ -66,7 +67,7 @@ import { onMounted, onUnmounted, ref, nextTick } from "vue";
...
@@ -66,7 +67,7 @@ import { onMounted, onUnmounted, ref, nextTick } from "vue";
import
{
useRoute
}
from
"vue-router"
;
import
{
useRoute
}
from
"vue-router"
;
import
{
ElMessage
}
from
"element-plus"
;
import
{
ElMessage
}
from
"element-plus"
;
import
{
useWrittingAsstaintStore
}
from
"@/stores/writtingAsstaintStore"
;
import
{
useWrittingAsstaintStore
}
from
"@/stores/writtingAsstaintStore"
;
import
writtingl
eftBox
from
"./components/WrittingLeftBox.vue"
;
import
WrittingL
eftBox
from
"./components/WrittingLeftBox.vue"
;
import
WrittingHeader
from
"./components/WrittingHeader.vue"
;
//头
import
WrittingHeader
from
"./components/WrittingHeader.vue"
;
//头
import
WrittingBottom
from
"./components/WrittingBottom.vue"
;
//底部
import
WrittingBottom
from
"./components/WrittingBottom.vue"
;
//底部
...
@@ -105,11 +106,12 @@ const handleGenerate = async () => {
...
@@ -105,11 +106,12 @@ const handleGenerate = async () => {
};
};
const
handleWrite
=
async
()
=>
{
const
handleWrite
=
async
()
=>
{
try
{
try
{
console
.
log
(
1
)
// // 等待DOM更新(确保子组件DOM已挂载)
// // 等待DOM更新(确保子组件DOM已挂载)
store
.
tabList
[
2
].
active
=
true
//写报生成之后放开写报按钮
store
.
headerTabType
=
'translate'
await
nextTick
();
await
nextTick
();
await
store
.
generateWrite
()
await
store
.
generateWrite
()
console
.
log
(
2
)
}
catch
(
error
)
{
}
catch
(
error
)
{
ElMessage
.
error
(
error
.
message
);
ElMessage
.
error
(
error
.
message
);
console
.
error
(
"生成写报失败:"
,
error
);
console
.
error
(
"生成写报失败:"
,
error
);
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论