From f0c7f4845fb40bb75b2c9eb61a790e9b8ea7401a Mon Sep 17 00:00:00 2001 From: zhangwei <1504152376@qq.com> Date: 星期三, 27 八月 2025 11:25:43 +0800 Subject: [PATCH] 'feat上传附件及预览文件' --- src/views/system/dept/uploadform.vue | 56 +++++++++++++++++++++++++++++++++++++++----------------- 1 files changed, 39 insertions(+), 17 deletions(-) diff --git a/src/views/system/dept/uploadform.vue b/src/views/system/dept/uploadform.vue index f21bd75..18d67cf 100644 --- a/src/views/system/dept/uploadform.vue +++ b/src/views/system/dept/uploadform.vue @@ -27,6 +27,7 @@ zhaobiaowenjianName: "", biangengwenjian: "", fujian: "", // 闄勪欢锛堝彲閫夛紝鏈�澶ч暱搴�512瀛楃锛屽彲涓虹┖锛� + fujianName: "", // 闄勪欢锛堝彲閫夛紝鏈�澶ч暱搴�512瀛楃锛屽彲涓虹┖锛� kaibiaodidian: "" // 寮�鏍囧湴鐐癸紙蹇呭~锛岄暱搴�1-250瀛楃锛� }), isChange: null, @@ -116,6 +117,7 @@ const newFormInline = ref(props.formInline); const validateForm = reactive({ fileList: [], + fileListFile: [], date: "" }); const upload = ref<UploadInstance>(); @@ -159,22 +161,41 @@ fetchCredentials(file); // upload.value!.submit(); }; -const handleChangeFile = file => { - console.log(file); - +const handleChangeFile = async file => { if (file.status !== "ready") return; - // let suffName = file.name.substring(file.name.lastIndexOf(".") + 1); - // const extension = suffName === "pdf"; - // // const isLt10M = file.size / 1024 / 1024 < 10; - // if (!extension) { - // message(`浠呮敮鎸乸df鏍煎紡锛岃涓婁紶pdf`, { - // type: "error" - // }); - // validateForm.fileList = []; - // return false; - // } + // const isLt10M = file.size / 1024 / 1024 < 10; // fetchCredentials(file); - // upload.value!.submit(); + // 杩欓噷搴旇皟鐢ㄤ綘鑷繁鐨勫悗绔帴鍙h幏鍙栦复鏃跺嚟璇� + let res = await getUploadToken(); + if (res.code == 200) { + let keyVal = generateTimestampWithRandom(res.result.DirPath, file.name); + let upUrl = res.result.url; + let upPath = res.result.DirPath; + let formData = new FormData(); + formData.append("policy", res.result.policy); + formData.append( + "x-oss-signature-version", + res.result.x_oss_signature_version + ); + formData.append("x-oss-credential", res.result.x_oss_credential); + formData.append("x-oss-date", res.result.x_oss_date); + // formData.append("Signature", res.result.signature); + formData.append("x-oss-signature", res.result.signature); + formData.append("x-oss-security-token", res.result.security_token); + // formData.append("x-oss-content-type", "application/pdf"); + formData.append("success_action_status", "200"); + formData.append("key", keyVal); // 鏂囦欢鍚� + formData.append("file", file.raw); // file 蹇呴』涓烘渶鍚庝竴涓〃鍗曞煙 + uploadFileAli(formData, res.result.url).then(res => { + let path = `${upUrl}${keyVal}`; + newFormInline.value.fujian += newFormInline.value.fujian + ? `,${path}` + : path; + newFormInline.value.fujianName += newFormInline.value.fujianName + ? `,${file.name}` + : file.name; + }); + } }; // state.formDataNew = { // policy: res.result.policy, //琛ㄥ崟鍩� @@ -267,7 +288,7 @@ </el-row> <el-row v-else :gutter="30"> <div v-if="props.isChange" style="width: 100%"> - <re-col :value="24" :xs="24" :sm="24"> + <!-- <re-col :value="24" :xs="24" :sm="24"> <el-form-item label="鏍囬" prop="projectName"> <el-input v-model="newFormInline.projectName" @@ -275,7 +296,7 @@ placeholder="璇疯緭鍏ユ爣棰�" /> </el-form-item> - </re-col> + </re-col> --> <re-col :value="24" :xs="24" :sm="24"> <el-form-item label="鍙樻洿鏂囦欢" prop="biangengwenjian"> <el-upload @@ -362,7 +383,7 @@ <el-form-item label="闄勪欢" prop=""> <el-upload ref="upload" - v-model:file-list="validateForm.fileList" + v-model:file-list="validateForm.fileListFile" multiple :on-exceed="handleExceed" :auto-upload="false" @@ -393,6 +414,7 @@ .el-date-editor.el-input__wrapper { width: 100%; } + .upload__tip { width: 100%; } -- Gitblit v1.9.1