vue整合ideakefu元件
簡介
idea-kefu
號稱是為vue使用者接入客服提供快速、方便、穩定的解決方案。
效果如下
官網地址
http://kefu.techidea8.com/
開發文件地址
http://kefu.techidea8.com/html/wiki
主要功能說明
本元件支援小程式、H5、和APP。坐席端支援app/微信公眾號/windows系統,功能強大
- 支援文字訊息
- 支援圖片訊息
- 支援客戶表單
- 支援emoj鬥圖
- 客服數目不受限制
- 支援模板訊息提醒
- 支援簡訊提醒
- 支援APP提醒
- 支援關鍵字回覆
- 支援後臺統計
- 支援語音訊息
微信體驗地址
關注公眾號->點選購買諮詢選單->售前諮詢,即可體驗H5版本,小程式版本和APP版本可匯入示例專案體驗。
沒錯,這個諮詢用的是我們自己的外掛產品!我們自己也在用自己的產品!
介面展示
本系統包括訪客元件和客服應用倆部分。其中訪客元件支援小程式、app、公眾號。客服工作臺程式為我們提供的工作臺,包括公眾號、APP、客服端,商戶可以自選一種。
訪客元件介面展示
- 訪客介面,普通圖文訊息,表情包,語音
坐席端下載
商戶可以使用APP或者EXE回覆訪客資訊
坐席下載地址http://kefu.techidea8.com/html/wiki/part1/kfapp.html
坐席app介面
- 當前諮詢介面,支援視訊、圖片、表情和文字
坐席EXE客戶端展示
示例和引數
安裝
使用者需要通過如下指令安裝客服元件
# 安裝依賴
npm install idea-kefu
使用
<template>
<div id="app">
<div :class="{kefuwdget:true,min:ismin,max:!ismin}">
<idea-kefu ref="kefu" :siteid="2" @minimize="onminimize">
<div slot="footer" class="footer">
<button class="btn" @click="showprice">產品定價</button>
<button class="btn btn-info" @click="showwx">微訊號碼</button>
</div>
</idea-kefu>
</div>
</div>
</template>
<script>
import IdeaKefu from "idea-kefu"
export default {
components:{
IdeaKefu
},
name: 'app',
data () {
return {
ismin:true
}
},
methods:{
onminimize(s){
this.ismin = !!s
console.log("min")
},
showprice(){
let msg = {}
msg.cmd = 2
msg.media = "txt"
msg.content = "普通版免費,至尊豪華定製版10000起訂!"
this.$refs.kefu.createLocalMsg(msg)
},
showwx(){
let msg = {}
msg.media = "pic"
msg.content = "http://kefu.techidea8.com/html/wiki/assets/image/kf1.jpg"
this.$refs.kefu.createLocalMsg(msg)
}
}
}
</script>
<style lang="scss">
@charset "utf-8";
$height:22;
#app {
font-family: 'Avenir', Helvetica, Arial, sans-serif;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
text-align: center;
color: #2c3e50;
margin-top: 60px;
}
.kefuwdget{
position: absolute;
right: 0px;
bottom: 0px;
min-width: 200px;
min-height:80px;
max-width: 640px;
max-height: 480px;
&.min{
width: 200px;
height: 80px;
}
&.max{
width: 640px;
height: 480px;
}
}
.footer{
width: 100%;
display: flex;
flex-direction: row;
justify-content: flex-start;
}
.btn{
height:$height + px;
line-height:$height + px;
padding: 0 0.3em;
margin: 5px 5px 5px 5px;
font-size: 14px;
box-sizing:content-box;//重置input submit、buttonbox-sizing border-box 為content-box。做到一致的表現 //ie7手動新增border高度
vertical-align: text-top;
display: inline-block;
*display: inline;
*zoom:1;
border:1px solid #ddd;
background-color: #ddd;
border-radius: 3px;
overflow: visible;//IE7下文字表現左右空格
color: #333;
cursor: pointer;
input[type="submit"]{//IE7下黑色邊框問題,採用label包裹input[type="submit"]方式
background:transparent;
border:none;
line-height:$height + px;
height:$height + px;
display: block;
vertical-align: text-top;
font-size:14px;
margin:0 -6px;
*overflow: visible;
*margin:0;
color: #fff
}
&:hover{
opacity: 0.8;
filter:alpha(opacity=80);
}
&:active{
opacity:1;
filter:alpha(opacity=100);
}
&:focus{
outline: 0;
outline: 5px auto -webkit-focus-ring-color;
outline-offset: -2px;
}
&:visited{
opacity:1;
filter:alpha(opacity=100);
}
@at-root{
/* 處理火狐-moz-focus-inner內預設padding值,導致line-height文字不居中問題*/
button::-moz-focus-inner,
input[type="button"]::-moz-focus-inner,
input[type="submit"]::-moz-focus-inner,
input[type="reset"]::-moz-focus-inner {
border:none;
padding:0 inherit;
}
input[type="submit"].btn,
input[type="button"].btn,
input[type="reset"].btn,
button.btn{
*height:($height + 2) + px;//處理IE7 box-sizing問題。submit,button,reset表現為border-box問題
*line-height:($height - 2) + px;
}
a.btn{
color:inherit;
text-decoration:none;
}
}
}
.btn-default{
color: #333;
background-color: #fff;
border-color: #ccc;}
.btn-danger{
color: #fff;
background-color: #d9534f;
border-color: #d43f3a;}
.btn-warning{
color: #fff;
background-color: #f0ad4e;
border-color: #eea236;}
.btn-info{
color: #fff;
background-color: #5bc0de;
border-color: #46b8da; }
.btn-success{
color: #fff;
background-color: #5cb85c;
border-color: #4cae4c; }
.btn-primary{
color: #fff;
background-color: #428bca;
border-color: #357ebd;}
</style>
引數說明
屬性引數
屬性名 | 型別 | 是否必須 | 預設值 | 說明 |
---|---|---|---|---|
siteid | String或Number | 是 | 無 | 必須後端申請,具體見 1.2. 整合準備工作 如何獲取siteid |
audiourl | String | 否 | 無 | 收到訊息時的系統提示語音地址,必須是可訪問的網址,http或https協議。支援.mp3和wav |
uid | String | 否 | 無 | 指定客戶端訪客的ID,如果不指定,系統將採用uuid演算法自動為客戶進行分配 |
kfid | Number | 否 | 0 | 指定哪一個客服處理,客服編號來自管理後臺http://console.kefu.techidea8.com/corp/kefu客服列表ID欄位,如果不指定,系統將採用負載均衡演算法自動為訪客分配 |
https | Boolean | 否 | true | 預設使用https,如果使用http,則此處為false |
showtime | Boolean | 否 | false | 是否顯示時間標籤,顯示時間標籤後系統將在會話頂部展示時間標籤資訊 |
audioduration | Number | 否 | 60 | 錄音時長,不超過60秒的整數, |
logo | String | 否 | …/static/idea-kefu/logo.jpg | 客服的頭像,可以為網路影像如http://xxx.jpg |
bgcolorl | String | 否 | #fff | 左側聊天氣泡背景色,預設為白色 |
colorl | String | 否 | #000 | 左側聊天氣泡字型顏色,預設為黑色 |
bgcolorr | String | 否 | #fff | 右側聊天氣泡背景色,預設為白色 |
colorr | String | 否 | #000 | 右側聊天氣泡字型顏色,預設為黑色 |
btncolor | String | 否 | #42b8f4 | 傳送按鈕背景色 |
addonfile | PluginAttr | 否 | {show:true,pic:"/static/idea-kefu/icon/fujian.png",txt:“發檔案”} | 傳送檔案按鈕 |
addonimage | PluginAttr | 否 | {show:true,pic:"/static/idea-kefu/icon/image.png",txt:“發圖片”} | 傳送視訊按鈕 |
addonvideo | PluginAttr | 否 | {show:true,pic:"/static/idea-kefu/icon/video.png",txt:“發視訊”} | 傳送圖片按鈕 |
addonform | PluginAttr | 否 | {show:true,pic:"/static/idea-kefu/icon/shiyong.png",txt:“填表試用”} | 傳送表單按鈕 |
PluginAttr屬性說明
屬性名 | 型別 | 是否必須 | 例 | 說明 |
---|---|---|---|---|
show | Boolean | 否 | true | 是否顯示該外掛,若不配置,則預設為true |
pic | String | 否 | /static/idea-kefu/icon/fujian.png | 外掛的圖示 |
txt | String | 否 | 發檔案 | 外掛下的描述性文字,若不配置,則試用預設引數 |
事件
事件名 | 型別 | 說明 |
---|---|---|
version | function(e)=>{} | e表示常見版本 |
onmsg | function(e)=>{} | e資料格式如下{msgnum:int,msg:Msg},msgnum代表當前已累計新訊息條數,msg代表當前訊息物件 |
minimize | function(bool)=>{} | bool=true,介面呈現為btn狀態,bool=false介面呈現為聊天狀態 |
Msg屬性說明
屬性名 | 型別 | 是否必須 | 例 | 說明 |
---|---|---|---|---|
media | string | 是 | txt | 訊息meidia型別,支援txt(文字),pic(圖片),emoj(表情包),video(視訊),audio(音訊) |
cmd | Number | 是 | 2 | 2:訪客釋出訊息,1:客服釋出訊息 |
content | String | 是 | 對應具體內容,media=txt時,對應文字內容,media=pic | |
amount | number | 否 | 用於存放資料,media=audio時,對應音訊時長(秒) | |
createat | String | 否 | 訊息建立時間,yyyy-MM-dd hh:mm:ss | |
rid | number | 否 | 會話id | |
kfid | number | 否 | 會話分配的客服id | |
uid | string | 否 | 訪客標識即訪客ID |
方法
方法名 | 型別 | 說明 |
---|---|---|
createLocalMsg | function(localMsg)=>{} | 建立本地訊息,即在聊天框中展示一條本地訊息,該訊息並不傳送到客服 |
minimize | function(bool)=>{} | 是否最小化視窗,true最小化,false,最大化 |
turnon | function()=>{} | 開啟新訊息語音提醒 |
turnoff | function()=>{} | 關閉新訊息語言提醒 |
localMsg屬性說明
屬性名 | 型別 | 是否必須 | 例 | 說明 |
---|---|---|---|---|
media | string | 是 | txt | 訊息meidia型別,支援txt(文字),pic(圖片),emoj(表情包),video(視訊),audio(音訊) |
cmd | Number | 是 | 2 | 此處填寫2代表訪客釋出訊息 |
content | String | 是 | 對應具體內容,media=txt時,對應文字內容,media=pic | |
amount | number | 否 | 用於存放資料,media=audio時,對應音訊時長(秒) | |
createat | String | 否 | 訊息建立時間,yyyy-MM-dd hh:mm:ss |
呼叫案例
let msg = {}
msg.cmd = 2
msg.media = "txt"
msg.content = "這是測試文字"
this.$refs.kefu.createLocalMsg(msg)
slot
系統支援slot插槽
btnkefu插槽
該插槽用來修飾最小化時的視窗樣式
<div slot="btnkefu">
<img src="../assets/icon/zixun.png"/>
<div class="right">
<code v-text="''+msgnum" v-if="msgnum>0">12</code>
<span>快捷諮詢</span>
</div>
</div>
最後效果
header插槽
插槽效果如下
該插槽用來修飾頂部選單欄
<div slot="header">
<div class="header">
<div>
<img src="../assets/icon/down.png" />
</div>
</div>
</div>
welcome插槽
該插槽用來修飾首次進入歡迎語
<div slot="welcome" >你好!</div>
footer插槽
該插槽用來修飾底部自定義區域,該區域可以定義一些常用的問題,然後呼叫createLocalMsg方法顯示
<div slot="footer" >
<button @click="showprice">產品定價</button>
<button @click="showwx">微訊號碼</button>
</div>
showprice(){
let msg = {}
msg.media = "txt"
msg.content = "普通版免費,至尊豪華定製版10000起訂!"
this.$refs.kefu.createLocalMsg(msg)
}
showwx(){
let msg = {}
msg.media = "pic"
msg.content = "http://kefu.techidea8.com/html/wiki/assets/image/kf1.jpg"
this.$refs.kefu.createLocalMsg(msg)
}
如何獲取siteid
前往kefu.techidea8.com註冊即可獲得siteid,具體請前往開發文件申請客服帳號
http://kefu.techidea8.com/html/wiki/part1/prepare.html
如何繫結公眾號開頭訊息推送功能
系統支援公眾號模板訊息推送,關注下列公眾號,並在http://console.kefu.techidea8.com/corp/kefu
頁面掃描二維碼,即可開通微信客服
公眾號推送展示
如何下載客服APK或者桌面EXE程式?
參考
http://kefu.techidea8.com/html/wiki/part1/kfapp.html
相關文章
- vue 專案整合active控制元件Vue控制元件
- 像easyUI一樣寫vue——avue後臺整合元件UIVue元件
- Vue元件Vue元件
- Vue整合UeditorVue
- 繼續研究vue元件vue-menu元件Vue元件
- Vue 表格元件 GridManager VueVue元件
- Vue元件、元件傳值和元件插槽Vue元件
- Vue的元件Vue元件
- vue元件使用Vue元件
- Vue-元件Vue元件
- Vue 元件用法Vue元件
- Vue @user 元件Vue元件
- Vue 元件支援Vue元件
- vue元件化Vue元件化
- Flutter元件化探索——Pod整合Flutter元件化
- WPF - 整合HandyControl UI元件庫UI元件
- vue - Vue元件化程式設計Vue元件化程式設計
- Vue整合Animate.cssVueCSS
- Vue 元件基礎Vue元件
- 【Vue】元件使用之isVue元件
- Vue元件開發Vue元件
- vue元件筆記Vue元件筆記
- Vue--元件(1)Vue元件
- Vue-元件(2)Vue元件
- VUE元件彙總Vue元件
- vue 元件通訊Vue元件
- Vue元件遞迴Vue元件遞迴
- Vue — 元件通訊Vue元件
- 【Vue】 簽名元件Vue元件
- Vue元件試用Vue元件
- vue元件通訊Vue元件
- Vue 元件傳值Vue元件
- vue元件化思想Vue元件化
- Vue 元件實戰Vue元件
- Vue-元件化Vue元件化
- 三. Vue元件化Vue元件化
- vue中子元件傳遞父元件$emitVue元件MIT
- Vue中父子元件通訊——元件todolistVue元件