From a1d7e81859f554f3a53680cc35f0f49bf1f77098 Mon Sep 17 00:00:00 2001
From: wwf <1971391498@qq.com>
Date: 星期四, 14 五月 2026 14:37:02 +0800
Subject: [PATCH] 导入项目
---
src/views/mall/promotion/kefu/components/tools/emoji.ts | 129 +++++++++++++++++++++++++++++++++++++++++++
1 files changed, 129 insertions(+), 0 deletions(-)
diff --git a/src/views/mall/promotion/kefu/components/tools/emoji.ts b/src/views/mall/promotion/kefu/components/tools/emoji.ts
new file mode 100644
index 0000000..3755e38
--- /dev/null
+++ b/src/views/mall/promotion/kefu/components/tools/emoji.ts
@@ -0,0 +1,129 @@
+import { isEmpty } from '@/utils/is'
+
+const emojiList = [
+ { name: '[绗戞帀鐗橾', file: 'xiaodiaoya.png' },
+ { name: '[鍙埍]', file: 'keai.png' },
+ { name: '[鍐烽叿]', file: 'lengku.png' },
+ { name: '[闂槾]', file: 'bizui.png' },
+ { name: '[鐢熸皵]', file: 'shengqi.png' },
+ { name: '[鎯婃亹]', file: 'jingkong.png' },
+ { name: '[鐬岀潯]', file: 'keshui.png' },
+ { name: '[澶х瑧]', file: 'daxiao.png' },
+ { name: '[鐖卞績]', file: 'aixin.png' },
+ { name: '[鍧忕瑧]', file: 'huaixiao.png' },
+ { name: '[椋炲惢]', file: 'feiwen.png' },
+ { name: '[鐤戦棶]', file: 'yiwen.png' },
+ { name: '[寮�蹇僝', file: 'kaixin.png' },
+ { name: '[鍙戝憜]', file: 'fadai.png' },
+ { name: '[娴佹唱]', file: 'liulei.png' },
+ { name: '[姹楅]', file: 'hanyan.png' },
+ { name: '[鎯婃倸]', file: 'jingshu.png' },
+ { name: '[鍥皛]', file: 'kun.png' },
+ { name: '[蹇冪]', file: 'xinsui.png' },
+ { name: '[澶╀娇]', file: 'tianshi.png' },
+ { name: '[鏅昡', file: 'yun.png' },
+ { name: '[鍟奭', file: 'a.png' },
+ { name: '[鎰ゆ�抅', file: 'fennu.png' },
+ { name: '[鐫$潃]', file: 'shuizhuo.png' },
+ { name: '[闈㈡棤琛ㄦ儏]', file: 'mianwubiaoqing.png' },
+ { name: '[闅捐繃]', file: 'nanguo.png' },
+ { name: '[鐘洶]', file: 'fankun.png' },
+ { name: '[濂藉悆]', file: 'haochi.png' },
+ { name: '[鍛曞悙]', file: 'outu.png' },
+ { name: '[榫囩墮]', file: 'ziya.png' },
+ { name: '[鎳垫瘮]', file: 'mengbi.png' },
+ { name: '[鐧界溂]', file: 'baiyan.png' },
+ { name: '[楗挎]', file: 'esi.png' },
+ { name: '[鍑禲', file: 'xiong.png' },
+ { name: '[鎰熷啋]', file: 'ganmao.png' },
+ { name: '[娴佹睏]', file: 'liuhan.png' },
+ { name: '[绗戝摥]', file: 'xiaoku.png' },
+ { name: '[娴佸彛姘碷', file: 'liukoushui.png' },
+ { name: '[灏村艾]', file: 'ganga.png' },
+ { name: '[鎯婅]', file: 'jingya.png' },
+ { name: '[澶ф儕]', file: 'dajing.png' },
+ { name: '[涓嶅ソ鎰忔�漖', file: 'buhaoyisi.png' },
+ { name: '[澶ч椆]', file: 'danao.png' },
+ { name: '[涓嶅彲鎬濊]', file: 'bukesiyi.png' },
+ { name: '[鐖变綘]', file: 'aini.png' },
+ { name: '[绾㈠績]', file: 'hongxin.png' },
+ { name: '[鐐硅禐]', file: 'dianzan.png' },
+ { name: '[鎭堕瓟]', file: 'emo.png' }
+]
+
+export interface Emoji {
+ name: string
+ url: string
+}
+
+export const useEmoji = () => {
+ const emojiPathList = ref<any[]>([])
+
+ /** 鍔犺浇鏈湴鍥剧墖 */
+ const initStaticEmoji = async () => {
+ const pathList = import.meta.glob(
+ '@/views/mall/promotion/kefu/components/asserts/*.{png,jpg,jpeg,svg}'
+ )
+ for (const path in pathList) {
+ const imageModule: any = await pathList[path]()
+ emojiPathList.value.push({ path: path, src: imageModule.default })
+ }
+ }
+
+ /** 鍒濆鍖� */
+ onMounted(async () => {
+ if (isEmpty(emojiPathList.value)) {
+ await initStaticEmoji()
+ }
+ })
+
+ /**
+ * 灏嗘枃鏈腑鐨勮〃鎯呮浛鎹㈡垚鍥剧墖
+ *
+ * @return 鏇挎崲鍚庣殑鏂囨湰
+ * @param content 娑堟伅鍐呭
+ */
+ const replaceEmoji = (content: string) => {
+ let newData = content
+ if (typeof newData !== 'object') {
+ const reg = /\[(.+?)]/g // [] 涓嫭鍙�
+ const zhEmojiName = newData.match(reg)
+ if (zhEmojiName) {
+ zhEmojiName.forEach((item) => {
+ const emojiFile = getEmojiFileByName(item)
+ newData = newData.replace(
+ item,
+ `<img style="width: 20px;height: 20px;margin:0 1px 3px 1px;vertical-align: middle;" src="${emojiFile}" alt=""/>`
+ )
+ })
+ }
+ }
+ return newData
+ }
+
+ /**
+ * 鑾峰緱鎵�鏈夎〃鎯�
+ *
+ * @return 琛ㄦ儏鍒楄〃
+ */
+ function getEmojiList(): Emoji[] {
+ return emojiList.map((item) => ({
+ url: getEmojiFileByName(item.name),
+ name: item.name
+ })) as Emoji[]
+ }
+
+ function getEmojiFileByName(name: string) {
+ for (const emoji of emojiList) {
+ if (emoji.name === name) {
+ const emojiPath = emojiPathList.value.find(
+ (item: { path: string; src: string }) => item.path.indexOf(emoji.file) > -1
+ )
+ return emojiPath ? emojiPath.src : undefined
+ }
+ }
+ return false
+ }
+
+ return { replaceEmoji, getEmojiList }
+}
--
Gitblit v1.8.0