|
|
@@ -176,26 +176,26 @@
|
|
|
<template slot="title" name="el-icon-caret-bottom">
|
|
|
<span>常用语</span>
|
|
|
</template> -->
|
|
|
- <div style="padding: 0.4rem 0;">
|
|
|
+ <div class="FastReplyBox" >
|
|
|
<!-- <ul class="FastReplyList"> -->
|
|
|
<!-- <li @click="getLanguage(item.content)" class="row cursor_text" v-for="item in FastReply.sysWords" :key="item.id"> -->
|
|
|
<div @click="getLanguage(item.content)" class="row cursor_text item-center" v-for="item in FastReply.sysWords" :key="item.id" v-if="FastReplySwitch == 'one'">
|
|
|
- <span class="title_span" style=" width: 30%">#{{item.title}}</span>
|
|
|
- <div class="ellipsis" style=" width: 70%">
|
|
|
+ <span class="title_span" style=" width: 100%">#{{item.title}}</span>
|
|
|
+ <!-- <div class="ellipsis" style=" width: 70%">
|
|
|
|
|
|
<span class="content_span">{{item.content}}</span>
|
|
|
- </div>
|
|
|
+ </div> -->
|
|
|
</div>
|
|
|
|
|
|
|
|
|
<!-- </li> -->
|
|
|
|
|
|
<div @click="getLanguage(item.content)" class="row cursor_text item-center" v-for="item in FastReply.userWords" :key="item.id" v-if="FastReplySwitch == 'tow'">
|
|
|
- <span class="title_span" style=" width: 30%">#{{item.title}}</span>
|
|
|
- <div class="ellipsis" style=" width: 70%">
|
|
|
+ <span class="title_span" style=" width: 100%">#{{item.title}}</span>
|
|
|
+ <!-- <div class="ellipsis" style=" width: 70%">
|
|
|
|
|
|
<span class="content_span">{{item.content}}</span>
|
|
|
- </div>
|
|
|
+ </div> -->
|
|
|
</div>
|
|
|
<!-- <li class="row cursor_text" v-for="item in FastReply.userWords" :key="item.id">
|
|
|
<div v-if="FastReplySwitch == 'tow'" class="row item-center">
|
|
|
@@ -220,40 +220,38 @@
|
|
|
<p>来源终端:{{session_user_info.system}}-{{session_user_info.browse}}</p>
|
|
|
</div>
|
|
|
|
|
|
-
|
|
|
-
|
|
|
<div style="color:#666;font-weight:bold;font-size:14px; margin-top:30px;">用户信息</div>
|
|
|
<div style="margin-top:10px;color:#999;font-size:14px;" class="userData wrap">
|
|
|
<div class="user_info_box">
|
|
|
<span>账号:</span>
|
|
|
- <input class="user_text" style="background: #ECF4FF;" v-model="session_user_info.name" readonly type="text">
|
|
|
+ <input class="user_text" style="background: #ECF4FF;" v-model="session_user_info.account_name" readonly type="text">
|
|
|
</div>
|
|
|
<div class="user_info_box">
|
|
|
- <span>级别:</span>
|
|
|
- <el-select v-model="value" placeholder="请选择">
|
|
|
+ <span>标签:</span>
|
|
|
+ <el-select v-model="value" @focus='focusFun' @change='labelChange' placeholder="请选择">
|
|
|
<el-option
|
|
|
v-for="item in options"
|
|
|
- :key="item.value"
|
|
|
- :label="item.label"
|
|
|
- :value="item.value">
|
|
|
+ :key="item.id"
|
|
|
+ :label="item.name"
|
|
|
+ :value="item.id">
|
|
|
</el-option>
|
|
|
</el-select>
|
|
|
</div>
|
|
|
<div class="user_info_box">
|
|
|
<span>昵称:</span>
|
|
|
- <el-input style="width:80%" v-model="session_user_info.nick_name" placeholder="请输入内容"></el-input>
|
|
|
+ <el-input style="width:70%" v-model="session_user_info.nick_name" placeholder="请输入内容"></el-input>
|
|
|
</div>
|
|
|
<div class="user_info_box">
|
|
|
<span>手机:</span>
|
|
|
- <el-input style="width:80%" v-model="session_user_info.account_phone" placeholder="请输入内容"></el-input>
|
|
|
+ <el-input style="width:70%" v-model="session_user_info.account_phone" placeholder="请输入内容"></el-input>
|
|
|
</div>
|
|
|
<div class="user_info_box">
|
|
|
<span>邮箱:</span>
|
|
|
- <el-input style="width:80%" v-model="session_user_info.account_email" placeholder="请输入内容"></el-input>
|
|
|
+ <el-input style="width:70%" v-model="session_user_info.account_email" placeholder="请输入内容"></el-input>
|
|
|
</div>
|
|
|
<div class="user_info_box">
|
|
|
<span>地址:</span>
|
|
|
- <el-input style="width:80%" v-model="session_user_info.address" placeholder="请输入内容"></el-input>
|
|
|
+ <el-input style="width:70%" v-model="session_user_info.address" placeholder="请输入内容"></el-input>
|
|
|
</div>
|
|
|
<p>访客备注:</p>
|
|
|
</div>
|
|
|
@@ -309,21 +307,10 @@
|
|
|
sensitive:[],//客服敏感词数据
|
|
|
userSensitiveWords:[],//用户敏感词
|
|
|
sensitiveNumber:0,//关键词次数
|
|
|
- isTrue:'',//编辑用户信息按钮开关
|
|
|
- options: [{
|
|
|
- value: '选项1',
|
|
|
- label: '普通会员'
|
|
|
- }, {
|
|
|
- value: '选项2',
|
|
|
- label: '高级会员'
|
|
|
- }, {
|
|
|
- value: '选项3',
|
|
|
- label: 'VIP会员'
|
|
|
- }, {
|
|
|
- value: '选项4',
|
|
|
- label: '贵宾会员'
|
|
|
- }],
|
|
|
- value: '普通会员'
|
|
|
+ isTrue:true,//编辑用户信息按钮开关
|
|
|
+ options:[],
|
|
|
+ label_id:'',
|
|
|
+ value: '请选择'
|
|
|
}
|
|
|
},
|
|
|
/**
|
|
|
@@ -344,9 +331,19 @@
|
|
|
this.inputValue = this.inputValue + '\n'
|
|
|
},
|
|
|
|
|
|
+ /********************发送获取标签数据指令*******************/
|
|
|
+ focusFun(){
|
|
|
+ // console.log('haha');
|
|
|
+ this.$websocket.send(JSON.stringify({type:'userlabeall'}));
|
|
|
+ },
|
|
|
+
|
|
|
+ /**************************获取选择标签ID****************/
|
|
|
+ labelChange(e){
|
|
|
+ this.label_id = e;
|
|
|
+ },
|
|
|
+
|
|
|
/******************消息数据接收********************/
|
|
|
chatMessage(redata){
|
|
|
-
|
|
|
// 用户接入数据
|
|
|
if(redata.message_type == "connect"){
|
|
|
let _this = this;
|
|
|
@@ -412,7 +409,6 @@
|
|
|
})
|
|
|
}
|
|
|
|
|
|
-
|
|
|
//用户会话结束窗口切换
|
|
|
if(redata.message_type == "delUser"){
|
|
|
let _this =this;
|
|
|
@@ -466,6 +462,18 @@
|
|
|
// console.log(_this.data);
|
|
|
// }
|
|
|
|
|
|
+
|
|
|
+ //获取标签数据信息
|
|
|
+ if(redata.message_type == "userlabeall"){
|
|
|
+ if(Object.values(redata.data).length > 0 ){
|
|
|
+ this.options = [];
|
|
|
+ this.options = Object.values(redata.data);
|
|
|
+ this.value = this.options[0].name;
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
//接收系统操作信息状态在线客服列表
|
|
|
if(redata.message_type == "onlinekfs"){
|
|
|
this.transferList = [];
|
|
|
@@ -813,9 +821,34 @@
|
|
|
if(type.length > 0 ){
|
|
|
this. session_user_info = {};
|
|
|
if(this.dataIndex <= type.length){
|
|
|
- this.session_user_info = type[this.dataIndex];
|
|
|
- console.log(this.session_user_info);
|
|
|
-
|
|
|
+
|
|
|
+ let obj = {
|
|
|
+ headers: {
|
|
|
+ "apiToken": this.$md5('accountInfo' + "customer-service"+'service'+this.time[0]+'service'),
|
|
|
+ 'userToken': this.token
|
|
|
+ },
|
|
|
+ account_id:type[this.dataIndex].id
|
|
|
+ };
|
|
|
+
|
|
|
+ this.post('api'+this.$ports.userInfo.accountInfo,obj).then(res => {
|
|
|
+ if(res.data.code == 1){
|
|
|
+ // console.log(res.data.data);
|
|
|
+ this.session_user_info = res.data.data;
|
|
|
+ console.log(this.options);
|
|
|
+ for(let i= 0 ; this.options.length > i ; i++ ){
|
|
|
+ if(this.options[i].id == res.data.data.label_id){
|
|
|
+ this.value = this.options[i].name;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ //this.value = res.data.data.label_id
|
|
|
+ }
|
|
|
+ })
|
|
|
+
|
|
|
+
|
|
|
+ // this.session_user_info = type[this.dataIndex].id;
|
|
|
+ // console.log(type[this.dataIndex].id);
|
|
|
+ // this.value = this.session_user_info.label;
|
|
|
}
|
|
|
}else{
|
|
|
this.session_user_info = {};
|
|
|
@@ -884,6 +917,7 @@
|
|
|
bt_update(){
|
|
|
|
|
|
if(!this.isTrue) return false;
|
|
|
+ this.isTrue = false;
|
|
|
let obj = {
|
|
|
headers: {
|
|
|
"apiToken": this.$md5('update' + "customer-service"+'service'+this.time[0]+'service'),
|
|
|
@@ -895,6 +929,7 @@
|
|
|
phone:this.session_user_info.account_phone,
|
|
|
address:this.session_user_info.address,
|
|
|
remark:this.session_user_info.remark,
|
|
|
+ label_id:this.label_id
|
|
|
|
|
|
};
|
|
|
|
|
|
@@ -1176,6 +1211,13 @@
|
|
|
height: 92vh;
|
|
|
border-right: 1px solid #d5e5ff;
|
|
|
background: #fff;
|
|
|
+
|
|
|
+ }
|
|
|
+ .FastReplyBox{
|
|
|
+ padding: 0.4rem 0;
|
|
|
+ height: 80vh;
|
|
|
+ overflow-x: hidden;
|
|
|
+ overflow-y: auto;
|
|
|
}
|
|
|
.FastReplyHader {
|
|
|
height: 50px;
|