maxiaoxiao 10 bulan lalu
induk
melakukan
1d95e90108
1 mengubah file dengan 64 tambahan dan 47 penghapusan
  1. 64 47
      src/views/aiModel/index.vue

+ 64 - 47
src/views/aiModel/index.vue

@@ -23,10 +23,22 @@
             v-else-if="item.mstatus == 1"
             @click="sendToBackend(item.content, index)"
           ></i>
-          <div class="content" v-if="item.content">
-            <span>{{ item.content }}</span>
+          <div class="content">
+            <audio
+              v-if="item.mp3url"
+              controls
+              autoplay
+              :src="item.mp3url"
+            ></audio>
+            <div>
+              <span>{{ item.content }}</span>
+              <i
+                v-if="item.content"
+                class="el-icon-document-copy"
+                @click="copy(item)"
+              ></i>
+            </div>
           </div>
-          <audio v-else controls autoplay :src="item.mp3url"></audio>
           <div class="header-img">
             <img src="/static/images/aiModel/default.png" />
           </div>
@@ -77,6 +89,7 @@
 </template>
 <script>
 import { AddFzxz } from "../../api/ghss/ghxz.js";
+import { GetMsg, uploadAudio } from "../../api/aiModel.js";
 import record from "./record.js";
 let recognition = null;
 export default {
@@ -155,24 +168,24 @@ export default {
           mp3url: (window.URL || webkitURL).createObjectURL(res.blob),
           mstatus: 0,
         });
+        let mindex = _this.questionList.length - 1;
         /**处理 */
-        axios({
-          method: "POST",
-          url: `${window.aiURI}/upload`,
-          data: res.formData,
-          headers: {
-            "Content-Type": "application/json",
-          },
-        })
-          .then((mres) => {
-            if (mres.status == 200) {
+        uploadAudio(res.formData)
+          .then((ares) => {
+            if (ares.status == 200) {
+              _this.questionList[mindex].content = ares.data.voiceMsg;
+              _this.sendToBackend(ares.data.voiceMsg, mindex);
             } else {
+              _this.$message.error(ares.data.msg);
             }
           })
           .catch(() => {});
       });
       this.spdisabled = false;
     },
+    copy(item) {
+      this.sendContent = item.content;
+    },
     sendDefault() {
       this.sendContent = this.defaultMsg;
       // this.send();
@@ -201,42 +214,17 @@ export default {
     },
     sendToBackend(msg, mindex) {
       this.questionList[mindex].mstatus = 0;
-      axios({
-        method: "POST",
-        url: `${window.aiURI}/msg`,
-        data: JSON.stringify({ msg }),
-        headers: {
-          "Content-Type": "application/json",
-        },
-      })
+      GetMsg(msg)
         .then((mres) => {
           if (mres.status == 200) {
             this.questionList[mindex].mstatus = 2;
             if (mres.data.type == "selectLand") {
-              this.questionList.push({ content: "分析中...请稍等" });
-              const loading = this.$loading({
-                lock: true,
-                text: "分析中",
-                spinner: "el-icon-loading",
-                background: "rgba(0, 0, 0, 0.7)",
-              });
-              AddFzxz(mres.data.data)
-                .then((res) => {
-                  loading.close();
-                  this.questionList.push({
-                    type: mres.data.type,
-                    content: "查看智能选址结果",
-                    data: res.data,
-                  });
-                  this.$message({
-                    message: res.message,
-                    type: res.success ? "success" : "warning",
-                  });
-                })
-                .catch((error) => {
-                  loading.close();
-                  this.$message.error(error);
-                });
+              if (mres.data.data) {
+                this.questionList.push({ content: "分析中...请稍等" });
+                this.AddFzxz(mres.data.data, mres.data.type);
+              }
+            } else {
+              this.questionList.push({ content: "抱歉!缺少分析数据" });
             }
           } else {
             this.questionList[mindex].mstatus = 1;
@@ -248,6 +236,32 @@ export default {
           // this.$message.error("发送到后台时发生错误:");
         });
     },
+    AddFzxz(xzdata, type) {
+      const loading = this.$loading({
+        lock: true,
+        text: "分析中",
+        spinner: "el-icon-loading",
+        background: "rgba(0, 0, 0, 0.7)",
+      });
+      AddFzxz(xzdata)
+        .then((res) => {
+          console.log("xuanz", res);
+          loading.close();
+          this.questionList.push({
+            type,
+            content: "查看智能选址结果",
+            data: res.data,
+          });
+          this.$message({
+            message: res.message,
+            type: res.success ? "success" : "warning",
+          });
+        })
+        .catch((error) => {
+          loading.close();
+          this.$message.error(error);
+        });
+    },
     onClick(item) {
       if (item.type == "selectLand") {
         this.$router.push({
@@ -357,8 +371,8 @@ export default {
     height: 40px;
   }
   audio::-webkit-media-controls-enclosure {
-    background-color: #b6e1ff3b;
-    color: #fff;
+    // background-color: #40a0ff6c;
+    // color: #fff;
   }
 }
 .voice {
@@ -401,6 +415,9 @@ export default {
     font-size: 40px;
     cursor: pointer;
   }
+  .el-icon-warning {
+    color: red;
+  }
   .no {
     color: #2f2f39;
   }