diff --git a/web/static/dev.html b/web/static/dev.html
index b1c4a30..031fa8c 100644
--- a/web/static/dev.html
+++ b/web/static/dev.html
@@ -564,11 +564,11 @@
#channel-cards { padding: 6px 12px 2px; display: flex; gap: 6px; }
#channel-cards:empty { display: none; }
.channel-card { flex: 1; min-width: 0; display: flex; align-items: center; gap: 7px; padding: 7px 9px;
- border-radius: 8px; border: 1px solid rgba(7,193,96,.35); background: rgba(7,193,96,.06); cursor: pointer; }
+ border-radius: 4px; border: 1px solid rgba(7,193,96,.35); background: rgba(7,193,96,.06); cursor: pointer; }
.channel-card:hover { background: rgba(7,193,96,.12); }
.channel-card.active { border-color: #07C160; background: var(--accent-soft); }
.channel-card.cc-placeholder { border-style: dashed; border-color: rgba(7,193,96,.5); }
- .channel-card .cc-icon { width: 18px; height: 18px; border-radius: 5px; background: #07C160; color: #fff;
+ .channel-card .cc-icon { width: 18px; height: 18px; border-radius: 4px; background: #07C160; color: #fff;
display: inline-flex; align-items: center; justify-content: center; flex: none; }
.channel-card .cc-icon svg { width: 12px; height: 12px; fill: currentColor; display: block; }
.channel-card .cc-body { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 1px; }
@@ -577,7 +577,7 @@
.channel-card .cc-meta { color: var(--muted); font-size: 11px;
overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.channel-card .cc-action { width: 28px; height: 28px; flex: none; display: inline-flex; align-items: center;
- justify-content: center; border-radius: 6px; color: var(--muted); font-size: 14px; cursor: pointer; }
+ justify-content: center; border-radius: 4px; color: var(--muted); font-size: 14px; cursor: pointer; }
.channel-card .cc-action:hover { background: rgba(7,193,96,.12); color: #07C160; }
.empty { padding: 24px; color: var(--muted); text-align: center; font-size: 13px; }
diff --git a/web/static/js/chat.js b/web/static/js/chat.js
index aac2f0e..d28c158 100644
--- a/web/static/js/chat.js
+++ b/web/static/js/chat.js
@@ -22,6 +22,7 @@ const CHANNEL_BADGE = {
};
function channelCfg(ch) { return CHANNEL_BADGE[ch] || null; }
import { logout } from "./auth.js";
+import { openWechatModal } from "./wechat.js";
import { openFilePreview, openPasteFilePreview, closePreviewIfShowing } from "./preview.js";
import { loadFiles, scheduleFilesRefresh, uploadFiles, formatUploadProgress } from "./files.js";
import { toolActivityLabel, _workingDirName, extractMediaBanner, extractArtifactRels, renderArtifactBarHtml, upgradeMediaArtifacts, ARTIFACT_PRODUCING_TOOLS, _flushMediaArtifactCache } from "./media.js";
@@ -249,15 +250,12 @@ export async function loadChannelCards() {
box.querySelectorAll(".channel-card").forEach((el) => {
const action = el.dataset.action;
if (action === "bind" || action === "manage") {
- el.onclick = () => {
- if (typeof openWechatModal === "function") openWechatModal();
- };
+ el.onclick = () => openWechatModal();
} else if (action === "select") {
el.onclick = (e) => {
- const actionBtn = e.target.closest(".cc-action");
- if (actionBtn) {
+ if (e.target.closest(".cc-action")) {
e.stopPropagation(); // ⚙ 点开弹框,不触发 selectTask
- if (typeof openWechatModal === "function") openWechatModal();
+ openWechatModal();
} else {
selectTask(el.dataset.tid);
}
diff --git a/web/static/js/wechat.js b/web/static/js/wechat.js
index 1c9c2fd..6e81fe4 100644
--- a/web/static/js/wechat.js
+++ b/web/static/js/wechat.js
@@ -34,7 +34,7 @@ async function refresh() {
}
}
-function openWechatModal() {
+export function openWechatModal() {
$("wechat-modal").classList.add("show");
$("wx-qrbox").hidden = true;
refresh();