UNPKG

@gnai/message-templates-vue

Version:

A flexible Vue 3 component library for rendering various platform message templates (WeChat, Xiaohongshu, Douyin, etc.)

314 lines (313 loc) 19.2 kB
import { defineComponent as U, computed as B, createElementBlock as o, openBlock as d, normalizeStyle as I, normalizeClass as Q, createElementVNode as i, unref as m, toDisplayString as c } from "vue"; const F = "data:image/png;base64,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", t = { avatar: "https://gnlab.com/assets/scene/icons/person.png", link: "https://gnlab.com/assets/scene/icons/link.png" }, b = (l) => { var s, v, g, p, u, r, n, y, k, h, C; const e = { type: "text", content: "" }; try { let A = l.wechat_data; if (typeof A == "string" && A) try { A = JSON.parse(A); } catch (j) { console.error("Failed to parse WeChat message:", j); } const { wechat_type: f } = l, a = (A == null ? void 0 : A.content) || {}; switch (f) { case 0: e.type = "emoji", e.url = (l == null ? void 0 : l.file_url) || ""; break; case 1: case 2: e.type = "link", e.content = (a == null ? void 0 : a.title) || "", e.desc = (a == null ? void 0 : a.desc) || "", e.url = (a == null ? void 0 : a.url) || "", e.avatar = (a == null ? void 0 : a.image_url) || t.link; break; case 100: e.type = "link", e.content = ((s = a == null ? void 0 : a.link) == null ? void 0 : s.title) || "", e.desc = ((v = a == null ? void 0 : a.link) == null ? void 0 : v.des) || "", e.url = ((g = a == null ? void 0 : a.link) == null ? void 0 : g.url) || "", e.avatar = ((p = a == null ? void 0 : a.link) == null ? void 0 : p.thumb_url) || t.link; break; case 3: e.type = "videonum", e.content = (a == null ? void 0 : a.nickname) || "", e.desc = (a == null ? void 0 : a.desc) || "", e.url = (a == null ? void 0 : a.cover_url) || "", e.avatar = (a == null ? void 0 : a.avatar) || t.avatar; break; case 102: e.type = "videonum", e.content = ((u = a == null ? void 0 : a.finder_feed) == null ? void 0 : u.name) || "", e.desc = "", e.url = ((r = a == null ? void 0 : a.finder_feed) == null ? void 0 : r.thumb) || "", e.avatar = ((n = a == null ? void 0 : a.finder_feed) == null ? void 0 : n.avatar) || t.avatar; break; case 4: e.type = "miniprogram", e.content = (a == null ? void 0 : a.appname) || "", e.desc = (a == null ? void 0 : a.title) || "", e.url = (A == null ? void 0 : A.file_path) || "", e.avatar = (a == null ? void 0 : a.appicon) || t.avatar; break; case 101: e.type = "miniprogram", e.content = ((y = a == null ? void 0 : a.miniprogram) == null ? void 0 : y.show_name) || "", e.desc = ((k = a == null ? void 0 : a.miniprogram) == null ? void 0 : k.title) || "", e.url = ((h = a == null ? void 0 : a.miniprogram) == null ? void 0 : h.cover_url) || "", e.avatar = ((C = a == null ? void 0 : a.miniprogram) == null ? void 0 : C.icon_url) || t.avatar; break; case 5: e.type = "location", e.content = (a == null ? void 0 : a.title) || "", e.desc = (a == null ? void 0 : a.address) || "", e.url = `https://map.qq.com/?type=marker&isopeninfowin=1&markertype=1&pointx=${(a == null ? void 0 : a.longitude) || 0}&pointy=${(a == null ? void 0 : a.latitude) || 0}&name=${(a == null ? void 0 : a.title) || ""}&addr=${(a == null ? void 0 : a.address) || ""}`; break; case 6: e.type = "emoji", e.url = (a == null ? void 0 : a.url) || ""; break; case 7: e.type = "card", e.content = (a == null ? void 0 : a.nickname) || "", e.avatar = (a == null ? void 0 : a.avatar) || t.avatar; break; case 8: e.type = "videonumlive", e.content = (a == null ? void 0 : a.nickname) || "", e.desc = (a == null ? void 0 : a.desc) || "", e.url = (a == null ? void 0 : a.cover_url) || "", e.avatar = (a == null ? void 0 : a.avatar) || t.avatar; break; case "video": e.type = "video", e.content = (a == null ? void 0 : a.content) || "", e.desc = (a == null ? void 0 : a.desc) || "", e.url = (a == null ? void 0 : a.url) || "", e.avatar = (a == null ? void 0 : a.avatar) || t.avatar; break; case "audio": e.type = "audio", e.content = (a == null ? void 0 : a.content) || "", e.desc = (a == null ? void 0 : a.desc) || "", e.url = (a == null ? void 0 : a.url) || "", e.avatar = (a == null ? void 0 : a.avatar) || t.avatar; break; case "raw_file": e.type = "file", e.content = (a == null ? void 0 : a.content) || "", e.desc = (a == null ? void 0 : a.desc) || "", e.url = (a == null ? void 0 : a.url) || "", e.avatar = (a == null ? void 0 : a.avatar) || t.avatar; break; default: a != null && a.text || a != null && a.content ? (e.type = "text", e.content = (a == null ? void 0 : a.text) || (a == null ? void 0 : a.content) || "") : a != null && a.url && (a != null && a.url.includes("http") || a != null && a.url.includes("://")) ? (e.type = "link", e.content = (a == null ? void 0 : a.title) || (a == null ? void 0 : a.text) || "链接", e.url = a == null ? void 0 : a.url, e.avatar = (a == null ? void 0 : a.image_url) || t.link) : (e.type = "text", e.content = (a == null ? void 0 : a.text) || (a == null ? void 0 : a.content) || "未知消息类型"); } } catch (A) { console.error("Failed to parse WeChat message:", A), e.type = "text", e.content = "消息解析失败"; } return e; }, S = (l) => ({ type: "text", content: "" }), J = (l) => ({ type: "text", content: "" }), x = (l) => { const e = l; switch (e.platform) { case "wechat": return b(e.data); case "xiaohongshu": return S(e.data); case "douyin": return J(e.data); default: return { type: "text", content: "不支持的消息类型" }; } }, K = { key: 0, class: "person-content" }, q = { class: "avatar" }, V = ["src"], _ = { class: "name" }, W = { key: 1, class: "image-wrapper" }, R = ["src"], M = { class: "title" }, T = { class: "box" }, w = { class: "desc" }, Y = ["src"], G = { class: "title" }, O = { class: "desc" }, z = { key: 4, class: "minip-content" }, N = { class: "name" }, P = { class: "avatar" }, L = ["src"], H = { class: "line-1" }, D = { class: "title line-2" }, X = { class: "cover" }, Z = ["src"], $ = { key: 5, class: "minip-content" }, aa = { class: "name" }, ea = { class: "avatar" }, sa = ["src"], ia = { class: "line-1" }, la = { class: "title line-2" }, ra = { class: "cover" }, ta = ["src"], oa = { key: 6, class: "sph-content" }, da = { class: "cover" }, Aa = ["src"], ca = { class: "bottom" }, ua = { key: 7, class: "audio-content" }, ga = ["src"], va = { key: 8, class: "video-content" }, pa = ["src"], na = { key: 9, class: "file-content" }, ma = { class: "top" }, ya = { class: "left" }, ka = { class: "name" }, ha = { key: 10, class: "text-content" }, Ca = ["innerHTML"], Ba = { key: 1 }, Ia = /* @__PURE__ */ U({ __name: "MessageTemplate", props: { message: {}, options: { default: () => ({}) } }, setup(l) { const e = l, s = B(() => x(e.message)), v = B(() => e.options.customStyles || {}), g = (u) => { const r = u.target; r.src = t.avatar; }, p = (u) => { e.options.onLinkClick ? e.options.onLinkClick(u) : window.open(u, "_blank"); }; return (u, r) => (d(), o("div", { class: Q(["message-template", [`message-template--${u.options.theme || "light"}`, `message-template--${u.options.size || "medium"}`]]), style: I(v.value) }, [ i("div", { class: Q(["message-template__content", s.value.type]) }, [ s.value.type === "card" ? (d(), o("div", K, [ i("div", q, [ i("img", { src: s.value.avatar || m(t).avatar, onError: g }, null, 40, V) ]), i("div", null, [ i("div", _, c(s.value.content), 1), r[2] || (r[2] = i("div", { class: "person" }, "名片", -1)) ]) ])) : s.value.type === "emoji" ? (d(), o("div", W, [ i("img", { src: s.value.url, style: { objectFit: "cover", width: "200px" } }, null, 8, R) ])) : s.value.type === "link" ? (d(), o("div", { key: 2, class: "link-content", onClick: r[0] || (r[0] = (n) => s.value.url && p(s.value.url)) }, [ i("div", M, c(s.value.content), 1), i("div", T, [ i("div", w, c(s.value.desc), 1), i("img", { src: s.value.avatar || m(t).link }, null, 8, Y) ]) ])) : s.value.type === "location" ? (d(), o("div", { key: 3, class: "position-content", onClick: r[1] || (r[1] = (n) => s.value.url && p(s.value.url)) }, [ i("div", G, c(s.value.content), 1), i("div", O, c(s.value.desc), 1) ])) : s.value.type === "miniprogram" ? (d(), o("div", z, [ i("div", N, [ i("div", P, [ i("img", { src: s.value.avatar || m(t).avatar, onError: g }, null, 40, L) ]), i("div", H, c(s.value.content), 1), r[3] || (r[3] = i("div", { class: "label" }, "小程序", -1)) ]), i("div", D, c(s.value.desc), 1), i("div", X, [ i("img", { src: s.value.url, width: "100%", height: 220, style: { objectFit: "cover", borderRadius: "2px" } }, null, 8, Z) ]) ])) : s.value.type === "videonum" ? (d(), o("div", $, [ i("div", aa, [ i("div", ea, [ i("img", { src: s.value.avatar || m(t).avatar, onError: g }, null, 40, sa) ]), i("div", ia, c(s.value.content), 1), r[4] || (r[4] = i("div", { class: "label" }, "视频号", -1)) ]), i("div", la, c(s.value.desc), 1), i("div", ra, [ i("img", { src: s.value.url, width: "100%", height: 220, style: { objectFit: "cover", borderRadius: "2px" } }, null, 8, ta) ]) ])) : s.value.type === "videonumlive" ? (d(), o("div", oa, [ i("div", da, [ i("img", { class: "content-img", src: s.value.url }, null, 8, Aa) ]), i("div", ca, [ r[5] || (r[5] = i("img", { src: F, alt: "", style: { width: "24px", height: "24px" } }, null, -1)), i("span", { style: I({ color: s.value.avatar ? "#fff" : "#000" }) }, c(s.value.content), 5) ]) ])) : s.value.type === "audio" ? (d(), o("div", ua, [ i("audio", { src: s.value.url, controls: "", controlslist: "nodownload noplaybackrate", disablePictureInPicture: "" }, null, 8, ga) ])) : s.value.type === "video" ? (d(), o("div", va, [ i("video", { src: s.value.url, style: { width: "220px" }, controls: "", controlslist: "nodownload noplaybackrate", disablePictureInPicture: "" }, null, 8, pa) ])) : s.value.type === "file" ? (d(), o("div", na, [ i("div", ma, [ i("div", ya, [ i("div", ka, c(s.value.content), 1) ]) ]) ])) : (d(), o("div", ha, [ u.options.highlight ? (d(), o("span", { key: 0, class: "highlight", innerHTML: s.value.content }, null, 8, Ca)) : (d(), o("span", Ba, c(s.value.content), 1)) ])) ], 2) ], 6)); } }), Qa = (l, e) => { const s = l.__vccOpts || l; for (const [v, g] of e) s[v] = g; return s; }, Ea = /* @__PURE__ */ Qa(Ia, [["__scopeId", "data-v-e27a5802"]]), E = { wechat: { name: "微信", icon: "💬", colors: { primary: "#07C160", secondary: "#2A313D", background: "#FFFFFF" }, messageTypes: ["text", "image", "video", "audio", "file", "link", "location", "card", "miniprogram", "videonum", "emoji"] }, xiaohongshu: { name: "小红书", icon: "📖", colors: { primary: "#FF2442", secondary: "#333333", background: "#FFFFFF" }, messageTypes: ["text"] }, douyin: { name: "抖音", icon: "🎵", colors: { primary: "#000000", secondary: "#333333", background: "#FFFFFF" }, messageTypes: ["text"] } }, ja = (l) => E[l] || E.wechat, Ua = { install: (l) => { l.component("MessageTemplate", Ea); } }; export { Ea as MessageTemplate, Ua as default, t as defaultAssets, ja as getPlatformConfig, J as parseDouyinMessage, x as parseMessage, b as parseWeChatMessage, S as parseXiaohongshuMessage, E as platformConfigs };