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