|
|
@@ -23,7 +23,8 @@
|
|
|
<icon-svg name="connection_guide" size="16px" />
|
|
|
<span>接入指南</span>
|
|
|
</button>
|
|
|
- <button type="button" class="home-hero-btn home-hero-btn-secondary" @click="router.push({ name: 'mcpOnlineTest' })">
|
|
|
+ <button type="button" class="home-hero-btn home-hero-btn-secondary"
|
|
|
+ @click="router.push({ name: 'mcpOnlineTest' })">
|
|
|
<icon-svg name="effect_experience" size="16px" />
|
|
|
<span>效果体验</span>
|
|
|
</button>
|
|
|
@@ -202,6 +203,13 @@
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
+ <div class="home-scenes-demo-preview">
|
|
|
+ <img
|
|
|
+ :src="demoCaseImages[activeDemoQuestion]"
|
|
|
+ :alt="demoQuestions[activeDemoQuestion]"
|
|
|
+ class="home-scenes-demo-preview-img"
|
|
|
+ />
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</section>
|
|
|
@@ -251,7 +259,8 @@
|
|
|
<div class="home-guide-token-icons">
|
|
|
<icon-svg :name="guideTokenVisible ? 'eye_not_displayed' : 'eye_show'" size="24px"
|
|
|
class="home-guide-token-icon" @click="guideTokenVisible = !guideTokenVisible" />
|
|
|
- <icon-svg name="copy_close_icon" size="14px" class="home-guide-token-icon" @click="copyText(guideToken)" />
|
|
|
+ <icon-svg name="copy_close_icon" size="14px" class="home-guide-token-icon"
|
|
|
+ @click="copyText(guideToken)" />
|
|
|
</div>
|
|
|
</div>
|
|
|
<button type="button" class="home-guide-token-btn" @click="createToken">
|
|
|
@@ -378,11 +387,28 @@
|
|
|
</div>
|
|
|
<pre class="home-guide-code-pre"><span class="code-punct">{</span>
|
|
|
<span class="code-key">"mcpServers"</span><span class="code-punct">:</span> <span class="code-punct">{</span>
|
|
|
- <span class="code-key">"hpyzs-mcp"</span><span class="code-punct">:</span> <span class="code-punct">{</span>
|
|
|
- <span class="code-key">"url"</span><span class="code-punct">:</span> <span class="code-string">"http://www.eiacloud.cn:9010/mcp"</span><span class="code-punct">,</span>
|
|
|
- <span class="code-key">"type"</span><span class="code-punct">:</span> <span class="code-string">"http"</span><span class="code-punct">,</span>
|
|
|
+ <span class="code-key">"hpyzs-law-keyword"</span><span class="code-punct">:</span> <span class="code-punct">{</span>
|
|
|
+ <span class="code-key">"url"</span><span class="code-punct">:</span> <span class="code-string">"https://mcp.eiacloud.com/law-keyword"</span><span class="code-punct">,</span>
|
|
|
+ <span class="code-key">"headers"</span><span class="code-punct">:</span> <span class="code-punct">{</span>
|
|
|
+ <span class="code-key">"Authorization"</span><span class="code-punct">:</span> <span class="code-string">"Bearer sk-2fb2189e85b34845aaab9c9784f0388e"</span>
|
|
|
+ <span class="code-punct">}</span>
|
|
|
+ <span class="code-punct">},</span>
|
|
|
+ <span class="code-key">"hpyzs-law-semantic"</span><span class="code-punct">:</span> <span class="code-punct">{</span>
|
|
|
+ <span class="code-key">"url"</span><span class="code-punct">:</span> <span class="code-string">"https://mcp.eiacloud.com/law-semantic"</span><span class="code-punct">,</span>
|
|
|
+ <span class="code-key">"headers"</span><span class="code-punct">:</span> <span class="code-punct">{</span>
|
|
|
+ <span class="code-key">"Authorization"</span><span class="code-punct">:</span> <span class="code-string">"Bearer sk-2fb2189e85b34845aaab9c9784f0388e"</span>
|
|
|
+ <span class="code-punct">}</span>
|
|
|
+ <span class="code-punct">},</span>
|
|
|
+ <span class="code-key">"hpyzs-qa"</span><span class="code-punct">:</span> <span class="code-punct">{</span>
|
|
|
+ <span class="code-key">"url"</span><span class="code-punct">:</span> <span class="code-string">"https://mcp.eiacloud.com/qa"</span><span class="code-punct">,</span>
|
|
|
+ <span class="code-key">"headers"</span><span class="code-punct">:</span> <span class="code-punct">{</span>
|
|
|
+ <span class="code-key">"Authorization"</span><span class="code-punct">:</span> <span class="code-string">"Bearer sk-2fb2189e85b34845aaab9c9784f0388e"</span>
|
|
|
+ <span class="code-punct">}</span>
|
|
|
+ <span class="code-punct">},</span>
|
|
|
+ <span class="code-key">"hpyzs-emission"</span><span class="code-punct">:</span> <span class="code-punct">{</span>
|
|
|
+ <span class="code-key">"url"</span><span class="code-punct">:</span> <span class="code-string">"https://mcp.eiacloud.com/emission"</span><span class="code-punct">,</span>
|
|
|
<span class="code-key">"headers"</span><span class="code-punct">:</span> <span class="code-punct">{</span>
|
|
|
- <span class="code-key">"Authorization"</span><span class="code-punct">:</span> <span class="code-string">"Bearer sk-c61015e418b046d99e1bxxxxxxxx"</span>
|
|
|
+ <span class="code-key">"Authorization"</span><span class="code-punct">:</span> <span class="code-string">"Bearer sk-2fb2189e85b34845aaab9c9784f0388e"</span>
|
|
|
<span class="code-punct">}</span>
|
|
|
<span class="code-punct">}</span>
|
|
|
<span class="code-punct">}</span>
|
|
|
@@ -391,16 +417,16 @@
|
|
|
</div>
|
|
|
</div>
|
|
|
|
|
|
- <div v-else-if="guideToolTab === 'ima'" class="home-guide-tool-body home-guide-ima-body">
|
|
|
+ <div v-else-if="guideToolTab === 'doubao'" class="home-guide-tool-body home-guide-doubao-body">
|
|
|
<div class="home-guide-ima-left">
|
|
|
<div class="home-guide-ima-alert">
|
|
|
<icon-svg name="ima_wps_warning" size="16px" class="home-guide-ima-alert-icon" />
|
|
|
<div class="home-guide-ima-alert-text">
|
|
|
- {{ guideImaContent.alert }}
|
|
|
+ {{ guideDoubaoContent.alert }}
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="home-guide-ima-steps">
|
|
|
- <div v-for="step in guideImaContent.steps" :key="step.num" class="home-guide-ima-step">
|
|
|
+ <div v-for="step in guideDoubaoContent.steps" :key="step.num" class="home-guide-ima-step">
|
|
|
<div class="home-guide-ima-step-num">{{ step.num }}</div>
|
|
|
<div class="home-guide-ima-step-title">{{ step.title }}</div>
|
|
|
</div>
|
|
|
@@ -408,35 +434,110 @@
|
|
|
<div class="home-guide-ima-notes">
|
|
|
<div class="home-guide-ima-notes-title">注意事项</div>
|
|
|
<ul class="home-guide-ima-notes-list">
|
|
|
- <li v-for="item in guideImaContent.notes" :key="item">
|
|
|
+ <li v-for="item in guideDoubaoContent.notes" :key="item">
|
|
|
{{ item }}
|
|
|
</li>
|
|
|
</ul>
|
|
|
</div>
|
|
|
</div>
|
|
|
- <div class="home-guide-ima-right">
|
|
|
- <div class="home-guide-ima-panel home-guide-ima-panel--config">
|
|
|
- <div class="home-guide-ima-panel-title">【配置】</div>
|
|
|
- <div v-for="line in guideImaContent.configLines" :key="line" class="home-guide-ima-panel-line">
|
|
|
- {{ line }}
|
|
|
+ <div class="home-guide-doubao-right">
|
|
|
+ <img
|
|
|
+ src="@/assets/images/doubao_img.png"
|
|
|
+ alt="豆包自定义连接器示意"
|
|
|
+ class="home-guide-doubao-img"
|
|
|
+ width="608"
|
|
|
+ height="472"
|
|
|
+ />
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <div v-else-if="guideToolTab === 'qoderwork'" class="home-guide-tool-body">
|
|
|
+ <div class="home-guide-tool-steps">
|
|
|
+ <div class="home-guide-tool-step">
|
|
|
+ <div class="home-guide-tool-step-num">1</div>
|
|
|
+ <div class="home-guide-tool-step-copy">
|
|
|
+ <div class="home-guide-tool-step-title">打开配置入口</div>
|
|
|
+ <div class="home-guide-tool-step-desc">
|
|
|
+ 左侧「扩展」→「连接器」→ 右上角「+ 添加」→「粘贴 JSON 配置」→ 在「通过 JSON 导入」对话框粘贴下方全量 JSON → 点击「导入」2
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</div>
|
|
|
- <div class="home-guide-ima-panel home-guide-ima-panel--verify">
|
|
|
- <div class="home-guide-ima-panel-title">【验证】</div>
|
|
|
- <div class="home-guide-ima-panel-hint">
|
|
|
- {{ guideImaContent.verifyIntro }}
|
|
|
+ <div class="home-guide-tool-step">
|
|
|
+ <div class="home-guide-tool-step-num">2</div>
|
|
|
+ <div class="home-guide-tool-step-copy">
|
|
|
+ <div class="home-guide-tool-step-title">粘贴 MCP 配置</div>
|
|
|
+ <div class="home-guide-tool-step-desc">
|
|
|
+ 将右侧「配置」中的 JSON 粘贴到客户端对应位置并保存。
|
|
|
+ </div>
|
|
|
</div>
|
|
|
- <div class="home-guide-ima-quote">{{ guideImaContent.verifyQuote }}</div>
|
|
|
- <div class="home-guide-ima-panel-hint">
|
|
|
- {{ guideImaContent.verifyResult }}
|
|
|
+ </div>
|
|
|
+ <div class="home-guide-tool-step">
|
|
|
+ <div class="home-guide-tool-step-num">3</div>
|
|
|
+ <div class="home-guide-tool-step-copy">
|
|
|
+ <div class="home-guide-tool-step-title">配置文件位置</div>
|
|
|
+ <div class="home-guide-tool-step-desc">
|
|
|
+ macOS:~/.qoderwork/mcp.json Windows:C:\Users\用户名\.qoderwork\mcp.json
|
|
|
+ </div>
|
|
|
</div>
|
|
|
- <div class="home-guide-ima-check">
|
|
|
- <span class="home-guide-ima-check-marks">
|
|
|
- <span>√</span>
|
|
|
- <span>√</span>
|
|
|
- </span>
|
|
|
- <span class="home-guide-ima-check-text">{{ guideImaContent.verifyCheck }}</span>
|
|
|
+ </div>
|
|
|
+ <div class="home-guide-note">
|
|
|
+ <div class="home-guide-note-head">
|
|
|
+ <div class="home-guide-note-icon-box">
|
|
|
+ <icon-svg name="WorkBuddy_attention" size="12px" class="home-guide-note-icon" />
|
|
|
+ </div>
|
|
|
+ <div class="home-guide-note-title">注意事项</div>
|
|
|
</div>
|
|
|
+ <ul class="home-guide-note-list">
|
|
|
+ <li>type 字段为 "streamableHttp"(H 大写),与 WorkBuddy 一致</li>
|
|
|
+ <li>不需要在 URL 末尾添加 /mcp 后缀</li>
|
|
|
+ <li>将 YOUR_ACCESS_TOKEN 替换为页面「获取 Token」生成的真实 Token</li>
|
|
|
+ <li>导入后可在「连接器 → 已安装」查看状态;改配置后需完全退出并重启 QoderWork</li>
|
|
|
+ </ul>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="home-guide-code">
|
|
|
+ <div class="home-guide-code-bar">
|
|
|
+ <div class="home-guide-code-dots">
|
|
|
+ <span></span>
|
|
|
+ <span></span>
|
|
|
+ <span></span>
|
|
|
+ </div>
|
|
|
+ <div class="home-guide-code-title">mcp.json</div>
|
|
|
+ <button type="button" class="home-guide-code-copy" @click="copyGuideQoderworkJson">
|
|
|
+ <icon-svg name="copy_icon_white" size="14px" class="home-guide-code-copy-icon" />
|
|
|
+ <span>复制</span>
|
|
|
+ </button>
|
|
|
+ </div>
|
|
|
+ <div class="home-guide-code-body">
|
|
|
+ <div class="home-guide-code-lines">
|
|
|
+ <span v-for="line in guideQoderworkLines" :key="line">{{ line }}</span>
|
|
|
+ </div>
|
|
|
+ <pre class="home-guide-code-pre"><span class="code-punct">{</span>
|
|
|
+ <span class="code-key">"hpyzs-law-keyword"</span><span class="code-punct">:</span> <span class="code-punct">{</span>
|
|
|
+ <span class="code-key">"url"</span><span class="code-punct">:</span> <span class="code-string">"https://mcp.eiacloud.com/law-keyword"</span><span class="code-punct">,</span>
|
|
|
+ <span class="code-key">"headers"</span><span class="code-punct">:</span> <span class="code-punct">{</span>
|
|
|
+ <span class="code-key">"Authorization"</span><span class="code-punct">:</span> <span class="code-string">"Bearer sk-2fb2189e85b34845aaab9c9784f0388e"</span>
|
|
|
+ <span class="code-punct">}</span>
|
|
|
+ <span class="code-punct">},</span>
|
|
|
+ <span class="code-key">"hpyzs-law-semantic"</span><span class="code-punct">:</span> <span class="code-punct">{</span>
|
|
|
+ <span class="code-key">"url"</span><span class="code-punct">:</span> <span class="code-string">"https://mcp.eiacloud.com/law-semantic"</span><span class="code-punct">,</span>
|
|
|
+ <span class="code-key">"headers"</span><span class="code-punct">:</span> <span class="code-punct">{</span>
|
|
|
+ <span class="code-key">"Authorization"</span><span class="code-punct">:</span> <span class="code-string">"Bearer sk-2fb2189e85b34845aaab9c9784f0388e"</span>
|
|
|
+ <span class="code-punct">}</span>
|
|
|
+ <span class="code-punct">},</span>
|
|
|
+ <span class="code-key">"hpyzs-qa"</span><span class="code-punct">:</span> <span class="code-punct">{</span>
|
|
|
+ <span class="code-key">"url"</span><span class="code-punct">:</span> <span class="code-string">"https://mcp.eiacloud.com/qa"</span><span class="code-punct">,</span>
|
|
|
+ <span class="code-key">"headers"</span><span class="code-punct">:</span> <span class="code-punct">{</span>
|
|
|
+ <span class="code-key">"Authorization"</span><span class="code-punct">:</span> <span class="code-string">"Bearer sk-2fb2189e85b34845aaab9c9784f0388e"</span>
|
|
|
+ <span class="code-punct">}</span>
|
|
|
+ <span class="code-punct">},</span>
|
|
|
+ <span class="code-key">"hpyzs-emission"</span><span class="code-punct">:</span> <span class="code-punct">{</span>
|
|
|
+ <span class="code-key">"url"</span><span class="code-punct">:</span> <span class="code-string">"https://mcp.eiacloud.com/emission"</span><span class="code-punct">,</span>
|
|
|
+ <span class="code-key">"headers"</span><span class="code-punct">:</span> <span class="code-punct">{</span>
|
|
|
+ <span class="code-key">"Authorization"</span><span class="code-punct">:</span> <span class="code-string">"Bearer sk-2fb2189e85b34845aaab9c9784f0388e"</span>
|
|
|
+ <span class="code-punct">}</span>
|
|
|
+ <span class="code-punct">}</span>
|
|
|
+<span class="code-punct">}</span></pre>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
@@ -532,7 +633,7 @@
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="home-guide-cli-footer">
|
|
|
- <span class="home-guide-cli-footer-tip">初始化命令已自动填入真实 Token</span>
|
|
|
+ <span class="home-guide-cli-footer-tip">{{ guideCliFooterTip }}</span>
|
|
|
<button type="button" class="home-guide-cli-copy-all" @click="copyAllCliCommands">
|
|
|
<icon-svg name="copy_icon_white" size="12px" class="home-guide-cli-copy-all-icon" />
|
|
|
<span>全部复制</span>
|
|
|
@@ -565,12 +666,8 @@
|
|
|
<div v-for="(question, questionIndex) in card.questions" :key="`${card.title}-${questionIndex}`"
|
|
|
class="home-guide-verify-item">
|
|
|
<span>{{ question }}</span>
|
|
|
- <icon-svg
|
|
|
- name="Connection_Copy"
|
|
|
- size="13px"
|
|
|
- class="home-guide-verify-copy"
|
|
|
- @click="copyText(question)"
|
|
|
- />
|
|
|
+ <icon-svg name="Connection_Copy" size="13px" class="home-guide-verify-copy"
|
|
|
+ @click="copyText(question)" />
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
@@ -613,10 +710,30 @@
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="home-footer-links">
|
|
|
- <span>关于我们</span>
|
|
|
- <span>用户协议</span>
|
|
|
- <span>隐私政策</span>
|
|
|
- <span>联系我们</span>
|
|
|
+ <a
|
|
|
+ class="home-footer-link"
|
|
|
+ href="https://www.eiacloud.com/lxwmhjzx/550.jhtml"
|
|
|
+ target="_blank"
|
|
|
+ rel="noopener noreferrer"
|
|
|
+ >关于我们</a>
|
|
|
+ <a
|
|
|
+ class="home-footer-link"
|
|
|
+ href="https://www.eiacloud.com/bbs/userAgreement"
|
|
|
+ target="_blank"
|
|
|
+ rel="noopener noreferrer"
|
|
|
+ >用户协议</a>
|
|
|
+ <a
|
|
|
+ class="home-footer-link"
|
|
|
+ href="https://www.eiacloud.com/hpy/lawstandardApp/getDetailYS"
|
|
|
+ target="_blank"
|
|
|
+ rel="noopener noreferrer"
|
|
|
+ >隐私政策</a>
|
|
|
+ <a
|
|
|
+ class="home-footer-link"
|
|
|
+ href="https://www.eiacloud.com/lxwmlxfs/669.jhtml"
|
|
|
+ target="_blank"
|
|
|
+ rel="noopener noreferrer"
|
|
|
+ >联系我们</a>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
@@ -630,6 +747,9 @@ import { useRouter } from "vue-router";
|
|
|
import { ElMessage } from "element-plus";
|
|
|
import { getMcpToken, createMcpToken } from "@/api/mcp";
|
|
|
import globalStore from "@/store/modules/global";
|
|
|
+import demoImgGreen from "@/assets/images/test_instruction_green.png";
|
|
|
+import demoImgBlue from "@/assets/images/test_instruction_blue.png";
|
|
|
+import demoImgPurple from "@/assets/images/test_instruction_purple.png";
|
|
|
|
|
|
const router = useRouter();
|
|
|
const global = globalStore();
|
|
|
@@ -638,7 +758,8 @@ const demoQuestions = [
|
|
|
"「建设项目环境影响评价分类管理名录中化工项目如何分类?」",
|
|
|
"「地下水质量标准 GB/T14848 中Ⅲ类水质的具体指标限值?」",
|
|
|
];
|
|
|
-const activeDemoQuestion = ref(1);
|
|
|
+const demoCaseImages = [demoImgGreen, demoImgBlue, demoImgPurple];
|
|
|
+const activeDemoQuestion = ref(0);
|
|
|
const guideToken = computed(() => global.mcpToken || "");
|
|
|
const guideTokenVisible = ref(false);
|
|
|
const guideTokenMasked = computed(() => {
|
|
|
@@ -693,40 +814,29 @@ const guideAccessTab = ref("mcp");
|
|
|
const guideToolTab = ref("workbuddy");
|
|
|
const guideTools = [
|
|
|
{ key: "workbuddy", label: "WorkBuddy", icon: true },
|
|
|
- { key: "ima", label: "IMA", icon: false },
|
|
|
+ { key: "doubao", label: "豆包", icon: false },
|
|
|
+ { key: "qoderwork", label: "Qoderwork", icon: false },
|
|
|
{ key: "wps", label: "WPS Comate", icon: false },
|
|
|
];
|
|
|
-const guideImaContent = {
|
|
|
- alert:
|
|
|
- "仅支持内置连接:IMA 只能通过内置「环评云助手」连接接入,不支持粘贴 JSON 或自定义 MCP 配置。",
|
|
|
+const guideDoubaoContent = {
|
|
|
+ alert: "豆包只能通过新建自定义连接器接入,不支持直接粘贴 JSON 配置。",
|
|
|
steps: [
|
|
|
{
|
|
|
num: 1,
|
|
|
- title: "打开 ima → 发现 → MCP → 找到「环评云助手」→ 点击「连接」",
|
|
|
+ title:
|
|
|
+ "打开 豆包 → 找到「 技能·连接器·伙伴 」→ 点击「新建」→ 选择「 新建自定义连接器」 ",
|
|
|
},
|
|
|
{
|
|
|
num: 2,
|
|
|
- title: "按提示完成登录授权并启用连接即可使用",
|
|
|
+ title: "输入服务器名称、 URL 链接、自定义 Headers → 点击保存完成链接",
|
|
|
},
|
|
|
{
|
|
|
num: 3,
|
|
|
title:
|
|
|
- "验证是否成功——在对话中发送「用环评云助手检索《大气污染物综合排放标准》中关于 VOCs 排放限值的规定」",
|
|
|
+ "验证是否成功——在对话中发送「用环评云助手MCP检索《大气污染物综合排放标准》中关于 VOCs 排放限值的规定」",
|
|
|
},
|
|
|
],
|
|
|
- notes: [
|
|
|
- "仅支持内置连接,无需手动粘贴 JSON 或自定义 MCP 配置",
|
|
|
- "首次使用需完成环评云助手账号登录授权,授权后连接长期有效",
|
|
|
- ],
|
|
|
- configLines: [
|
|
|
- "# 本平台仅支持内置「环评云助手」连接",
|
|
|
- "# 发现 → MCP → 环评云助手 → 一键连接并完成授权即可使用",
|
|
|
- ],
|
|
|
- verifyIntro: "# 在对话框中发一句:",
|
|
|
- verifyQuote:
|
|
|
- "「用环评云助手检索《大气污染物综合排放标准》中关于 VOCs 排放限值的规定」",
|
|
|
- verifyResult: "# → 看到法规检索工具运行成功 → 返回限值 = 接入成功",
|
|
|
- verifyCheck: "返回的是权威法规数据,非网络搜索",
|
|
|
+ notes: ["自定义 Headers 内需要填写页面「获取 Token」生成的真实 Token"],
|
|
|
};
|
|
|
const guideWpsContent = {
|
|
|
alert:
|
|
|
@@ -762,16 +872,63 @@ const guideWpsContent = {
|
|
|
};
|
|
|
const guideMcpJson = `{
|
|
|
"mcpServers": {
|
|
|
- "hpyzs-mcp": {
|
|
|
- "url": "http://www.eiacloud.cn:9010/mcp",
|
|
|
- "type": "http",
|
|
|
+ "hpyzs-law-keyword": {
|
|
|
+ "url": "https://mcp.eiacloud.com/law-keyword",
|
|
|
+ "headers": {
|
|
|
+ "Authorization": "Bearer sk-2fb2189e85b34845aaab9c9784f0388e"
|
|
|
+ }
|
|
|
+ },
|
|
|
+ "hpyzs-law-semantic": {
|
|
|
+ "url": "https://mcp.eiacloud.com/law-semantic",
|
|
|
"headers": {
|
|
|
- "Authorization": "Bearer sk-c61015e418b046d99e1bxxxxxxxx"
|
|
|
+ "Authorization": "Bearer sk-2fb2189e85b34845aaab9c9784f0388e"
|
|
|
}
|
|
|
+ },
|
|
|
+ "hpyzs-qa": {
|
|
|
+ "url": "https://mcp.eiacloud.com/qa",
|
|
|
+ "headers": {
|
|
|
+ "Authorization": "Bearer sk-2fb2189e85b34845aaab9c9784f0388e"
|
|
|
+ }
|
|
|
+ },
|
|
|
+ "hpyzs-emission": {
|
|
|
+ "url": "https://mcp.eiacloud.com/emission",
|
|
|
+ "headers": {
|
|
|
+ "Authorization": "Bearer sk-2fb2189e85b34845aaab9c9784f0388e"
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+}`;
|
|
|
+const guideMcpLines = Array.from({ length: guideMcpJson.split("\n").length }, (_, i) => i + 1);
|
|
|
+const guideQoderworkJson = `{
|
|
|
+ "hpyzs-law-keyword": {
|
|
|
+ "url": "https://mcp.eiacloud.com/law-keyword",
|
|
|
+ "headers": {
|
|
|
+ "Authorization": "Bearer sk-2fb2189e85b34845aaab9c9784f0388e"
|
|
|
+ }
|
|
|
+ },
|
|
|
+ "hpyzs-law-semantic": {
|
|
|
+ "url": "https://mcp.eiacloud.com/law-semantic",
|
|
|
+ "headers": {
|
|
|
+ "Authorization": "Bearer sk-2fb2189e85b34845aaab9c9784f0388e"
|
|
|
+ }
|
|
|
+ },
|
|
|
+ "hpyzs-qa": {
|
|
|
+ "url": "https://mcp.eiacloud.com/qa",
|
|
|
+ "headers": {
|
|
|
+ "Authorization": "Bearer sk-2fb2189e85b34845aaab9c9784f0388e"
|
|
|
+ }
|
|
|
+ },
|
|
|
+ "hpyzs-emission": {
|
|
|
+ "url": "https://mcp.eiacloud.com/emission",
|
|
|
+ "headers": {
|
|
|
+ "Authorization": "Bearer sk-2fb2189e85b34845aaab9c9784f0388e"
|
|
|
}
|
|
|
}
|
|
|
}`;
|
|
|
-const guideMcpLines = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];
|
|
|
+const guideQoderworkLines = Array.from(
|
|
|
+ { length: guideQoderworkJson.split("\n").length },
|
|
|
+ (_, i) => i + 1,
|
|
|
+);
|
|
|
const copyText = async (text) => {
|
|
|
if (!text) {
|
|
|
ElMessage.warning("暂无内容可复制");
|
|
|
@@ -799,6 +956,7 @@ const copyText = async (text) => {
|
|
|
}
|
|
|
};
|
|
|
const copyGuideMcpJson = () => copyText(guideMcpJson);
|
|
|
+const copyGuideQoderworkJson = () => copyText(guideQoderworkJson);
|
|
|
const guideCliSteps = [
|
|
|
{
|
|
|
num: 1,
|
|
|
@@ -821,52 +979,61 @@ const guideCliSteps = [
|
|
|
desc: "不经过 LLM,适合自动化流程与数据验证。",
|
|
|
},
|
|
|
];
|
|
|
-const guideCliCommands = [
|
|
|
- {
|
|
|
- label: "安装 CLI",
|
|
|
- text: "npm install -g @eiacloud/mcp-cli",
|
|
|
- },
|
|
|
- {
|
|
|
- label: "绑定 Token",
|
|
|
- text: "$ eiacloud-mcp init --authorization Bearer YOUR_ACCESS_TOKEN",
|
|
|
- },
|
|
|
- {
|
|
|
- label: "法规检索",
|
|
|
- text: '$ eiacloud-mcp regulation-search "大气污染物排放标准"',
|
|
|
- },
|
|
|
- {
|
|
|
- label: "标准查询",
|
|
|
- text: '$ eiacloud-mcp standard-search "地下水质量标准"',
|
|
|
- },
|
|
|
-];
|
|
|
+const guideCliCommands = computed(() => {
|
|
|
+ const token = guideToken.value;
|
|
|
+ const authPart = token ? `Bearer ${token}` : "Bearer YOUR_TOKEN";
|
|
|
+ return [
|
|
|
+ {
|
|
|
+ label: "安装 CLI",
|
|
|
+ text: "npm install -g @eiacloud/mcp-cli",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: "绑定 Token",
|
|
|
+ text: `$ eiacloud-mcp init --authorization ${authPart}`,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: "法规检索",
|
|
|
+ text: '$ eiacloud-mcp regulation-search "大气污染物排放标准"',
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: "标准查询",
|
|
|
+ text: '$ eiacloud-mcp standard-search "地下水质量标准"',
|
|
|
+ },
|
|
|
+ ];
|
|
|
+});
|
|
|
+const guideCliFooterTip = computed(() =>
|
|
|
+ guideToken.value
|
|
|
+ ? "初始化命令已自动填入真实 Token"
|
|
|
+ : "将 YOUR_TOKEN 替换为页面「获取 Token」生成的真实 Token",
|
|
|
+);
|
|
|
const copyAllCliCommands = () =>
|
|
|
- copyText(guideCliCommands.map((item) => item.text).join("\n"));
|
|
|
+ copyText(guideCliCommands.value.map((item) => item.text).join("\n"));
|
|
|
const guideVerifyCards = [
|
|
|
{
|
|
|
icon: "environmental_legislation",
|
|
|
- title: "环境法规",
|
|
|
+ title: "政策法规",
|
|
|
questions: [
|
|
|
- "大气污染物综合排放标准 GB16297 相关限值要求?",
|
|
|
- "大气污染物综合排放标准 GB16297 相关限值要求?",
|
|
|
- "大气污染物综合排放标准 GB16297 相关限值要求?",
|
|
|
+ "大气污染防治法第118条餐饮油烟怎么罚?",
|
|
|
+ "环办政法函〔2017〕40号答复了什么?",
|
|
|
+ "大气污染防治法2018修订何时施行?",
|
|
|
],
|
|
|
},
|
|
|
{
|
|
|
- icon:"Standard_guidelines",
|
|
|
+ icon: "Standard_guidelines",
|
|
|
title: "标准导则",
|
|
|
questions: [
|
|
|
- "建设项目环境影响评价分类管理名录中化工项目如何分类?",
|
|
|
- "大气污染物综合排放标准 GB16297 相关限值要求?",
|
|
|
- "大气污染物综合排放标准 GB16297 相关限值要求?",
|
|
|
+ "GB16297表2二氧化硫二级浓度?",
|
|
|
+ "GB16297排气筒最低高度要求?",
|
|
|
+ "GB16297颗粒物无组织监控限值?",
|
|
|
],
|
|
|
},
|
|
|
{
|
|
|
- icon:"Policy_QA",
|
|
|
- title: "政策问答",
|
|
|
+ icon: "Policy_QA",
|
|
|
+ title: "问答检索",
|
|
|
questions: [
|
|
|
- "建设项目环境影响评价分类管理名录中化工项目如何分类?",
|
|
|
- "大气污染物综合排放标准 GB16297 相关限值要求?",
|
|
|
- "大气污染物综合排放标准 GB16297 相关限值要求?",
|
|
|
+ "重大变动如何重新报批环评?",
|
|
|
+ "排污许可证内容变更如何重新办理?",
|
|
|
+ "环评批复几年不开工作废?",
|
|
|
],
|
|
|
},
|
|
|
];
|
|
|
@@ -1417,7 +1584,10 @@ const guideVerifyCards = [
|
|
|
}
|
|
|
|
|
|
.home-scenes-demo {
|
|
|
- display: flex;
|
|
|
+ display: grid;
|
|
|
+ grid-template-columns: 1fr 1fr;
|
|
|
+ align-items: stretch;
|
|
|
+ gap: 40px;
|
|
|
}
|
|
|
|
|
|
.home-scenes-demo-copy {
|
|
|
@@ -1425,6 +1595,28 @@ const guideVerifyCards = [
|
|
|
flex-direction: column;
|
|
|
align-items: flex-start;
|
|
|
gap: 20px;
|
|
|
+ min-width: 0;
|
|
|
+}
|
|
|
+
|
|
|
+.home-scenes-demo-preview {
|
|
|
+ position: relative;
|
|
|
+ min-width: 0;
|
|
|
+ height: 100%;
|
|
|
+ overflow: hidden;
|
|
|
+ border-radius: 10px;
|
|
|
+}
|
|
|
+
|
|
|
+.home-scenes-demo-preview-img {
|
|
|
+ position: absolute;
|
|
|
+ top: 0;
|
|
|
+ right: 0;
|
|
|
+ bottom: 0;
|
|
|
+ left: 0;
|
|
|
+ display: block;
|
|
|
+ width: 100%;
|
|
|
+ height: 100%;
|
|
|
+ object-fit: cover;
|
|
|
+ object-position: top center;
|
|
|
}
|
|
|
|
|
|
.home-scenes-demo-badge {
|
|
|
@@ -2040,12 +2232,38 @@ const guideVerifyCards = [
|
|
|
display: flex;
|
|
|
gap: 20px;
|
|
|
margin-top: 20px;
|
|
|
+ align-items: stretch;
|
|
|
+}
|
|
|
+
|
|
|
+.home-guide-pending-body {
|
|
|
+ min-height: 280px;
|
|
|
}
|
|
|
|
|
|
.home-guide-ima-body {
|
|
|
align-items: stretch;
|
|
|
}
|
|
|
|
|
|
+.home-guide-doubao-body {
|
|
|
+ align-items: flex-start;
|
|
|
+}
|
|
|
+
|
|
|
+.home-guide-doubao-body .home-guide-ima-left {
|
|
|
+ flex: 1;
|
|
|
+ min-width: 0;
|
|
|
+}
|
|
|
+
|
|
|
+.home-guide-doubao-right {
|
|
|
+ flex: 0 0 auto;
|
|
|
+}
|
|
|
+
|
|
|
+.home-guide-doubao-img {
|
|
|
+ display: block;
|
|
|
+ width: 608px;
|
|
|
+ height: 472px;
|
|
|
+ max-width: 100%;
|
|
|
+ object-fit: contain;
|
|
|
+}
|
|
|
+
|
|
|
.home-guide-ima-left,
|
|
|
.home-guide-ima-right {
|
|
|
flex: 1;
|
|
|
@@ -2663,21 +2881,26 @@ const guideVerifyCards = [
|
|
|
}
|
|
|
|
|
|
.home-guide-code {
|
|
|
- display: flex;
|
|
|
- flex-direction: column;
|
|
|
+ position: relative;
|
|
|
overflow: hidden;
|
|
|
border-radius: 12px;
|
|
|
background: #1E293B;
|
|
|
box-shadow: 0px 8px 24px 0px rgba(15, 23, 42, 0.18);
|
|
|
+ /* 高度由左侧步骤区撑开,代码内容不撑高整块区域 */
|
|
|
}
|
|
|
|
|
|
.home-guide-code-bar {
|
|
|
- position: relative;
|
|
|
+ position: absolute;
|
|
|
+ top: 0;
|
|
|
+ left: 0;
|
|
|
+ right: 0;
|
|
|
+ z-index: 1;
|
|
|
display: flex;
|
|
|
align-items: center;
|
|
|
justify-content: space-between;
|
|
|
padding: 12px 14px;
|
|
|
border-bottom: 1px solid rgba(148, 163, 184, 0.16);
|
|
|
+ background: #1E293B;
|
|
|
}
|
|
|
|
|
|
.home-guide-code-dots {
|
|
|
@@ -2739,6 +2962,11 @@ const guideVerifyCards = [
|
|
|
}
|
|
|
|
|
|
.home-guide-code-body {
|
|
|
+ position: absolute;
|
|
|
+ top: 49px;
|
|
|
+ right: 0;
|
|
|
+ bottom: 0;
|
|
|
+ left: 0;
|
|
|
display: flex;
|
|
|
gap: 14px;
|
|
|
padding: 14px 16px 18px;
|
|
|
@@ -3060,13 +3288,30 @@ const guideVerifyCards = [
|
|
|
display: flex;
|
|
|
align-items: center;
|
|
|
gap: 24px;
|
|
|
+ white-space: nowrap;
|
|
|
+ }
|
|
|
+
|
|
|
+ .home-footer-link {
|
|
|
font-family: PingFang SC, PingFang SC;
|
|
|
font-weight: 300;
|
|
|
font-size: 14px;
|
|
|
color: #333333;
|
|
|
line-height: 20px;
|
|
|
text-align: left;
|
|
|
- white-space: nowrap;
|
|
|
+ text-decoration: none;
|
|
|
+ cursor: pointer;
|
|
|
+
|
|
|
+ &:link,
|
|
|
+ &:visited,
|
|
|
+ &:active {
|
|
|
+ color: #333333;
|
|
|
+ text-decoration: none;
|
|
|
+ }
|
|
|
+
|
|
|
+ &:hover {
|
|
|
+ color: #1678FF;
|
|
|
+ text-decoration: none;
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
</style>
|