lxr 18 часов назад
Родитель
Сommit
50499e17ba
1 измененных файлов с 80 добавлено и 6 удалено
  1. 80 6
      HBuilderProjects/shareAiConsult.html

+ 80 - 6
HBuilderProjects/shareAiConsult.html

@@ -375,8 +375,6 @@
       var WX_GET_CONFIG_SIGN_URL = H5_PAGE_BASE_FALLBACK + "shareAiConsult.html";
       var WX_GET_CONFIG_SIGN_URL = H5_PAGE_BASE_FALLBACK + "shareAiConsult.html";
       var WECHAT_JS_SAFE_HOSTS = ["uat.ailien.shop", "prod.ailien.shop"];
       var WECHAT_JS_SAFE_HOSTS = ["uat.ailien.shop", "prod.ailien.shop"];
       var APP_ANDROID_PACKAGE = "com.alien.Udianzaizhe";
       var APP_ANDROID_PACKAGE = "com.alien.Udianzaizhe";
-      var APP_DOWNLOAD_URL =
-        "https://a.app.qq.com/o/simple.jsp?pkgname=com.alien.Udianzaina";
       var APP_IOS_URL_SCHEME = "shopro://";
       var APP_IOS_URL_SCHEME = "shopro://";
       var APP_UNI_AI_PATH = "pages/aiSearchResult/index";
       var APP_UNI_AI_PATH = "pages/aiSearchResult/index";
       var AI_LEGAL_CONVERSATION_API =
       var AI_LEGAL_CONVERSATION_API =
@@ -511,6 +509,49 @@
         return { sessionId: sessionId, userId: userId, type: type };
         return { sessionId: sessionId, userId: userId, type: type };
       }
       }
 
 
+      function parseMessageIdsFromQuery() {
+        var raw = String(q("message_ids") || q("messageIds") || "").trim();
+        if (!raw) return null;
+        return raw
+          .split(",")
+          .map(function (s) {
+            return String(s || "").trim();
+          })
+          .filter(Boolean);
+      }
+
+      function normalizeHistoryRowImageUrls(item) {
+        var raw = item.image_urls || item.imageUrls || item.images;
+        if (Array.isArray(raw)) {
+          return raw
+            .map(function (u) {
+              return String(u || "").trim();
+            })
+            .filter(Boolean);
+        }
+        if (typeof raw === "string" && raw.trim()) {
+          return raw
+            .split(",")
+            .map(function (s) {
+              return s.trim();
+            })
+            .filter(Boolean);
+        }
+        return [];
+      }
+
+      function filterConversationMessagesByIds(messages, idList) {
+        if (!Array.isArray(idList) || !idList.length) return messages;
+        var idSet = {};
+        for (var i = 0; i < idList.length; i++) {
+          idSet[String(idList[i])] = true;
+        }
+        return (Array.isArray(messages) ? messages : []).filter(function (msg) {
+          if (!msg || msg.id == null || msg.id === "") return false;
+          return !!idSet[String(msg.id)];
+        });
+      }
+
       function getConversationApiBase(type) {
       function getConversationApiBase(type) {
         return String(type || "").trim() === "1"
         return String(type || "").trim() === "1"
           ? AI_UBAO_CONVERSATION_API
           ? AI_UBAO_CONVERSATION_API
@@ -577,6 +618,7 @@
           var item = rawList[i];
           var item = rawList[i];
           if (!item || typeof item !== "object") continue;
           if (!item || typeof item !== "object") continue;
 
 
+          var msgId = item.id != null ? item.id : item.message_id;
           var role = normalizeConversationRole(
           var role = normalizeConversationRole(
             item.role || item.sender || item.messageRole || item.type || item.messageType || item.senderType
             item.role || item.sender || item.messageRole || item.type || item.messageType || item.senderType
           );
           );
@@ -604,11 +646,24 @@
             content = String(item.aiMessage || item.assistantMessage).trim();
             content = String(item.aiMessage || item.assistantMessage).trim();
           }
           }
 
 
+          var imageUrls = normalizeHistoryRowImageUrls(item);
+          if (imageUrls.length) {
+            messages.push({
+              id: msgId,
+              role: role || "user",
+              isImage: true,
+              imageUrl: imageUrls[0],
+              content: content,
+            });
+            continue;
+          }
+
           if (!content) continue;
           if (!content) continue;
 
 
           var imageUrl = item.imageUrl || item.image || item.imgUrl || item.url;
           var imageUrl = item.imageUrl || item.image || item.imgUrl || item.url;
           if (imageUrl && /^(https?:)?\/\//i.test(String(imageUrl))) {
           if (imageUrl && /^(https?:)?\/\//i.test(String(imageUrl))) {
             messages.push({
             messages.push({
+              id: msgId,
               role: role || "user",
               role: role || "user",
               isImage: true,
               isImage: true,
               imageUrl: String(imageUrl),
               imageUrl: String(imageUrl),
@@ -617,6 +672,7 @@
           }
           }
 
 
           messages.push({
           messages.push({
+            id: msgId,
             role: role || (messages.length % 2 === 0 ? "user" : "ai"),
             role: role || (messages.length % 2 === 0 ? "user" : "ai"),
             content: content,
             content: content,
           });
           });
@@ -683,9 +739,17 @@
           return;
           return;
         }
         }
 
 
+        var filterIds = parseMessageIdsFromQuery();
         main.innerHTML = '<div class="empty">对话内容加载中…</div>';
         main.innerHTML = '<div class="empty">对话内容加载中…</div>';
         fetchConversationHistory(params.sessionId, params.userId, params.type)
         fetchConversationHistory(params.sessionId, params.userId, params.type)
           .then(function (data) {
           .then(function (data) {
+            if (filterIds && filterIds.length) {
+              var filtered = filterConversationMessagesByIds(data.messages, filterIds);
+              if (!filtered.length) {
+                throw new Error("未找到所选对话内容");
+              }
+              data = Object.assign({}, data, { messages: filtered });
+            }
             render(data);
             render(data);
           })
           })
           .catch(function (e) {
           .catch(function (e) {
@@ -752,6 +816,13 @@
                 '<div class="row row--user"><div class="user-bubble"><img class="user-bubble__image" src="' +
                 '<div class="row row--user"><div class="user-bubble"><img class="user-bubble__image" src="' +
                 escHtml(msg.imageUrl) +
                 escHtml(msg.imageUrl) +
                 '" alt="图片" loading="lazy" decoding="async" /></div></div>';
                 '" alt="图片" loading="lazy" decoding="async" /></div></div>';
+              var imageUserText = String(msg.content || "").trim();
+              if (imageUserText) {
+                html +=
+                  '<div class="row row--user"><div class="user-bubble">' +
+                  escHtml(imageUserText) +
+                  "</div></div>";
+              }
               continue;
               continue;
             }
             }
             var userText = String(msg.content || "").trim();
             var userText = String(msg.content || "").trim();
@@ -1306,7 +1377,7 @@
           // }
           // }
 
 
           if (/launch:fail/i.test(errMsg) && !getWxShareEntryFrom()) {
           if (/launch:fail/i.test(errMsg) && !getWxShareEntryFrom()) {
-            showDownloadTip();
+            showAppOpenFailTip("请前往应用商店下载U店在哪app");
             return;
             return;
           }
           }
 
 
@@ -1385,7 +1456,12 @@
       }
       }
 
 
       function showDownloadTip() {
       function showDownloadTip() {
-        window.location.href = APP_DOWNLOAD_URL;
+        var msg = "请到应用商店下载「U店在哪」";
+        if (typeof uni !== "undefined" && typeof uni.showToast === "function") {
+          uni.showToast({ title: msg, icon: "none", duration: 2500 });
+        } else {
+          window.alert(msg);
+        }
       }
       }
 
 
       function showAppOpenFailTip(msg) {
       function showAppOpenFailTip(msg) {
@@ -1466,9 +1542,7 @@
         }
         }
 
 
         window.setTimeout(function () {
         window.setTimeout(function () {
-          if (done) return;
           finish();
           finish();
-          showDownloadTip();
         }, 3200);
         }, 3200);
       }
       }