feat(hjc-web): 新建订单详情页,订单列表与详情支持下载已支付订单的标书
此前 PC 没有订单详情页,标书下载只有两句文案(`.scratch/hjc-web-order-detail/01`)。 - 新增 `app/pages/tender/orders/[id].vue`:订单状态、标书附件、待支付操作区、 标书/支付/购买人信息;取数走 `useRequestFetch()`(裸 `$fetch` 在 SSR 不转发 Cookie, 会把用户登出) - `app/pages/tender/orders.vue` → `orders/index.vue`:Nuxt 里同名 file+目录会生成父子路由, 详情页会被父页吞掉,必须让列表页是 `index.vue` - 列表页每张卡片加「标书附件」(仅已支付)与「查看详情」,不整卡可点(卡内已有按钮与链接) - 新增 `app/components/HjcTenderFiles.vue` 与代理 `server/api/tender/order-detail.get.ts` - 附件地址来自后端按 `payStatus=1` 下发的 `tenderFiles`,前端不做权限判断、不自己拼地址 规格与验收:`.scratch/hjc-tender-download/`
This commit is contained in:
@@ -86,6 +86,48 @@ export interface TenderPage {
|
||||
count: number
|
||||
}
|
||||
|
||||
/**
|
||||
* 标书附件(对应 mp-java `HjcTenderFileVo`)。
|
||||
*
|
||||
* 由**后端**把项目的 `tender_file`(JSON 数组或逗号分隔)解析成结构化列表,
|
||||
* 前端只渲染、不解析也不判权限。
|
||||
*/
|
||||
export interface HjcTenderFile {
|
||||
/** 展示名;后端取不到时会兜底成「标书附件」 */
|
||||
name?: string
|
||||
/** 可下载地址 */
|
||||
url: string
|
||||
}
|
||||
|
||||
/**
|
||||
* 订单(对应 mp-java `HjcOrder`,只列页面用得到的字段)。
|
||||
*
|
||||
* `tenderFiles` 是**付费内容**:只有 `payStatus === 1`(已支付)的订单,后端才会下发;
|
||||
* 待支付 / 支付失败 / 已退款一律为 `null`(空数组表示已支付但项目没有附件)。
|
||||
* 前端**不根据 payStatus 自己拼地址**——地址没下发就是拿不到。
|
||||
*/
|
||||
export interface HjcOrder {
|
||||
id: number
|
||||
orderNo: string
|
||||
projectId?: number
|
||||
projectNo?: string
|
||||
projectName?: string
|
||||
enterpriseName?: string
|
||||
contactName?: string
|
||||
contactPhone?: string
|
||||
contactEmail?: string
|
||||
quantity?: number
|
||||
unitPrice?: number
|
||||
totalAmount?: number
|
||||
payMethod?: string
|
||||
payTime?: string
|
||||
payStatus?: number
|
||||
orderStatus?: number
|
||||
createTime?: string
|
||||
/** 仅已支付订单由后端下发 */
|
||||
tenderFiles?: HjcTenderFile[] | null
|
||||
}
|
||||
|
||||
/** 登录用户(对应后端 common.system.User 关键字段) */
|
||||
export interface HjcUser {
|
||||
userId: number
|
||||
|
||||
Reference in New Issue
Block a user