From cea709ad1c7bd45aa45972174bd528b15bf4ae6b Mon Sep 17 00:00:00 2001
From: yxl <584911253@qq.com>
Date: 星期五, 07 二月 2025 10:51:51 +0800
Subject: [PATCH] 最新代码提交

---
 src/api/api.js                   |    5 
 src/components/Chat/chatList.vue |   32 ++-
 vue.config.js                    |    7 
 package-lock.json                |   10 
 yarn.lock                        |  149 ++++++++++-------
 public/config/config.js          |    3 
 src/utils/serviceRag.js          |   40 +++++
 package.json                     |    2 
 src/views/chartView/index.vue    |  224 ++++++++++++++++++++++-----
 9 files changed, 350 insertions(+), 122 deletions(-)

diff --git a/package-lock.json b/package-lock.json
index c8d5177..cae28b0 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -18,7 +18,7 @@
         "jsencrypt": "^3.3.2",
         "json2md": "^2.0.1",
         "jwchat": "^0.2.3",
-        "marked": "^14.1.2",
+        "marked": "^5.0.0",
         "nanoid": "^5.0.7",
         "vue": "^2.6.11",
         "vue-markdown": "^2.2.4",
@@ -13550,14 +13550,14 @@
       }
     },
     "node_modules/marked": {
-      "version": "14.1.2",
-      "resolved": "https://registry.npmjs.org/marked/-/marked-14.1.2.tgz",
-      "integrity": "sha512-f3r0yqpz31VXiDB/wj9GaOB0a2PRLQl6vJmXiFrniNwjkKdvakqJRULhjFKJpxOchlCRiG5fcacoUZY5Xa6PEQ==",
+      "version": "5.1.2",
+      "resolved": "https://registry.npmmirror.com/marked/-/marked-5.1.2.tgz",
+      "integrity": "sha512-ahRPGXJpjMjwSOlBoTMZAK7ATXkli5qCPxZ21TG44rx1KEo44bii4ekgTDQPNRQ4Kh7JMb9Ub1PVk1NxRSsorg==",
       "bin": {
         "marked": "bin/marked.js"
       },
       "engines": {
-        "node": ">= 18"
+        "node": ">= 16"
       }
     },
     "node_modules/match-at": {
diff --git a/package.json b/package.json
index 63d2010..fb6023e 100644
--- a/package.json
+++ b/package.json
@@ -26,9 +26,9 @@
     "jsencrypt": "^3.3.2",
     "json2md": "^2.0.1",
     "jwchat": "^0.2.3",
-    "marked": "^14.1.2",
     "nanoid": "^5.0.7",
     "vue": "^2.6.11",
+    "marked": "^5.0.0",
     "vue-markdown": "^2.2.4",
     "vue-resource": "^1.5.3",
     "vue-router": "^3.6.5",
diff --git a/public/config/config.js b/public/config/config.js
index 45033b9..89aa040 100644
--- a/public/config/config.js
+++ b/public/config/config.js
@@ -16,8 +16,9 @@
   // apiUrl: "http://103.135.160.14:5381/",0
   // apiUrl: location.origin,
   // apiUrl: "http://192.168.11.194",
-  // apiUrl:"http://103.135.160.14:7800",
+  apiUrl:"http://103.135.160.14:7800",
   apiUrl:"/dev-api",
+  apiRagUrl:"/rag-api",
   imgUrl: webHost + "/image/",
   reportMd: "/Data/Report.md",
   reportDocx: "/Data/Report.docx",
diff --git a/src/api/api.js b/src/api/api.js
index 58fa0ef..8b55a70 100644
--- a/src/api/api.js
+++ b/src/api/api.js
@@ -1,4 +1,5 @@
 import service from "../utils/service.js";
+import serviceRag from '../utils/serviceRag.js'
 export function getAIMessage(params) {
   //璇锋眰鍦板潃
   // return service.get("/v1/chat?message=" + params);
@@ -23,6 +24,10 @@
   return service.post("/api/agent/intention2" ,params);
 }
 
+export function getRagAgentIntention(params){
+  return serviceRag.get("/rag" ,{params:params});
+}
+
 export function getAgentLayerList(params){
   return service.get("/api/agent/layerList" ,{params:params});
 }
diff --git a/src/components/Chat/chatList.vue b/src/components/Chat/chatList.vue
index caa238e..117f048 100644
--- a/src/components/Chat/chatList.vue
+++ b/src/components/Chat/chatList.vue
@@ -111,6 +111,12 @@
                       >
                     </div>
                   </div>
+                  <div v-else-if="res.type == 'stream'">
+                    <div
+                      v-html="res.val"
+                      class="markdown-container"
+                    ></div>
+                  </div>
                   <div v-else-if="res.type == 'table'">
                     <table class="contTable">
                       <thead>
@@ -190,7 +196,7 @@
   arr: [],
   components: {
     VueMarkdown,
-    affairs
+    affairs,
   },
   filters: {
     setWidth(value) {
@@ -202,19 +208,19 @@
         return "99vh";
       }
       return width;
-    }
+    },
   },
   props: {
     pageConfig: {
       type: Object,
       default: () => ({
-        width: "100vw"
-      })
+        width: "100vw",
+      }),
     },
     list: {
       type: Array,
-      default: () => []
-    }
+      default: () => [],
+    },
   },
   data() {
     return {
@@ -223,7 +229,7 @@
       imgSrc: "",
       videoSrc: "",
       audioSrc: "",
-      isDisabled: true
+      isDisabled: true,
     };
   },
   watch: {
@@ -234,7 +240,7 @@
           this.load = false;
         });
       }
-    }
+    },
   },
   mounted() {
     setTimeout(() => {
@@ -256,7 +262,7 @@
     setDownLoadFile(res) {
       // 浣跨敤marked灏哅arkdown杞崲涓篐TML
       const blob = new Blob([res.val], {
-        type: "text/markdown"
+        type: "text/markdown",
       });
       // 浣跨敤HTML5鐨凚lob鐢熸垚閾炬帴锛岃鐢ㄦ埛鍙互涓嬭浇鐢熸垚鐨刉ord鏂囨。
       const link = URL.createObjectURL(blob);
@@ -374,8 +380,8 @@
       this.videoSrc = undefined;
       this.audioSrc = undefined;
       done();
-    }
-  }
+    },
+  },
 };
 </script>
 <style scoped>
@@ -421,6 +427,10 @@
   text-align: center;
   font-size: 14px;
 }
+.markdown-container {
+  padding: 10px;
+  white-space: pre-wrap;
+}
 </style>
 <style scoped>
 .webBody {
diff --git a/src/utils/serviceRag.js b/src/utils/serviceRag.js
new file mode 100644
index 0000000..c643dd6
--- /dev/null
+++ b/src/utils/serviceRag.js
@@ -0,0 +1,40 @@
+import axios from 'axios';
+ 
+// arcgis 鏈嶅姟璇锋眰
+// 鍒涘缓axios瀹炰緥
+const service = axios.create({
+  baseURL: config.apiRagUrl, // api鐨刡ase_url
+  timeout: -1 // 璇锋眰瓒呮椂鏃堕棿
+});
+
+// 璇锋眰鎷︽埅鍣�
+service.interceptors.request.use(
+  config => {
+    // 鍙互鍦ㄨ繖閲屾坊鍔犺姹傚ご绛変俊鎭�
+    config.responseType = 'stream'; // 璁剧疆娴佸紡鍝嶅簲
+    return config;
+  },
+  error => {
+    // 璇锋眰閿欒澶勭悊
+    console.log(error); // for debug
+    Promise.reject(error);
+  }
+);
+
+// 鍝嶅簲鎷︽埅鍣�
+service.interceptors.response.use(
+  response => {
+    // 瀵瑰搷搴旀暟鎹仛澶勭悊锛屼緥濡傚彧杩斿洖data閮ㄥ垎
+    const res = response.data;
+    // 鏍规嵁杩斿洖鐨勭姸鎬佺爜鍋氱浉搴斿鐞嗭紝渚嬪401鏈巿鏉冪瓑
+    return res;
+  },
+  error => {
+    // 鍝嶅簲閿欒澶勭悊
+    // console.log('err' + error.response.status); // for debug
+    
+    return Promise.reject(error);
+  }
+);
+
+export default service;
diff --git a/src/views/chartView/index.vue b/src/views/chartView/index.vue
index 5d12549..a39d1f5 100644
--- a/src/views/chartView/index.vue
+++ b/src/views/chartView/index.vue
@@ -22,12 +22,14 @@
   getAgentIntention,
   getAgentLayerList,
   getAgentThistorySave,
+  getRagAgentIntention,
 } from "../../api/api.js";
 import mapSetFunc from "../../assets/js/mapSetFunc.js";
 import { nanoid } from "nanoid";
 import mapServer from "../../assets/js/map/mapServer.js";
 import mapImg from "../../assets/js/map/mapImg.js";
 import mapModel from "../../assets/js/map/mapModel.js";
+import { marked } from "marked";
 export default {
   name: "jwChat",
 
@@ -260,72 +262,210 @@
         session_id: this.uuid.toString(),
       };
 
-      var obj = {
-        ai: "",
-        create_time: msgData.getDate1(),
-        human: res,
-        sessionid: this.uuid,
-        update_time: "",
-        userid: 0,
-      };
+      if (formData.message.indexOf("@map") > -1) {
+        var obj = {
+          ai: "",
+          create_time: msgData.getDate1(),
+          human: res,
+          sessionid: this.uuid,
+          update_time: "",
+          userid: 0,
+        };
+        getAgentThistorySave(obj).then((response) => {
+          if (response.code == 200) {
+            obj.id = response.id;
+            this.obj = obj;
+          }
+          this.setAgentIntention(obj, formData);
+        });
+      } else {
+        this.setRagAgentIntention(formData);
+      }
 
-      getAgentThistorySave(obj).then((response) => {
-        if (response.code == 200) {
-          obj.id = response.id;
-          this.obj = obj;
-        }
-
-        this.setAgentIntention(obj, formData);
-      });
+      // var obj = {
+      //   ai: "",
+      //   create_time: msgData.getDate1(),
+      //   human: res,
+      //   sessionid: this.uuid,
+      //   update_time: "",
+      //   userid: 0,
+      // };
+      // getAgentThistorySave(obj).then((response) => {
+      //   if (response.code == 200) {
+      //     obj.id = response.id;
+      //     this.obj = obj;
+      //   }
+      //   this.setAgentIntention(obj, formData);
+      // });
     },
     async setAgentIntention(obj, formData) {
       console.log("obj", formData);
-      getAgentIntention(formData)
-        .then((response) => {
-          if (response.code != 200) {
-            if (formData.message != "@map") {
+      if (formData.message.indexOf("@map") > -1) {
+        getAgentIntention(formData)
+          .then((response) => {
+            if (response.code != 200) {
+              if (formData.message != "@map") {
+                var rolMsg = [
+                  {
+                    type: "text",
+                    val: "鏈煡璇㈠埌鐩稿叧淇℃伅銆�",
+                  },
+                ];
+                this.refashMsg(rolMsg);
+              }
+              return;
+            }
+            const type = response.type;
+            //鏅�氬璇濅俊鎭煡璇�
+            if (type == "message" || type == "Rag") {
+              //鍏抽棴鍦板浘
+              if (!this.closeMap) {
+                this.$store.state.setScreenFlag = false;
+              }
               var rolMsg = [
                 {
                   type: "text",
-                  val: "鏈煡璇㈠埌鐩稿叧淇℃伅銆�",
+                  val: type == "Rag" ? response.content : response.msg,
                 },
               ];
               this.refashMsg(rolMsg);
             }
-            return;
-          }
-
-          const type = response.type;
-          //鏅�氬璇濅俊鎭煡璇�
-          if (type == "message" || type == "Rag") {
-            //鍏抽棴鍦板浘
-            if (!this.closeMap) {
-              this.$store.state.setScreenFlag = false;
+            //鍦板浘鏌ヨ
+            else {
+              //鎵撳紑鍦板浘
+              this.$store.state.setScreenFlag = true;
+              this.setMapfunc(response.content, obj);
             }
+          })
+          .catch((error) => {
             var rolMsg = [
               {
                 type: "text",
-                val: type == "Rag" ? response.content : response.msg,
+                val: "鏈煡璇㈠埌鐩稿叧淇℃伅銆�",
               },
             ];
             this.refashMsg(rolMsg);
-          }
-          //鍦板浘鏌ヨ
-          else {
-            //鎵撳紑鍦板浘
-            this.$store.state.setScreenFlag = true;
-            this.setMapfunc(response.content, obj);
-          }
-        })
-        .catch((error) => {
+          });
+      } else {
+        getRagAgentIntention(formData).then((res) => {});
+      }
+      // getAgentIntention(formData)
+      //   .then((response) => {
+      //     if (response.code != 200) {
+      //       if (formData.message != "@map") {
+      //         var rolMsg = [
+      //           {
+      //             type: "text",
+      //             val: "鏈煡璇㈠埌鐩稿叧淇℃伅銆�",
+      //           },
+      //         ];
+      //         this.refashMsg(rolMsg);
+      //       }
+      //       return;
+      //     }
+      //     const type = response.type;
+      //     //鏅�氬璇濅俊鎭煡璇�
+      //     if (type == "message" || type == "Rag") {
+      //       //鍏抽棴鍦板浘
+      //       if (!this.closeMap) {
+      //         this.$store.state.setScreenFlag = false;
+      //       }
+      //       var rolMsg = [
+      //         {
+      //           type: "text",
+      //           val: type == "Rag" ? response.content : response.msg,
+      //         },
+      //       ];
+      //       this.refashMsg(rolMsg);
+      //     }
+      //     //鍦板浘鏌ヨ
+      //     else {
+      //       //鎵撳紑鍦板浘
+      //       this.$store.state.setScreenFlag = true;
+      //       this.setMapfunc(response.content, obj);
+      //     }
+      //   })
+      //   .catch((error) => {
+      //     var rolMsg = [
+      //       {
+      //         type: "text",
+      //         val: "鎶辨瓑锛屾湇鍔″櫒浼间箮鍑轰簡鐐归棶棰橈紝鎴戜滑姝e湪淇涓��",
+      //       },
+      //     ];
+      //     this.refashMsg(rolMsg);
+      //   });
+    },
+    //鏅�氬璇濋棶绛�
+    async setRagAgentIntention(formData) {
+      try {
+        // 鍙戦�佽姹�
+        const params = new URLSearchParams(formData);
+        const url = `/rag-api/rag?${params.toString()}`;
+        let response = await fetch(url, {
+          method: "get",
+          responseType: "stream",
+          headers: {
+            "Content-Type": "application/json",
+          },
+        });
+        // ok瀛楁鍒ゆ柇鏄惁鎴愬姛鑾峰彇鍒版暟鎹祦
+        if (!response.ok) {
           var rolMsg = [
             {
               type: "text",
-              val: "鎶辨瓑锛屾湇鍔″櫒浼间箮鍑轰簡鐐归棶棰橈紝鎴戜滑姝e湪淇涓��",
+              val: "鏈煡璇㈠埌鐩稿叧淇℃伅銆�",
             },
           ];
           this.refashMsg(rolMsg);
-        });
+          return;
+        }
+        // 鐢ㄦ潵鑾峰彇涓�涓彲璇荤殑娴佺殑璇诲彇鍣紙Reader锛変互娴佺殑鏂瑰紡澶勭悊鍝嶅簲浣撴暟鎹�
+        const reader = response.body.getReader();
+        // 灏嗘祦涓殑瀛楄妭鏁版嵁瑙g爜涓烘枃鏈瓧绗︿覆
+        const textDecoder = new TextDecoder();
+        let result = true;
+        let sqlValue = "";
+        while (result) {
+          // done琛ㄧず娴佹槸鍚﹀凡缁忓畬鎴愯鍙�  value鍖呭惈璇诲彇鍒扮殑鏁版嵁鍧�
+          const { done, value } = await reader.read();
+          if (done) {
+            result = false;
+            break;
+          }
+          console.log(textDecoder.decode(value), "鍒嗘杩斿洖鐨勬暟鎹�");
+          sqlValue += textDecoder.decode(value);
+          var rolMsg = [
+            {
+              type: "stream",
+              val: marked(sqlValue),
+            },
+          ];
+          this.refashMsg(rolMsg);
+        }
+        // console.log(sqlValue, "杈撳嚭鎵�鏈夎繑鍥炴暟鎹�");
+      } catch (err) {
+        var rolMsg = [
+          {
+            type: "text",
+            val: "鏈煡璇㈠埌鐩稿叧淇℃伅銆�",
+          },
+        ];
+        this.refashMsg(rolMsg);
+      }
+    },
+    async streamChatResponse(formData) {
+      try {
+        const response = await getRagAgentIntention(formData);
+        return response; // 杩斿洖娴佸搷搴�
+      } catch (error) {
+        var rolMsg = [
+          {
+            type: "text",
+            val: "鏈煡璇㈠埌鐩稿叧淇℃伅銆�",
+          },
+        ];
+        this.refashMsg(rolMsg);
+      }
     },
     setMapfunc(res, obj) {
       this.$store.state.showLenged = false;
diff --git a/vue.config.js b/vue.config.js
index 2a781ef..68085ce 100644
--- a/vue.config.js
+++ b/vue.config.js
@@ -24,6 +24,13 @@
           '^/data-api': ''
         }
       },
+      "/rag-api": {
+        target: 'http://103.135.160.14:6367/',
+        changeOrigin: true,
+        pathRewrite: {
+          '^/rag-api': ''
+        }
+      },
     },
   },
 
diff --git a/yarn.lock b/yarn.lock
index 46efeee..f608c47 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -3080,28 +3080,43 @@
     semver "^6.1.0"
     strip-ansi "^6.0.0"
 
-"@vue/compiler-core@3.5.2":
-  version "3.5.2"
-  resolved "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.2.tgz"
-  integrity sha512-1aP7FL2GkqfcskHWGg3lfWQpJnrmewKc+rNJ/hq9WNaAw4BEyJ5QbNChnqmbw+tJ409zdy1XWmUeXXMrCKJcQQ==
+"@vue/compiler-core@3.5.13":
+  version "3.5.13"
+  resolved "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.5.13.tgz"
+  integrity sha512-oOdAkwqUfW1WqpwSYJce06wvt6HljgY3fGeM9NcVA1HaYOij3mZG9Rkysn0OHuyUAGMbEbARIpsG+LPVlBJ5/Q==
   dependencies:
     "@babel/parser" "^7.25.3"
-    "@vue/shared" "3.5.2"
+    "@vue/shared" "3.5.13"
     entities "^4.5.0"
     estree-walker "^2.0.2"
     source-map-js "^1.2.0"
 
-"@vue/compiler-dom@3.5.2":
-  version "3.5.2"
-  resolved "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.2.tgz"
-  integrity sha512-QY4DpT8ZIUyu/ZA5gErpSEDocGNEbHmpkZIC/d5jbp/rUF0iOJNigAy3HCCKc0PMMhDlrcysO3ufQ6Ab4MpEcQ==
+"@vue/compiler-dom@3.5.13":
+  version "3.5.13"
+  resolved "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.5.13.tgz"
+  integrity sha512-ZOJ46sMOKUjO3e94wPdCzQ6P1Lx/vhp2RSvfaab88Ajexs0AHeV0uasYhi99WPaogmBlRHNRuly8xV75cNTMDA==
   dependencies:
-    "@vue/compiler-core" "3.5.2"
-    "@vue/shared" "3.5.2"
+    "@vue/compiler-core" "3.5.13"
+    "@vue/shared" "3.5.13"
 
-"@vue/compiler-sfc@^3.0.0-beta.14", "@vue/compiler-sfc@2.7.16":
+"@vue/compiler-sfc@^3.0.0-beta.14", "@vue/compiler-sfc@^3.4.15":
+  version "3.5.13"
+  resolved "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.5.13.tgz"
+  integrity sha512-6VdaljMpD82w6c2749Zhf5T9u5uLBWKnVue6XWxprDobftnletJ8+oel7sexFfM3qIxNmVE7LSFGTpv6obNyaQ==
+  dependencies:
+    "@babel/parser" "^7.25.3"
+    "@vue/compiler-core" "3.5.13"
+    "@vue/compiler-dom" "3.5.13"
+    "@vue/compiler-ssr" "3.5.13"
+    "@vue/shared" "3.5.13"
+    estree-walker "^2.0.2"
+    magic-string "^0.30.11"
+    postcss "^8.4.48"
+    source-map-js "^1.2.0"
+
+"@vue/compiler-sfc@2.7.16":
   version "2.7.16"
-  resolved "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-2.7.16.tgz"
+  resolved "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-2.7.16.tgz"
   integrity sha512-KWhJ9k5nXuNtygPU7+t1rX6baZeqOYLEforUPjgNDBnLicfHCoi48H87Q8XyLZOrNNsmhuwKqtpDQWjEFe6Ekg==
   dependencies:
     "@babel/parser" "^7.23.5"
@@ -3110,28 +3125,13 @@
   optionalDependencies:
     prettier "^1.18.2 || ^2.0.0"
 
-"@vue/compiler-sfc@^3.4.15":
-  version "3.5.2"
-  resolved "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.2.tgz"
-  integrity sha512-vErEtybSU290LbMW+ChYllI9tNJEdTW1oU+8cZWINZyjlWeTSa9YqDl4/pZJSnozOI+HmcaC1Vz2eFKmXNSXZA==
+"@vue/compiler-ssr@3.5.13":
+  version "3.5.13"
+  resolved "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.5.13.tgz"
+  integrity sha512-wMH6vrYHxQl/IybKJagqbquvxpWCuVYpoUJfCqFZwa/JY1GdATAQ+TgVtgrwwMZ0D07QhA99rs/EAAWfvG6KpA==
   dependencies:
-    "@babel/parser" "^7.25.3"
-    "@vue/compiler-core" "3.5.2"
-    "@vue/compiler-dom" "3.5.2"
-    "@vue/compiler-ssr" "3.5.2"
-    "@vue/shared" "3.5.2"
-    estree-walker "^2.0.2"
-    magic-string "^0.30.11"
-    postcss "^8.4.44"
-    source-map-js "^1.2.0"
-
-"@vue/compiler-ssr@3.5.2":
-  version "3.5.2"
-  resolved "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.2.tgz"
-  integrity sha512-vMtA4tQK/AM3UAYJsmouQzQpgG+h9TKiD5BV+Zt+ZyAMdicxzSEEFGWf/CykRnDpqj9fMfIHPhOezJVNxiXe2A==
-  dependencies:
-    "@vue/compiler-dom" "3.5.2"
-    "@vue/shared" "3.5.2"
+    "@vue/compiler-dom" "3.5.13"
+    "@vue/shared" "3.5.13"
 
 "@vue/component-compiler-utils@^3.1.0", "@vue/component-compiler-utils@^3.1.2":
   version "3.3.0"
@@ -3154,10 +3154,10 @@
   resolved "https://registry.npmjs.org/@vue/preload-webpack-plugin/-/preload-webpack-plugin-1.1.2.tgz"
   integrity sha512-LIZMuJk38pk9U9Ur4YzHjlIyMuxPlACdBIHH9/nGYVTsaGKOSnSuELiE8vS9wa+dJpIYspYUOqk+L1Q4pgHQHQ==
 
-"@vue/shared@3.5.2":
-  version "3.5.2"
-  resolved "https://registry.npmjs.org/@vue/shared/-/shared-3.5.2.tgz"
-  integrity sha512-Ce89WNFBzcDca/AgFTxgX4/K4iAyF7oFIp8Z5aBbFBNbtpwnQr+5pZOoHndxnjE2h+YFcipVMzs9UL11XB6dwA==
+"@vue/shared@3.5.13":
+  version "3.5.13"
+  resolved "https://registry.npmmirror.com/@vue/shared/-/shared-3.5.13.tgz"
+  integrity sha512-/hnE/qP5ZoGpol0a5mDi45bOd7t3tjYJBjsgCsivow7D48cJeV5l05RD82lPqi7gRiphZM37rnhW1l6ZoCNNnQ==
 
 "@vue/web-component-wrapper@^1.2.0":
   version "1.3.0"
@@ -5468,6 +5468,14 @@
     jsbn "~0.1.0"
     safer-buffer "^2.1.0"
 
+echarts@^5.6.0:
+  version "5.6.0"
+  resolved "https://registry.npmmirror.com/echarts/-/echarts-5.6.0.tgz"
+  integrity sha512-oTbVTsXfKuEhxftHqL5xprgLoc0k7uScAwtryCgWF6hPYFLRwOUHiFmHGCBKP5NPFNkDVopOieyUqYGH8Fa3kA==
+  dependencies:
+    tslib "2.3.0"
+    zrender "5.6.1"
+
 ee-first@1.1.1:
   version "1.1.1"
   resolved "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz"
@@ -5563,7 +5571,7 @@
 
 entities@^4.5.0:
   version "4.5.0"
-  resolved "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz"
+  resolved "https://registry.npmmirror.com/entities/-/entities-4.5.0.tgz"
   integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==
 
 entities@~1.1.1:
@@ -6101,6 +6109,11 @@
   version "2.0.5"
   resolved "https://registry.npmmirror.com/file-saver/-/file-saver-2.0.5.tgz"
   integrity sha512-P9bmyZ3h/PRG+Nzga+rbdI4OEpNDzAVyy74uVO9ATgzLK6VtAsYybF/+TOCvrc0MO793d6+42lLyZTw7/ArVzA==
+
+file-uri-to-path@1.0.0:
+  version "1.0.0"
+  resolved "https://registry.npmmirror.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz"
+  integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==
 
 filesize@^3.6.1:
   version "3.6.1"
@@ -8318,10 +8331,10 @@
     mdurl "~1.0.1"
     uc.micro "^1.0.1"
 
-marked@^14.1.2:
-  version "14.1.2"
-  resolved "https://registry.npmjs.org/marked/-/marked-14.1.2.tgz"
-  integrity sha512-f3r0yqpz31VXiDB/wj9GaOB0a2PRLQl6vJmXiFrniNwjkKdvakqJRULhjFKJpxOchlCRiG5fcacoUZY5Xa6PEQ==
+marked@^5.0.0:
+  version "5.1.2"
+  resolved "https://registry.npmmirror.com/marked/-/marked-5.1.2.tgz"
+  integrity sha512-ahRPGXJpjMjwSOlBoTMZAK7ATXkli5qCPxZ21TG44rx1KEo44bii4ekgTDQPNRQ4Kh7JMb9Ub1PVk1NxRSsorg==
 
 match-at@^0.1.0:
   version "0.1.1"
@@ -8720,10 +8733,10 @@
   resolved "https://registry.npmjs.org/nan/-/nan-2.20.0.tgz"
   integrity sha512-bk3gXBZDGILuuo/6sKtr0DQmSThYHLtNCdSdXk9YkxD/jK6X2vmCyyXBBxyqZ4XcnzTyYEAThfX3DCEnLf6igw==
 
-nanoid@^3.3.7:
-  version "3.3.7"
-  resolved "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz"
-  integrity sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==
+nanoid@^3.3.8:
+  version "3.3.8"
+  resolved "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.8.tgz"
+  integrity sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==
 
 nanoid@^5.0.7:
   version "5.0.7"
@@ -9388,10 +9401,10 @@
   resolved "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz"
   integrity sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==
 
-picocolors@^1.0.0, picocolors@^1.0.1:
-  version "1.1.0"
-  resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.1.0.tgz"
-  integrity sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==
+picocolors@^1.0.0, picocolors@^1.0.1, picocolors@^1.1.1:
+  version "1.1.1"
+  resolved "https://registry.npmmirror.com/picocolors/-/picocolors-1.1.1.tgz"
+  integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==
 
 picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1:
   version "2.3.1"
@@ -9878,14 +9891,14 @@
     picocolors "^0.2.1"
     source-map "^0.6.1"
 
-postcss@^8.4.14, postcss@^8.4.44:
-  version "8.4.45"
-  resolved "https://registry.npmjs.org/postcss/-/postcss-8.4.45.tgz"
-  integrity sha512-7KTLTdzdZZYscUc65XmjFiB73vBhBfbPztCYdUNvlaso9PrzjzcmjqBPR0lNGkcVlcO4BjiO5rK/qNz+XAen1Q==
+postcss@^8.4.14, postcss@^8.4.48:
+  version "8.5.1"
+  resolved "https://registry.npmmirror.com/postcss/-/postcss-8.5.1.tgz"
+  integrity sha512-6oz2beyjc5VMn/KV1pPw8fliQkhBXrVn1Z3TVyqZxU8kZpzEKhBdmCFqI6ZbmGtamQvQGuU1sgPTk8ZrXDD7jQ==
   dependencies:
-    nanoid "^3.3.7"
-    picocolors "^1.0.1"
-    source-map-js "^1.2.0"
+    nanoid "^3.3.8"
+    picocolors "^1.1.1"
+    source-map-js "^1.2.1"
 
 prelude-ls@~1.1.2:
   version "1.1.2"
@@ -10901,10 +10914,10 @@
   resolved "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz"
   integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==
 
-source-map-js@^1.2.0:
-  version "1.2.0"
-  resolved "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz"
-  integrity sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==
+source-map-js@^1.2.0, source-map-js@^1.2.1:
+  version "1.2.1"
+  resolved "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.2.1.tgz"
+  integrity sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==
 
 source-map-resolve@^0.5.0:
   version "0.5.3"
@@ -11541,6 +11554,11 @@
   version "2.7.0"
   resolved "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz"
   integrity sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==
+
+tslib@2.3.0:
+  version "2.3.0"
+  resolved "https://registry.npmmirror.com/tslib/-/tslib-2.3.0.tgz"
+  integrity sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==
 
 tty-browserify@0.0.0:
   version "0.0.0"
@@ -12441,3 +12459,10 @@
     is-ci "^1.0.10"
     normalize-path "^1.0.0"
     strip-indent "^2.0.0"
+
+zrender@5.6.1:
+  version "5.6.1"
+  resolved "https://registry.npmmirror.com/zrender/-/zrender-5.6.1.tgz"
+  integrity sha512-OFXkDJKcrlx5su2XbzJvj/34Q3m6PvyCZkVPHGYpcCJ52ek4U/ymZyfuV1nKE23AyBJ51E/6Yr0mhZ7xGTO4ag==
+  dependencies:
+    tslib "2.3.0"

--
Gitblit v1.9.3