gaoluyang
17 小时以前 96b15144d19a99671362057272e088550ef1ddd4
fix(crm): 营销管理客户画像数据展示问题
已修改3个文件
34 ■■■■■ 文件已修改
src/api/mes/pd/archive/index.ts 4 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/crm/statistics/portrait/index.vue 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/mes/pd/archive/modules/detail.vue 15 ●●●●● 补丁 | 查看 | 原始文档 | 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>