| | |
| | | plain |
| | | icon="Plus" |
| | | @click="openDialog('add',{})" |
| | | v-hasPermi="['processInspecte:list:edit']" |
| | | >新增</el-button> |
| | | </el-form-item> |
| | | <el-form-item v-if="isAdmin" label="单位:" > |
| | | <el-select v-model="data.queryParams.companyId" placeholder="请选择" clearable> |
| | | <el-select v-model="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 style="margin-left: 15px" label="项目名称:"> |
| | | <el-select v-model="queryParams.itemId" |
| | | filterable |
| | | placeholder="请选择" |
| | | clearable style="width: 100%" |
| | | > |
| | | <el-option |
| | | v-for="item in projectList" |
| | | :key="item.id" |
| | | :label="item.itemName" |
| | | :value="item.id"> |
| | | </el-option> |
| | | </el-select> |
| | |
| | | <!-- 表格数据 --> |
| | | <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="fileName" header-align="center" align="left"/> |
| | | <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> |
| | | <el-link type="primary" @click="openFile(scope.row.filePath)">{{scope.row.fileName +'.'+ 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> |
| | | <el-button link type="primary" @click="downloadFile(scope.row.filePath)" v-hasPermi="['processInspecte:list:edit']">下载</el-button> |
| | | <el-button link type="primary" @click="openDialog('edit',scope.row)" v-hasPermi="['processInspecte:list:edit']">编辑</el-button> |
| | | <el-button link type="danger" @click="handleDelete(scope.row)" v-hasPermi="['processInspecte:list:del']">删除</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | |
| | | import useUserStore from "@/store/modules/user"; |
| | | import {getStandardTemp,delStandardTemp} from "@/api/standardSys/standardSys"; |
| | | import { renderAsync } from "docx-preview"; |
| | | import {delInspection, getInspection} from "@/api/productAndServe"; |
| | | import {getProductSet} from "@/api/selfProblems/productFile"; |
| | | const userStore = useUserStore() |
| | | const { proxy } = getCurrentInstance(); |
| | | const loading = ref(false); |
| | |
| | | pageNum: 1, |
| | | pageSize: 10, |
| | | companyId: null, |
| | | templateType: 10 |
| | | type: 1, |
| | | itemId: null |
| | | }, |
| | | total: 0, |
| | | dataList: [], |
| | | companyList: [], |
| | | isAdmin: false |
| | | projectList: [], |
| | | isAdmin: false, |
| | | userId: null, |
| | | }); |
| | | |
| | | const { queryParams, total, dataList,companyList, isAdmin } = toRefs(data); |
| | | const { queryParams, total, dataList,companyList, isAdmin, projectList } = toRefs(data); |
| | | const userInfo = ref() |
| | | onMounted(async ()=>{ |
| | | if(userStore.roles.includes('admin')){ |
| | |
| | | data.isAdmin = false |
| | | data.queryParams.companyId = userStore.companyId |
| | | } |
| | | data.userId = userStore.id |
| | | await getList() |
| | | await getProjectList() |
| | | }) |
| | | |
| | | onUnmounted(()=>{ |
| | |
| | | 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> |
| | |
| | | </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 |
| | | // const res = await getStandardTemp(data.queryParams) |
| | | // if(res.code == 200){ |
| | | // console.log(res.data,'data') |
| | | // data.dataList = res.data.list || [] |
| | | // data.total = res.data.total |
| | | // }else{ |
| | | // ElMessage.warning(res.message) |
| | | // } |
| | | // loading.value = false |
| | | loading.value = true |
| | | const res = await getInspection(data.queryParams) |
| | | if(res.code == 200){ |
| | | data.dataList = res.data.list || [] |
| | | data.dataList = data.dataList.map(item => { |
| | | return { |
| | | ...item, |
| | | format: item.filePath ? item.filePath.split('.').pop().toLowerCase():'' |
| | | } |
| | | }) |
| | | data.total = res.data.total |
| | | }else{ |
| | | ElMessage.warning(res.message) |
| | | } |
| | | loading.value = false |
| | | } |
| | | |
| | | const getProjectList = async () => { |
| | | const param = { |
| | | companyId: data.queryParams.companyId, |
| | | userId: data.isAdmin ? null : data.userId |
| | | } |
| | | const res = await getProductSet(param); |
| | | if(res.code === 200){ |
| | | data.projectList = res.data |
| | | // if(res.data && res.data.length >0 ){ |
| | | // data.queryParams.itemId = res.data[0].id |
| | | // } |
| | | }else{ |
| | | ElMessage.warning(res.message) |
| | | } |
| | | |
| | | } |
| | | |
| | | const getCompanyList = async ()=>{ |
| | |
| | | } |
| | | |
| | | const openDialog = (type, value) => { |
| | | dialogRef.value.openDialog(type, value, data.queryParams.companyId, data.isAdmin, data.companyList); |
| | | if(type === 'add' ){ |
| | | if(!data.queryParams.companyId){ |
| | | ElMessage.warning('请选择单位') |
| | | return |
| | | } |
| | | if(!data.queryParams.itemId){ |
| | | ElMessage.warning('请先选择项目!') |
| | | return |
| | | } |
| | | } |
| | | dialogRef.value.openDialog(type, value, data.queryParams.companyId, data.isAdmin, data.companyList, data.queryParams.itemId) |
| | | } |
| | | |
| | | /** 重置新增的表单以及其他数据 */ |
| | |
| | | pageNum: 1, |
| | | pageSize: 10, |
| | | companyId: null, |
| | | templateType: 10 |
| | | type: 1, |
| | | itemId: null |
| | | } |
| | | await getCompanyList() |
| | | await getList() |
| | |
| | | type: 'warning', |
| | | }) |
| | | .then( async() => { |
| | | const res = await delStandardTemp({standardizedTemplateId: val.id}) |
| | | const res = await delInspection(val.id) |
| | | if(res.code == 200){ |
| | | ElMessage.success('数据删除成功') |
| | | await getList() |