fix(投资): 清除十堰汇总表带出的非十堰残留 + 预安排汇总小计补计 + 导入弹窗可拖动

- 清除《湖北省十堰交通物流基础设施投资统计汇总表(月报)》按市州块带进库的非十堰项目 31 个(武汉27/黄石4)
及伪项目「合  计」(咸宁客运,13727万元);删前全量备份到 docs/投资/输出/清理残留_..._2026-09-20.tsv
- ReportExportService: investPlan 的市州小节/块合计/全省合计新增 addProjectsWithoutMonthly,
把「本期无月度数但有主档总投资」的项目补计进总投资列(武汉8月物流小计 0 -> 272476)
- DataImport.vue: 导入结果弹窗由 $alert 改为可拖动 el-dialog(内容区滚动、底部按钮固定、圆角),新增导出明细 CSV
- 用户已清理 7 月版十堰汇总表(108032->90112 字节)
4个文件已修改
2个文件已添加
291 ■■■■■ 已修改文件
docs/功能测试报告/功能测试报告_投资预安排汇总补计与导入弹窗_2026-09-20.md 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
docs/工作日结/工作日结_2026-09-20.md 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
docs/投资/输入/客运(客运站)/7月/十堰市2026年7月固定资产月报电子版投资表格.xlsx 补丁 | 查看 | 原始文档 | blame | 历史
docs/投资/输入/物流(物流园区)/7月/湖北省十堰交通物流基础设施投资统计汇总表(月报)(2026年7月).xls 补丁 | 查看 | 原始文档 | blame | 历史
docs/投资/输出/清理残留_十堰汇总表带出的非十堰项目_2026-09-20.tsv 81 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
traffic-audit-web/src/views/DataImport.vue 111 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
docs/¹¦ÄܲâÊÔ±¨¸æ/¹¦ÄܲâÊÔ±¨¸æ_Ͷ×ÊÔ¤°²ÅÅ»ã×ܲ¹¼ÆÓëµ¼È뵯´°_2026-09-20.md
New file
@@ -0,0 +1,52 @@
# åŠŸèƒ½æµ‹è¯•æŠ¥å‘Š_投资预安排汇总补计与导入弹窗_2026-09-20
## ä¸€ã€åŠŸèƒ½è¯´æ˜Ž
1. **清除残留数据**:删除《湖北省十堰交通物流基础设施投资统计汇总表(月报)》(5/7/8 æœˆç‰ˆï¼‰æŒ‰å¸‚州块带进库的**非十堰项目 31 ä¸ª**(武汉 27 + é»„石 4),
   ä»¥åŠè§£æžæ—¶æŠŠã€Œåˆè®¡ã€è¡Œè¯¯å»ºæˆé¡¹ç›®çš„**伪项目 1 ä¸ª**(咸宁市客运站场,13727 ä¸‡å…ƒï¼‰ã€‚删除前全量备份。
2. **预安排汇总表小计补计**:`investPlan`(生成_全省预安排计划进度情况汇总.xls)的**市州小节行 / å—合计行 / å…¨çœåˆè®¡è¡Œ**,
   åœ¨æŒ‰ `investment_monthly` ç´¯åŠ ä¹‹å¤–ï¼Œæ–°å¢žã€Œ**本期无月度数、但项目主档有总投资**」的项目,只补计「总投资」一列
   ï¼ˆå…¶ä½™ä¸‰åˆ—无主档数据源,留空)。
3. **导入结果弹窗改造**:数据导入页的导入结果/失败/不一致提示,由 Element `$alert` æ¢æˆè‡ªå®šä¹‰ `el-dialog`——
   æ ‡é¢˜æ å¯æ‹–动、内容区滚动(底部按钮固定可见)、圆角,并支持「导出明细」下载 CSV。
## äºŒã€æµ‹è¯•环境
- åŽç«¯ï¼š`mvn -q compile` é€šè¿‡ï¼›`start-dev.ps1` é‡å¯ï¼Œbackend.log `14:47:45 Started TrafficAuditApplication`、`Tomcat started on port(s): 8090`。
- å‰ç«¯ï¼šfrontend.log `14:47:45 DONE Compiled successfully in 4986ms`,App running at http://localhost:8080。
- æ•°æ®åº“:MySQL `127.0.0.1:3308` åº“ `traffic_audit`。
- éªŒè¯æŽ¥å£ï¼š`/api/report/ready`、`/api/report/export/{type}`(自签 JWT)。
## ä¸‰ã€ç”¨ä¾‹è¡¨
| ç¼–号 | ç”¨ä¾‹ | è¾“å…¥/操作 | é¢„期 | å®žé™… | ç»“论 |
| --- | --- | --- | --- | --- | --- |
| T01 | æ®‹ç•™é¡¹ç›®å‡ºåº“ | `investment_project` ç‰©æµå›­åŒºè®¡æ•° | 135 âˆ’ 31 = 104 | 104 | é€šè¿‡ |
| T02 | æ®‹ç•™æœˆåº¦æ•°å‡ºåº“ | è¢«åˆ  31 ä¸ªé¡¹ç›®çš„ `investment_monthly` | 0 | 0 | é€šè¿‡ |
| T03 | å¤‡ä»½å¯è¿½æº¯ | `docs/投资/输出/清理残留_十堰汇总表带出的非十堰项目_2026-09-20.tsv` | å« 31 ä¸ªé¡¹ç›® + 39 æ¡æœˆåº¦æ•° + 1 æ¡ä¼ªé¡¹ç›® | 77 è¡Œï¼ˆå«åˆ†èŠ‚æ ‡é¢˜/表头) | é€šè¿‡ |
| T04 | æ­¦æ±‰ç‰©æµæ®µè¡Œæ•° | å¯¼å‡º investPlan(2026-08 å½“月) | 33 â†’ 6 | 6(航发智慧物流园/中通/阳逻港铁水联运/极兔/华中化学品/迈睿达) | é€šè¿‡ |
| T05 | æ­¦æ±‰ç‰©æµå°è®¡ï¼ˆè¡¥è®¡æ–°é€»è¾‘) | åŒä¸Šï¼Œæ­¦æ±‰å°èŠ‚è¡Œ c8 | = 6 ä¸ªé¡¹ç›®æ€»æŠ•资 69876+38400+12200+65000+22000+65000 = 272476 | c8=272476,c9/c10/c23 ç©ºï¼ˆè¯¥å¸‚未报送 8 æœˆï¼‰ | é€šè¿‡ |
| T06 | é»„石物流小计 | åŒä¸Š | 729375.69 â†’ 614991.69(= è‡ªæŠ¥ 8 ä¸ªé¡¹ç›®ï¼‰ | 614991.69 | é€šè¿‡ |
| T07 | å—合计 = ä¸»æ¡£æ€»æŠ•资合计 | ç‰©æµå—合计行 c8 | `SUM(total_investment)=5889737.36` | 5889737.36 | é€šè¿‡ |
| T08 | å…¨çœåˆè®¡ | åˆè®¡è¡Œ c8 | å®¢è¿ 763632.2 + ç‰©æµ 5889737.36 = 6653369.56 | 6653369.56 | é€šè¿‡ |
| T09 | è¡¥è®¡ä¸å½±å“ç´¯è®¡å®ŒæˆæŠ•资 | åˆè®¡è¡Œ c23 | 744262.86 âˆ’ 10306.8(被删 31 ä¸ªé¡¹ç›® year_cum ä¹‹å’Œï¼‰= 733956.06 | 733956.06 | é€šè¿‡ |
| T10 | ä¼ªé¡¹ç›®å½±å“ | å’¸å®ï¼ˆå®¢è¿ï¼‰å°èŠ‚è¡Œ c8 | 27454 â†’ 13727 | 13727 | é€šè¿‡ |
| T11 | ç”Ÿæˆè¡¨æ€»è¡Œæ•° | å¯¼å‡ºæ–‡ä»¶è¡Œæ•° | 313 â†’ 281(删 31 + 1 è¡Œï¼‰ | 281 | é€šè¿‡ |
| T12 | å…¶å®ƒæŠ•资报表回归 | `/ready` + é€ä¸ªå¯¼å‡º | å…¨éƒ¨ ready、可导出 | rows:investPlan 136 / investBillion 136 / investCounty 136 / investFiveYearLogistics 136 / investPassengerDetail 39 / investLogisticsDetail 97;导出字节 162304 / 47104 / 55808 / 82944 / 29462 / 134144 | é€šè¿‡ |
| T13 | è´Ÿå‘:未知类型 | `types=foo` | ready=false,note=未知报表类型:foo | ä¸€è‡´ï¼ˆå…œåº•未削弱) | é€šè¿‡ |
| T14 | å¼¹çª—交互 | å‰ç«¯ä»£ç  + ç¼–译 | å¯æ‹–动 / å†…容滚动 / åº•部按钮固定 / å¯¼å‡º CSV | ä»£ç é™æ€æ ¸å¯¹é€šè¿‡ã€å‰ç«¯ç¼–译通过;**点击级验收未做**(需触发真实导入才会弹) | éƒ¨åˆ†é€šè¿‡ |
## å››ã€å‘现的问题与处置
1. **伪项目「合   计」**(id=229,咸宁市客运站场,13727 ä¸‡å…ƒï¼Œæ— æœˆåº¦æ•°ï¼‰ï¼šæ¥è‡ª 2026-09-16 15:07 çš„ 8 æœˆå®¢è¿å¯¼å…¥æ‰¹æ¬¡ã€‚
   è§£æžç«¯çš„「合计/小计」判定此后已修为去空白匹配,此条属旧批次遗留,本次一并清除(备份同一 TSV æ–‡ä»¶ï¼‰ã€‚
2. **8 æœˆç‰ˆåå °æ±‡æ€»è¡¨æœªæ¸…理**:用户已把《湖北省十堰…(2026å¹´7月).xls》里非十堰内容删掉(108032 â†’ 90112 å­—节,mtime 2026-09-20 14:34),
   ä½†**8 æœˆç‰ˆï¼ˆmtime 2026-08-20)里仍含武汉 27 + é»„石 4 æ®µ**。若再次导入该文件,删除的 31 ä¸ªé¡¹ç›®ä¼šé‡æ–°å»ºæ¡£ â†’ é‡å¯¼å‰éœ€åŒæ ·æ¸…理。
3. **根因**:这类「一份文件含全省各市州」的省汇总表被当作「市州单表」按块入库(申报单位写十堰、实际收全省)。
   ç¨‹åºä¾§å…œåº•方案(导入时识别多市州块并提示)待用户确认是否要做。
4. **补计口径**:只补「总投资」,不补自开始建设累计/本年计划/本月完成——这三列没有项目主档数据源,符合用户确认的口径。
## äº”、结论
除 T14 çš„点击级验收外全部通过:残留数据已清除并留档备份;预安排汇总表小计/合计口径已按用户确认调整;
其它投资报表(亿元/经济强县/十五五物流/两张明细表)回归正常。
docs/¹¤×÷ÈÕ½á/¹¤×÷ÈÕ½á_2026-09-20.md
@@ -41,6 +41,33 @@
     `yearMonthOf` æ”¯æŒè£¸æ—¥æœŸåºåˆ—ï¼›`repairCumulativeYoyFormulas()` ä¿ç•™ä½œæ¯ç‰ˆå…œåº•。
  3. å‰ç«¯ï¼š`ReportExport.vue` é¢„览补齐货运量/城市客运/中口径共 8 é¡¹åŒæ¯”映射,修正「当月货物周转量(万吨)」单位。
### 1.4 æ¸…除「十堰汇总表」带出的非十堰残留(用户要求)
- **背景**:用户核对 `D:\桌面\生成数据\生成_全省预安排计划进度情况汇总 (2).xls` å‘现武汉物流段多出 27 ä¸ªé¡¹ç›®ï¼ˆé«˜æ¡¥è´§è¿ç«™â€¦è¶Šæµ·åŽä¸­ä¾›åº”链总部基地,开工年 2006-2016)。
- **溯源**:这 27 ä¸ªï¼ˆ+黄石 4 ä¸ªï¼‰æ¥è‡ªã€Šæ¹–北省十堰交通物流基础设施投资统计汇总表(月报)》——文件名/填报单位是十堰,
  ä½†ä¸€ä¸ªé¡µç­¾é‡Œæ”¶äº†å…¨çœå„市州;2026-08-26 11:57 éšã€Œå¸‚州单表批量导入(物流(物流园区)/7月)」按市州块入库(batch 17/25)。
  äº¤å‰æ ¸å¯¹ï¼šè¿™ 31 ä¸ªé¡¹ç›®åç§°åœ¨å…¶å®ƒä»»ä½•市州源文件里都**查不到**,确认为该文件带出的残留。
- **导出为何会显示**:`investPlan` æ˜¯ã€Œæ¯ç‰ˆåŽŸä½æ›¿æ¢ + åŠ¨æ€æ’è¡Œã€â€”â€”æ¯ç‰ˆæ­¦æ±‰ç‰©æµåªé¢„ç•™ 7 è¡Œï¼Œåº“里多出的项目按「市州+类别」自动补插到小节末尾
  ï¼ˆ`ReportExportService.java` åŠ¨æ€æ’è¡Œæ®µï¼‰ã€‚æ‰€ä»¥åº“é‡Œæœ‰å¤šå°‘é¡¹ç›®ï¼Œç”Ÿæˆè¡¨å°±å‡ºå¤šå°‘è¡Œã€‚
- **处置**:全量备份到 `docs/投资/输出/清理残留_十堰汇总表带出的非十堰项目_2026-09-20.tsv`(31 ä¸ªé¡¹ç›® + 39 æ¡æœˆåº¦æ•°ï¼‰åŽåˆ é™¤ï¼›
  é¡ºå¸¦å‘现并清除解析「合计」行误建的伪项目(id=229 å’¸å®å¸‚客运站场「合   计」,13727 ä¸‡å…ƒï¼‰ã€‚
  ç»“果:物流园区项目 135 â†’ 104,2026-08 æœˆåº¦æ•° 167 â†’ 136,客运站场项目 49 â†’ 48。
### 1.5 é¢„安排汇总表:小计/合计补计「有总投资、无本期月度数」的项目(用户确认「可以」)
- åœºæ™¯ï¼šæ­¦æ±‰ 8 æœˆç‰©æµæ²¡æœ‰å•表报送(`docs/投资/输入/物流(物流园区)/8月` é‡Œæ²¡æœ‰æ­¦æ±‰æ–‡ä»¶ï¼‰ï¼Œ6 ä¸ªæ–°é¡¹ç›®åœ¨åº“里没有 2026-08 æœˆåº¦æ•°ï¼Œ
  åŽŸæ¥å°è®¡åªç´¯åŠ æœˆåº¦æ•°æ® â†’ æ­¦æ±‰ç‰©æµæ•´å—只显示项目行、小计空白。
- æ”¹åŠ¨ï¼š`ReportExportService.investPlan()` æ–°å¢ž `addProjectsWithoutMonthly(...)`,在**市州小节/块合计/全省合计**三处累加后,
  æŠŠã€Œæœ¬æœŸæ— æœˆåº¦è®°å½•但主档有总投资」的项目按类别/市州补进 **总投资** ä¸€åˆ—(其余列无主档数据源,保持空白)。
- æ•ˆæžœï¼šæ­¦æ±‰ç‰©æµå°è®¡ = 272476(6 ä¸ªé¡¹ç›®æ€»æŠ•资和);块合计/全省合计 = åº“内同类项目总投资之和(可逐项对 SQL æ ¸å¯¹ï¼‰ã€‚
### 1.6 å¯¼å…¥ç»“果弹窗改造(用户:弹窗太长、点不到确认、不能移动)
- åŽŸæ¥ç”¨çš„æ˜¯ Element `$alert`(MessageBox)承载导入结果 HTML,内容一长就把「确认」挤出屏幕,且不能拖动。
- æ”¹ä¸ºè‡ªå®šä¹‰ `el-dialog`:`v-dialog-drag` æ ‡é¢˜æ æ‹–动、`custom-class="import-result-dialog"`(全局样式,圆角 + å†…容区 `max-height` æ»šåЍ + åº•部按钮固定),
  å¹¶æ–°å¢žã€Œå¯¼å‡ºæ˜Žç»†ã€æŒ‰é’®ï¼ˆCSV,带 BOM,可直接 Excel æ‰“开),用于用户自行核对/修改不一致内容。
- è¦†ç›– 4 å¤„:批量导入结果、市州单表批量导入结果、单文件导入失败、投资与投资系统不一致清单。
## äºŒã€æµ‹è¯•结果摘要
《功能测试报告_投资明细表就绪与预览类型补齐_2026-09-20.md》:**7 æ¡ç”¨ä¾‹é€šè¿‡ï¼Œ1 æ¡æœªå®žæµ‹**(缺母版提示,未临时移动用户母版文件)。
@@ -67,6 +94,21 @@
| é¢„览接口 | 24 é¡¹æŒ‡æ ‡å« 8 é¡¹åŒæ¯”,1.03 ç§’ |
| å¯¼å‡ºè€—æ—¶ | 14 ç§’(母版读取+回填 6.5s、公式重算 4.1s、写盘传输 3.4s) |
《功能测试报告_投资预安排汇总补计与导入弹窗_2026-09-20.md》:**14 æ¡ç”¨ä¾‹é€šè¿‡ï¼ˆ1 æ¡ä¸ºé™æ€/编译级验证,点击级验收待用户实测)**。
| æ ¡éªŒé¡¹ | ç»“æžœ |
| --- | --- |
| æ®‹ç•™å‡ºåº“ | ç‰©æµé¡¹ç›® 135→104、月度数 167→136;备份 TSV 77 è¡Œ |
| ç”Ÿæˆè¡¨æ­¦æ±‰ç‰©æµæ®µ | 33 è¡Œ â†’ 6 è¡Œï¼ˆèˆªå‘/中通/阳逻港/极兔/华中化学品/迈睿达) |
| æ­¦æ±‰ç‰©æµå°è®¡ï¼ˆè¡¥è®¡ï¼‰ | c8=272476(6 ä¸ªé¡¹ç›®æ€»æŠ•资和),其余列空 |
| é»„石物流小计 | 729375.69 â†’ 614991.69 |
| å—合计/全省合计 | ç‰©æµ 5889737.36、客运 763632.2、全省 6653369.56,与 SQL ä¸€è‡´ |
| 1-8月累计(c23) | 744262.86 â†’ 733956.06,差额 = è¢«åˆ é¡¹ç›® year_cum ä¹‹å’Œï¼Œè¡¥è®¡æœªæ±¡æŸ“该列 |
| ä¼ªé¡¹ç›®æ¸…除 | å’¸å®å®¢è¿å°è®¡ 27454 â†’ 13727 |
| ç”Ÿæˆè¡¨è¡Œæ•° | 313 â†’ 281 |
| å…¶å®ƒæŠ•资报表回归 | investBillion/County/FiveYearLogistics å„ 136 è¡Œã€ä¸¤å¼ æ˜Žç»†è¡¨ 39/97 è¡Œï¼Œready=true,均可导出 |
| è´Ÿå‘ | `types=foo` â†’ ready=false,note「未知报表类型:foo」 |
## ä¸‰ã€é—留问题与待办
1. æ­¦æ±‰ç‰©æµé¡¹ç›®æ¸…单口径(已确认忽略)。
@@ -87,3 +129,8 @@
2. æŽ¨è¿› C/D ç»„与 B4。
3. ä¸Žç”¨æˆ·ç¡®è®¤æ˜¯å¦æŠŠ 09-18 å¤œé—´èµ·çš„æœ¬åœ°æäº¤ä¸€å¹¶æŽ¨é€åˆ°å…¬å¸ gitea(用户 09-19 æ›¾è¦æ±‚「今天先不推公司」)。
4. è¯„估汇总大表导出异步化(长任务进度条 / ç»“果缓存),并确认部署包母版同步方式。
9. **8 æœˆç‰ˆåå °æ±‡æ€»è¡¨æœªæ¸…理**:用户只清了 7 æœˆç‰ˆï¼ˆ108032→90112 å­—节),8 æœˆç‰ˆï¼ˆmtime 2026-08-20)仍含武汉 27 + é»„石 4 æ®µï¼›
   è‹¥é‡å¯¼ 8 æœˆç‰©æµï¼Œå·²åˆ é™¤çš„ 31 ä¸ªé¡¹ç›®ä¼šé‡æ–°å»ºæ¡£ â†’ é‡å¯¼å‰éœ€åŒæ ·æ¸…理(或由我代做,待用户确认)。
10. å¸‚州单表导入的**多市州块兜底提示**(识别一份文件含多个市州块并提示/跳过)待用户确认是否要做。
11. ç”Ÿæˆè¡¨æ­¦æ±‰ç‰©æµå°è®¡çŽ°åœ¨åªæœ‰ã€Œæ€»æŠ•èµ„ã€ï¼Œç¼º 8 æœˆçš„自开始累计/本年计划/月完成 â†’ éœ€æ­¦æ±‰ 8 æœˆç‰©æµå•表(或省厅口径)才能补齐。
docs/Ͷ×Ê/ÊäÈë/¿ÍÔË£¨¿ÍÔËÕ¾£©/7ÔÂ/Ê®ÑßÊÐ2026Äê7Ô¹̶¨×ʲúÔ±¨µç×Ó°æÍ¶×ʱí¸ñ.xlsx
Binary files differ
docs/Ͷ×Ê/ÊäÈë/ÎïÁ÷£¨ÎïÁ÷Ô°Çø£©/7ÔÂ/ºþ±±Ê¡Ê®Ñß½»Í¨ÎïÁ÷»ù´¡ÉèʩͶ×Êͳ¼Æ»ã×Ü±í£¨Ô±¨£©£¨2026Äê7Ô£©.xls
Binary files differ
docs/Ͷ×Ê/Êä³ö/ÇåÀí²ÐÁô_Ê®Ñß»ã×Ü±í´ø³öµÄ·ÇÊ®ÑßÏîÄ¿_2026-09-20.tsv
New file
@@ -0,0 +1,81 @@
## å¤‡ä»½æ—¶é—´ 2026-09-20  åŽŸå› ï¼šåå °æ±‡æ€»è¡¨(2026å¹´5/7/8月版)内含武汉27个+黄石4个非十堰老项目,2026-08-26 11:57 éšã€Œå¸‚州单表批量导入」入库,现按用户要求清除
## investment_project
id    project_name    category    city    county    builder_name    construct_nature    start_time    end_time    total_investment    is_billion    is_county    is_five_year    source    import_batch_id    created_at    updated_at
122    é«˜æ¡¥è´§è¿ç«™    ç‰©æµå›­åŒº    æ­¦æ±‰å¸‚    NULL    æ­¦æ±‰ä¸œè¥¿æ¹–保税物流投资有限公司    ç»­å»º    2006    2020    45482    0    0    0    å¸‚州单表    NULL    2026-08-26 11:57:10    2026-09-01 16:37:31
123    è“ç„°ç‰©æµåŸºåœ°    ç‰©æµå›­åŒº    æ­¦æ±‰å¸‚    NULL    æ­¦æ±‰è“ç„°ç‰©æµåŸºåœ°è‚¡ä»½æœ‰é™å…¬å¸    ç»­å»º    2011    2015    110000    0    0    0    å¸‚州单表    NULL    2026-08-26 11:57:10    2026-09-01 15:54:17
124    æ±‰å£åŒ—国际多式联运物流港    ç‰©æµå›­åŒº    æ­¦æ±‰å¸‚    NULL    æ¹–北省交通投资有限公司    æ–°å»º    2016    2020    300000    0    0    0    å¸‚州单表    NULL    2026-08-26 11:57:10    2026-09-01 15:54:17
125    æ­¦æ±‰æ­¦æ¹–城市配送中心    ç‰©æµå›­åŒº    æ­¦æ±‰å¸‚    NULL    æ¹–北萃元农产品冷链物流公司    æ–°å»º    2015    2017    30000    0    0    0    å¸‚州单表    NULL    2026-08-26 11:57:10    2026-09-01 15:54:17
126    æ­¦æ±‰æ·åˆ©é€šè¾¾çŽ°ä»£ç‰©æµ    ç‰©æµå›­åŒº    æ­¦æ±‰å¸‚    NULL    æ­¦æ±‰æ·åˆ©é€šè¾¾ç‰©æµæœ‰é™å…¬å¸    ç»­å»º    2013    2016    50000    0    0    0    å¸‚州单表    NULL    2026-08-26 11:57:10    2026-09-01 15:54:17
127    æ­¦æ±‰é›†è£…箱公路中转中心    ç‰©æµå›­åŒº    æ­¦æ±‰å¸‚    NULL    æ¹–北省港发集团    æ–°å»º    2016    2020    75000    0    0    0    å¸‚州单表    NULL    2026-08-26 11:57:10    2026-09-01 15:54:17
128    æ­¦æ±‰ä¸œè¥¿æ¹–物流基地    ç‰©æµå›­åŒº    æ­¦æ±‰å¸‚    NULL    æ±‡é€šç½®ä¸šè‚¡ä»½æœ‰é™å…¬å¸    æ–°å»º    2012    2016    130000    0    0    0    å¸‚州单表    NULL    2026-08-26 11:57:10    2026-09-01 15:54:17
129    æ­¦æ±‰ç‰©æµäº¤æ˜“所(总部)    ç‰©æµå›­åŒº    æ­¦æ±‰å¸‚    NULL    æ­¦æ±‰äº¤æŠ•物流交易中心有限公司    æ–°å»º    2016    2020    270000    0    0    0    å¸‚州单表    NULL    2026-08-26 11:57:10    2026-09-01 15:54:17
130    æ­¦æ±‰ç¾Žå®‰çŽ°ä»£ç‰©æµåŸŽ    ç‰©æµå›­åŒº    æ­¦æ±‰å¸‚    NULL    æ­¦æ±‰ç¾Žå®‰å‚¨è¿æœ‰é™å…¬å¸    æ–°å»º    2014    2016    110000    0    0    0    å¸‚州单表    NULL    2026-08-26 11:57:10    2026-09-01 15:54:17
131    å“尔陆港中心    ç‰©æµå›­åŒº    æ­¦æ±‰å¸‚    NULL    å“尔陆港中心投资有限公司    æ–°å»º    2014    2017    400000    0    0    0    å¸‚州单表    NULL    2026-08-26 11:57:10    2026-09-01 15:54:17
132    æ­¦æ±‰æ–°æ¸¯é˜³é€»æ¸¯å£ç‰©æµå›­    ç‰©æµå›­åŒº    æ­¦æ±‰å¸‚    NULL    æ­¦æ±‰æ–°æ¸¯é˜³é€»ä¿ç¨Žå›­åŒºç®¡ç†æœ‰é™å…¬å¸    æ–°å»º    2014    2017    108994    0    0    0    å¸‚州单表    NULL    2026-08-26 11:57:10    2026-09-01 15:54:17
133    æµ·å‰æ˜Ÿå›½é™…绿色农港    ç‰©æµå›­åŒº    æ­¦æ±‰å¸‚    NULL    æ­¦æ±‰åŸŽå¸‚圈海吉星农产品物流有限公司    æ–°å»º    2014    2020    800000    0    0    0    å¸‚州单表    NULL    2026-08-26 11:57:10    2026-09-01 15:54:17
134    æ­¦æ±‰ï¼ˆæ±Ÿå¤ï¼‰å¾·é‚¦ç‰©æµäº§ä¸šå›­    ç‰©æµå›­åŒº    æ­¦æ±‰å¸‚    NULL    å¾·é‚¦ç‰©æµ    æ–°å»º    2015    2017    137000    0    0    0    å¸‚州单表    NULL    2026-08-26 11:57:10    2026-09-01 15:54:17
135    æ­¦æ±‰åŽè¿è¾¾ç‰©æµåŸºåœ°é¡¹ç›®    ç‰©æµå›­åŒº    æ­¦æ±‰å¸‚    NULL    æ­¦æ±‰åŽè¿è¾¾ç‰©æµæœ‰é™å…¬å¸    æ–°å»º    2015    2017    30000    0    0    0    å¸‚州单表    NULL    2026-08-26 11:57:10    2026-09-01 15:54:17
136    é‡‘港新区汽车物流园    ç‰©æµå›­åŒº    æ­¦æ±‰å¸‚    NULL    æ­¦æ±‰æ–°é¸¿ç››ç‰©æµæœ‰é™å…¬å¸    æ–°å»º    2015    2017    64000    0    0    0    å¸‚州单表    NULL    2026-08-26 11:57:10    2026-09-01 15:54:17
137    é¡ºä¸°é€Ÿé€’武汉电子商务物流中心    ç‰©æµå›­åŒº    æ­¦æ±‰å¸‚    NULL    æ­¦æ±‰ä¸°æ³°ç”µå•†äº§ä¸šå›­ç®¡ç†æœ‰é™å…¬å¸    æ–°å»º    2015    2017    100000    0    0    0    å¸‚州单表    NULL    2026-08-26 11:57:10    2026-09-01 15:54:17
138    å´å®¶å±±é“è·¯ç‰©æµå›­    ç‰©æµå›­åŒº    æ­¦æ±‰å¸‚    NULL    æ­¦æ±‰é“è·¯å±€    æ–°å»º    2015    2018    35000    0    0    0    å¸‚州单表    NULL    2026-08-26 11:57:10    2026-09-01 15:54:17
139    æ’基达鑫化工物流    ç‰©æµå›­åŒº    æ­¦æ±‰å¸‚    NULL    æ¹–北金腾兴有限公司    æ–°å»º    2013    2018    204000    0    0    0    å¸‚州单表    NULL    2026-08-26 11:57:10    2026-09-01 15:54:17
140    ä¸œæ¹–综合保税区食品保税物流园    ç‰©æµå›­åŒº    æ­¦æ±‰å¸‚    NULL    æ­¦æ±‰é‡‘宇综合保税发展有限公司    æ–°å»º    2015    2017    124000    0    0    0    å¸‚州单表    NULL    2026-08-26 11:57:10    2026-09-01 15:54:17
141    äº¬ä¸œå•†åŸŽåŽä¸­åŒºåŸŸæ€»éƒ¨    ç‰©æµå›­åŒº    æ­¦æ±‰å¸‚    NULL    åŒ—京京东世纪贸易有限公司    æ–°å»º    2014    2018    700000    0    0    0    å¸‚州单表    NULL    2026-08-26 11:57:10    2026-09-01 15:54:17
142    äº’联网+物流信息交易平台    ç‰©æµå›­åŒº    æ­¦æ±‰å¸‚    NULL    æ­¦æ±‰æ·åˆ©ç‰©æµæœ‰é™å…¬å¸    æ–°å»º    2015    2016    31792    0    0    0    å¸‚州单表    NULL    2026-08-26 11:57:10    2026-09-01 15:54:17
143    é»‘石新地电子商务物流中心    ç‰©æµå›­åŒº    æ­¦æ±‰å¸‚    NULL    æ­¦æ±‰é«˜æ¡¥æ–°åœ°ç‰©æµæœ‰é™å…¬å¸    æ–°å»º    2015    2016    200000    0    0    0    å¸‚州单表    NULL    2026-08-26 11:57:10    2026-09-01 15:54:17
144    æ±‰å£åŒ—公铁联运中心    ç‰©æµå›­åŒº    æ­¦æ±‰å¸‚    NULL    çœäº¤æŠ•    æ–°å»º    2016    2018    200000    0    0    0    å¸‚州单表    NULL    2026-08-26 11:57:10    2026-09-01 15:54:17
145    æ±‰å£åŒ—高新物流示范园(武湖货运站)    ç‰©æµå›­åŒº    æ­¦æ±‰å¸‚    NULL    æ¹–北省汽车运输总公司    æ–°å»º    2012    2017    114500    0    0    0    å¸‚州单表    NULL    2026-08-26 11:57:10    2026-09-01 15:54:17
146    å†›å±±è´§è¿ç«™    ç‰©æµå›­åŒº    æ­¦æ±‰å¸‚    NULL    æ­¦æ±‰å®æ¹¾å›½é™…物流有限公司    æ–°å»º    2013    2015    102000    0    0    0    å¸‚州单表    NULL    2026-08-26 11:57:10    2026-09-01 15:54:17
147    æ±‰å£åŒ—铁路物流中心(2期)    ç‰©æµå›­åŒº    æ­¦æ±‰å¸‚    NULL    æ­¦æ±‰ä¸­åŠ›ç‰©æµæœ‰é™å…¬å¸    æ–°å»º    2015    2017    88500    0    0    0    å¸‚州单表    NULL    2026-08-26 11:57:10    2026-09-01 15:54:17
148    è¶Šæµ·åŽä¸­ä¾›åº”链总部基地    ç‰©æµå›­åŒº    æ­¦æ±‰å¸‚    NULL    æ·±åœ³å¸‚越海全球物流有限公司    æ–°å»º    2015    2018    150000    0    0    0    å¸‚州单表    NULL    2026-08-26 11:57:10    2026-09-01 15:54:17
149    é»„石罗桥物流园    ç‰©æµå›­åŒº    é»„石市    NULL    æ¹–北天海益达物流有限公司    æ–°å»º    2012    2017    39119    0    0    0    å¸‚州单表    NULL    2026-08-26 11:57:10    2026-09-19 00:11:41
150    é»„石花湖物流中心    ç‰©æµå›­åŒº    é»„石市    NULL    æ¹–北广发物流有限公司    æ–°å»º    2012    2016    23586    0    0    0    å¸‚州单表    NULL    2026-08-26 11:57:10    2026-09-19 00:11:41
151    é»„石棋盘洲综合物流园一期(棋盘洲保税物流中心)    ç‰©æµå›­åŒº    é»„石市    NULL    é»„石港通物流发展有限公司    æ–°å»º    2013    2018    28679    0    0    0    å¸‚州单表    NULL    2026-08-26 11:57:10    2026-09-19 00:11:41
152    é˜³æ–°åŽ¿ç‰©æµä¸­å¿ƒ    ç‰©æµå›­åŒº    é»„石市    NULL    é˜³æ–°åŽ¿äº¤é€šæŠ•èµ„å…¬å¸    æ–°å»º    2015    2018    23000    0    0    0    å¸‚州单表    NULL    2026-08-26 11:57:10    2026-09-19 00:11:41
## investment_monthly
id    report_period    project_id    project_name    year_plan    year_cum    month_done    start_cum    progress_stage    LEFT(m.progress_desc,60)    building_area    created_at
3000    2026-08    122    é«˜æ¡¥è´§è¿ç«™    0    0    0    40148    NULL    ä¸‰æœŸè§„划中    NULL    2026-09-19 00:20:08
3001    2026-08    123    è“ç„°ç‰©æµåŸºåœ°    1500    500    500    89608    NULL    åŸŽå¸‚配送中心建设已完成至100%,相关市政配套工程完成100%。现因三环线辅道征收拆迁事宜致使证件办理工作延期取得目二期    NULL    2026-09-19 00:20:08
3002    2026-08    124    æ±‰å£åŒ—国际多式联运物流港    1000    0    0    0    NULL    æ´½è°ˆä¸­    NULL    2026-09-19 00:20:08
3003    2026-08    125    æ­¦æ±‰æ­¦æ¹–城市配送中心    6000    0    0    13000    NULL    ä»“库在建中    NULL    2026-09-19 00:20:08
3004    2026-08    126    æ­¦æ±‰æ·åˆ©é€šè¾¾çŽ°ä»£ç‰©æµ    14000    1100    1100    26000    NULL    ç›®å‰äºŒæœŸåœ¨åŠžç†å¼€å·¥å‰æ‰‹ç»­ï¼Œå·²å®ŒæˆåŒºåŸŸåœŸåœ°æ‹†è¿ã€å¹³æ•´å·¥ä½œã€‚    NULL    2026-09-19 00:20:08
3005    2026-08    127    æ­¦æ±‰é›†è£…箱公路中转中心    1000    0    0    0    NULL    ç”±æ­¦æ±‰æ–°æ¸¯å§”牵头武汉新港空港综合保税区扩大范围的认证问题;对接江北铁路二期建设;支持新港企业发展等。现已正式启动该项目的    NULL    2026-09-19 00:20:08
3006    2026-08    128    æ­¦æ±‰ä¸œè¥¿æ¹–物流基地    12000    1000    1000    71657    NULL    å•†æœåŒºåŒ—片7#楼封顶、6#楼二层结构、5#楼地下室封顶、4#楼正负零,停车场B区施工。    NULL    2026-09-19 00:20:08
3007    2026-08    129    æ­¦æ±‰ç‰©æµäº¤æ˜“所(总部)    20000    0    0    1000    NULL    é¡¹ç›®å¯è¡Œæ€§ç ”究报告及建筑方案设计正在编制中    NULL    2026-09-19 00:20:08
3008    2026-08    130    æ­¦æ±‰ç¾Žå®‰çŽ°ä»£ç‰©æµåŸŽ    0    0    0    30156    NULL    2#楼内部装修完毕,已开始试运营,1#楼开始打桩,物流地块已开始设计;兴建停车场    NULL    2026-09-19 00:20:08
3009    2026-08    131    å“尔陆港中心    20000    400    400    51900    NULL    æ­£åœ¨è¿›è¡Œå›­åŒºé“路铺设,围网工程    NULL    2026-09-19 00:20:08
3010    2026-08    132    æ­¦æ±‰æ–°æ¸¯é˜³é€»æ¸¯å£ç‰©æµå›­    30000    865.6    865.6    44157    NULL    å®Œæˆå›­åŒºåœŸåœ°å¹³æ•´ã€åœ°ä¸‹è®¾æ–½ã€å›­åŒºé“路、桩基及围网的基础施工    NULL    2026-09-19 00:20:08
3011    2026-08    133    æµ·å‰æ˜Ÿå›½é™…绿色农港    36000    2865.2    2865.2    66092.26    NULL    21栋蔬菜交易大厅、配套楼A栋及电商中心工程竣工交付并开业。现已启动二期建设    NULL    2026-09-19 00:20:08
3012    2026-08    134    æ­¦æ±‰ï¼ˆæ±Ÿå¤ï¼‰å¾·é‚¦ç‰©æµäº§ä¸šå›­    1000    0    0    0    NULL    æœ‰å…³æ‰‹ç»­å·²åŠžé½ï¼Œå·²å®ŒæˆåœŸåœ°æ‹›æ‹æŒ‚å·¥ä½œ    NULL    2026-09-19 00:20:08
3013    2026-08    135    æ­¦æ±‰åŽè¿è¾¾ç‰©æµåŸºåœ°é¡¹ç›®    0    0    0    5000    NULL    ç›®å‰å·²å–得土地149.9亩,土地证正在办理中,开展场平工作    NULL    2026-09-19 00:20:08
3014    2026-08    136    é‡‘港新区汽车物流园    0    0    0    0    NULL    å·²å®Œæˆåœ°è´¨å‹˜å¯Ÿ    NULL    2026-09-19 00:20:08
3015    2026-08    137    é¡ºä¸°é€Ÿé€’武汉电子商务物流中心    0    0    0    10000    NULL    1、项目用地已获批准,进入东西湖区土地储备中心,做“招拍挂”前期准备。    NULL    2026-09-19 00:20:08
3016    2026-08    138    å´å®¶å±±é“è·¯ç‰©æµå›­    0    0    0    5000    NULL    å®Œæˆå›­åŒºé“路建设,五层办公楼封顶    NULL    2026-09-19 00:20:08
3017    2026-08    139    æ’基达鑫化工物流    0    0    0    25888    NULL    è¯•运营    NULL    2026-09-19 00:20:08
3018    2026-08    140    ä¸œæ¹–综合保税区食品保税物流园    0    0    0    59000    NULL    å…³å†…241亩用地已开工建设    NULL    2026-09-19 00:20:08
3019    2026-08    141    äº¬ä¸œå•†åŸŽåŽä¸­åŒºåŸŸæ€»éƒ¨    20000    0    0    87800    NULL    å·²å®Œæˆ1-6#厂房主体钢结构安装,设备安装调试;1#、4#厂房围护结构安装;食堂封顶,宿舍1#楼施工完成5层,宿舍地下室    NULL    2026-09-19 00:20:08
3020    2026-08    142    äº’联网+物流信息交易平台    0    0    0    8000    NULL    å·²å»ºæˆ1000位座席及投入6000万元    NULL    2026-09-19 00:20:08
3021    2026-08    143    é»‘石新地电子商务物流中心    0    2000    2000    2000    NULL    æ­£åœ¨è¿›è¡Œæ‹†è¿ã€åœºå¹³ã€æ¸…淤换填、清除耕植土等场平工作    NULL    2026-09-19 00:20:08
3022    2026-08    144    æ±‰å£åŒ—公铁联运中心    20000    0    0    0    NULL    æ´½è°ˆä¸­    NULL    2026-09-19 00:20:08
3023    2026-08    145    æ±‰å£åŒ—高新物流示范园(武湖货运站)    15000    0    0    11629    NULL    å®Œæˆå››æ ‹1.25万平方米主体工程,其余项目用地正在落实中    NULL    2026-09-19 00:20:08
3024    2026-08    146    å†›å±±è´§è¿ç«™    1000    0    0    59050    NULL    ä¼ä¸šè¿›åœºè¯•运营    NULL    2026-09-19 00:20:08
3025    2026-08    147    æ±‰å£åŒ—铁路物流中心(2期)    30000    0    0    0    NULL    æ­£åœ¨è¿›è¡ŒäºŒæœŸæ–½å·¥è®¾è®¡å’Œæ–½å·¥æ‹›æŠ•标工作    NULL    2026-09-19 00:20:08
3026    2026-08    148    è¶Šæµ·åŽä¸­ä¾›åº”链总部基地    30000    0    0    0    NULL    åœºå¹³å…¨éƒ¨å®Œæˆ    NULL    2026-09-19 00:20:08
1624    2026-06    149    é»„石罗桥物流园    11200    69    69    18202    NULL    é›†è£…箱设备安装    NULL    2026-08-26 12:25:57
1998    2026-07    149    é»„石罗桥物流园    11200    69    69    18202    NULL    é›†è£…箱设备安装    NULL    2026-09-01 16:37:32
3027    2026-08    149    é»„石罗桥物流园    11200    69    69    18202    NULL    é›†è£…箱设备安装    NULL    2026-09-19 00:20:08
1625    2026-06    150    é»„石花湖物流中心    1700    0    0    20300    NULL    åŸºæœ¬å»ºæˆï¼Œæ­£åœ¨è¿›è¡ŒäºŒæœŸç»¼åˆæ¥¼å¤–墙装修    NULL    2026-08-26 12:25:57
1999    2026-07    150    é»„石花湖物流中心    1700    0    0    20300    NULL    åŸºæœ¬å»ºæˆï¼Œæ­£åœ¨è¿›è¡ŒäºŒæœŸç»¼åˆæ¥¼å¤–墙装修    NULL    2026-09-01 16:37:32
3028    2026-08    150    é»„石花湖物流中心    1700    0    0    20300    NULL    åŸºæœ¬å»ºæˆï¼Œæ­£åœ¨è¿›è¡ŒäºŒæœŸç»¼åˆæ¥¼å¤–墙装修    NULL    2026-09-19 00:20:08
1626    2026-06    151    é»„石棋盘洲综合物流园一期(棋盘洲保税物流中心)    5000    0    0    23730    NULL    ä¿ç¨Žç‰©æµä¸­å¿ƒé€šè¿‡å›½å®¶éªŒæ”¶    NULL    2026-08-26 12:25:57
2000    2026-07    151    é»„石棋盘洲综合物流园一期(棋盘洲保税物流中心)    5000    0    0    23730    NULL    ä¿ç¨Žç‰©æµä¸­å¿ƒé€šè¿‡å›½å®¶éªŒæ”¶    NULL    2026-09-01 16:37:32
3029    2026-08    151    é»„石棋盘洲综合物流园一期(棋盘洲保税物流中心)    5000    0    0    23730    NULL    ä¿ç¨Žç‰©æµä¸­å¿ƒé€šè¿‡å›½å®¶éªŒæ”¶    NULL    2026-09-19 00:20:08
1627    2026-06    152    é˜³æ–°åŽ¿ç‰©æµä¸­å¿ƒ    1000    0    0    1332    NULL    å‰æœŸå·¥ä½œ    NULL    2026-08-26 12:25:57
2001    2026-07    152    é˜³æ–°åŽ¿ç‰©æµä¸­å¿ƒ    1000    0    0    1332    NULL    å‰æœŸå·¥ä½œ    NULL    2026-09-01 16:37:32
3030    2026-08    152    é˜³æ–°åŽ¿ç‰©æµä¸­å¿ƒ    1000    0    0    1332    NULL    å‰æœŸå·¥ä½œ    NULL    2026-09-19 00:20:08
## è¿½åŠ ï¼šä¼ªé¡¹ç›®ã€Œåˆã€€ã€€ã€€è®¡ã€(咸宁市客运站场, id=229, è§£æžåˆè®¡è¡Œæ—¶è¯¯å»º, æ— æœˆåº¦æ•°)
id    project_name    city    category    source    total_investment    created_at
229    åˆ       è®¡    å’¸å®å¸‚    å®¢è¿ç«™åœº    å¸‚州单表    13727    2026-09-16 15:07:54
traffic-audit-web/src/views/DataImport.vue
@@ -150,6 +150,19 @@
                       :disabled="clearScope === 'types' && !clearTypes.length" @click="confirmClear">确认清空</el-button>
          </span>
        </el-dialog>
        <!-- å¯¼å…¥ç»“果弹窗:可拖动、内容区滚动、底部按钮固定可见(原 $alert å†…容长时底部按钮会被挤出屏幕) -->
        <el-dialog :title="resultDialog.title" :visible.sync="resultDialog.visible" width="860px" top="5vh"
                   append-to-body :close-on-click-modal="false" custom-class="import-result-dialog" v-dialog-drag>
          <div v-if="resultDialog.level" class="ird-level" :class="'ird-' + resultDialog.level">
            {{ resultDialog.level === 'error' ? '导入失败' : (resultDialog.level === 'warning' ? '存在需要确认的内容' : '导入成功') }}
          </div>
          <div class="ird-body" v-html="resultDialog.html"></div>
          <span slot="footer">
            <el-button v-if="resultDialog.rows.length" size="small" icon="el-icon-download"
                       @click="exportResultDialog">导出明细</el-button>
            <el-button type="primary" @click="resultDialog.visible = false">确认</el-button>
          </span>
        </el-dialog>
      </el-main>
    </el-container>
  </el-container>
@@ -193,6 +206,7 @@
      clearDialog: false,
      clearScope: 'all',
      clearTypes: [],
      resultDialog: { visible: false, title: '', html: '', rows: [], columns: [], fileName: '', level: '' },
      sideOpen: false,
      result: '',
      error: '',
@@ -463,11 +477,15 @@
            (f.city ? '(' + f.city + ')' : '') + ':解析 ' + (f.success || 0) + ' æ¡' +
            (f.error ? ' <span style="color:#F56C6C">' + f.error + '</span>' : '') + '</div>'
          ).join('')
          this.$alert(html, (label || type) + ' æ‰¹é‡å¯¼å…¥å®Œæˆï¼šå…± ' + d.total + ' ä¸ªæ–‡ä»¶' +
            (d.fail > 0 ? ',失败 ' + d.fail + ' æ¡' : '') + '(成功 ' + d.success + ' æ¡ï¼‰', {
            dangerouslyUseHTMLString: true,
            type: errCount > 0 ? 'warning' : 'success',
            confirmButtonText: '知道了'
          this.showResultDialog({
            title: (label || type) + ' æ‰¹é‡å¯¼å…¥å®Œæˆï¼šå…± ' + d.total + ' ä¸ªæ–‡ä»¶' +
              (d.fail > 0 ? ',失败 ' + d.fail + ' æ¡' : '') + '(成功 ' + d.success + ' æ¡ï¼‰',
            html: html,
            level: errCount > 0 ? 'warning' : 'success',
            columns: [{ key: 'fileName', label: '文件名' }, { key: 'city', label: '市州' },
                      { key: 'success', label: '解析条数' }, { key: 'error', label: '错误' }],
            rows: files.map(f => ({ fileName: f.fileName || '', city: f.city || '', success: f.success || 0, error: f.error || '' })),
            fileName: (label || '批量导入') + '_' + this.period + '_导入结果'
          })
          if (type === 'investment' || type === 'investmentLogistics') {
            this.checkInvest(this.period)
@@ -505,12 +523,16 @@
            (f.city ? '(' + f.city + ')' : '') + ':解析 ' + (f.success || 0) + ' ä¸ªé¡¹ç›®' +
            (f.error ? ' <span style="color:#F56C6C">' + f.error + '</span>' : '') + '</div>'
          ).join('')
          this.$alert(html, '市州单表批量导入完成:共 ' + d.total + ' æ¡ï¼ŒæˆåŠŸ ' + d.success + ' æ¡' +
            (d.fail > 0 ? ',失败 ' + d.fail + ' æ¡' : '') +
            '(十五五项目匹配 ' + d.fiveYearMatched + '/' + d.fiveYearTemplateProjects + ')', {
            dangerouslyUseHTMLString: true,
            type: errCount > 0 ? 'warning' : 'success',
            confirmButtonText: '知道了'
          this.showResultDialog({
            title: '市州单表批量导入完成:共 ' + d.total + ' æ¡ï¼ŒæˆåŠŸ ' + d.success + ' æ¡' +
              (d.fail > 0 ? ',失败 ' + d.fail + ' æ¡' : '') +
              '(十五五项目匹配 ' + d.fiveYearMatched + '/' + d.fiveYearTemplateProjects + ')',
            html: html,
            level: errCount > 0 ? 'warning' : 'success',
            columns: [{ key: 'fileName', label: '文件名' }, { key: 'city', label: '市州' },
                      { key: 'success', label: '解析项目数' }, { key: 'error', label: '错误' }],
            rows: files.map(f => ({ fileName: f.fileName || '', city: f.city || '', success: f.success || 0, error: f.error || '' })),
            fileName: '市州单表导入结果_' + this.period
          })
          this.afterImport()
        })
@@ -527,10 +549,10 @@
        const text = (msg && msg.indexOf('导入') !== -1) ? msg : '数据导入成功'
        this.$message({ message: text, type: 'success', duration: 5000 })
      } else {
        this.$alert((msg || '数据导入失败,详见下方失败记录').replace(/\n/g, '<br>'), '数据导入失败', {
          dangerouslyUseHTMLString: true,
          type: 'error',
          confirmButtonText: '知道了'
        this.showResultDialog({
          title: '数据导入失败',
          html: (msg || '数据导入失败,详见下方失败记录').replace(/\n/g, '<br>'),
          level: 'error'
        })
      }
    },
@@ -646,14 +668,55 @@
                '<br/>实际:' + (x.actualValue || '') + ' 基准:' + (x.thresholdValue || '') +
                '<br/>差异:' + (x.deviation || '') + '</div>'
            }).join('')
            this.$alert(html, '投资数据与投资系统不一致(' + pending.length + ' æ¡ï¼‰', {
              dangerouslyUseHTMLString: true, type: 'warning', confirmButtonText: '知道了'
            this.showResultDialog({
              title: '投资数据与投资系统不一致(' + pending.length + ' æ¡ï¼‰',
              html: html,
              level: 'warning',
              columns: [{ key: 'rule', label: '规则' }, { key: 'name', label: '项目/企业' },
                        { key: 'actual', label: '实际值' }, { key: 'base', label: '基准值' }, { key: 'dev', label: '差异' }],
              rows: pending.map(x => ({
                rule: x.ruleName || '',
                name: x.enterpriseName || x.actualValue || '',
                actual: x.actualValue || '',
                base: x.thresholdValue || '',
                dev: x.deviation || ''
              })),
              fileName: '投资数据与投资系统不一致_' + this.period
            })
          } else {
            this.$message.success('已与投资系统核对,本月数据一致')
          }
        })
        .catch(() => {})
    },
  showResultDialog(opts) {
      const o = opts || {}
      this.resultDialog = {
        visible: true,
        title: o.title || '导入结果',
        html: o.html || '',
        level: o.level || '',
        rows: o.rows || [],
        columns: o.columns || [],
        fileName: o.fileName || ('导入结果_' + (this.period || ''))
      }
    },
    exportResultDialog() {
      const cols = this.resultDialog.columns || []
      const rows = this.resultDialog.rows || []
      if (!cols.length || !rows.length) { this.$message.warning('没有可导出的明细'); return }
      const esc = v => '"' + String(v === null || v === undefined ? '' : v).replace(/"/g, '""') + '"'
      const lines = [cols.map(c => esc(c.label)).join(',')]
      rows.forEach(r => lines.push(cols.map(c => esc(r[c.key])).join(',')))
      const blob = new Blob(['\ufeff' + lines.join('\r\n')], { type: 'text/csv;charset=utf-8' })
      const url = URL.createObjectURL(blob)
      const a = document.createElement('a')
      a.href = url
      a.download = this.resultDialog.fileName + '.csv'
      document.body.appendChild(a)
      a.click()
      document.body.removeChild(a)
      URL.revokeObjectURL(url)
    },
  parseFailDetails(row) {
    if (!row || !row.errorDetail) return []
@@ -723,3 +786,17 @@
.module-tabs-head { margin-bottom: 10px; }
.module-tab-pane { min-height: 120px; }
</style>
<style>
/* å¯¼å…¥ç»“果弹窗:el-dialog é»˜è®¤ append-to-body,DOM æŒ‚在 body ä¸Šï¼Œscoped é€‰æ‹©å™¨åŒ¹é…ä¸åˆ°ï¼Œå¿…须写全局 */
.import-result-dialog { border-radius: 10px; overflow: hidden; }
.import-result-dialog .el-dialog__header { cursor: move; user-select: none; -webkit-user-select: none; }
.import-result-dialog .el-dialog__headerbtn { cursor: pointer; }
.import-result-dialog .el-dialog__body { max-height: calc(100vh - 210px); overflow-y: auto; overscroll-behavior: contain; padding: 12px 20px; }
.import-result-dialog .el-dialog__footer { border-top: 1px solid #EBEEF5; padding: 10px 20px; }
.import-result-dialog .ird-body { line-height: 1.7; font-size: 13px; color: #303133; }
.import-result-dialog .ird-level { margin-bottom: 8px; font-weight: 600; }
.import-result-dialog .ird-success { color: #67C23A; }
.import-result-dialog .ird-warning { color: #E6A23C; }
.import-result-dialog .ird-error { color: #F56C6C; }
</style>