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
In diesem Artikel wird der spezifische Code der m...
1. Herunterladen https://dev.mysql.com/downloads/...
Inhaltsverzeichnis Da Vuex einen einzelnen Zustan...
Inhaltsverzeichnis Entdecken Sie: Anwendung von D...
React Native kann native iOS- und Android-Apps ba...
Heute habe ich eine Festplattenalarm-Ausnahme erh...
Als ich kürzlich an einem Projekt arbeitete, stel...
Code kopieren Der Code lautet wie folgt: wmode-Pa...
Inhaltsverzeichnis 1. Testdaten 2. Die Unannehmli...
Ich habe kürzlich mit der Remote-Entwicklungsfunk...
Vorwort Dies ist eine alte Forderung, aber es gib...
Inhaltsverzeichnis 1. Einleitung Zweites Training...
Überblick binlog2sql ist ein in Python entwickelt...
Durch die Verwendung von iFrames können problemlo...
1. MySQLs eigenes Stresstest-Tool Mysqlslap mysql...