From e6655dd36c88235af7af5a03cfaa4d35fc50b3fd Mon Sep 17 00:00:00 2001 From: luke Date: Thu, 22 May 2025 07:23:32 +0800 Subject: [PATCH] init --- .gitignore | 1 + icon.png | Bin 0 -> 8027 bytes manifest.json | 15 +++++++++++++ popup.html | 16 ++++++++++++++ popup.js | 52 +++++++++++++++++++++++++++++++++++++++++++++ styles.css | 57 ++++++++++++++++++++++++++++++++++++++++++++++++++ 6 files changed, 141 insertions(+) create mode 100644 .gitignore create mode 100644 icon.png create mode 100644 manifest.json create mode 100644 popup.html create mode 100644 popup.js create mode 100644 styles.css diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..85e7c1d --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +/.idea/ diff --git a/icon.png b/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..a1bbb5cc6a0932b6c33bd74a0e1c411468f70554 GIT binary patch literal 8027 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 literal 0 HcmV?d00001 diff --git a/manifest.json b/manifest.json new file mode 100644 index 0000000..9d3e2be --- /dev/null +++ b/manifest.json @@ -0,0 +1,15 @@ +{ + "manifest_version": 3, + "name": "知识库搜索助手", + "version": "1.0", + "description": "通过关键词从企业知识库中搜索内容。", + "permissions": [], + "action": { + "default_popup": "popup.html", + "default_icon": { + "16": "icon.png", + "48": "icon.png", + "128": "icon.png" + } + } +} diff --git a/popup.html b/popup.html new file mode 100644 index 0000000..dab443f --- /dev/null +++ b/popup.html @@ -0,0 +1,16 @@ + + + + + 知识库搜索助手 + + + +
+ + +
    +
    + + + diff --git a/popup.js b/popup.js new file mode 100644 index 0000000..b8aa955 --- /dev/null +++ b/popup.js @@ -0,0 +1,52 @@ +document.getElementById("searchBtn").addEventListener("click", async () => { + const input = document.getElementById("searchInput").value.trim(); + const resultBox = document.getElementById("results"); + resultBox.innerHTML = ""; + + if (!input) return; + + const keywords = input.split(/\s+/).filter(Boolean); + const keywordGroups = keywords.map(k => [k]); + + try { + const response = await fetch("http://app.wisdompulse.cn/search", { + method: "POST", + headers: { + "Content-Type": "application/json" + }, + body: JSON.stringify({ + keywordGroups, + page: 1, + size: 10 + }) + }); + + const data = await response.json(); + + if (!data.results || data.results.length === 0) { + resultBox.innerHTML = "
  • 未找到相关文档
  • "; + return; + } + + data.results.forEach(doc => { + const li = document.createElement("li"); + + const link = document.createElement("a"); + link.href = `http://app.wisdompulse.cn/html/${doc.filepath}`; + link.target = "_blank"; + link.textContent = doc.filename; + + const snippet = document.createElement("div"); + snippet.className = "summary"; + snippet.innerHTML = doc.summary?.slice(0, 300) + "..."; + + li.appendChild(link); + li.appendChild(snippet); + resultBox.appendChild(li); + }); + + } catch (err) { + console.error("搜索失败", err); + resultBox.innerHTML = "
  • 搜索失败,请检查网络或服务状态。
  • "; + } +}); diff --git a/styles.css b/styles.css new file mode 100644 index 0000000..4607a85 --- /dev/null +++ b/styles.css @@ -0,0 +1,57 @@ +body { + font-family: Arial, sans-serif; + width: 320px; + padding: 10px; + background-color: #f9f9f9; +} + +.container { + display: flex; + flex-direction: column; +} + +input { + padding: 8px; + margin-bottom: 8px; + border: 1px solid #ccc; + border-radius: 4px; +} + +button { + padding: 8px; + background-color: #007bff; + color: white; + border: none; + border-radius: 4px; + cursor: pointer; +} + +button:hover { + background-color: #0056b3; +} + +#results { + list-style: none; + padding: 0; + margin-top: 10px; +} + +#results li { + margin-bottom: 12px; +} + +#results a { + font-weight: bold; + color: #007bff; + text-decoration: none; +} + +#results a:hover { + text-decoration: underline; +} + +#results .summary { + font-size: 12px; + color: #555; + margin-top: 4px; +}