如何利用layim實現記錄的初始化(附代碼)

來源:互聯網
上載者:User
本篇文章給大家帶來的內容是關於如何利用layim實現記錄的初始化(附代碼),有一定的參考價值,有需要的朋友可以參考一下,希望對你有所協助。

語言:PHP+layui
沒有使用本機快取,全部是後台介面的資料

在做一個工單系統的時候,客戶要求必須要像QQ聊天一樣。我這多年根深蒂固的老phper,直接想起來layim。但是在遍曆工單曆史訊息的時候出現了一些小問題,經過一天的熟悉終於弄出來,下面就分享一下自己的代碼,順便做個記錄。
PS:我不是專業前端,方法用的不好,不要噴哈
- 首先是配置layim,就是官方文檔的配置。

layim.config({                        init: { }                        ,voice:false                        ,brief:false//是否簡約模式,簡約模式沒有關閉按鈕                    });

這裡需要注意一個地方,就是【簡約模式】是沒有關閉按鈕的。如果你需要關閉按鈕,又不想有列表,可以用css去除掉。

.layui-layim{            display: none;        }

接下來就是遍曆曆史訊息了

// 清空所有本機快取訊息localStorage.clear();// 先開啟視窗 layim.chat({ name: '專家答疑'      ,type: 'friend'       ,avatar: '//tva3.sinaimg.cn/crop.0.0.180.180.180/7f5f6861jw1e8qgp5bmzyj2050050aa8.jpg'       ,id: question_id     });// 擷取曆史訊息$.ajax({url:"{:url('meet/get_init_msg')}",type:"post",data:{question_id:question_id},dataType:"json",success:function (data) {if(data.length > 0){for (var i in data){layim.getMessage({username: "專家答疑" //訊息來源使用者名稱      ,avatar: "http://tp1.sinaimg.cn/1571889140/180/40030060651/1" //訊息來源帳戶圖片      ,id: data[i]['question_id']//訊息的來源ID(如果是私聊,則是使用者id,如果是群聊,則是群組id)      ,type: "friend" //聊天視窗來源類型,從發送訊息傳遞的to裡面擷取      ,content: data[i]['content'] //訊息內容      ,cid: 0 //訊息id,可不傳。除非你要對訊息進行一些操作(如撤回)      ,mine: true //是否我發送的訊息,如果為true,則會顯示在右方      ,fromid: data[i]['user_id'] //訊息的寄件者id(比如群組中的某個訊息寄件者),可用於自動解決瀏覽器多視窗時的一些問題      ,timestamp: data[i]['addtime'] * 1000 //服務端時間戳記毫秒數。注意:如果你返回的是標準的 unix 時間戳記,記得要 *1000      });layim.getMessage({             username: "專家答疑" //訊息來源使用者名稱             ,avatar: "//tva3.sinaimg.cn/crop.0.0.180.180.180/7f5f6861jw1e8qgp5bmzyj2050050aa8.jpg" //訊息來源帳戶圖片             ,id: data[i]['question_id']//訊息的來源ID(如果是私聊,則是使用者id,如果是群聊,則是群組id)             ,type: "friend" //聊天視窗來源類型,從發送訊息傳遞的to裡面擷取             ,content: data[i]['feedback']//訊息內容             ,cid: 0 //訊息id,可不傳。除非你要對訊息進行一些操作(如撤回)             ,mine: false //是否我發送的訊息,如果為true,則會顯示在右方             ,fromid: data[i]['user_id'] //訊息的寄件者id(比如群組中的某個訊息寄件者),可用於自動解決瀏覽器多視窗時的一些問題             ,timestamp: data[i]['zhuan_time'] * 1000 //服務端時間戳記毫秒數。注意:如果你返回的是標準的 unix 時間戳記,記得要 *1000            });           }     }  }});

最後的發送訊息什麼的,文檔上面都有,這裡就不多說來,最後附一個全部代碼
JS代碼:

<script>function im(question_id) {   layui.use(['layim','jquery'], function(){  var layim = layui.layim  ,$ = layui.jquery;   //基礎配置   layim.config({    init: {        url:"{:url('meet/get_user_chat')}"        ,data:{question_id:question_id}       }       ,voice:false       ,brief:false//是否簡約模式,簡約模式沒有關閉按鈕       });       // 清空所有本機快取訊息       localStorage.clear();       // 先開啟視窗       layim.chat({       name: '專家答疑'       ,type: 'friend'       ,avatar: '//tva3.sinaimg.cn/crop.0.0.180.180.180/7f5f6861jw1e8qgp5bmzyj2050050aa8.jpg'       ,id: question_id       });       // 擷取曆史訊息       $.ajax({       url:"{:url('meet/get_init_msg')}",       type:"post",       data:{question_id:question_id},       dataType:"json",       success:function (data) {       if(data.length > 0){       for (var i in data){       layim.getMessage({       username: "專家答疑" //訊息來源使用者名稱       ,avatar: "http://tp1.sinaimg.cn/1571889140/180/40030060651/1" //訊息來源帳戶圖片       ,id: data[i]['question_id']//訊息的來源ID(如果是私聊,則是使用者id,如果是群聊,則是群組id)       ,type: "friend" //聊天視窗來源類型,從發送訊息傳遞的to裡面擷取       ,content: data[i]['content'] //訊息內容       ,cid: 0 //訊息id,可不傳。除非你要對訊息進行一些操作(如撤回)       ,mine: true //是否我發送的訊息,如果為true,則會顯示在右方       ,fromid: data[i]['user_id'] //訊息的寄件者id(比如群組中的某個訊息寄件者),可用於自動解決瀏覽器多視窗時的一些問題       ,timestamp: data[i]['addtime'] * 1000 //服務端時間戳記毫秒數。注意:如果你返回的是標準的 unix 時間戳記,記得要 *1000       });  layim.getMessage({       username: "專家答疑" //訊息來源使用者名稱       ,avatar: "//tva3.sinaimg.cn/crop.0.0.180.180.180/7f5f6861jw1e8qgp5bmzyj2050050aa8.jpg" //訊息來源帳戶圖片       ,id: data[i]['question_id']//訊息的來源ID(如果是私聊,則是使用者id,如果是群聊,則是群組id)       ,type: "friend" //聊天視窗來源類型,從發送訊息傳遞的to裡面擷取       ,content: data[i]['feedback']//訊息內容       ,cid: 0 //訊息id,可不傳。除非你要對訊息進行一些操作(如撤回)       ,mine: false //是否我發送的訊息,如果為true,則會顯示在右方       ,fromid: data[i]['user_id'] //訊息的寄件者id(比如群組中的某個訊息寄件者),可用於自動解決瀏覽器多視窗時的一些問題       ,timestamp: data[i]['zhuan_time'] * 1000 //服務端時間戳記毫秒數。注意:如果你返回的是標準的 unix 時間戳記,記得要 *1000       });     }  } }});// 監聽發送訊息layim.on('sendMessage', function(res){var mine = res.mine.content; //包含我發送的訊息及我的資訊});});}</script>

CSS代碼:

<style>        .layui-layim{            display: none;        }    </style>

最後附上一張成品圖:

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.