| 对比新文件 |
| | |
| | | import request from "@/utils/request"; |
| | | |
| | | //采购申请 |
| | | export function getInspection(params) { |
| | | return request({ |
| | | url: '/process/inspection/list', |
| | | method: 'get', |
| | | params: params |
| | | }) |
| | | } |
| | | |
| | | export function addInspection(data) { |
| | | return request({ |
| | | url: '/process/inspection/insert', |
| | | method: 'post', |
| | | data: data |
| | | }) |
| | | } |
| | | |
| | | export function editInspection(params) { |
| | | return request({ |
| | | url: `/process/inspection/update`, |
| | | method: 'post', |
| | | data: params |
| | | }) |
| | | } |
| | | |
| | | export function delInspection(data) { |
| | | return request({ |
| | | url: `/process/inspection/deleted?inspectionId=${data}`, |
| | | method: 'get' |
| | | }) |
| | | } |
| | | |
| | |
| | | </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>--> |
| | | <!-- <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>--> |
| | | |
| | | <el-form-item label="名称:" prop="templateName"> |
| | | <el-input v-model.trim="state.form.templateName" :disabled="state.title =='查看'" placeholder="名称"></el-input> |
| | | <el-form-item label="名称:" prop="fileName"> |
| | | <el-input v-model.trim="state.form.fileName" :disabled="state.title =='查看'" placeholder="名称"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="文件:" prop="filePath"> |
| | | <el-upload accept=".doc,.docx" :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,.jpg,.jpeg,.png" :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格式文档,尺寸小于5M,最多可上传1份</div> |
| | | <div class="el-upload__tip">支持上传.doc、.docx、.pdf、.jpg、.jpeg、.png格式,尺寸小于5M,最多可上传1份</div> |
| | | </template> |
| | | </el-upload> |
| | | </el-form-item> |
| | |
| | | import {delPic} from "@/api/onlineEducation/banner"; |
| | | import {saveStandardTemp, updateStandardTemp} from "@/api/standardSys/standardSys"; |
| | | import {getDept} from "@/api/qualityObjectives/object"; |
| | | import {addInspection, editInspection} from "@/api/productAndServe"; |
| | | |
| | | const emit = defineEmits(["getList"]); |
| | | const dialogVisible = ref(false) |
| | |
| | | title: '', |
| | | form: { |
| | | id: null, |
| | | templateName: '', |
| | | fileName: '', |
| | | filePath: '', |
| | | format: '', |
| | | companyId: null, |
| | | deptId:null, |
| | | templateType: 2 |
| | | type:2 |
| | | }, |
| | | formRules:{ |
| | | companyId: [{ required: true, message: '请选择企业', trigger: 'blur' }], |
| | | templateName: [{ required: true, message: '请输入名称', trigger: 'blur' }], |
| | | fileName: [{ required: true, message: '请输入名称', trigger: 'blur' }], |
| | | filePath: [{ required: true, validator: checkFiles, trigger: 'blur' }], |
| | | deptId: [{ required: true, message: '请选择部门', trigger: 'blur' }], |
| | | }, |
| | |
| | | if(value.filePath) { |
| | | const obj = { |
| | | url: value.filePath, |
| | | name: '文件' |
| | | name: value.fileName |
| | | } |
| | | state.fileList = [obj] |
| | | } |
| | |
| | | if(valid){ |
| | | if(state.title == '新增'){ |
| | | const {id,...data} = state.form |
| | | const res = await saveStandardTemp(data) |
| | | const res = await addInspection(data) |
| | | if(res.code == 200){ |
| | | ElMessage.success(res.message) |
| | | emit('getList') |
| | |
| | | ElMessage.warning(res.message) |
| | | } |
| | | }else{ |
| | | const res = await updateStandardTemp(state.form) |
| | | const res = await editInspection(state.form) |
| | | if(res.code == 200){ |
| | | ElMessage.success(res.message) |
| | | emit('getList') |
| | |
| | | const handleClose = () => { |
| | | state.form = { |
| | | id: null, |
| | | templateName: '', |
| | | fileName: '', |
| | | filePath: '', |
| | | format: '', |
| | | companyId: null, |
| | | deptId:null, |
| | | templateType: 2 |
| | | type:2 |
| | | } |
| | | state.fileList = [] |
| | | superRef.value.clearValidate(); |
| | |
| | | <!-- 表格数据 --> |
| | | <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" > |
| | |
| | | import useUserStore from "@/store/modules/user"; |
| | | import {getStandardTemp,delStandardTemp} from "@/api/standardSys/standardSys"; |
| | | import { renderAsync } from "docx-preview"; |
| | | import {delInspection, getInspection} from "@/api/productAndServe"; |
| | | const userStore = useUserStore() |
| | | const { proxy } = getCurrentInstance(); |
| | | const loading = ref(false); |
| | |
| | | pageNum: 1, |
| | | pageSize: 10, |
| | | companyId: null, |
| | | templateType: 10 |
| | | type:2 |
| | | }, |
| | | total: 0, |
| | | dataList: [], |
| | |
| | | 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){ |
| | | console.log(res.data,'data') |
| | | 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 getCompanyList = async ()=>{ |
| | |
| | | pageNum: 1, |
| | | pageSize: 10, |
| | | companyId: null, |
| | | templateType: 10 |
| | | type:2 |
| | | } |
| | | 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() |
| | |
| | | <!-- </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 label="名称:" prop="fileName"> |
| | | <el-input v-model.trim="state.form.fileName" :disabled="state.title =='查看'" placeholder="名称"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="文件:" prop="filePath"> |
| | | <el-upload accept=".doc,.docx" :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,.jpg,.jpeg,.png" :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格式文档,尺寸小于5M,最多可上传1份</div> |
| | | <div class="el-upload__tip">支持上传.doc、.docx、.pdf、.jpg、.jpeg、.png格式,尺寸小于5M,最多可上传1份</div> |
| | | </template> |
| | | </el-upload> |
| | | </el-form-item> |
| | |
| | | import {delPic} from "@/api/onlineEducation/banner"; |
| | | import {saveStandardTemp, updateStandardTemp} from "@/api/standardSys/standardSys"; |
| | | import {getDept} from "@/api/qualityObjectives/object"; |
| | | import {addInspection, editInspection} from "@/api/productAndServe"; |
| | | |
| | | const emit = defineEmits(["getList"]); |
| | | const dialogVisible = ref(false) |
| | |
| | | title: '', |
| | | form: { |
| | | id: null, |
| | | templateName: '', |
| | | fileName: '', |
| | | filePath: '', |
| | | format: '', |
| | | companyId: null, |
| | | deptId:null, |
| | | templateType: 2 |
| | | type: 1 |
| | | }, |
| | | formRules:{ |
| | | companyId: [{ required: true, message: '请选择企业', trigger: 'blur' }], |
| | | templateName: [{ required: true, message: '请输入名称', trigger: 'blur' }], |
| | | fileName: [{ required: true, message: '请输入名称', trigger: 'blur' }], |
| | | filePath: [{ required: true, validator: checkFiles, trigger: 'blur' }], |
| | | deptId: [{ required: true, message: '请选择部门', trigger: 'blur' }], |
| | | }, |
| | |
| | | if(value.filePath) { |
| | | const obj = { |
| | | url: value.filePath, |
| | | name: '文件' |
| | | name: value.fileName |
| | | } |
| | | state.fileList = [obj] |
| | | } |
| | |
| | | if(valid){ |
| | | if(state.title == '新增'){ |
| | | const {id,...data} = state.form |
| | | const res = await saveStandardTemp(data) |
| | | const res = await addInspection(data) |
| | | if(res.code == 200){ |
| | | ElMessage.success(res.message) |
| | | emit('getList') |
| | |
| | | ElMessage.warning(res.message) |
| | | } |
| | | }else{ |
| | | const res = await updateStandardTemp(state.form) |
| | | const res = await editInspection(state.form) |
| | | if(res.code == 200){ |
| | | ElMessage.success(res.message) |
| | | emit('getList') |
| | |
| | | const handleClose = () => { |
| | | state.form = { |
| | | id: null, |
| | | templateName: '', |
| | | fileName: '', |
| | | filePath: '', |
| | | format: '', |
| | | companyId: null, |
| | | deptId:null, |
| | | templateType: 2 |
| | | type: 1 |
| | | } |
| | | state.fileList = [] |
| | | superRef.value.clearValidate(); |
| | |
| | | <!-- 表格数据 --> |
| | | <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" > |
| | |
| | | import useUserStore from "@/store/modules/user"; |
| | | import {getStandardTemp,delStandardTemp} from "@/api/standardSys/standardSys"; |
| | | import { renderAsync } from "docx-preview"; |
| | | import {delInspection, getInspection} from "@/api/productAndServe"; |
| | | const userStore = useUserStore() |
| | | const { proxy } = getCurrentInstance(); |
| | | const loading = ref(false); |
| | |
| | | pageNum: 1, |
| | | pageSize: 10, |
| | | companyId: null, |
| | | templateType: 10 |
| | | type: 1 |
| | | }, |
| | | total: 0, |
| | | dataList: [], |
| | |
| | | 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){ |
| | | console.log(res.data,'data') |
| | | 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 getCompanyList = async ()=>{ |
| | |
| | | pageNum: 1, |
| | | pageSize: 10, |
| | | companyId: null, |
| | | templateType: 10 |
| | | type: 1 |
| | | } |
| | | 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() |
| | |
| | | </el-table-column> |
| | | <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="160" > |
| | | <template #default="scope"> |
| | | <div v-if="data.tabName === 'apply'"> |
| | | <div v-if="data.tabName === 'apply' || data.tabName === 'all'"> |
| | | <el-button link type="primary" @click="openDialog('review',scope.row)">查看</el-button> |
| | | <el-button link type="primary" @click="openDialog('edit',scope.row)" v-hasPermi="['sealApply:list:edit']">编辑</el-button> |
| | | <el-button link type="primary" v-if="scope.row.status == 1" @click="openDialog('edit',scope.row)" v-hasPermi="['sealApply:list:edit']">编辑</el-button> |
| | | <el-button link type="danger" @click="handleDelete(scope.row)" v-hasPermi="['sealApply:list:del']">删除</el-button> |
| | | </div> |
| | | <div v-else> |
| | | <div v-if="data.tabName === 'approval'"> |
| | | <el-button link type="primary" @click="openDialog('review',scope.row)">查看</el-button> |
| | | <el-button link type="primary" @click="openApplyDialog(scope.row)" v-hasPermi="['sealApply:list:apply']">审批</el-button> |
| | | </div> |
| | | |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |