From b7ebccdbc4f29cc7663582213886579091c84dd5 Mon Sep 17 00:00:00 2001 From: 祖安之光 <11848914+light-of-zuan@user.noreply.gitee.com> Date: 星期五, 04 七月 2025 15:38:56 +0800 Subject: [PATCH] 修改新增 --- src/views/build/conpanyFunctionConsult/digitalFileDep/otherIntellFile/index.vue | 33 ++++++++++++++++++++++++++++++++- 1 files changed, 32 insertions(+), 1 deletions(-) diff --git a/src/views/build/conpanyFunctionConsult/digitalFileDep/otherIntellFile/index.vue b/src/views/build/conpanyFunctionConsult/digitalFileDep/otherIntellFile/index.vue index c2c75a7..5a37f94 100644 --- a/src/views/build/conpanyFunctionConsult/digitalFileDep/otherIntellFile/index.vue +++ b/src/views/build/conpanyFunctionConsult/digitalFileDep/otherIntellFile/index.vue @@ -32,11 +32,12 @@ <el-table-column label="名称" prop="templateName" align="center"/> <el-table-column label="文件" align="center"> <template #default="scope"> - <el-button link type="primary" @click="downloadFile(scope.row.filePath)">{{scope.row.templateName}}</el-button> + <el-link type="primary" @click="openFile(scope.row.filePath)">{{scope.row.templateName + '模板' + scope.row.format}}</el-link> </template> </el-table-column> <el-table-column label="操作" align="center" class-name="small-padding fixed-width" > <template #default="scope"> + <el-button link type="primary" @click="downloadFile(scope.row.filePath)">下载</el-button> <el-button link type="primary" @click="openDialog('edit',scope.row)">编辑</el-button> <el-button link type="danger" @click="handleDelete(scope.row)">删除</el-button> </template> @@ -63,6 +64,7 @@ import editDialog from './components/editDialog.vue' import useUserStore from "@/store/modules/user"; import {getStandardTemp,delStandardTemp} from "@/api/standardSys/standardSys"; +import {renderAsync} from "docx-preview"; const userStore = useUserStore() const { proxy } = getCurrentInstance(); const loading = ref(false); @@ -96,7 +98,36 @@ onUnmounted(()=>{ }) +const openFile = async(path)=>{ + try { + // 1. 获取文件 + const response = await fetch(import.meta.env.VITE_APP_BASE_API + '/' + path); + const arrayBuffer = await response.arrayBuffer(); + // 2. 创建新窗口 + const win = window.open('', '_blank'); + win.document.write(` + <!DOCTYPE html> + <html> + <head> + <title>预览</title> + <style> + body { margin: 20px; font-family: Arial; } + .docx-container { width: 100%; height: 100%; } + </style> + </head> + <body> + <div id="container" class="docx-container"></div> + </body> + </html> + `); + // 3. 渲染 DOCX + await renderAsync(arrayBuffer, win.document.getElementById('container')); + } catch (error) { + console.error('预览失败:', error); + alert(`预览失败: ${error.message}`); + } +} const getList = async () => { loading.value = true const res = await getStandardTemp(data.queryParams) -- Gitblit v1.9.2