From 5b6c4c659710814ea5f59dcab8ac64ddd8acfe6f Mon Sep 17 00:00:00 2001 From: zhouwx <1175765986@qq.com> Date: 星期四, 03 七月 2025 14:08:44 +0800 Subject: [PATCH] 模板导入 --- src/views/build/conpanyFunctionConsult/industryTemplate/components/editDialog.vue | 79 ++++++++++++++++++++++++++++++++------- 1 files changed, 64 insertions(+), 15 deletions(-) diff --git a/src/views/build/conpanyFunctionConsult/industryTemplate/components/editDialog.vue b/src/views/build/conpanyFunctionConsult/industryTemplate/components/editDialog.vue index 79b1e9c..6c640b6 100644 --- a/src/views/build/conpanyFunctionConsult/industryTemplate/components/editDialog.vue +++ b/src/views/build/conpanyFunctionConsult/industryTemplate/components/editDialog.vue @@ -3,22 +3,42 @@ <el-dialog v-model="dialogVisible" :title="state.title" - width="700px" + width="600px" :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 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="industryType"> - <el-select v-model="state.form.industryType" placeholder="请选择" clearable> - <el-option key="1" label="化工" :value="1"></el-option> - <el-option key="2" label="安防" :value="2"></el-option> + <el-form-item v-if="state.isAdmin" label="企业:" prop="companyId"> + <el-select v-model="state.form.companyId" placeholder="请选择" clearable style="width: 100%"> + <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="filePath"> + <el-form-item label="章节:" prop="chapter"> + <el-input v-model.trim="state.form.chapter" :disabled="state.title =='查看'" placeholder="章节"></el-input> + </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="type"> + <el-input v-model.trim="state.form.type" :disabled="state.title =='查看'" placeholder="分类"></el-input> + </el-form-item> + <el-form-item label="行业:" prop="industryType"> + <el-select v-model="state.form.industryType" placeholder="请选择" clearable style="width: 100%"> + <el-option + v-for="item in state.industryList" + :key="item.id" + :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> @@ -45,6 +65,7 @@ import {addIndustryTemp, updateIndustryTemp, updateInfoPlatforms} from "@/api/staffManage/staff"; import {getToken} from "@/utils/auth"; import {delPic} from "@/api/onlineEducation/banner"; +import {getIndustry} from "@/api/system/industry"; const emit = defineEmits(["getList"]); const dialogVisible = ref(false) @@ -63,14 +84,23 @@ templateName: '', industryType: '', filePath: '', + fileName: '', format: '', - companyId: null + companyId: null, + type: '', + chapter: '' }, formRules:{ - templateName: [{ required: true, message: '请输入模板名称', trigger: 'blur' }], + companyId: [{ required: true, message: '请选择企业', trigger: 'blur' }], + templateName: [{ required: true, message: '请输入文件记录', trigger: 'blur' }], industryType: [{ required: true, message: '请选择行业类型', trigger: 'blur' }], - filePath: [{ required: true, validator: checkFiles, trigger: 'blur' }] + filePath: [{ required: true, validator: checkFiles, trigger: 'blur' }], + chapter: [{ required: true, message: '请输入章节', trigger: 'blur' }], + type: [{ required: true, message: '请输入分类', trigger: 'blur' }], }, + isAdmin: false, + companyList: [], + industryList: [], uploadUrl: import.meta.env.VITE_APP_BASE_API + '/system/common/uploadFile', header: { Authorization: getToken() @@ -82,9 +112,14 @@ }); -const openDialog = async (type, value,companyId) => { +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 + await getIndustryList() if(state.title == '编辑'||state.title == '查看'){ Object.keys(state.form).forEach(key => { if (key in value) { @@ -94,7 +129,7 @@ if(value.filePath) { const obj = { url: value.filePath, - name: '模板文件' + name: value.fileName } state.fileList = [obj] } @@ -103,6 +138,14 @@ } +const getIndustryList = async () => { + const res = await getIndustry() + if(res.code == 200){ + state.industryList = res.data.data + }else{ + ElMessage.warning(res.message) + } +} const onSubmit = async () => { const valid = await superRef.value.validate(); if(valid){ @@ -133,6 +176,7 @@ const handleAvatarSuccess = (res, uploadFile) => { if(res.code == 200){ + state.form.fileName = res.data.originName state.form.filePath = res.data.path state.form.format = '.' + res.data.filename.split('.')[1] }else{ @@ -169,6 +213,7 @@ // }) state.form.filePath = '' state.form.format = '' + state.form.fileName = '' }else{ ElMessage({ type: 'warning', @@ -186,9 +231,13 @@ templateName: '', industryType: '', filePath: '', + fileName: '', format: '', - companyId: null + companyId: null, + type: '', + chapter: '' } + state.fileList = [] superRef.value.clearValidate(); superRef.value.resetFields() dialogVisible.value = false; -- Gitblit v1.9.2