mirror of
https://github.com/TangSengDaoDao/TangSengDaoDaoManager
synced 2025-06-06 17:50:44 +00:00
feat: ✨新增消息动态表情、矢量emoji
This commit is contained in:
parent
6120639ab3
commit
ab889c2964
@ -13,6 +13,7 @@
|
|||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@element-plus/icons-vue": "^2.1.0",
|
"@element-plus/icons-vue": "^2.1.0",
|
||||||
"@icon-park/vue-next": "^1.4.2",
|
"@icon-park/vue-next": "^1.4.2",
|
||||||
|
"@lottiefiles/lottie-player": "^2.0.2",
|
||||||
"@vueuse/core": "^10.1.2",
|
"@vueuse/core": "^10.1.2",
|
||||||
"axios": "^1.4.0",
|
"axios": "^1.4.0",
|
||||||
"dayjs": "^1.11.9",
|
"dayjs": "^1.11.9",
|
||||||
@ -27,7 +28,8 @@
|
|||||||
"vue-color-kit": "^1.0.5",
|
"vue-color-kit": "^1.0.5",
|
||||||
"vue-grid-layout": "^3.0.0-beta1",
|
"vue-grid-layout": "^3.0.0-beta1",
|
||||||
"vue-i18n": "^9.2.2",
|
"vue-i18n": "^9.2.2",
|
||||||
"vue-router": "^4.2.0"
|
"vue-router": "^4.2.0",
|
||||||
|
"vue3-lottie": "^2.7.4"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@types/sortablejs": "^1.15.1",
|
"@types/sortablejs": "^1.15.1",
|
||||||
|
79
pnpm-lock.yaml
generated
79
pnpm-lock.yaml
generated
@ -11,6 +11,9 @@ dependencies:
|
|||||||
'@icon-park/vue-next':
|
'@icon-park/vue-next':
|
||||||
specifier: ^1.4.2
|
specifier: ^1.4.2
|
||||||
version: 1.4.2(vue@3.3.4)
|
version: 1.4.2(vue@3.3.4)
|
||||||
|
'@lottiefiles/lottie-player':
|
||||||
|
specifier: ^2.0.2
|
||||||
|
version: 2.0.2
|
||||||
'@vueuse/core':
|
'@vueuse/core':
|
||||||
specifier: ^10.1.2
|
specifier: ^10.1.2
|
||||||
version: 10.1.2(vue@3.3.4)
|
version: 10.1.2(vue@3.3.4)
|
||||||
@ -56,6 +59,9 @@ dependencies:
|
|||||||
vue-router:
|
vue-router:
|
||||||
specifier: ^4.2.0
|
specifier: ^4.2.0
|
||||||
version: 4.2.0(vue@3.3.4)
|
version: 4.2.0(vue@3.3.4)
|
||||||
|
vue3-lottie:
|
||||||
|
specifier: ^2.7.4
|
||||||
|
version: 2.7.4(vue@3.3.4)
|
||||||
|
|
||||||
devDependencies:
|
devDependencies:
|
||||||
'@types/sortablejs':
|
'@types/sortablejs':
|
||||||
@ -1314,6 +1320,26 @@ packages:
|
|||||||
'@jridgewell/sourcemap-codec': 1.4.14
|
'@jridgewell/sourcemap-codec': 1.4.14
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
/@lit-labs/ssr-dom-shim@1.1.1:
|
||||||
|
resolution: {integrity: sha512-kXOeFbfCm4fFf2A3WwVEeQj55tMZa8c8/f9AKHMobQMkzNUfUj+antR3fRPaZJawsa1aZiP/Da3ndpZrwEe4rQ==}
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/@lit/reactive-element@1.6.3:
|
||||||
|
resolution: {integrity: sha512-QuTgnG52Poic7uM1AN5yJ09QMe0O28e10XzSvWDz02TJiiKee4stsiownEIadWm8nYzyDAyT+gKzUoZmiWQtsQ==}
|
||||||
|
dependencies:
|
||||||
|
'@lit-labs/ssr-dom-shim': 1.1.1
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/@lottiefiles/lottie-player@2.0.2:
|
||||||
|
resolution: {integrity: sha512-R9WF2/gFboZ0GW3QjqtbZF94JQq8oI1t5XWZPtTypvk2xTizphybZu+c08QFQbqY6rnkazHIyRBj2MK0qr6Hrw==}
|
||||||
|
dependencies:
|
||||||
|
'@types/pako': 1.0.4
|
||||||
|
lit: 2.8.0
|
||||||
|
lottie-web: 5.12.2
|
||||||
|
pako: 2.1.0
|
||||||
|
resize-observer-polyfill: 1.5.1
|
||||||
|
dev: false
|
||||||
|
|
||||||
/@nicolo-ribaudo/semver-v6@6.3.3:
|
/@nicolo-ribaudo/semver-v6@6.3.3:
|
||||||
resolution: {integrity: sha512-3Yc1fUTs69MG/uZbJlLSI3JISMn2UV2rg+1D/vROUqZyh3l6iYHCs7GMp+M40ZD7yOdDbYjJcU1oTJhrc+dGKg==}
|
resolution: {integrity: sha512-3Yc1fUTs69MG/uZbJlLSI3JISMn2UV2rg+1D/vROUqZyh3l6iYHCs7GMp+M40ZD7yOdDbYjJcU1oTJhrc+dGKg==}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
@ -1416,6 +1442,10 @@ packages:
|
|||||||
resolution: {integrity: sha512-jfT7iTf/4kOQ9S7CHV9BIyRaQqHu67mOjsIQBC3BKZvzvUB6zLxEwJ6sBE3ozcvP8kF6Uk5PXN0Q+c0dfhGX0g==}
|
resolution: {integrity: sha512-jfT7iTf/4kOQ9S7CHV9BIyRaQqHu67mOjsIQBC3BKZvzvUB6zLxEwJ6sBE3ozcvP8kF6Uk5PXN0Q+c0dfhGX0g==}
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
/@types/pako@1.0.4:
|
||||||
|
resolution: {integrity: sha512-Z+5bJSm28EXBSUJEgx29ioWeEEHUh6TiMkZHDhLwjc9wVFH+ressbkmX6waUZc5R3Gobn4Qu5llGxaoflZ+yhA==}
|
||||||
|
dev: false
|
||||||
|
|
||||||
/@types/semver@7.5.0:
|
/@types/semver@7.5.0:
|
||||||
resolution: {integrity: sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw==}
|
resolution: {integrity: sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw==}
|
||||||
dev: true
|
dev: true
|
||||||
@ -1430,6 +1460,10 @@ packages:
|
|||||||
'@types/node': 20.4.0
|
'@types/node': 20.4.0
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
/@types/trusted-types@2.0.3:
|
||||||
|
resolution: {integrity: sha512-NfQ4gyz38SL8sDNrSixxU2Os1a5xcdFxipAFxYEuLUlvU2uDwS4NUpsImcf1//SlWItCVMMLiylsxbmNMToV/g==}
|
||||||
|
dev: false
|
||||||
|
|
||||||
/@types/web-bluetooth@0.0.16:
|
/@types/web-bluetooth@0.0.16:
|
||||||
resolution: {integrity: sha512-oh8q2Zc32S6gd/j50GowEjKLoOVOwHP/bWVjKJInBwQqdOYMdPrf1oVlelTlyfFK3CKxL1uahMDAr+vy8T7yMQ==}
|
resolution: {integrity: sha512-oh8q2Zc32S6gd/j50GowEjKLoOVOwHP/bWVjKJInBwQqdOYMdPrf1oVlelTlyfFK3CKxL1uahMDAr+vy8T7yMQ==}
|
||||||
dev: false
|
dev: false
|
||||||
@ -3857,6 +3891,28 @@ packages:
|
|||||||
resolve: 1.22.2
|
resolve: 1.22.2
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
/lit-element@3.3.3:
|
||||||
|
resolution: {integrity: sha512-XbeRxmTHubXENkV4h8RIPyr8lXc+Ff28rkcQzw3G6up2xg5E8Zu1IgOWIwBLEQsu3cOVFqdYwiVi0hv0SlpqUA==}
|
||||||
|
dependencies:
|
||||||
|
'@lit-labs/ssr-dom-shim': 1.1.1
|
||||||
|
'@lit/reactive-element': 1.6.3
|
||||||
|
lit-html: 2.8.0
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/lit-html@2.8.0:
|
||||||
|
resolution: {integrity: sha512-o9t+MQM3P4y7M7yNzqAyjp7z+mQGa4NS4CxiyLqFPyFWyc4O+nodLrkrxSaCTrla6M5YOLaT3RpbbqjszB5g3Q==}
|
||||||
|
dependencies:
|
||||||
|
'@types/trusted-types': 2.0.3
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/lit@2.8.0:
|
||||||
|
resolution: {integrity: sha512-4Sc3OFX9QHOJaHbmTMk28SYgVxLN3ePDjg7hofEft2zWlehFL3LiAuapWc4U/kYwMYJSh2hTCPZ6/LIC7ii0MA==}
|
||||||
|
dependencies:
|
||||||
|
'@lit/reactive-element': 1.6.3
|
||||||
|
lit-element: 3.3.3
|
||||||
|
lit-html: 2.8.0
|
||||||
|
dev: false
|
||||||
|
|
||||||
/local-pkg@0.4.3:
|
/local-pkg@0.4.3:
|
||||||
resolution: {integrity: sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==}
|
resolution: {integrity: sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==}
|
||||||
engines: {node: '>=14'}
|
engines: {node: '>=14'}
|
||||||
@ -3911,6 +3967,10 @@ packages:
|
|||||||
is-unicode-supported: 1.3.0
|
is-unicode-supported: 1.3.0
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
/lottie-web@5.12.2:
|
||||||
|
resolution: {integrity: sha512-uvhvYPC8kGPjXT3MyKMrL3JitEAmDMp30lVkuq/590Mw9ok6pWcFCwXJveo0t5uqYw1UREQHofD+jVpdjBv8wg==}
|
||||||
|
dev: false
|
||||||
|
|
||||||
/lower-case@2.0.2:
|
/lower-case@2.0.2:
|
||||||
resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==}
|
resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==}
|
||||||
dependencies:
|
dependencies:
|
||||||
@ -4304,6 +4364,10 @@ packages:
|
|||||||
aggregate-error: 3.1.0
|
aggregate-error: 3.1.0
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
/pako@2.1.0:
|
||||||
|
resolution: {integrity: sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==}
|
||||||
|
dev: false
|
||||||
|
|
||||||
/param-case@3.0.4:
|
/param-case@3.0.4:
|
||||||
resolution: {integrity: sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==}
|
resolution: {integrity: sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==}
|
||||||
dependencies:
|
dependencies:
|
||||||
@ -4635,6 +4699,10 @@ packages:
|
|||||||
functions-have-names: 1.2.3
|
functions-have-names: 1.2.3
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
/resize-observer-polyfill@1.5.1:
|
||||||
|
resolution: {integrity: sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==}
|
||||||
|
dev: false
|
||||||
|
|
||||||
/resolve-dir@1.0.1:
|
/resolve-dir@1.0.1:
|
||||||
resolution: {integrity: sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg==}
|
resolution: {integrity: sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg==}
|
||||||
engines: {node: '>=0.10.0'}
|
engines: {node: '>=0.10.0'}
|
||||||
@ -5566,6 +5634,17 @@ packages:
|
|||||||
typescript: 5.0.4
|
typescript: 5.0.4
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
/vue3-lottie@2.7.4(vue@3.3.4):
|
||||||
|
resolution: {integrity: sha512-EJATgpaWXyqdKxaSY2Q3lK4tTkxTSssKTqBmsIEG7Yj8jT75RGF6zhsoBc/kT10X41vt2HEpjPYmEQfKt6JfOw==}
|
||||||
|
engines: {node: '>=12'}
|
||||||
|
peerDependencies:
|
||||||
|
vue: ^3.2
|
||||||
|
dependencies:
|
||||||
|
lodash-es: 4.17.21
|
||||||
|
lottie-web: 5.12.2
|
||||||
|
vue: 3.3.4
|
||||||
|
dev: false
|
||||||
|
|
||||||
/vue@3.3.4:
|
/vue@3.3.4:
|
||||||
resolution: {integrity: sha512-VTyEYn3yvIeY1Py0WaYGZsXnz3y5UnGi62GjVEqvEGPl6nxbOrCXbVOTQWBEJUqAyTUk2uJ5JLVnYJ6ZzGbrSw==}
|
resolution: {integrity: sha512-VTyEYn3yvIeY1Py0WaYGZsXnz3y5UnGi62GjVEqvEGPl6nxbOrCXbVOTQWBEJUqAyTUk2uJ5JLVnYJ6ZzGbrSw==}
|
||||||
dependencies:
|
dependencies:
|
||||||
|
@ -6,6 +6,7 @@
|
|||||||
<link rel="icon" type="image/png" href="/logo.png" />
|
<link rel="icon" type="image/png" href="/logo.png" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
<title><%- title %></title>
|
<title><%- title %></title>
|
||||||
|
<!-- <script src="/js/tgs-player.js"></script> -->
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body>
|
<body>
|
||||||
|
54
public/js/tgs-player.js
Normal file
54
public/js/tgs-player.js
Normal file
File diff suppressed because one or more lines are too long
@ -5,17 +5,17 @@
|
|||||||
{{ msg['content'] }}
|
{{ msg['content'] }}
|
||||||
</span>
|
</span>
|
||||||
<!-- 图片 -->
|
<!-- 图片 -->
|
||||||
<img v-else-if="msg.type == 2" class="h-220px" :src="`${url}${msg['url']}`" />
|
<img v-else-if="msg.type == 2" class="w-120px" :src="`${url}${msg['url']}`" />
|
||||||
<!-- GIF -->
|
<!-- GIF -->
|
||||||
<img v-else-if="msg.type == 3" class="w-320px" :src="`${url}${msg['url']}`" />
|
<img v-else-if="msg.type == 3" class="w-120px" :src="`${url}${msg['url']}`" />
|
||||||
<!-- 语音 -->
|
<!-- 语音 -->
|
||||||
<audio v-else-if="msg.type == 4" :src="`${url}${msg['url']}`"></audio>
|
<audio v-else-if="msg.type == 4" :src="`${url}${msg['url']}`"></audio>
|
||||||
<!-- 视频 -->
|
<!-- 视频 -->
|
||||||
<video v-else-if="msg.type == 5" controls :src="`${url}${msg['url']}`" class="w-25px h-200px"></video>
|
<video v-else-if="msg.type == 5" controls :src="`${url}${msg['url']}`" class="w-25px h-200px"></video>
|
||||||
<!-- 位置 -->
|
<!-- 位置 -->
|
||||||
<div v-else-if="msg.type == 6">
|
<div v-else-if="msg.type == 6">
|
||||||
<div>{{ msg['title'] }}</div>
|
<div>位置标题:{{ msg['title'] }}</div>
|
||||||
<div>{{ msg['address'] }}</div>
|
<div>地址:{{ msg['address'] }}</div>
|
||||||
</div>
|
</div>
|
||||||
<!-- 名片 -->
|
<!-- 名片 -->
|
||||||
<div v-else-if="msg.type == 7">
|
<div v-else-if="msg.type == 7">
|
||||||
@ -24,8 +24,8 @@
|
|||||||
</div>
|
</div>
|
||||||
<!-- 文件 -->
|
<!-- 文件 -->
|
||||||
<div v-else-if="msg.type == 8">
|
<div v-else-if="msg.type == 8">
|
||||||
<div>{{ msg['title'] }}</div>
|
<div>文件标题:{{ msg['title'] }}</div>
|
||||||
<div>{{ msg['address'] }}</div>
|
<div>地址:{{ msg['address'] }}</div>
|
||||||
</div>
|
</div>
|
||||||
<!-- 红包 -->
|
<!-- 红包 -->
|
||||||
<div v-else-if="msg.type == 9">
|
<div v-else-if="msg.type == 9">
|
||||||
@ -40,19 +40,40 @@
|
|||||||
<!-- 合并转发 -->
|
<!-- 合并转发 -->
|
||||||
<span v-else-if="msg.type == 11"> [合并转发] </span>
|
<span v-else-if="msg.type == 11"> [合并转发] </span>
|
||||||
<!-- 动态表情 -->
|
<!-- 动态表情 -->
|
||||||
<div v-else-if="msg.type == 12">[动态表情]</div>
|
<tgs-player
|
||||||
|
v-else-if="msg.type == 12"
|
||||||
|
:src="`${url}${msg['url']}`"
|
||||||
|
:data-src="`${url}${msg['url']}`"
|
||||||
|
autoplay
|
||||||
|
loop
|
||||||
|
mode="normal"
|
||||||
|
style="width: 120px; height: 100px"
|
||||||
|
></tgs-player>
|
||||||
<!-- 矢量emoji -->
|
<!-- 矢量emoji -->
|
||||||
<span v-else-if="msg.type == 13"> [矢量emoji] </span>
|
<template v-else-if="msg.type == 13">
|
||||||
<!-- 矢量emoji -->
|
<tgs-player
|
||||||
<span v-else-if="msg.type == 1014"> [截屏消息] </span>
|
v-if="msg.type == 13 && msg['url']"
|
||||||
|
:src="`${url}${msg['url']}`"
|
||||||
|
:data-src="`${url}${msg['url']}`"
|
||||||
|
autoplay
|
||||||
|
loop
|
||||||
|
mode="normal"
|
||||||
|
style="width: 120px; height: 100px"
|
||||||
|
></tgs-player>
|
||||||
|
<span v-else> {{ msg['content'] ? msg['content'] : `[矢量emoji]` }} </span>
|
||||||
|
</template>
|
||||||
<!-- 系统消息 -->
|
<!-- 系统消息 -->
|
||||||
<span v-else-if="msg.type >= 1000 && msg.type <= 2000"> [系统消息] </span>
|
<template v-else-if="msg.type >= 1000 && msg.type <= 2000">
|
||||||
|
<span v-if="msg.type == 1014"> [截屏消息] </span>
|
||||||
|
<span v-else> [系统消息] </span>
|
||||||
|
</template>
|
||||||
<!-- 未知消息类型 -->
|
<!-- 未知消息类型 -->
|
||||||
<span v-else> [未知消息类型] </span>
|
<span v-else> [未知消息类型] </span>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script lang="tsx" name="BdMsg" setup>
|
<script lang="tsx" name="BdMsg" setup>
|
||||||
|
import '@lottiefiles/lottie-player/dist/tgs-player';
|
||||||
import { BU_DOU_CONFIG } from '@/config';
|
import { BU_DOU_CONFIG } from '@/config';
|
||||||
interface IProps {
|
interface IProps {
|
||||||
msg: any;
|
msg: any;
|
||||||
|
@ -26,7 +26,13 @@ const plugins = [
|
|||||||
dts: 'src/types/components.d.ts'
|
dts: 'src/types/components.d.ts'
|
||||||
}),
|
}),
|
||||||
VueDevTools(),
|
VueDevTools(),
|
||||||
vue(),
|
vue({
|
||||||
|
template: {
|
||||||
|
compilerOptions: {
|
||||||
|
isCustomElement: tag => /^tgs-player/.test(tag)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}),
|
||||||
vueJsx(),
|
vueJsx(),
|
||||||
htmlTemplate({
|
htmlTemplate({
|
||||||
data: {
|
data: {
|
||||||
@ -95,7 +101,8 @@ export default defineConfig({
|
|||||||
manualChunks: {
|
manualChunks: {
|
||||||
// 分包配置,配置完成自动按需加载
|
// 分包配置,配置完成自动按需加载
|
||||||
vue: ['vue', 'vue-router', 'pinia', 'vue-i18n', 'element-plus'],
|
vue: ['vue', 'vue-router', 'pinia', 'vue-i18n', 'element-plus'],
|
||||||
echarts: ['echarts']
|
echarts: ['echarts'],
|
||||||
|
'tgs-player': ['@lottiefiles/lottie-player/dist/tgs-player']
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user