应用系统定制开发vue:聊天对话框的实现

实现效果:应用系统定制开发不知道怎么录屏 应用系统定制开发就用图片展示了,应用系统定制开发实现了聊天框的基础功能,也有一些细节考虑不完全。未输入消息时可发送图片或视频,输入消息后显示发送按钮,保持滚动条在位于底部的最新消息。

 实现方式:

1.布局:使用了,flex-direction: row-reverse;flex-direction: row;

为了兼容混合消息类型,参考大部分聊天框,都是图片视频与文字作为两条消息发送的。

也可以使用的Layout布局,会更加简单一下。

 2.滚动条位于底部,展示最新消息:

  1. scrollToBottom() {
  2. var itemBox = this.$refs.itemBox;
  3. itemBox.scrollTop = itemBox.scrollHeight;
  4. },
  1. updated() {
  2. this.$nextTick(() => {
  3. this.scrollToBottom();
  4. });
  5. },

3.输入全为空格不能发送,一般只要不是全为空格,空格就可以保留,考虑的细一点,还可以处理空格换行的情况,这里就简单处理了,只考虑全为空格的情况:

valuet.trim().length

4:预览视频和图片:图片预览建议使用vant就可以了,视频的预览不建议同个页面使用多个video标签,建议不超过3个video,不然会造成页面卡顿,这里建议在项目中单独建一个预览视屏的页面,只使用一个video标签,预览视频直接传链接过去。

5:处理聊天信息里的链接,后端提供的聊天肯定都是字符串,如果将链接直接以字符串展示,点击是不会跳转的,可以使用正则表达式加富文本替换一下

  1. setLinks(text) {
  2. if (text) {
  3. const Rexp =
  4. /(\b(https?|ftp|file):\/\/([-A-Z0-9+&@#%?=~_|!:,.;]*)([-A-Z0-9+&@#%?\/=~_|!:,.;]*)[-A-Z0-9+&@#\/%=~_|])/gi;
  5. return text.replace(Rexp, "<a href='$1' target='_blank'>$1</a>");
  6. }
  7. },

6:最后看几个样式的细节

 长单词换行,以及数字,英文,符号不会换行,还有浏览器默认压缩空格的问题

  1. word-break: break-all; //允许在单词内换行
  2. word-wrap: break-word; //在长单词或 URL 地址内部进行换行
  3. white-space: pre-wrap; //解决浏览器空格合并

设置几个样式就可以了,大家可以去看一下这几个属性的其它用法

网站建设定制开发 软件系统开发定制 定制软件开发 软件开发定制 定制app开发 app开发定制 app开发定制公司 电商商城定制开发 定制小程序开发 定制开发小程序 客户管理系统开发定制 定制网站 定制开发 crm开发定制 开发公司 小程序开发定制 定制软件 收款定制开发 企业网站定制开发 定制化开发 android系统定制开发 定制小程序开发费用 定制设计 专注app软件定制开发 软件开发定制定制 知名网站建设定制 软件定制开发供应商 应用系统定制开发 软件系统定制开发 企业管理系统定制开发 系统定制开发