吉安感知网项目-前端
chenyao
2026-01-28 bcb34e720eb55bc1f9d03d4b4bca557a4b93d4e5
applications/task-work-order/src/views/orderView/orderManage/inspectionReport/index.vue
@@ -57,9 +57,9 @@
               </el-table-column>
               <el-table-column label="操作" class-name="operation-btns">
                  <template v-slot="{ row }">
                     <el-link @click="seeOnlineWord(row)">查看</el-link>
                     <el-link @click="openForm(row)">在线编辑</el-link>
                     <el-link @click="handleDelete(row)">删除</el-link>
                     <el-link  type="primary"  @click="seeOnlineWord(row)">查看</el-link>
                     <el-link  type="primary"  @click="openForm(row)">在线编辑</el-link>
                     <el-link  type="primary"  @click="handleDelete(row)">删除</el-link>
                  </template>
               </el-table-column>
            </el-table>
@@ -145,9 +145,12 @@
import { getDictLabel } from '@ztzf/utils'
import PreviewFiles from '@/components/PreviewFiles/PreviewFiles.vue'
import { getDictionaryByCode } from '@/api/system/dictbiz'
import { Base64 } from 'js-base64'
const store = useStore()
const userInfo = computed(() => store.getters.userInfo)
// 初始化查询参数
const initSearchParams = () => ({
@@ -188,9 +191,9 @@
const ruleFormRef = ref()
const submitting = ref(false)
const rules = ref({
   nickName: [{ required: true, message: '请输入文档名称', trigger: ['blur'] }],
   resultType: [{ required: true, message: '请选择文档类型', trigger: ['change'] }],
   link: [{ required: true, message: '请上传文件', trigger: ['change'] }],
   nickName: [{ required: true, message: '请输入', trigger: ['blur'] }],
   resultType: [{ required: true, message: '请选择', trigger: ['change'] }],
   link: [{ required: true, message: '请上传', trigger: ['change'] }],
})
// 获取字典
@@ -235,29 +238,33 @@
   editParams.value.link = row.link
}
// 'zip', 'rar', 'jar', 'tar', 'gzip', '7z',
const allSupportedExtensions = [
   'doc', 'docx', 'xls', 'xlsx', 'xlsm', 'ppt', 'pptx', 'csv', 'tsv', 'dotm', 'xlt', 'xltm', 'dot', 'dotx', 'xlam', 'xla',
   'wps', 'dps', 'et', 'ett', 'wpt',
   'odt', 'ods', 'ots', 'odp', 'otp', 'six', 'ott', 'fodt', 'fods',
   'vsd', 'vsdx', 'wmf', 'emf', 'psd',
   'pdf', 'ofd', 'rtf', 'epub',
   'xmind', 'bpmn', 'eml',
   'obj', '3ds', 'stl', 'ply', 'gltf', 'glb', 'off', '3dm', 'fbx', 'dae', 'wrl', '3mf', 'ifc', 'brep', 'step', 'iges', 'fcstd', 'bim',
   'dwg', 'dxf',
   'txt', 'xml', 'md', 'java', 'php', 'py', 'js', 'css',
   'jpg', 'jpeg', 'png', 'gif', 'bmp', 'ico', 'jfif', 'webp', 'tif', 'tiff', 'tga', 'svg',
   'mp3', 'wav', 'mp4', 'flv', 'avi', 'mov', 'rm', 'webm', 'ts', 'mkv', 'mpeg', 'ogg', 'mpg', 'rmvb', 'wmv', '3gp', 'swf'
];
const { VITE_APP_PREVIEW_URL } = import.meta.env
// 在线查看文档
function seeOnlineWord(row) {
   // 获取点之后的文件格式名
   const fileType = row?.link?.split('.').pop() || ''
   if (!row.link) {
      ElMessage.warning('文件链接不存在')
      return
   } else if (
      !row.link.includes('docx') &&
      !row.link.includes('pdf') &&
      !row.link.includes('png') &&
      !row.link.includes('jpg')
   ) {
   }else if (allSupportedExtensions.includes(fileType)){
      window.open(`${VITE_APP_PREVIEW_URL}/onlinePreview?url=`+encodeURIComponent(Base64.encode(row.link)));
   }else {
      ElMessage.warning(`${fileType}文件格式,可以下载再查看`)
      return
   } else if (row.link.includes('png') || row.link.includes('jpg')) {
      previewVisibleImg.value = true
      searchUrl.value = row.link
      return
   } else if (row.link.includes('docx') || row.link.includes('pdf')) {
      previewVisible.value = true
      searchUrl.value = row.link
      return
   }
}