|
@@ -95,6 +95,46 @@
|
|
|
</div>
|
|
</div>
|
|
|
|
|
|
|
|
<div class="chat-box scroll" id='chat_box'>
|
|
<div class="chat-box scroll" id='chat_box'>
|
|
|
|
|
+ <!-- 转接 历史信息-->
|
|
|
|
|
+ <div v-if="showHistoryList">
|
|
|
|
|
+ <div v-for="(item,index) in historyList" :key="index">
|
|
|
|
|
+ <!-- 客服消息 -->
|
|
|
|
|
+ <div style="padding:0 10px;margin-top:20px;" class="rightAlignment" v-if="item.from_id.startsWith('KF')" >
|
|
|
|
|
+ <div style="height:37px;font-size:12px;color:#bbb;"
|
|
|
|
|
+ class="row item-center rightAlignment">{{item.time_line | formatDate}}
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div class="row item-center rightAlignment">
|
|
|
|
|
+ <p v-if="item.content.text != ''" class="chatMsg message_box" v-html="item.content.text"></p>
|
|
|
|
|
+ <div v-if="item.content.img !=''">
|
|
|
|
|
+ <!-- :fit="contain" style="background:#F5F5F5; border-radius: 10px 0 10px 10px;"-->
|
|
|
|
|
+ <el-image style="width: 200px; height: 100px"
|
|
|
|
|
+ @click="handlePictureCardPreview(img_http+item.content.img)"
|
|
|
|
|
+ :src="img_http + item.content.img" :fit="fit"></el-image>
|
|
|
|
|
+ </div>
|
|
|
|
|
+
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+
|
|
|
|
|
+ <!-- 用户消息 -->
|
|
|
|
|
+ <div style="padding:0 10px;margin-top:20px;" v-else>
|
|
|
|
|
+ <div style="height:37px;font-size:.12px;color:#bbb;" class="row item-center">
|
|
|
|
|
+ {{item.time_line | formatDate}}
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div class="row">
|
|
|
|
|
+ <p v-if="item.content.text != ''" class="chatMsg user_box" v-html="item.content.text"></p>
|
|
|
|
|
+ <div v-if="item.content.img != ''">
|
|
|
|
|
+ <el-image style="width: 200px; height: 100px"
|
|
|
|
|
+ @click="handlePictureCardPreview(img_http+item.content.img)"
|
|
|
|
|
+ :src="img_http + item.content.img"
|
|
|
|
|
+ :fit="fit">
|
|
|
|
|
+ </el-image>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
<div v-for="(item,index) in data" :key="index">
|
|
<div v-for="(item,index) in data" :key="index">
|
|
|
<!-- 系统转接 -->
|
|
<!-- 系统转接 -->
|
|
|
<!-- <div class="row center" v-if="item.type == 'system'">
|
|
<!-- <div class="row center" v-if="item.type == 'system'">
|
|
@@ -104,7 +144,7 @@
|
|
|
<!-- 用户消息 -->
|
|
<!-- 用户消息 -->
|
|
|
<div style="padding:0 10px;margin-top:20px;" v-if="item.type == 'user'">
|
|
<div style="padding:0 10px;margin-top:20px;" v-if="item.type == 'user'">
|
|
|
<div style="height:37px;font-size:.12px;color:#bbb;"
|
|
<div style="height:37px;font-size:.12px;color:#bbb;"
|
|
|
- class="row item-center"
|
|
|
|
|
|
|
+ class="row item-center"
|
|
|
>{{item.time}}
|
|
>{{item.time}}
|
|
|
</div>
|
|
</div>
|
|
|
<div class="row">
|
|
<div class="row">
|
|
@@ -156,7 +196,7 @@
|
|
|
</li>
|
|
</li>
|
|
|
</ul>
|
|
</ul>
|
|
|
<el-button class="expression" slot="reference"></el-button>
|
|
<el-button class="expression" slot="reference"></el-button>
|
|
|
- </el-popover>
|
|
|
|
|
|
|
+ </el-popover>
|
|
|
<input type="file" id="file" style="display:none;" @change="uploadIMG"/>
|
|
<input type="file" id="file" style="display:none;" @change="uploadIMG"/>
|
|
|
<label for="file" class="row item-center" style="height:100%">
|
|
<label for="file" class="row item-center" style="height:100%">
|
|
|
<img class="hover" src="@/assets/img/img.png"/>
|
|
<img class="hover" src="@/assets/img/img.png"/>
|
|
@@ -206,11 +246,11 @@
|
|
|
<!-- <li @click="getLanguage(item.content)" class="row cursor_text" v-for="item in FastReply.sysWords" :key="item.id"> -->
|
|
<!-- <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"
|
|
<div @click="getLanguage(item.content)" class="row cursor_text item-center"
|
|
|
v-for="item in FastReply.sysWords" :key="item.id" v-if="FastReplySwitch == 'one'">
|
|
v-for="item in FastReply.sysWords" :key="item.id" v-if="FastReplySwitch == 'one'">
|
|
|
- <el-tooltip class="title_span" effect="light" placement="bottom-start">
|
|
|
|
|
- <div slot="content">{{item.content}}</div>
|
|
|
|
|
- <span class="title_span" style=" width: 100%">#{{item.title}}</span>
|
|
|
|
|
- </el-tooltip>
|
|
|
|
|
-
|
|
|
|
|
|
|
+ <el-tooltip class="title_span" effect="light" placement="bottom-start">
|
|
|
|
|
+ <div slot="content">{{item.content}}</div>
|
|
|
|
|
+ <span class="title_span" style=" width: 100%">#{{item.title}}</span>
|
|
|
|
|
+ </el-tooltip>
|
|
|
|
|
+
|
|
|
<!-- <div class="ellipsis" style=" width: 70%">
|
|
<!-- <div class="ellipsis" style=" width: 70%">
|
|
|
|
|
|
|
|
<span class="content_span">{{item.content}}</span>
|
|
<span class="content_span">{{item.content}}</span>
|
|
@@ -221,10 +261,10 @@
|
|
|
|
|
|
|
|
<div @click="getLanguage(item.content)" class="row cursor_text item-center"
|
|
<div @click="getLanguage(item.content)" class="row cursor_text item-center"
|
|
|
v-for="item in FastReply.userWords" :key="item.id" v-if="FastReplySwitch == 'tow'">
|
|
v-for="item in FastReply.userWords" :key="item.id" v-if="FastReplySwitch == 'tow'">
|
|
|
- <el-tooltip class="title_span" effect="light" placement="bottom-start">
|
|
|
|
|
- <div slot="content">{{item.content}}</div>
|
|
|
|
|
- <span class="title_span" style=" width: 100%">#{{item.title}}</span>
|
|
|
|
|
- </el-tooltip>
|
|
|
|
|
|
|
+ <el-tooltip class="title_span" effect="light" placement="bottom-start">
|
|
|
|
|
+ <div slot="content">{{item.content}}</div>
|
|
|
|
|
+ <span class="title_span" style=" width: 100%">#{{item.title}}</span>
|
|
|
|
|
+ </el-tooltip>
|
|
|
<!-- <div class="ellipsis" style=" width: 70%">
|
|
<!-- <div class="ellipsis" style=" width: 70%">
|
|
|
|
|
|
|
|
<span class="content_span">{{item.content}}</span>
|
|
<span class="content_span">{{item.content}}</span>
|
|
@@ -249,7 +289,8 @@
|
|
|
<div style="color:#666;font-weight:bold;font-size:14px;">访问信息</div>
|
|
<div style="color:#666;font-weight:bold;font-size:14px;">访问信息</div>
|
|
|
<div style="margin-top:10px;color:#999;font-size:14px;" class="userData wrap">
|
|
<div style="margin-top:10px;color:#999;font-size:14px;" class="userData wrap">
|
|
|
<!-- <p>来源:{{session_user_info.website}}</p> -->
|
|
<!-- <p>来源:{{session_user_info.website}}</p> -->
|
|
|
- <p @dblclick="get_ip_Info" class="get_ip" :data-clipboard-text="terminal_IP.ip" >IP地址:{{terminal_IP.ip}}</p>
|
|
|
|
|
|
|
+ <p @dblclick="get_ip_Info" class="get_ip" :data-clipboard-text="terminal_IP.ip">
|
|
|
|
|
+ IP地址:{{terminal_IP.ip}}</p>
|
|
|
<p>来源终端:{{terminal_IP.system}}</p>
|
|
<p>来源终端:{{terminal_IP.system}}</p>
|
|
|
</div>
|
|
</div>
|
|
|
|
|
|
|
@@ -258,32 +299,35 @@
|
|
|
<div class="user_info_box">
|
|
<div class="user_info_box">
|
|
|
<span>账号:</span>
|
|
<span>账号:</span>
|
|
|
<input class="user_text" style="background: #ECF4FF;"
|
|
<input class="user_text" style="background: #ECF4FF;"
|
|
|
- v-model="session_user_info.account_name" readonly type="text">
|
|
|
|
|
|
|
+ v-model="session_user_info.account_name" readonly type="text">
|
|
|
</div>
|
|
</div>
|
|
|
<div class="user_info_box">
|
|
<div class="user_info_box">
|
|
|
<span>标签:</span>
|
|
<span>标签:</span>
|
|
|
- <el-select style="width:70%;" v-model="value" @focus='focusFun' @change='labelChange' placeholder="请选择">
|
|
|
|
|
|
|
+ <el-select style="width:70%;" v-model="value" @focus='focusFun' @change='labelChange'
|
|
|
|
|
+ placeholder="请选择">
|
|
|
<el-option
|
|
<el-option
|
|
|
- v-for="item in options"
|
|
|
|
|
- :key="item.id"
|
|
|
|
|
- :label="item.name"
|
|
|
|
|
- :value="item.id">
|
|
|
|
|
|
|
+ v-for="item in options"
|
|
|
|
|
+ :key="item.id"
|
|
|
|
|
+ :label="item.name"
|
|
|
|
|
+ :value="item.id">
|
|
|
</el-option>
|
|
</el-option>
|
|
|
</el-select>
|
|
</el-select>
|
|
|
</div>
|
|
</div>
|
|
|
- <div class="user_info_box">
|
|
|
|
|
|
|
+ <div class="user_info_box">
|
|
|
<span>昵称:</span>
|
|
<span>昵称:</span>
|
|
|
<el-input style="width:70%;" v-model="session_user_info.nick_name"
|
|
<el-input style="width:70%;" v-model="session_user_info.nick_name"
|
|
|
placeholder="请输入内容"></el-input>
|
|
placeholder="请输入内容"></el-input>
|
|
|
</div>
|
|
</div>
|
|
|
<div class="user_info_box">
|
|
<div class="user_info_box">
|
|
|
<span>手机:</span>
|
|
<span>手机:</span>
|
|
|
- <el-input @blur='validation_user_info(1)' style="width:70%;" v-model="session_user_info.account_phone"
|
|
|
|
|
|
|
+ <el-input @blur='validation_user_info(1)' style="width:70%;"
|
|
|
|
|
+ v-model="session_user_info.account_phone"
|
|
|
placeholder="请输入内容"></el-input>
|
|
placeholder="请输入内容"></el-input>
|
|
|
</div>
|
|
</div>
|
|
|
<div class="user_info_box">
|
|
<div class="user_info_box">
|
|
|
<span>邮箱:</span>
|
|
<span>邮箱:</span>
|
|
|
- <el-input @blur='validation_user_info(2)' style="width:70%;" v-model="session_user_info.account_email"
|
|
|
|
|
|
|
+ <el-input @blur='validation_user_info(2)' style="width:70%;"
|
|
|
|
|
+ v-model="session_user_info.account_email"
|
|
|
placeholder="请输入内容"></el-input>
|
|
placeholder="请输入内容"></el-input>
|
|
|
</div>
|
|
</div>
|
|
|
<div class="user_info_box">
|
|
<div class="user_info_box">
|
|
@@ -304,18 +348,18 @@
|
|
|
</div>
|
|
</div>
|
|
|
<!-- 截图粘贴 -->
|
|
<!-- 截图粘贴 -->
|
|
|
<el-dialog
|
|
<el-dialog
|
|
|
- :close-on-click-modal="true"
|
|
|
|
|
- :close-on-press-escape ="true"
|
|
|
|
|
- title="是否发送图片"
|
|
|
|
|
- :visible.sync="dialogPaste"
|
|
|
|
|
- width="35%">
|
|
|
|
|
- <!-- :before-close="handleClose" -->
|
|
|
|
|
-
|
|
|
|
|
- <!-- <span>这是一段信息</span> -->
|
|
|
|
|
- <el-image
|
|
|
|
|
- :src="pasteUrl" :fit="fit"></el-image>
|
|
|
|
|
-
|
|
|
|
|
- <span slot="footer" class="dialog-footer">
|
|
|
|
|
|
|
+ :close-on-click-modal="true"
|
|
|
|
|
+ :close-on-press-escape="true"
|
|
|
|
|
+ title="是否发送图片"
|
|
|
|
|
+ :visible.sync="dialogPaste"
|
|
|
|
|
+ width="35%">
|
|
|
|
|
+ <!-- :before-close="handleClose" -->
|
|
|
|
|
+
|
|
|
|
|
+ <!-- <span>这是一段信息</span> -->
|
|
|
|
|
+ <el-image
|
|
|
|
|
+ :src="pasteUrl" :fit="fit"></el-image>
|
|
|
|
|
+
|
|
|
|
|
+ <span slot="footer" class="dialog-footer">
|
|
|
<el-button @click="dialogPaste = false">取 消</el-button>
|
|
<el-button @click="dialogPaste = false">取 消</el-button>
|
|
|
<el-button type="primary" @click="handleClose()">确 定</el-button>
|
|
<el-button type="primary" @click="handleClose()">确 定</el-button>
|
|
|
</span>
|
|
</span>
|
|
@@ -349,7 +393,7 @@
|
|
|
lineUp: [],//排队列表
|
|
lineUp: [],//排队列表
|
|
|
conversationId: '',//会话工单
|
|
conversationId: '',//会话工单
|
|
|
session_user_info: {},//当前会话用户信息
|
|
session_user_info: {},//当前会话用户信息
|
|
|
- img_http:'http://kfadmin.bocai186.com',//图片路径域
|
|
|
|
|
|
|
+ img_http: 'http://kfadmin.bocai186.com',//图片路径域
|
|
|
// img_http: 'http://192.168.2.187:8090',//图片路径域
|
|
// img_http: 'http://192.168.2.187:8090',//图片路径域
|
|
|
fit: 'scale-down',//图片渲染样式
|
|
fit: 'scale-down',//图片渲染样式
|
|
|
is_eva_btn: true,//
|
|
is_eva_btn: true,//
|
|
@@ -367,35 +411,86 @@
|
|
|
dialogVisible: false, //图片放大
|
|
dialogVisible: false, //图片放大
|
|
|
dialogImageUrl: '', // 放大的图片
|
|
dialogImageUrl: '', // 放大的图片
|
|
|
dialogUrl: false,
|
|
dialogUrl: false,
|
|
|
- pasteUrl:'',//截屏图片
|
|
|
|
|
- userSwitching:true,//是否切换完成
|
|
|
|
|
- terminal_IP:{},//访客设备信息
|
|
|
|
|
|
|
+ pasteUrl: '',//截屏图片
|
|
|
|
|
+ userSwitching: true,//是否切换完成
|
|
|
|
|
+ terminal_IP: {},//访客设备信息
|
|
|
|
|
+
|
|
|
|
|
+ showHistoryList: false,
|
|
|
|
|
+ historyList: []
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ filters: {
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 时间戳转日期自定义时间格式
|
|
|
|
|
+ * timeStamp:时间戳
|
|
|
|
|
+ * custom:转换日期时定义年月日用是什么符号隔开
|
|
|
|
|
+ * isDtae:0=月份、1=日期、3=时间
|
|
|
|
|
+ */
|
|
|
|
|
+
|
|
|
|
|
+ formatDate: function (value, custom = '', isDtae = 3) {
|
|
|
|
|
+ let timeStamp = value;
|
|
|
|
|
+ var date = new Date();
|
|
|
|
|
+ date.setTime(timeStamp * 1000);
|
|
|
|
|
+ var y = date.getFullYear();
|
|
|
|
|
+ var m = date.getMonth() + 1;
|
|
|
|
|
+ m = m < 10 ? ('0' + m) : m;
|
|
|
|
|
+ var d = date.getDate();
|
|
|
|
|
+ d = d < 10 ? ('0' + d) : d;
|
|
|
|
|
+ var h = date.getHours();
|
|
|
|
|
+ h = h < 10 ? ('0' + h) : h;
|
|
|
|
|
+ var minute = date.getMinutes();
|
|
|
|
|
+ var second = date.getSeconds();
|
|
|
|
|
+ minute = minute < 10 ? ('0' + minute) : minute;
|
|
|
|
|
+ second = second < 10 ? ('0' + second) : second;
|
|
|
|
|
+ if (isDtae == 0) {
|
|
|
|
|
+ return y + custom + m //+'student';
|
|
|
|
|
+ } else if (isDtae == 1) {
|
|
|
|
|
+ return y + custom + m + custom + d;
|
|
|
|
|
+ } else if (isDtae == 3) {
|
|
|
|
|
+ return h + ':' + minute;
|
|
|
|
|
+ } else {
|
|
|
|
|
+ return y + '-' + m + '-' + d + ' ' + h + ':' + minute //+ ':' + second;
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
},
|
|
},
|
|
|
- /**
|
|
|
|
|
- *
|
|
|
|
|
- */
|
|
|
|
|
methods: {
|
|
methods: {
|
|
|
|
|
+ /******************文字信息转表情******************/
|
|
|
|
|
+ turnFace(data) {
|
|
|
|
|
+ let str = data.match(/\#\[.*?\]\//g);
|
|
|
|
|
+ let arr = Array.from(new Set(str));
|
|
|
|
|
+ arr.forEach(e => {
|
|
|
|
|
+ let imgsrc = '';
|
|
|
|
|
+ for (let i = 0; i < this.frceArr.length; i++) {
|
|
|
|
|
+ let expText = e.slice(1, e.length - 1);
|
|
|
|
|
+ if (expText == this.frceArr[i]) {
|
|
|
|
|
+ imgsrc = '<img class="hover" src="' + require(`@/assets/img/${i}.gif`) + '"/>'
|
|
|
|
|
+ break;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ data = data.replace(new RegExp(`\\#\\[${e.substring(2, e.length - 2)}\\]\\/`, 'g'), imgsrc);
|
|
|
|
|
+ })
|
|
|
|
|
+ return data;
|
|
|
|
|
+ },
|
|
|
|
|
+
|
|
|
/****************************/
|
|
/****************************/
|
|
|
- validation_user_info(type){
|
|
|
|
|
- if(type == 1 && this.session_user_info.account_phone){
|
|
|
|
|
- if(!/^1[34578]\d{9}$/.test(this.session_user_info.account_phone)){
|
|
|
|
|
|
|
+ validation_user_info(type) {
|
|
|
|
|
+ if (type == 1 && this.session_user_info.account_phone) {
|
|
|
|
|
+ if (!/^1[34578]\d{9}$/.test(this.session_user_info.account_phone)) {
|
|
|
this.session_user_info.account_phone = '';
|
|
this.session_user_info.account_phone = '';
|
|
|
this.$message({
|
|
this.$message({
|
|
|
message: '这不是一个手机号哦!...',
|
|
message: '这不是一个手机号哦!...',
|
|
|
- type: 'warning'
|
|
|
|
|
- });
|
|
|
|
|
|
|
+ type: 'warning'
|
|
|
|
|
+ });
|
|
|
}
|
|
}
|
|
|
- }else if(type ==2 && this.session_user_info.account_email ){
|
|
|
|
|
- if(!/^([a-zA-Z]|[0-9])(\w|\-)+@[a-zA-Z0-9]+\.([a-zA-Z]{2,4})$/.test(this.session_user_info.account_email)){
|
|
|
|
|
|
|
+ } else if (type == 2 && this.session_user_info.account_email) {
|
|
|
|
|
+ if (!/^([a-zA-Z]|[0-9])(\w|\-)+@[a-zA-Z0-9]+\.([a-zA-Z]{2,4})$/.test(this.session_user_info.account_email)) {
|
|
|
this.session_user_info.account_email = ''
|
|
this.session_user_info.account_email = ''
|
|
|
this.$message({
|
|
this.$message({
|
|
|
message: '这不是一个邮箱哦!...',
|
|
message: '这不是一个邮箱哦!...',
|
|
|
- type: 'warning'
|
|
|
|
|
- });
|
|
|
|
|
|
|
+ type: 'warning'
|
|
|
|
|
+ });
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
},
|
|
},
|
|
@@ -444,14 +539,14 @@
|
|
|
|
|
|
|
|
// //用户会话结束窗口切换
|
|
// //用户会话结束窗口切换
|
|
|
if (redata.message_type == "delUser") {
|
|
if (redata.message_type == "delUser") {
|
|
|
- redata.data ;
|
|
|
|
|
- console.log(redata.data,this.session_user_info)
|
|
|
|
|
- if(redata.data.id == this.session_user_info.id){
|
|
|
|
|
- this.session_user_info={};
|
|
|
|
|
|
|
+ redata.data;
|
|
|
|
|
+ console.log(redata.data, this.session_user_info)
|
|
|
|
|
+ if (redata.data.id == this.session_user_info.id) {
|
|
|
|
|
+ this.session_user_info = {};
|
|
|
this.value = '请选择';
|
|
this.value = '请选择';
|
|
|
}
|
|
}
|
|
|
return false
|
|
return false
|
|
|
- }
|
|
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
|
|
|
|
|
//获取标签数据信息
|
|
//获取标签数据信息
|
|
@@ -475,9 +570,10 @@
|
|
|
//接收会话时间
|
|
//接收会话时间
|
|
|
if (redata.message_type == "webTime") {
|
|
if (redata.message_type == "webTime") {
|
|
|
let data = this.data;
|
|
let data = this.data;
|
|
|
- console.log(data);
|
|
|
|
|
-
|
|
|
|
|
- data[data.length -1].time = redata.data.webTime
|
|
|
|
|
|
|
+ let hisdata = this.historydata;
|
|
|
|
|
+ console.log(data, '接收会话时间');
|
|
|
|
|
+ data[data.length - 1].time = redata.data.webTime
|
|
|
|
|
+ historydata[historydata.length - 1].time = redata.data.webTime
|
|
|
this.$store.dispatch("SET_CURRENT", data);
|
|
this.$store.dispatch("SET_CURRENT", data);
|
|
|
return false
|
|
return false
|
|
|
}
|
|
}
|
|
@@ -500,9 +596,26 @@
|
|
|
}
|
|
}
|
|
|
return false
|
|
return false
|
|
|
}
|
|
}
|
|
|
- if(redata.message_type == 'chatMessage'){
|
|
|
|
|
|
|
+ if (redata.message_type == 'chatMessage') {
|
|
|
this.automaticRolling();
|
|
this.automaticRolling();
|
|
|
}
|
|
}
|
|
|
|
|
+ // 转接历史信息
|
|
|
|
|
+ if (redata.message_type == "connect") {
|
|
|
|
|
+ console.log(redata, '转接历史消息');
|
|
|
|
|
+ if (redata.data.history.length > 0) {
|
|
|
|
|
+ this.showHistoryList = true;
|
|
|
|
|
+ redata.data.history.forEach(res => {
|
|
|
|
|
+ let content = JSON.parse(res.content)
|
|
|
|
|
+ res.content = content;
|
|
|
|
|
+ if (content.text) {
|
|
|
|
|
+ content.text = this.turnFace(content.text)
|
|
|
|
|
+ res.content = content
|
|
|
|
|
+ }
|
|
|
|
|
+ this.historyList.push(res)
|
|
|
|
|
+ })
|
|
|
|
|
+ console.log(this.historyList,'123123')
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
},
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
@@ -520,7 +633,7 @@
|
|
|
}
|
|
}
|
|
|
if (!isLt2M) {
|
|
if (!isLt2M) {
|
|
|
this.$message.error('上传图片大小不能超过 2MB!');
|
|
this.$message.error('上传图片大小不能超过 2MB!');
|
|
|
- return false;
|
|
|
|
|
|
|
+ return false;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
let picavalue = files[0];
|
|
let picavalue = files[0];
|
|
@@ -538,7 +651,7 @@
|
|
|
},
|
|
},
|
|
|
|
|
|
|
|
/**********************图片上传***********************/
|
|
/**********************图片上传***********************/
|
|
|
- upImg(formData){
|
|
|
|
|
|
|
+ upImg(formData) {
|
|
|
let self = this;
|
|
let self = this;
|
|
|
// 数据结构请求
|
|
// 数据结构请求
|
|
|
self.post('api/' + self.$ports.uploadImg, formData).then(res => {
|
|
self.post('api/' + self.$ports.uploadImg, formData).then(res => {
|
|
@@ -560,9 +673,9 @@
|
|
|
type: false,
|
|
type: false,
|
|
|
};
|
|
};
|
|
|
let chatList = self.sessionList[self.dataIndex];
|
|
let chatList = self.sessionList[self.dataIndex];
|
|
|
- console.log(self.webTime);
|
|
|
|
|
|
|
+ // console.log(self.webTime);
|
|
|
//本地存储
|
|
//本地存储
|
|
|
- chatList.data.push({type: 'service', content: obj, time:self.webTime});
|
|
|
|
|
|
|
+ chatList.data.push({type: 'service', content: obj, time: self.webTime});
|
|
|
// self.data = [];
|
|
// self.data = [];
|
|
|
// self.data = chatList.data;
|
|
// self.data = chatList.data;
|
|
|
// self.$store.dispatch("SET_CURRENT", []);
|
|
// self.$store.dispatch("SET_CURRENT", []);
|
|
@@ -628,9 +741,9 @@
|
|
|
/*****************切换用户会话对象******************/
|
|
/*****************切换用户会话对象******************/
|
|
|
chooseDialogue(type, index) {
|
|
chooseDialogue(type, index) {
|
|
|
console.log(this.sessionList);
|
|
console.log(this.sessionList);
|
|
|
- if(this.userSwitching){
|
|
|
|
|
|
|
+ if (this.userSwitching) {
|
|
|
let data = [];
|
|
let data = [];
|
|
|
- let order_id = '';
|
|
|
|
|
|
|
+ let order_id = '';
|
|
|
this.$store.dispatch("SET_TYPE", type);
|
|
this.$store.dispatch("SET_TYPE", type);
|
|
|
this.$store.dispatch("SET_NUM", index);
|
|
this.$store.dispatch("SET_NUM", index);
|
|
|
if (type == 1) {
|
|
if (type == 1) {
|
|
@@ -644,9 +757,9 @@
|
|
|
order_id = this.offlineList[index].id;
|
|
order_id = this.offlineList[index].id;
|
|
|
}
|
|
}
|
|
|
this.$store.dispatch("SET_CURRENT", data);//当前会话数据
|
|
this.$store.dispatch("SET_CURRENT", data);//当前会话数据
|
|
|
- this.userSwitching =false;
|
|
|
|
|
|
|
+ this.userSwitching = false;
|
|
|
this.get_user(order_id)
|
|
this.get_user(order_id)
|
|
|
- }else{
|
|
|
|
|
|
|
+ } else {
|
|
|
this.$message({
|
|
this.$message({
|
|
|
message: '警告!,操作太频繁',
|
|
message: '警告!,操作太频繁',
|
|
|
type: 'warning'
|
|
type: 'warning'
|
|
@@ -676,11 +789,11 @@
|
|
|
kf_id: "KF" + _this.user_info.id,
|
|
kf_id: "KF" + _this.user_info.id,
|
|
|
group_id: _this.user_info.group_id,
|
|
group_id: _this.user_info.group_id,
|
|
|
conversationId: conversationId,
|
|
conversationId: conversationId,
|
|
|
- type:3,
|
|
|
|
|
|
|
+ type: 3,
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
if (this.sessionType == 1) {
|
|
if (this.sessionType == 1) {
|
|
|
- let sessionList = this.sessionList;
|
|
|
|
|
|
|
+ let sessionList = this.sessionList;
|
|
|
sessionList.splice(this.dataIndex, 1);
|
|
sessionList.splice(this.dataIndex, 1);
|
|
|
if (sessionList.length > 0) {
|
|
if (sessionList.length > 0) {
|
|
|
this.$store.dispatch("SET_CURRENT", sessionList[0]);//当前会话数据
|
|
this.$store.dispatch("SET_CURRENT", sessionList[0]);//当前会话数据
|
|
@@ -690,7 +803,7 @@
|
|
|
this.$store.dispatch("SET_SESSION_NAME", '');
|
|
this.$store.dispatch("SET_SESSION_NAME", '');
|
|
|
}
|
|
}
|
|
|
} else {
|
|
} else {
|
|
|
- let offlineList = this.offlineList;
|
|
|
|
|
|
|
+ let offlineList = this.offlineList;
|
|
|
offlineList.splice(this.dataIndex, 1);
|
|
offlineList.splice(this.dataIndex, 1);
|
|
|
this.$store.dispatch("SET_CURRENT", []);//当前会话数据
|
|
this.$store.dispatch("SET_CURRENT", []);//当前会话数据
|
|
|
this.$store.dispatch("SET_SESSION_NAME", '');
|
|
this.$store.dispatch("SET_SESSION_NAME", '');
|
|
@@ -786,7 +899,7 @@
|
|
|
//计算关键词次数
|
|
//计算关键词次数
|
|
|
this.sensitiveNumber = this.sensitiveNumber + sensitive_data.num;
|
|
this.sensitiveNumber = this.sensitiveNumber + sensitive_data.num;
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
},
|
|
},
|
|
|
|
|
|
|
|
/******************开启或关闭表情包******************/
|
|
/******************开启或关闭表情包******************/
|
|
@@ -806,8 +919,8 @@
|
|
|
conversationId: this.sessionList[this.dataIndex].conversationId,
|
|
conversationId: this.sessionList[this.dataIndex].conversationId,
|
|
|
to_id: this.sessionList[this.dataIndex].id,
|
|
to_id: this.sessionList[this.dataIndex].id,
|
|
|
}
|
|
}
|
|
|
- this.sessionList[this.dataIndex].isEva =10;
|
|
|
|
|
- this.$store.dispatch("SET_SESSION",this.sessionList);
|
|
|
|
|
|
|
+ this.sessionList[this.dataIndex].isEva = 10;
|
|
|
|
|
+ this.$store.dispatch("SET_SESSION", this.sessionList);
|
|
|
this.websocketsend(JSON.stringify({type, data}));
|
|
this.websocketsend(JSON.stringify({type, data}));
|
|
|
this.is_eva_btn = true;
|
|
this.is_eva_btn = true;
|
|
|
} else if (this.sessionType == 2) {
|
|
} else if (this.sessionType == 2) {
|
|
@@ -854,7 +967,7 @@
|
|
|
get_user(id) {
|
|
get_user(id) {
|
|
|
let obj = {
|
|
let obj = {
|
|
|
headers: {
|
|
headers: {
|
|
|
- "apiToken": this.$md5('accountInfo' + "customer-service" + 'service' + 'service'),
|
|
|
|
|
|
|
+ "apiToken": this.$md5('accountInfo' + "customer-service" + 'service' + 'service'),
|
|
|
'userToken': this.token
|
|
'userToken': this.token
|
|
|
},
|
|
},
|
|
|
account_id: id
|
|
account_id: id
|
|
@@ -873,7 +986,7 @@
|
|
|
get_config_info() {
|
|
get_config_info() {
|
|
|
let obj = {
|
|
let obj = {
|
|
|
headers: {
|
|
headers: {
|
|
|
- apiToken: this.$md5("minround" + "customer-service" + "evaluate" + "index"),
|
|
|
|
|
|
|
+ apiToken: this.$md5("minround" + "customer-service" + "evaluate" + "index"),
|
|
|
userToken: this.token
|
|
userToken: this.token
|
|
|
}
|
|
}
|
|
|
};
|
|
};
|
|
@@ -897,7 +1010,7 @@
|
|
|
getSensitive() {
|
|
getSensitive() {
|
|
|
let obj = {
|
|
let obj = {
|
|
|
headers: {
|
|
headers: {
|
|
|
- "apiToken": this.$md5('sensitivewords' + "customer-service" + 'index' + 'index'),
|
|
|
|
|
|
|
+ "apiToken": this.$md5('sensitivewords' + "customer-service" + 'index' + 'index'),
|
|
|
'userToken': this.token
|
|
'userToken': this.token
|
|
|
}
|
|
}
|
|
|
};
|
|
};
|
|
@@ -954,67 +1067,67 @@
|
|
|
},
|
|
},
|
|
|
|
|
|
|
|
/******************qq截图粘贴---获取剪切板数据*****************/
|
|
/******************qq截图粘贴---获取剪切板数据*****************/
|
|
|
- getClipboardData( e ){
|
|
|
|
|
|
|
+ getClipboardData(e) {
|
|
|
// 添加到事件对象中的访问系统剪贴板的接口
|
|
// 添加到事件对象中的访问系统剪贴板的接口
|
|
|
let clipboardData = e.clipboardData,
|
|
let clipboardData = e.clipboardData,
|
|
|
i = 0,
|
|
i = 0,
|
|
|
items, item, types;
|
|
items, item, types;
|
|
|
-
|
|
|
|
|
- if( clipboardData ){
|
|
|
|
|
|
|
+
|
|
|
|
|
+ if (clipboardData) {
|
|
|
items = clipboardData.items;
|
|
items = clipboardData.items;
|
|
|
- if( !items ){
|
|
|
|
|
|
|
+ if (!items) {
|
|
|
return;
|
|
return;
|
|
|
}
|
|
}
|
|
|
item = items[0];
|
|
item = items[0];
|
|
|
// 保存在剪贴板中的数据类型
|
|
// 保存在剪贴板中的数据类型
|
|
|
types = clipboardData.types || [];
|
|
types = clipboardData.types || [];
|
|
|
- for( ; i < types.length; i++ ){
|
|
|
|
|
- if( types[i] === 'Files' ){
|
|
|
|
|
|
|
+ for (; i < types.length; i++) {
|
|
|
|
|
+ if (types[i] === 'Files') {
|
|
|
item = items[i];
|
|
item = items[i];
|
|
|
break;
|
|
break;
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
// 判断是否为图片数据
|
|
// 判断是否为图片数据
|
|
|
- if( item && item.kind === 'file' && item.type.match(/^image\//i) ){
|
|
|
|
|
- this.imgReader( item );
|
|
|
|
|
|
|
+ if (item && item.kind === 'file' && item.type.match(/^image\//i)) {
|
|
|
|
|
+ this.imgReader(item);
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
},
|
|
},
|
|
|
|
|
|
|
|
/**********qq截图粘贴---获取剪切板图片信息进行转换blob***********/
|
|
/**********qq截图粘贴---获取剪切板图片信息进行转换blob***********/
|
|
|
- imgReader( item ){
|
|
|
|
|
|
|
+ imgReader(item) {
|
|
|
let _this = this;
|
|
let _this = this;
|
|
|
- var blob = item.getAsFile(),reader = new FileReader();
|
|
|
|
|
|
|
+ var blob = item.getAsFile(), reader = new FileReader();
|
|
|
// 读取文件后将其显示在网页中
|
|
// 读取文件后将其显示在网页中
|
|
|
- reader.onload = function( e ){
|
|
|
|
|
|
|
+ reader.onload = function (e) {
|
|
|
var img = new Image();
|
|
var img = new Image();
|
|
|
img.src = e.target.result;
|
|
img.src = e.target.result;
|
|
|
- _this.dialogPaste =true;
|
|
|
|
|
|
|
+ _this.dialogPaste = true;
|
|
|
_this.pasteUrl = e.target.result;
|
|
_this.pasteUrl = e.target.result;
|
|
|
// console.log(img.src)
|
|
// console.log(img.src)
|
|
|
//document.body.appendChild( img );
|
|
//document.body.appendChild( img );
|
|
|
};
|
|
};
|
|
|
// 读取文件
|
|
// 读取文件
|
|
|
- reader.readAsDataURL( blob );
|
|
|
|
|
|
|
+ reader.readAsDataURL(blob);
|
|
|
},
|
|
},
|
|
|
|
|
|
|
|
/*******************qq截图粘贴---监听时间捆绑*****************/
|
|
/*******************qq截图粘贴---监听时间捆绑*****************/
|
|
|
- paste(){
|
|
|
|
|
- document.getElementById( 'input' ).addEventListener( 'paste',this.getClipboardData);
|
|
|
|
|
|
|
+ paste() {
|
|
|
|
|
+ document.getElementById('input').addEventListener('paste', this.getClipboardData);
|
|
|
},
|
|
},
|
|
|
|
|
|
|
|
/**********************qq截图粘贴---发送截图*****************/
|
|
/**********************qq截图粘贴---发送截图*****************/
|
|
|
handleClose(done) {
|
|
handleClose(done) {
|
|
|
- this.dialogPaste = false;
|
|
|
|
|
|
|
+ this.dialogPaste = false;
|
|
|
let blob = this.$public.dataURItoBlob(this.pasteUrl)
|
|
let blob = this.$public.dataURItoBlob(this.pasteUrl)
|
|
|
let self = this;
|
|
let self = this;
|
|
|
var formData = new FormData();
|
|
var formData = new FormData();
|
|
|
- formData.append("file", blob);
|
|
|
|
|
|
|
+ formData.append("file", blob);
|
|
|
self.upImg(formData);
|
|
self.upImg(formData);
|
|
|
},
|
|
},
|
|
|
|
|
|
|
|
/****************双击获取ip*******************/
|
|
/****************双击获取ip*******************/
|
|
|
- get_ip_Info(){
|
|
|
|
|
|
|
+ get_ip_Info() {
|
|
|
var clipboard = new Clipboard(".get_ip")
|
|
var clipboard = new Clipboard(".get_ip")
|
|
|
clipboard.on('success', e => {
|
|
clipboard.on('success', e => {
|
|
|
// console.log('复制成功')
|
|
// console.log('复制成功')
|
|
@@ -1022,63 +1135,63 @@
|
|
|
message: '复制成功',
|
|
message: '复制成功',
|
|
|
type: 'success'
|
|
type: 'success'
|
|
|
});
|
|
});
|
|
|
- // 释放内存
|
|
|
|
|
- clipboard.destroy()
|
|
|
|
|
|
|
+ // 释放内存
|
|
|
|
|
+ clipboard.destroy()
|
|
|
})
|
|
})
|
|
|
clipboard.on('error', e => {
|
|
clipboard.on('error', e => {
|
|
|
- // 不支持复制
|
|
|
|
|
|
|
+ // 不支持复制
|
|
|
this.$message({
|
|
this.$message({
|
|
|
- message: '该浏览器不支持自动复制',
|
|
|
|
|
|
|
+ message: '该浏览器不支持自动复制',
|
|
|
type: 'warning'
|
|
type: 'warning'
|
|
|
});
|
|
});
|
|
|
- // 释放内存
|
|
|
|
|
- clipboard.destroy()
|
|
|
|
|
|
|
+ // 释放内存
|
|
|
|
|
+ clipboard.destroy()
|
|
|
})
|
|
})
|
|
|
},
|
|
},
|
|
|
/****************访问信息和评价状态***************/
|
|
/****************访问信息和评价状态***************/
|
|
|
- accessTerminal(data){
|
|
|
|
|
- if(this.sessionType == 1){
|
|
|
|
|
|
|
+ accessTerminal(data) {
|
|
|
|
|
+ if (this.sessionType == 1) {
|
|
|
let List = this.sessionList[this.dataIndex];
|
|
let List = this.sessionList[this.dataIndex];
|
|
|
- if(data == 'eva'){
|
|
|
|
|
- if(!List) return false
|
|
|
|
|
- console.log(List);
|
|
|
|
|
- if(List.isEva == 10 ){
|
|
|
|
|
|
|
+ if (data == 'eva') {
|
|
|
|
|
+ if (!List) return false
|
|
|
|
|
+ // console.log(List,'对话信息');
|
|
|
|
|
+ if (List.isEva == 10) {
|
|
|
this.is_eva_btn = true;
|
|
this.is_eva_btn = true;
|
|
|
- }else if(List.isEva != 10){
|
|
|
|
|
- if (this.data.length > this.trigger_condition){
|
|
|
|
|
|
|
+ } else if (List.isEva != 10) {
|
|
|
|
|
+ if (this.data.length > this.trigger_condition) {
|
|
|
List.isEva = 100;
|
|
List.isEva = 100;
|
|
|
this.is_eva_btn = false;
|
|
this.is_eva_btn = false;
|
|
|
- }else{
|
|
|
|
|
|
|
+ } else {
|
|
|
this.is_eva_btn = true;
|
|
this.is_eva_btn = true;
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
this.sessionList[this.dataIndex] = List
|
|
this.sessionList[this.dataIndex] = List
|
|
|
- this.$store.dispatch("SET_SESSION",this.sessionList)
|
|
|
|
|
- }else{
|
|
|
|
|
- if(List){
|
|
|
|
|
|
|
+ this.$store.dispatch("SET_SESSION", this.sessionList)
|
|
|
|
|
+ } else {
|
|
|
|
|
+ if (List) {
|
|
|
this.terminal_IP = {
|
|
this.terminal_IP = {
|
|
|
- system:List.system+'-'+List.browse,
|
|
|
|
|
- ip:List.ip
|
|
|
|
|
- }
|
|
|
|
|
- }else{
|
|
|
|
|
- this.terminal_IP ={}
|
|
|
|
|
|
|
+ system: List.system + '-' + List.browse,
|
|
|
|
|
+ ip: List.ip
|
|
|
|
|
+ }
|
|
|
|
|
+ } else {
|
|
|
|
|
+ this.terminal_IP = {}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
- }else if(this.sessionType == 2){
|
|
|
|
|
|
|
+ } else if (this.sessionType == 2) {
|
|
|
let List = this.offlineList[this.dataIndex];
|
|
let List = this.offlineList[this.dataIndex];
|
|
|
// if(data == 'eva'){
|
|
// if(data == 'eva'){
|
|
|
// if (this.data.length > this.trigger_condition){
|
|
// if (this.data.length > this.trigger_condition){
|
|
|
// List.isEva = 100;
|
|
// List.isEva = 100;
|
|
|
// }
|
|
// }
|
|
|
// }else{
|
|
// }else{
|
|
|
- if(List){
|
|
|
|
|
- this.terminal_IP = {
|
|
|
|
|
- system:List.system+'-'+List.browse,
|
|
|
|
|
- ip:List.ip
|
|
|
|
|
- }
|
|
|
|
|
- }else{
|
|
|
|
|
- this.terminal_IP ={}
|
|
|
|
|
|
|
+ if (List) {
|
|
|
|
|
+ this.terminal_IP = {
|
|
|
|
|
+ system: List.system + '-' + List.browse,
|
|
|
|
|
+ ip: List.ip
|
|
|
}
|
|
}
|
|
|
|
|
+ } else {
|
|
|
|
|
+ this.terminal_IP = {}
|
|
|
|
|
+ }
|
|
|
// }
|
|
// }
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
@@ -1118,17 +1231,17 @@
|
|
|
this.paste();
|
|
this.paste();
|
|
|
//
|
|
//
|
|
|
this.accessTerminal();
|
|
this.accessTerminal();
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
//
|
|
//
|
|
|
- if(this.sessionList.length > 0){
|
|
|
|
|
- if(this.sessionList[this.dataIndex].isEva == 100 && this.sessionList[this.dataIndex]){
|
|
|
|
|
|
|
+ if (this.sessionList.length > 0) {
|
|
|
|
|
+ if (this.sessionList[this.dataIndex].isEva == 100 && this.sessionList[this.dataIndex]) {
|
|
|
this.is_eva_btn = false;
|
|
this.is_eva_btn = false;
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
},
|
|
},
|
|
|
- beforeDestroy(){
|
|
|
|
|
- document.getElementById( 'input' ).removeEventListener('paste',this.getClipboardData)
|
|
|
|
|
|
|
+ beforeDestroy() {
|
|
|
|
|
+ document.getElementById('input').removeEventListener('paste', this.getClipboardData)
|
|
|
},
|
|
},
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -1139,13 +1252,13 @@
|
|
|
this.chatMessage(e)
|
|
this.chatMessage(e)
|
|
|
},
|
|
},
|
|
|
|
|
|
|
|
- sessionList(e){
|
|
|
|
|
|
|
+ sessionList(e) {
|
|
|
this.accessTerminal(e)
|
|
this.accessTerminal(e)
|
|
|
},
|
|
},
|
|
|
- offlineList(e){
|
|
|
|
|
|
|
+ offlineList(e) {
|
|
|
this.accessTerminal(e)
|
|
this.accessTerminal(e)
|
|
|
},
|
|
},
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
/*****************评价按钮显示隐藏处理*****************/
|
|
/*****************评价按钮显示隐藏处理*****************/
|
|
|
get_is_eva_btn(data) {
|
|
get_is_eva_btn(data) {
|
|
|
this.accessTerminal('eva')
|
|
this.accessTerminal('eva')
|
|
@@ -1158,11 +1271,11 @@
|
|
|
...mapGetters({
|
|
...mapGetters({
|
|
|
data: 'get_current',
|
|
data: 'get_current',
|
|
|
sessionName: 'get_session_name',
|
|
sessionName: 'get_session_name',
|
|
|
- sessionList:'get_session',
|
|
|
|
|
- offlineList:'get_offline',
|
|
|
|
|
- dataIndex:'get_num',
|
|
|
|
|
- sessionType:'get_type',
|
|
|
|
|
- get_user_info:'get_session_user',
|
|
|
|
|
|
|
+ sessionList: 'get_session',
|
|
|
|
|
+ offlineList: 'get_offline',
|
|
|
|
|
+ dataIndex: 'get_num',
|
|
|
|
|
+ sessionType: 'get_type',
|
|
|
|
|
+ get_user_info: 'get_session_user',
|
|
|
// is_eva_btn:'get_is_eva_btn',
|
|
// is_eva_btn:'get_is_eva_btn',
|
|
|
}),
|
|
}),
|
|
|
|
|
|
|
@@ -1190,13 +1303,14 @@
|
|
|
content: "\E791";
|
|
content: "\E791";
|
|
|
color: #ccc;
|
|
color: #ccc;
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
.emoticon {
|
|
.emoticon {
|
|
|
width: 30px;
|
|
width: 30px;
|
|
|
height: 30px;
|
|
height: 30px;
|
|
|
display: inline-block;
|
|
display: inline-block;
|
|
|
}
|
|
}
|
|
|
- #pop .expression{
|
|
|
|
|
|
|
+
|
|
|
|
|
+ #pop .expression {
|
|
|
display: inline-block;
|
|
display: inline-block;
|
|
|
width: 20px;
|
|
width: 20px;
|
|
|
height: 20px;
|
|
height: 20px;
|
|
@@ -1210,6 +1324,7 @@
|
|
|
background: url("./../assets/img/frcea.png") no-repeat;
|
|
background: url("./../assets/img/frcea.png") no-repeat;
|
|
|
background-size: 100% 100%;
|
|
background-size: 100% 100%;
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
.session_choose {
|
|
.session_choose {
|
|
|
background: #F6F8FF;
|
|
background: #F6F8FF;
|
|
|
}
|
|
}
|
|
@@ -1302,7 +1417,7 @@
|
|
|
.chatTop {
|
|
.chatTop {
|
|
|
height: 50px;
|
|
height: 50px;
|
|
|
border-bottom: 1px solid #d5e5ff;
|
|
border-bottom: 1px solid #d5e5ff;
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
.chat-box {
|
|
.chat-box {
|
|
@@ -1361,7 +1476,7 @@
|
|
|
color: #666;
|
|
color: #666;
|
|
|
font-size: 14px;
|
|
font-size: 14px;
|
|
|
font-weight: bold;
|
|
font-weight: bold;
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
.content_span {
|
|
.content_span {
|
|
@@ -1601,11 +1716,13 @@
|
|
|
font-size: 12px;
|
|
font-size: 12px;
|
|
|
font-weight: 400;
|
|
font-weight: 400;
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
.el-tooltip__popper {
|
|
.el-tooltip__popper {
|
|
|
- max-width:15vw;
|
|
|
|
|
- /* line-height: 180%; */
|
|
|
|
|
|
|
+ max-width: 15vw;
|
|
|
|
|
+ /* line-height: 180%; */
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
.rightAlignment .el-button {
|
|
.rightAlignment .el-button {
|
|
|
- border:none;
|
|
|
|
|
|
|
+ border: none;
|
|
|
}
|
|
}
|
|
|
</style>
|
|
</style>
|