Der spezifische Code zum Senden von Emoticons im Vue-Chat-Feld und zum Senden von Emoticons in der Vue-Oberfläche dient zu Ihrer Information. Der spezifische Inhalt ist wie folgt 1. Bestimmen Sie beim Senden einer Nachricht, ob es sich bei der Nachricht um ein Emoticon handelt, den Emoticon-Typ: 3, den Inhalt: [Liebe], und speichern Sie sie in der Datenbank <img v-else-if="chatItem.type === 3" :src="emojiUrl + emojiMap[chatItem.content]" style="width:25px;height:25px" /> 1.textElement.vue <Vorlage> <div Klasse="Textelement-Wrapper" > <div Klasse="Textelement"> <div :class="istMine ? 'element-send' : 'element-received'"> <p>{{ Datum }}</p> <!-- Text --> <span>{{ chatItem.content }}</span> <span v-if="chatItem.type === 1">{{ chatItem.content }}</span> <!-- Ausdruck --> <img v-else-if="chatItem.type === 3" :src="emojiUrl + emojiMap[chatItem.content]" style="width:25px;height:25px" /> </div> <div :class="isMine ? 'send-img' : 'received-img'"> <img: src="chatItem.from_headimg" Breite="40px" Höhe="40px"/> </div> </div> </div> </Vorlage> <Skript> // decodeText importieren aus '../../../untils/decodeText' importiere { getFullDate } von '../../../untils/common' importiere {emojiMap, emojiUrl} von '../../../untils/emojiMap' Standard exportieren { Name: 'TextElement', Requisiten: ['chatItem', 'isMine'], Daten() { zurückkehren { emojiMap: emojiMap, emojiUrl: emojiUrl, } }, berechnet: { // Inhaltsliste() { // decodeText(dieses.chatItem) zurückgeben // }, // Zeitstempel Verarbeitungsdatum () { returniere getFullDate(neues Datum(this.chatItem.time * 1000)) }, } } </Skript> <Stilbereich> .text-element-wrapper { Position: relativ; maximale Breite: 360px; Rahmenradius: 3px; Worttrennung: Worttrennung; Rand: 1px durchgezogenes RGB (235, 235, 235); } .text-element { Polsterung: 6px; } .element-empfangen { maximale Breite: 280px; Hintergrundfarbe: #fff; schweben: rechts; } .empfangen-img { schweben: links; Polsterung rechts: 6px; } .element-senden { maximale Breite: 280px; Hintergrund: RGB (5, 185, 240); schweben: links; } .send-img { schweben: rechts; } </Stil> Die Grundidee beim Senden von Emoticons in der Vue-Schnittstelle ist: <Vorlage> <Abschnitt Klasse="Dialog-Abschnitt Clearfix" > <div Klasse = "Zeile Clearfix" v-for = "(Element, Index) in msgs" :Schlüssel = Index> <img :src="item.uid == meineInfo.uid ? meineInfo.avatar :otherInfo.avatar" :class="item.uid == meineInfo.uid ? 'headerleft' : 'headerright'"> <p :class="item.uid == myInfo.uid ? 'textleft' : 'textright'" v-html="customEmoji(item.content)"></p> </div> </Abschnitt> <div id="emoji-list" class="flex-column" v-if="emojiShow"> //Bestimmen Sie hiermit zunächst, ob das Emoji-Popup-Fenster angezeigt werden soll<div class="flex-cell flex-row" v-for="list in imgs"> <div Klasse="flex-cell flex-row Zelle" v-for="Element in Liste" @click="inputEmoji(Element)"> <img :src="'./emoji/' + item + '.png'"> </div> </div> </div> </Vorlage> <Skript> import { sendMsg } from "@/ws"; //Dies ist eine lange Verbindung import _ from "lodash"; //Dies ist eine sehr leistungsfähige Bibliothek in js import eventBus from '@/eventBus' //Dies ist eine öffentliche Datei, die zwischen untergeordnetem und übergeordnetem Element übergeben wird console.log(emoji) Standard exportieren { Daten() { this.imgs = _.chunk(emoji, 6) //Hiermit wird die Chunk-Methode der lodash-Bibliothek aufgerufen, um die sechs Elemente in ein Array aufzuteilen. Im Emoji-Array handelt es sich dabei lediglich um ein zweidimensionales Array. return { emojiShow: false //Zu Beginn wird die Klickschaltfläche standardmäßig nicht angezeigt. Um die Klickschaltfläche anzuzeigen, können Sie @click='emojiShow=emojiShow'} schreiben; }, Methoden: { customEmoji(text) { //Diese Funktion wird vom Server verwendet, um den übergebenen Namen in ein Bild umzuwandeln. return text.replace(/\[([A-Za-z0-9_]+)\]/g, '<img src="./emoji/$1.png" style="width:30px; height:30px;">') }, inputEmoji(Bild) { this.content += `[${pic}]` //Der übergebene Name wird in ein Bild umgewandelt} }; </Skript> <Stilbereich> @import '../../assets/css/dialogue.css'; #Emoji-Liste { Höhe: 230px; Hintergrund: #fff; } #emoji-Liste .cell { Zeilenhöhe: 13vh; Rahmen rechts: 1rpx durchgezogen #ddd; Rahmen unten: 1rpx durchgezogen #ddd; } .flex-Zeile { Anzeige: Flex; Flex-Richtung: Reihe; Inhalt ausrichten: zentriert; Elemente ausrichten: zentrieren; } .flex-Spalte { Anzeige: Flex; Flex-Richtung: Spalte; Inhalt ausrichten: zentriert; Elemente ausrichten: strecken; } .flex-Zelle { biegen: 1; } .cell img { Breite: 35px; Höhe: 35px; } </Stil> Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird. Das könnte Sie auch interessieren:
|
<<: Detaillierte Schritte zum Hinzufügen von Hosts, die Sie in Zabbix überwachen müssen
>>: Lösung für den ONLY_FULL_GROUP_BY-Fehler in Mysql5.7 und höher
Inhaltsverzeichnis Vorwort 1. unbekannt vs. belie...
Da ich möchte, dass die virtuelle Maschine eine e...
VMware Tools ist ein Tool, das mit virtuellen VMw...
** Installieren Sie mysql-8.0.20 unter Linux ** U...
brauchen: Das Backend gibt ein Array-Objekt zurüc...
Unter Linux können die Befehle cat, more und less...
Vorwort Dieser Artikel stellt hauptsächlich den r...
Downloadlink: Betriebsumgebung CentOS 7.6 in eine...
Lassen Sie uns über einige Probleme sprechen, die ...
XML/HTML-CodeInhalt in die Zwischenablage kopiere...
Inhaltsverzeichnis Vorwort Was sind asynchrone It...
Wenn der Programmdienst mit k8s bereitgestellt wi...
1. Ein-Klick-Installation des Mysql-Skripts [root...
Vorwort In diesem Artikel sind einige allgemeine ...
Die EXPLAIN-Anweisung liefert Informationen darüb...