| | |
| | | <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-button type="primary">点击上传</el-button> |
| | | <template #tip> |
| | | <div class="el-upload__tip">支持上传.doc、.docx格式文档,尺寸小于5M,最多可上传1份</div> |
| | | <div class="el-upload__tip">支持上传.doc、.docx格式文档,尺寸小于30M,最多可上传1份</div> |
| | | </template> |
| | | </el-upload> |
| | | </el-form-item> |
| | |
| | | if(value.filePath) { |
| | | const obj = { |
| | | url: value.filePath, |
| | | name: '模板文件' |
| | | name: value.templateName+value.format |
| | | } |
| | | state.fileList = [obj] |
| | | } |
| | |
| | | }); |
| | | } |
| | | const picSize = async (rawFile) => { |
| | | if(rawFile.size / 1024 / 1024 > 5){ |
| | | if(rawFile.size / 1024 / 1024 > 30){ |
| | | ElMessage({ |
| | | type: 'warning', |
| | | message: '文件大小不能超过5M' |
| | | message: '文件大小不能超过30M' |
| | | }); |
| | | return false |
| | | } |
| | |
| | | <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-button type="primary">点击上传</el-button> |
| | | <template #tip> |
| | | <div class="el-upload__tip">支持上传.doc、.docx格式文档,尺寸小于5M,最多可上传1份</div> |
| | | <div class="el-upload__tip">支持上传.doc、.docx格式文档,尺寸小于30M,最多可上传1份</div> |
| | | </template> |
| | | </el-upload> |
| | | </el-form-item> |
| | |
| | | if(value.filePath) { |
| | | const obj = { |
| | | url: value.filePath, |
| | | name: '模板文件' |
| | | name: value.templateName+value.format |
| | | } |
| | | state.fileList = [obj] |
| | | } |
| | |
| | | }); |
| | | } |
| | | const picSize = async (rawFile) => { |
| | | if(rawFile.size / 1024 / 1024 > 5){ |
| | | if(rawFile.size / 1024 / 1024 > 30){ |
| | | ElMessage({ |
| | | type: 'warning', |
| | | message: '文件大小不能超过5M' |
| | | message: '文件大小不能超过30M' |
| | | }); |
| | | return false |
| | | } |
| | |
| | | <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格式文档,尺寸小于5M,最多可上传1份</div> |
| | | <div class="el-upload__tip">支持上传.doc、.docx、.pdf格式文档,尺寸小于30M,最多可上传1份</div> |
| | | </template> |
| | | </el-upload> |
| | | </el-form-item> |
| | |
| | | if(value.filePath) { |
| | | const obj = { |
| | | url: value.filePath, |
| | | name: '模板文件' |
| | | name: value.templateName+value.format |
| | | } |
| | | state.fileList = [obj] |
| | | } |
| | |
| | | }); |
| | | } |
| | | const picSize = async (rawFile) => { |
| | | if(rawFile.size / 1024 / 1024 > 5){ |
| | | if(rawFile.size / 1024 / 1024 > 30){ |
| | | ElMessage({ |
| | | type: 'warning', |
| | | message: '文件大小不能超过5M' |
| | | message: '文件大小不能超过30M' |
| | | }); |
| | | return false |
| | | } |
| | |
| | | <!-- 表格数据 --> |
| | | <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="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"> |
| | | <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.templateName + scope.row.format}}</el-link> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="操作" align="center" class-name="small-padding fixed-width" > |
| | |
| | | <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="industryTypeId"> |
| | | <el-select v-model="state.form.industryTypeId" filterable placeholder="请选择" clearable> |
| | | <el-option |
| | | v-for="item in state.typeList" |
| | | :key="item.id" |
| | | style="width: 100%" |
| | | :label="item.name" |
| | | :value="item.id"> |
| | | </el-option> |
| | | </el-select> |
| | | </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-button type="primary">点击上传</el-button> |
| | | <template #tip> |
| | | <div class="el-upload__tip">支持上传.doc、.docx格式文档,尺寸小于5M,最多可上传1份</div> |
| | | <div class="el-upload__tip">支持上传.doc、.docx格式文档,尺寸小于30M,最多可上传1份</div> |
| | | </template> |
| | | </el-upload> |
| | | </el-form-item> |
| | |
| | | filePath: '', |
| | | format: '', |
| | | companyId: null, |
| | | industryTypeId: null, |
| | | industryTypeName: '', |
| | | deptId:null, |
| | | templateType: 2 |
| | | }, |
| | |
| | | templateName: [{ required: true, message: '请输入模板名称', trigger: 'blur' }], |
| | | filePath: [{ required: true, validator: checkFiles, trigger: 'blur' }], |
| | | deptId: [{ required: true, message: '请选择部门', trigger: 'blur' }], |
| | | industryTypeId: [{ required: true, message: '请选择行业类别', trigger: 'blur' }] |
| | | }, |
| | | isAdmin: false, |
| | | companyList: [], |
| | |
| | | }, |
| | | fileLimit: 1, |
| | | fileList: [], |
| | | deptList: [] |
| | | deptList: [], |
| | | typeList: [] |
| | | }) |
| | | onMounted(() => { |
| | | |
| | | }); |
| | | |
| | | const openDialog = async (type, value,companyId, isAdmin, companyList) => { |
| | | const openDialog = async (type, value,companyId, isAdmin, companyList,typeList) => { |
| | | state.isAdmin = isAdmin |
| | | if(isAdmin){ |
| | | state.companyList = companyList |
| | | } |
| | | state.typeList = typeList |
| | | state.title = type === 'add' ? '新增' : type ==='edit' ? '编辑' : '查看' |
| | | state.form.companyId = companyId |
| | | if(state.title == '编辑'||state.title == '查看'){ |
| | |
| | | if(value.filePath) { |
| | | const obj = { |
| | | url: value.filePath, |
| | | name: '模板文件' |
| | | name: value.templateName+value.format |
| | | } |
| | | state.fileList = [obj] |
| | | } |
| | |
| | | const onSubmit = async () => { |
| | | const valid = await superRef.value.validate(); |
| | | if(valid){ |
| | | state.form.industryTypeName = state.typeList.find(i=>i.id == state.form.industryTypeId)?.name || '' |
| | | if(state.title == '新增'){ |
| | | const {id,...data} = state.form |
| | | const res = await saveStandardTemp(data) |
| | |
| | | }); |
| | | } |
| | | const picSize = async (rawFile) => { |
| | | if(rawFile.size / 1024 / 1024 > 5){ |
| | | if(rawFile.size / 1024 / 1024 > 30){ |
| | | ElMessage({ |
| | | type: 'warning', |
| | | message: '文件大小不能超过5M' |
| | | message: '文件大小不能超过30M' |
| | | }); |
| | | return false |
| | | } |
| | |
| | | filePath: '', |
| | | format: '', |
| | | companyId: null, |
| | | industryTypeId: null, |
| | | industryTypeName: '', |
| | | deptId:null, |
| | | templateType: 2 |
| | | } |
| | |
| | | <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="industryTypeName" 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> |
| | |
| | | import useUserStore from "@/store/modules/user"; |
| | | import {getStandardTemp,delStandardTemp} from "@/api/standardSys/standardSys"; |
| | | import { renderAsync } from "docx-preview"; |
| | | import {getIndustryPage} from "@/api/system/industry"; |
| | | const userStore = useUserStore() |
| | | const { proxy } = getCurrentInstance(); |
| | | const loading = ref(false); |
| | |
| | | total: 0, |
| | | dataList: [], |
| | | companyList: [], |
| | | typeList: [], |
| | | isAdmin: false |
| | | }); |
| | | |
| | |
| | | data.queryParams.companyId = userStore.companyId |
| | | } |
| | | await getList() |
| | | await getTypeList() |
| | | }) |
| | | |
| | | onUnmounted(()=>{ |
| | |
| | | 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{ |
| | |
| | | } |
| | | } |
| | | |
| | | const getTypeList = async () => { |
| | | const res = await getIndustryPage({pageNum: 1, |
| | | pageSize: 999, |
| | | companyId: data.queryParams.companyId}) |
| | | if(res.code == 200){ |
| | | data.typeList = res.data.list |
| | | }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); |
| | | dialogRef.value.openDialog(type, value, data.queryParams.companyId, data.isAdmin, data.companyList, data.typeList); |
| | | } |
| | | |
| | | /** 重置新增的表单以及其他数据 */ |