From f7b5bcf402dcfb264cda9e09784fd0705c58b216 Mon Sep 17 00:00:00 2001
From: zhouwx <1175765986@qq.com>
Date: 星期三, 26 十一月 2025 13:39:58 +0800
Subject: [PATCH] 修改
---
src/views/build/conpanyFunctionConsult/standardSysTemp/techStandardModule/components/editDialog.vue | 31 +-
src/views/work/sealManagement/apply/components/editDialog.vue | 4
src/views/build/conpanyFunctionConsult/standardSysTemp/techStandardModule/index.vue | 34 +-
src/views/build/conpanyFunctionConsult/standardSysTemp/sysStandardModule/components/editDialog.vue | 4
src/views/build/conpanyFunctionConsult/standardSysTemp/recordStandardModule/index.vue | 217 +++++++++++++++++++++
src/views/build/conpanyFunctionConsult/standardSysTemp/recordStandardModule/components/editDialog.vue | 254 +++++++++++++++++++++++++
6 files changed, 512 insertions(+), 32 deletions(-)
diff --git a/src/views/build/conpanyFunctionConsult/standardSysTemp/recordStandardModule/components/editDialog.vue b/src/views/build/conpanyFunctionConsult/standardSysTemp/recordStandardModule/components/editDialog.vue
new file mode 100644
index 0000000..7130821
--- /dev/null
+++ b/src/views/build/conpanyFunctionConsult/standardSysTemp/recordStandardModule/components/editDialog.vue
@@ -0,0 +1,254 @@
+<template>
+ <div class="notice">
+ <el-dialog
+ v-model="dialogVisible"
+ :title="state.title"
+ width="700px"
+ :before-close="handleClose"
+ :close-on-press-escape="false"
+ :close-on-click-modal="false"
+ >
+ <el-form :model="state.form" size="default" ref="superRef" :rules="state.formRules" label-width="150px" >
+ <el-form-item v-if="state.isAdmin" label="单位:" prop="companyId">
+ <el-select v-model="state.form.companyId" placeholder="请选择" clearable>
+ <el-option
+ v-for="item in state.companyList"
+ :key="item.id"
+ :label="item.name"
+ :value="item.id">
+ </el-option>
+ </el-select>
+ </el-form-item>
+ <el-form-item label="文件名称:" prop="templateName">
+ <el-input v-model.trim="state.form.templateName" :disabled="state.title =='查看'" placeholder="模板名称"></el-input>
+ </el-form-item>
+<!-- <el-form-item label="分类:" prop="classify">-->
+<!-- <el-select v-model="state.form.classify" placeholder="请选择" style="width: 100%">-->
+<!-- <el-option-->
+<!-- v-for="item in state.classifyList"-->
+<!-- :key="item.id"-->
+<!-- :label="item.name"-->
+<!-- :value="item.id"-->
+<!-- />-->
+<!-- </el-select>-->
+<!-- </el-form-item>-->
+ <el-form-item label="文件:" prop="filePath">
+ <el-upload accept=".doc,.docx,.pdf" :action="state.uploadUrl" :headers="state.header" method="post" :on-success="(res, uploadFile)=>handleAvatarSuccess(res, uploadFile)" :on-exceed="showTip" :limit='state.fileLimit' v-model:file-list="state.fileList" :before-upload="picSize" :on-remove="(file, uploadFiles)=>handleRemove(file, uploadFiles)" >
+ <el-button type="primary">点击上传</el-button>
+ <template #tip>
+ <div class="el-upload__tip">支持上传.doc、.docx、.pdf格式文档,尺寸小于30M,最多可上传1份</div>
+ </template>
+ </el-upload>
+ </el-form-item>
+ </el-form>
+ <template #footer v-if="state.title !='查看'">
+ <span class="dialog-footer">
+ <el-button @click="handleClose" size="default">取 消</el-button>
+ <el-button type="primary" @click="onSubmit" size="default" v-preReClick>确认</el-button>
+ </span>
+ </template>
+ </el-dialog>
+ </div>
+</template>
+<script setup>
+import {reactive, ref, toRefs, defineEmits, nextTick, onMounted} from 'vue'
+import {ElMessage} from "element-plus";
+import {addUser, editUser, getUserById, resetPwd} from "@/api/onlineEducation/user"
+import {Base64} from "js-base64"
+import {getCompany} from "@/api/onlineEducation/company";
+import {addIndustryTemp, updateIndustryTemp, updateInfoPlatforms} from "@/api/staffManage/staff";
+import {getToken} from "@/utils/auth";
+import {delPic} from "@/api/onlineEducation/banner";
+import {saveStandardTemp, updateStandardTemp} from "@/api/standardSys/standardSys";
+
+const emit = defineEmits(["getList"]);
+const dialogVisible = ref(false)
+const superRef = ref()
+const checkFiles = (rule, value, callback) => {
+ if (state.fileList.length == 0) {
+ callback(new Error('请上传模板文件'))
+ } else {
+ callback()
+ }
+}
+const state = reactive({
+ title: '',
+ form: {
+ id: null,
+ templateName: '',
+ filePath: '',
+ format: '',
+ companyId: null,
+ templateType: 11,
+ classify: ''
+ },
+ formRules:{
+ companyId: [{ required: true, message: '请选择企业', trigger: 'blur' }],
+ templateName: [{ required: true, message: '请输入模板名称', trigger: 'blur' }],
+ filePath: [{ required: true, validator: checkFiles, trigger: 'blur' }],
+ classify: [{ required: true, message: '请选择分类', trigger: 'blur' }],
+ },
+ isAdmin: false,
+ companyList: [],
+ uploadUrl: import.meta.env.VITE_APP_BASE_API + '/system/common/uploadFile',
+ header: {
+ Authorization: getToken()
+ },
+ fileLimit: 1,
+ fileList: [],
+ classifyList: [
+ {
+ id: 1,
+ name: '体系标准'
+ },
+ {
+ id: 2,
+ name: '安全标准'
+ },
+ {
+ id: 3,
+ name: '其他'
+ },
+ ]
+})
+onMounted(() => {
+
+});
+
+const openDialog = async (type, value,companyId, isAdmin, companyList) => {
+ state.isAdmin = isAdmin
+ if(isAdmin){
+ state.companyList = companyList
+ }
+ state.title = type === 'add' ? '新增' : type ==='edit' ? '编辑' : '查看'
+ state.form.companyId = companyId
+ if(state.title == '编辑'||state.title == '查看'){
+ Object.keys(state.form).forEach(key => {
+ if (key in value) {
+ state.form[key] = value[key]
+ }
+ })
+ state.form.classify = !state.form.classify ? null: state.form.classify
+ if(value.filePath) {
+ const obj = {
+ url: value.filePath,
+ name: value.templateName+value.format
+ }
+ state.fileList = [obj]
+ }
+ }
+ dialogVisible.value = true
+}
+
+
+const onSubmit = async () => {
+ const valid = await superRef.value.validate();
+ if(valid){
+ if(state.title == '新增'){
+ const {id,...data} = state.form
+ const res = await saveStandardTemp(data)
+ if(res.code == 200){
+ ElMessage.success(res.message)
+ emit('getList')
+ handleClose()
+ dialogVisible.value = false;
+ }else{
+ ElMessage.warning(res.message)
+ }
+ }else{
+ const res = await updateStandardTemp(state.form)
+ if(res.code == 200){
+ ElMessage.success(res.message)
+ emit('getList')
+ handleClose()
+ dialogVisible.value = false;
+ }else{
+ ElMessage.warning(res.message)
+ }
+ }
+ }
+}
+
+const handleAvatarSuccess = (res, uploadFile) => {
+ if(res.code == 200){
+ state.form.filePath = res.data.path
+ state.form.format = '.' + res.data.filename.split('.')[1]
+ }else{
+ state.fileList = []
+ ElMessage({
+ type: 'warning',
+ message: '文件上传失败'
+ })
+ }
+}
+
+const showTip =()=>{
+ ElMessage({
+ type: 'warning',
+ message: '超出文件上传数量'
+ });
+}
+const picSize = async (rawFile) => {
+ if(rawFile.size / 1024 / 1024 > 30){
+ ElMessage({
+ type: 'warning',
+ message: '文件大小不能超过30M'
+ });
+ return false
+ }
+};
+const handleRemove = async (file, uploadFiles) => {
+ let path = state.form.filePath;
+ await delPic({path: path}).then(res => {
+ if(res.code == 200){
+ // ElMessage({
+ // type: 'success',
+ // message: '文件已删除'
+ // })
+ state.form.filePath = ''
+ state.form.format = ''
+ }else{
+ ElMessage({
+ type: 'warning',
+ message: res.message
+ })
+ }
+ }).catch(() => {
+ state.form.imgUrl = ''
+ });
+}
+
+const handleClose = () => {
+ state.form = {
+ id: null,
+ templateName: '',
+ filePath: '',
+ format: '',
+ companyId: null,
+ templateType: 11,
+ classify: ''
+ }
+ state.fileList = []
+ superRef.value.clearValidate();
+ superRef.value.resetFields()
+ dialogVisible.value = false;
+}
+
+defineExpose({
+ openDialog
+});
+
+</script>
+
+<style scoped lang="scss">
+.notice{
+ :deep(.el-form .el-form-item__label) {
+ font-size: 15px;
+ }
+ .file {
+ display: flex;
+ flex-direction: column;
+ align-items: flex-start;
+ }
+}
+</style>
diff --git a/src/views/build/conpanyFunctionConsult/standardSysTemp/recordStandardModule/index.vue b/src/views/build/conpanyFunctionConsult/standardSysTemp/recordStandardModule/index.vue
new file mode 100644
index 0000000..d64262e
--- /dev/null
+++ b/src/views/build/conpanyFunctionConsult/standardSysTemp/recordStandardModule/index.vue
@@ -0,0 +1,217 @@
+<template>
+ <div class="app-container">
+ <div style="display: flex;justify-content: space-between">
+ <el-form :inline="true" style="display: flex;align-items: center;flex-wrap: wrap;" >
+ <el-form-item>
+ <el-button
+ type="primary"
+ plain
+ icon="Plus"
+ @click="openDialog('add',{})"
+ >新增</el-button>
+ </el-form-item>
+ <el-form-item v-if="isAdmin" label="单位:" >
+ <el-select v-model="data.queryParams.companyId" placeholder="请选择" clearable>
+ <el-option
+ v-for="item in companyList"
+ :key="item.id"
+ :label="item.name"
+ :value="item.id">
+ </el-option>
+ </el-select>
+ </el-form-item>
+ <el-form-item >
+ <el-button v-if="isAdmin" type="primary" @click="getList">查询</el-button>
+ <el-button v-if="isAdmin" type="primary" plain @click="reset">重置</el-button>
+ </el-form-item>
+ </el-form>
+ </div>
+ <!-- 表格数据 -->
+ <el-table v-loading="loading" :data="dataList" :border="true">
+ <el-table-column label="序号" type="index" align="center" width="80"/>
+ <el-table-column label="文件名称" prop="templateName" header-align="center" align="left"/>
+<!-- <el-table-column label="分类" prop="classify" align="center">-->
+<!-- <template #default="scope">-->
+<!-- <span>{{scope.row.classify == 1 ? '体系标准' :scope.row.classify == 2 ?'安全标准': scope.row.classify == 3 ? '其他' : ''}}</span>-->
+<!-- </template>-->
+<!-- </el-table-column>-->
+ <el-table-column label="文件" header-align="center" align="left">
+ <template #default="scope">
+ <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>
+ </el-table-column>
+ </el-table>
+
+ <pagination
+ v-show="total > 0"
+ :total="total"
+ v-model:page="queryParams.pageNum"
+ v-model:limit="queryParams.pageSize"
+ @pagination="getList"
+ />
+<!-- <div id="docx-preview-container" style="width: 100%; height: auto; border: 1px solid #ccc;"></div>-->
+ <edit-dialog ref="dialogRef" @getList=getList></edit-dialog>
+ </div>
+</template>
+
+<script setup>
+import {getCurrentInstance, onMounted, onUnmounted, reactive, ref, toRefs} from "vue";
+import {ElMessage, ElMessageBox} from "element-plus";
+import {delCompany, getCompany} from "@/api/onlineEducation/company";
+import Cookies from "js-cookie";
+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);
+const dialogRef = ref();
+const data = reactive({
+ queryParams: {
+ pageNum: 1,
+ pageSize: 10,
+ companyId: null,
+ templateType: 11
+ },
+ total: 0,
+ dataList: [],
+ companyList: [],
+ isAdmin: false
+});
+
+const { queryParams, total, dataList,companyList, isAdmin } = toRefs(data);
+const userInfo = ref()
+onMounted(async ()=>{
+ if(userStore.roles.includes('admin')){
+ data.isAdmin = true
+ await getCompanyList()
+ }else{
+ data.isAdmin = false
+ data.queryParams.companyId = userStore.companyId
+ }
+ await getList()
+})
+
+onUnmounted(()=>{
+
+})
+
+const openFile = async(path)=>{
+ const ext = path.split('.').pop().toLowerCase();
+ if (ext === 'doc') {
+ ElMessageBox.confirm('暂不支持线上预览.doc文件,是否下载查看?', '提示', { confirmButtonText: '确认', cancelButtonText: '取消', type: 'warning' }).then(() => {
+ window.open(`${import.meta.env.VITE_APP_BASE_API}/${path}`, '_blank');
+ }).catch(() => {
+ console.log('取消预览')
+ });
+ return
+ }else if(ext === 'pdf'){
+ window.open(`${import.meta.env.VITE_APP_BASE_API}/${path}`, '_blank');
+ }else{
+ 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)
+ if(res.code == 200){
+ data.dataList = res.data.list || []
+ data.total = res.data.total
+ }else{
+ ElMessage.warning(res.message)
+ }
+ loading.value = false
+}
+
+const getCompanyList = async ()=>{
+ const queryParams = {
+ pageNum: 1,
+ pageSize: 999
+ }
+ const res = await getCompany(queryParams)
+ if (res.code == 200) {
+ data.companyList = res.data.list?res.data.list:[]
+ // data.queryParams.companyId = data.companyList[0].id
+ } else {
+ ElMessage.warning(res.message)
+ }
+}
+
+const downloadFile = (path)=>{
+ window.open(import.meta.env.VITE_APP_BASE_API + '/' + path)
+}
+
+const openDialog = (type, value) => {
+ dialogRef.value.openDialog(type, value, data.queryParams.companyId, data.isAdmin, data.companyList);
+}
+
+/** 重置新增的表单以及其他数据 */
+const reset= async()=> {
+ data.queryParams = {
+ pageNum: 1,
+ pageSize: 10,
+ companyId: null,
+ templateType: 11
+ }
+ await getCompanyList()
+ await getList()
+}
+const handleDelete = (val) => {
+ ElMessageBox.confirm(
+ '确定删除此条数据?',
+ '提示',
+ {
+ confirmButtonText: '确定',
+ cancelButtonText: '取消',
+ type: 'warning',
+ })
+ .then( async() => {
+ const res = await delStandardTemp({standardizedTemplateId: val.id})
+ if(res.code == 200){
+ ElMessage.success('数据删除成功')
+ await getList()
+ }else{
+ ElMessage.warning(res.message)
+ }
+ })
+}
+
+</script>
diff --git a/src/views/build/conpanyFunctionConsult/standardSysTemp/sysStandardModule/components/editDialog.vue b/src/views/build/conpanyFunctionConsult/standardSysTemp/sysStandardModule/components/editDialog.vue
index bb30cff..27d3204 100644
--- a/src/views/build/conpanyFunctionConsult/standardSysTemp/sysStandardModule/components/editDialog.vue
+++ b/src/views/build/conpanyFunctionConsult/standardSysTemp/sysStandardModule/components/editDialog.vue
@@ -19,7 +19,7 @@
</el-option>
</el-select>
</el-form-item>
- <el-form-item label="模板名称:" prop="templateName">
+ <el-form-item label="文件名称:" prop="templateName">
<el-input v-model.trim="state.form.templateName" :disabled="state.title =='查看'" placeholder="模板名称"></el-input>
</el-form-item>
<!-- <el-form-item label="分类:" prop="classify">-->
@@ -32,7 +32,7 @@
<!-- />-->
<!-- </el-select>-->
<!-- </el-form-item>-->
- <el-form-item label="模板文件:" prop="filePath">
+ <el-form-item label="文件:" prop="filePath">
<el-upload accept=".doc,.docx,.pdf" :action="state.uploadUrl" :headers="state.header" method="post" :on-success="(res, uploadFile)=>handleAvatarSuccess(res, uploadFile)" :on-exceed="showTip" :limit='state.fileLimit' v-model:file-list="state.fileList" :before-upload="picSize" :on-remove="(file, uploadFiles)=>handleRemove(file, uploadFiles)" >
<el-button type="primary">点击上传</el-button>
<template #tip>
diff --git a/src/views/build/conpanyFunctionConsult/standardSysTemp/techStandardModule/components/editDialog.vue b/src/views/build/conpanyFunctionConsult/standardSysTemp/techStandardModule/components/editDialog.vue
index ca2274b..3451bdd 100644
--- a/src/views/build/conpanyFunctionConsult/standardSysTemp/techStandardModule/components/editDialog.vue
+++ b/src/views/build/conpanyFunctionConsult/standardSysTemp/techStandardModule/components/editDialog.vue
@@ -19,15 +19,16 @@
</el-option>
</el-select>
</el-form-item>
- <el-form-item label="所属部门:" prop="deptId">
- <el-select v-model="state.form.deptId" placeholder="请选择" style="width: 100%" clearable>
- <el-option
- v-for="item in state.deptList"
- :key="item.deptId"
- :label="item.deptName"
- :value="item.deptId">
- </el-option>
- </el-select>
+ <el-form-item label="所属部门:" prop="department">
+ <el-input v-model.trim="state.form.department" :disabled="state.title =='查看'" placeholder="部门名称"></el-input>
+<!-- <el-select v-model="state.form.deptId" placeholder="请选择" style="width: 100%" clearable>-->
+<!-- <el-option-->
+<!-- v-for="item in state.deptList"-->
+<!-- :key="item.deptId"-->
+<!-- :label="item.deptName"-->
+<!-- :value="item.deptId">-->
+<!-- </el-option>-->
+<!-- </el-select>-->
</el-form-item>
<el-form-item label="模板名称:" prop="templateName">
@@ -45,10 +46,10 @@
</el-select>
</el-form-item>
<el-form-item label="模板文件:" prop="filePath">
- <el-upload accept=".doc,.docx,.pdf,.xlsx" :action="state.uploadUrl" :headers="state.header" method="post" :on-success="(res, uploadFile)=>handleAvatarSuccess(res, uploadFile)" :on-exceed="showTip" :limit='state.fileLimit' v-model:file-list="state.fileList" :before-upload="picSize" :on-remove="(file, uploadFiles)=>handleRemove(file, uploadFiles)" >
+ <el-upload accept=".doc,.docx,.pdf,.xlsx,.xls" :action="state.uploadUrl" :headers="state.header" method="post" :on-success="(res, uploadFile)=>handleAvatarSuccess(res, uploadFile)" :on-exceed="showTip" :limit='state.fileLimit' v-model:file-list="state.fileList" :before-upload="picSize" :on-remove="(file, uploadFiles)=>handleRemove(file, uploadFiles)" >
<el-button type="primary">点击上传</el-button>
<template #tip>
- <div class="el-upload__tip">支持上传.doc、.docx、.pdf、.xlsx格式文档,尺寸小于30M,最多可上传1份</div>
+ <div class="el-upload__tip">支持上传.doc、.docx、.pdf、.xlsx、.xls格式文档,尺寸小于30M,最多可上传1份</div>
</template>
</el-upload>
</el-form-item>
@@ -94,14 +95,16 @@
companyId: null,
industryTypeId: null,
industryTypeName: '',
- deptId:null,
+ // deptId:null,
+ department:'',
templateType: 2
},
formRules:{
companyId: [{ required: true, message: '请选择企业', trigger: 'blur' }],
templateName: [{ required: true, message: '请输入模板名称', trigger: 'blur' }],
filePath: [{ required: true, validator: checkFiles, trigger: 'blur' }],
- deptId: [{ required: true, message: '请选择部门', trigger: 'blur' }],
+ // deptId: [{ required: true, message: '请选择部门', trigger: 'blur' }],
+ department: [{ required: true, message: '请输入部门名称', trigger: 'blur' }],
industryTypeId: [{ required: true, message: '请选择行业类别', trigger: 'blur' }]
},
isAdmin: false,
@@ -133,6 +136,7 @@
state.form[key] = value[key]
}
})
+ state.form.industryTypeId = value.industryTypeId ? value.industryTypeId:null
if(value.filePath) {
const obj = {
url: value.filePath,
@@ -247,6 +251,7 @@
industryTypeId: null,
industryTypeName: '',
deptId:null,
+ department:'',
templateType: 2
}
state.fileList = []
diff --git a/src/views/build/conpanyFunctionConsult/standardSysTemp/techStandardModule/index.vue b/src/views/build/conpanyFunctionConsult/standardSysTemp/techStandardModule/index.vue
index 001b390..45d1bb7 100644
--- a/src/views/build/conpanyFunctionConsult/standardSysTemp/techStandardModule/index.vue
+++ b/src/views/build/conpanyFunctionConsult/standardSysTemp/techStandardModule/index.vue
@@ -30,7 +30,7 @@
<el-table v-loading="loading" :data="dataList" :border="true">
<el-table-column label="序号" type="index" align="center" width="80"/>
<el-table-column label="模板名称" prop="templateName" header-align="center" align="left"/>
- <el-table-column label="所属部门" prop="deptName" header-align="center" align="left"/>
+ <el-table-column label="所属部门" prop="department" header-align="center" align="left"/>
<el-table-column label="行业类别" prop="industryTypeName" header-align="center" align="left"/>
<el-table-column label="模板文件" header-align="center" align="left">
<template #default="scope">
@@ -105,21 +105,21 @@
})
const openFile = async(path)=>{
const ext = path.split('.').pop().toLowerCase();
- if (ext === 'doc' || ext === 'xlsx') {
+ if (ext === 'doc' || ext === 'xlsx' || ext === 'xls') {
ElMessageBox.confirm('暂不支持线上预览.doc、.xlsx文件,是否下载查看?', '提示', { confirmButtonText: '确认', cancelButtonText: '取消', type: 'warning' }).then(() => {
window.open(`${import.meta.env.VITE_APP_BASE_API}/${path}`, '_blank');
}).catch(() => {
console.log('取消预览')
});
return
- }
- 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(`
+ }else if(ext === 'docx'){
+ 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>
@@ -134,13 +134,17 @@
</body>
</html>
`);
- // 3. 渲染 DOCX
- await renderAsync(arrayBuffer, win.document.getElementById('container'));
+ // 3. 渲染 DOCX
+ await renderAsync(arrayBuffer, win.document.getElementById('container'));
- } catch (error) {
- console.error('预览失败:', error);
- alert(`预览失败: ${error.message}`);
+ } catch (error) {
+ console.error('预览失败:', error);
+ alert(`预览失败: ${error.message}`);
+ }
+ }else {
+ window.open(`${import.meta.env.VITE_APP_BASE_API}/${path}`, '_blank');
}
+
}
const getList = async () => {
loading.value = true
diff --git a/src/views/work/sealManagement/apply/components/editDialog.vue b/src/views/work/sealManagement/apply/components/editDialog.vue
index 7b8591b..e0938f7 100644
--- a/src/views/work/sealManagement/apply/components/editDialog.vue
+++ b/src/views/work/sealManagement/apply/components/editDialog.vue
@@ -102,13 +102,13 @@
</el-form-item>
</el-col>
</el-row>
- <el-row :gutter="24" v-if="title == '查看'">
+ <el-row :gutter="24" >
<el-col :span="24" style="margin-left: 50px">
<span style="font-size: 19px;font-weight: 600;">签字意见</span>
<el-table :data="state.form.flows" :border="true" style="width: 90%;margin-top: 10px">
<el-table-column label="流程名称" prop="flowName" width="220" align="center"></el-table-column>
<el-table-column label="内容" align="center">
- <template #default="scope">
+ <template #default="scope" v-if="title != '新增'">
<span>{{scope.row.approveDeptName}}/{{scope.row.approveUserName}} {{scope.row.approveTime}} {{scope.row.approveContent}} {{scope.row.approveMess}}</span>
</template>
</el-table-column>
--
Gitblit v1.9.2