| src/api/mes/pd/archive/index.ts | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/views/crm/statistics/portrait/index.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/views/mes/pd/archive/modules/detail.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/api/mes/pd/archive/index.ts
@@ -1,4 +1,5 @@ import type { PageParam, PageResult } from '#/packages/effects/request/src'; import type { SystemStorageApi } from '#/api/system/storage'; import { requestClient } from '#/api/request'; @@ -85,7 +86,8 @@ documentName?: string; documentVersion?: string; fileName?: string; fileUrl?: string; /** 资料附件(走 system 模块 storage-attachment,业务表不存文件地址) */ attachmentList?: SystemStorageApi.StorageBlob[]; uploadUserId?: number; uploadUserNickname?: string; uploadTime?: number; src/views/crm/statistics/portrait/index.vue
@@ -26,9 +26,10 @@ const { renderEcharts: renderRightEcharts } = useEcharts(rightChartRef); /** * 城市分布分析:两张地图各占一整行。 * 地图图形的大小由容器高度决定(ECharts 按短边自适应,加宽只多留白), * 所以这里把高度给足,配合 chartOptions 里的 layoutSize 撑满。 * 两张图始终一排两个(地图也不例外)。 * 地图大小由容器短边 × 0.92 决定(ECharts 默认只给短边的 80%,加宽容器不会放大图形, * 只是多留白),所以地图只能靠加高来放大——700px 是让这一行不至于把页面顶出屏幕的高度。 * 饼图沿用原来的 300px。 */ const isAreaTab = computed(() => activeTabName.value === 'area'); const chartHeight = computed(() => (isAreaTab.value ? '700px' : '300px')); @@ -101,16 +102,14 @@ :force-render="true" /> </Tabs> <div class="mt-5 flex" :class="{ 'flex-col': isAreaTab }"> <div class="mt-5 flex"> <EchartsUI class="m-4" :class="isAreaTab ? 'w-full' : 'w-1/2'" class="m-4 w-1/2" :height="chartHeight" ref="leftChartRef" /> <EchartsUI class="m-4" :class="isAreaTab ? 'w-full' : 'w-1/2'" class="m-4 w-1/2" :height="chartHeight" ref="rightChartRef" /> src/views/mes/pd/archive/modules/detail.vue
@@ -43,6 +43,15 @@ ); } /** * 资料文件地址:后端只回 attachmentList(附件中间表),业务表没有 fileUrl 字段, * 这里取第一个附件的访问地址,没有附件就返回空串(模板里显示「-」)。 */ function documentFileUrl(record: MesPdArchiveApi.DocumentInfo) { const blob = record.attachmentList?.[0]; return blob?.url || blob?.downloadURL || ''; } /** 归档状态中文名:字典 mes_pd_archive_status */ function archiveStatusText(value?: number) { if (value === undefined || value === null || value === '') return '-'; @@ -170,9 +179,9 @@ > <template #bodyCell="{ column, record }"> <template v-if="column.key === 'action'"> <template v-if="record.fileUrl"> <a class="mr-2" @click="openPreview(record.fileUrl, record.fileName)">预览</a> <a :href="record.fileUrl" target="_blank">下载</a> <template v-if="documentFileUrl(record)"> <a class="mr-2" @click="openPreview(documentFileUrl(record), record.fileName)">预览</a> <a :href="documentFileUrl(record)" target="_blank">下载</a> </template> <span v-else class="text-gray-400">-</span> </template>