lex 3 years ago
parent
commit
651b6c6e12
1 changed files with 45 additions and 7 deletions
  1. 45 7
      src/views/massMessage/operation.vue

+ 45 - 7
src/views/massMessage/operation.vue

@@ -123,6 +123,7 @@
 import dayjs from "dayjs";
 import Header from "@/components/header";
 import SelectGroup from "./selectGroup";
+import qs from "qs";
 import { uploadFile } from "@/api/app";
 import {
   imSendGroupMessageSend,
@@ -130,6 +131,7 @@ import {
   imSendGroupMessageUpdate,
   policy,
 } from "./api";
+import axios from "axios";
 export default {
   name: "operation",
   components: { Header, SelectGroup },
@@ -157,6 +159,15 @@ export default {
         sendTime: query.sendTime || "",
         targetIds: targetIds || "",
       },
+      ossUploadUrl: "https://ks3-cn-beijing.ksyuncs.com/daya",
+      dataObj: {
+        policy: "",
+        signature: "",
+        key: "",
+        KSSAccessKeyId: "",
+        acl: "public-read",
+        name: "",
+      },
     };
   },
   methods: {
@@ -185,11 +196,15 @@ export default {
     },
     async afterRead(file) {
       // 上传头像
-
+      // console.log(file);
+      const form = this.form;
       try {
-        let fileName = file.name.replaceAll(" ", "_");
+        file.status = "uploading";
+        file.message = "上传中...";
+        let tempName = file.file.name || "";
+        const fileName = tempName && tempName.replace(/ /gi, "_");
         let key = new Date().getTime() + fileName;
-        let obj = {
+        let objTemp = {
           filename: fileName,
           bucketName: this.bucket_name,
           postData: {
@@ -200,8 +215,8 @@ export default {
           },
         };
 
-        const res = await policy(obj);
-        this.dataObj = {
+        const res = await policy(objTemp);
+        const obj = {
           policy: res.data.policy,
           signature: res.data.signature,
           key: key,
@@ -209,15 +224,38 @@ export default {
           acl: "public-read",
           name: fileName,
         };
-      } catch {
+
+        let formData = new FormData();
+        for (let key in obj) {
+          formData.append(key, obj[key]);
+        }
+        formData.append("file", file.file);
+        await axios({
+          method: "post",
+          url: this.ossUploadUrl,
+          data: formData,
+        });
+        const uploadUrl = this.ossUploadUrl + "/" + key;
+        file.status = "done";
+        form.fileName = file.file.name;
+        form.fileUrl = uploadUrl;
+        form.messageType = this.onCheckFileType(file.file.type);
+
+        // console.log(form);
+      } catch (e) {
         //
+        file.status = "failed";
+        file.message = "上传失败";
+        form.fileName = "";
+        form.fileUrl = "";
+        return false;
       }
       // this.$toast.loading({
       //   duration: 0,
       //   forbidClick: true,
       //   message: "上传中...",
       // });
-      // const form = this.form;
+      //
       // try {
       //   file.status = "uploading";
       //   file.message = "上传中...";