src/views/bpm/processInstance/detail/modules/operation-button.vue
@@ -23,6 +23,8 @@
import { useUserStore } from '@vben/stores';
import { isEmpty } from '@vben/utils';
import { FilePreviewModal, useFilePreview } from '#/components/file-preview';
import FormCreate from '@form-create/ant-design-vue';
import { until, useDebounceFn } from '@vueuse/core';
import {
@@ -789,6 +791,8 @@
const imagePreviewVisible = ref(false);
const imagePreviewUrl = ref('');
const { openPreview: openFilePreview, previewState: filePreviewState } = useFilePreview();
/** 判断文件是否为图片类型 */
function isImageUrl(url: string) {
  return /\.(jpg|jpeg|png|gif|bmp|webp|svg)$/i.test(
@@ -811,7 +815,7 @@
    imagePreviewUrl.value = url;
    imagePreviewVisible.value = true;
  } else {
    window.open(url, '_blank');
    openFilePreview(url, file?.name);
  }
}
@@ -1552,4 +1556,11 @@
      :src="imagePreviewUrl"
    />
  </div>
  <!-- 文件预览(PDF/Word/Excel/PPT) -->
  <FilePreviewModal
    v-model:visible="filePreviewState.visible.value"
    :file-url="filePreviewState.fileUrl.value"
    :file-name="filePreviewState.fileName.value"
  />
</template>