@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
JavaScript
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
};