feat(hjc-web): 订单页展示并下载电子发票

发票由一站式平台开具后推给后端(官方网不开票,见工作区根目录 docs/adr/0006),
订单响应里新增 invoices;文件是本平台副本,下载走与附件同一条链路(点击时取票)。

- 抽出 composable useAttachmentDownload:把「先换票据、再取文件」的逻辑从
  HjcTenderFiles 里提出来,附件与发票共用(各写一份必然分叉);同时把资源标识解析
  扩到 orderNo/projectNo/invoiceId 三种。
- 新增 HjcInvoiceFiles.vue:发票号/类型/开票日期/金额 + 下载;作废(红冲)的也列出来
  且仍可下载——它是留档凭证。
- HjcTenderFiles.vue 改用 composable,行为不变。
- 订单详情加发票区块,订单列表加「已开票」标记与发票列表。
- 不判"是否已支付":有没有发票取决于甲方开没开票,与订单当前状态无关。

校验:npm run build 通过。
This commit is contained in:
2026-09-18 17:33:01 +08:00
parent 6c40165f86
commit 1ff4dfffb9
6 changed files with 230 additions and 71 deletions
+10
View File
@@ -56,6 +56,16 @@
<p class="text-sm text-gray-500">支付成功后可在此下载标书附件</p>
</div>
<!--
电子发票**有才有**甲方开票后推给平台平台留副本再下发ADR 0006
所以这里不判"是否已支付"没开票就是没有这条记录跟付款状态无关
作废红冲的也列出来且仍可下载留档凭证
-->
<div v-if="order.invoices?.length" class="mt-4 rounded-lg border border-gray-200 p-5">
<h2 class="mb-3 font-bold text-gray-900">电子发票</h2>
<HjcInvoiceFiles :files="order.invoices" />
</div>
<!-- 待支付订单的操作区与列表页同一判定hjcCanActOnOrder -->
<div v-if="hjcCanActOnOrder(order)" class="mt-4 flex justify-end gap-3 rounded-lg border border-gray-200 p-5">
<button