文件
xionggeshop/public/assets/addons/shopro/chat.html

1014 行
40 KiB
HTML

此文件含有模棱两可的 Unicode 字符

此文件含有可能会与其他字符混淆的 Unicode 字符。 如果您是想特意这样的,可以安全地忽略该警告。 使用 Escape 按钮显示他们。

<style>
#shopro-kefu-container .el-dialog {
width: 900px;
}
#shopro-kefu-container .el-dialog__body,
#shopro-kefu-container .el-dialog__header {
padding: 0 !important;
}
#shopro-kefu-container .el-dialog__header {
background: #FBFBFB;
}
#shopro-kefu-container .el-image {
width: 100%;
height: 100%;
border-radius: 19px;
}
#shopro-kefu-container .image-slot {
width: 100%;
height: 100%;
display: flex;
align-items: center;
justify-content: center;
}
.ellipsis-item {
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 1;
-webkit-box-orient: vertical;
}
.shopro-chat-goods-title {
width: 144px;
}
.display-flex {
display: flex;
}
.scrollbar-containering::-webkit-scrollbar {
width: 6px;
background: #F4F4F4;
}
.scrollbar-containering::-webkit-scrollbar-thumb {
width: 6px;
background: #e6e6e6;
height: 20px;
border-radius: 3px;
}
.el-textarea__inner::-webkit-scrollbar {
width: 4px;
background: #F4F4F4;
}
.el-textarea__inner::-webkit-scrollbar-thumb {
width: 4px;
background: #e6e6e6;
height: 20px;
border-radius: 3px;
}
.shopro-kefu-container-shake {
animation: shopro-shake 1s;
-o-animation: shopro-shake 1s;
-webkit-animation: shopro-shake 1s;
-moz-animation: shopro-shake 1s;
}
@keyframes shopro-shake {
0%,
100% {
-webkit-transform: translateX(0);
}
10%,
30%,
50%,
70%,
90% {
-webkit-transform: translateX(-5px);
}
20%,
40%,
60%,
80% {
-webkit-transform: translateX(5px);
}
}
@keyframes dyeing {
0% {
-moz-box-shadow: 0 0 0 0 rgba(119, 97, 251, 0.5);
box-shadow: 0 0 0 0 rgba(119, 97, 251, 0.5);
}
70% {
-moz-box-shadow: 0 0 0 10px rgba(119, 97, 251, 0);
box-shadow: 0 0 0 10px rgba(119, 97, 251, 0);
}
100% {
-moz-box-shadow: 0 0 0 0 rgba(119, 97, 251, 0);
;
box-shadow: 0 0 0 0 rgba(119, 97, 251, 0);
;
}
}
#shopro-kefu-button {
position: absolute;
top: 80%;
right: 20px;
width: 50px;
height: 50px;
z-index: 2000;
cursor: pointer;
border-radius: 25px;
background: #7761FB url(/assets/addons/shopro/img/chat/menu.gif) center no-repeat;
background-size: 30px 27px;
animation: dyeing 2s infinite;
}
.shopro-kefu-title {
display: flex;
align-items: center;
/* justify-content: space-between; */
padding: 0 18px;
height: 50px;
border-bottom: 1px solid #e6e6e6;
}
.shopro-kefu-title-avatar {
width: 28px;
height: 28px;
border: 1px solid #E6E6E6;
border-radius: 14px;
margin-right: 12px
}
.shopro-kefu-title-name {
margin-right: 16px;
color: #534C70;
font-size: 14px;
}
.shopro-kefu-title-line {
width: 80px
}
.shopro-kefu-content {
height: 657px;
display: flex;
}
.chater-left {
height: 100%;
width: 303px;
border-right: 1px solid #F4F4F4;
display: flex;
flex-direction: column;
}
.chater-header {
display: flex;
width: 300px;
height: 38px;
border-bottom: 1px solid #F4F4F4;
}
.chater-header-item {
width: 100px;
height: 38px;
display: flex;
align-items: center;
justify-content: center;
cursor: pointer;
font-size: 12px;
}
.chater-header-item-active {
width: 84px;
height: 26px;
background: rgba(157, 96, 255, 0.2);
border-radius: 18px;
line-height: 26px;
text-align: center;
font-size: 12px;
color: #7438D5;
}
.chater-header-container {
flex: 1;
overflow: auto;
background: #F9F9F9;
}
.chater-header-list {
padding: 8px 10px 13px 0px;
border-bottom: 1px solid #F4F4F4;
cursor: pointer;
background: #fff;
}
.chater-header-list:hover {
/* background: #EBDFFF; */
}
.chater-header-list:hover .chater-el-icon-close i {
display: block;
}
.chater-header-list-active,
.chater-header-list-offline-active {
background: #EBDFFF;
}
.offline-status {
margin: 0 6px;
flex-shrink: 0;
}
.offline-status .line-status-offline {
color: #ED655F;
}
.offline-status .line-status-online {
color: #7438D5;
}
.chater-el-icon-close {
font-size: 10px;
width: 22px;
display: flex;
justify-content: center;
align-items: center;
}
.chater-el-icon-close i {
display: none;
}
.chater-el-icon-close:hover {
color: #A268FF;
}
.chater-header-list-image {
width: 40px;
height: 40px;
background: #C4C4C4;
border: 1px solid #E6E6E6;
margin-right: 10px;
border-radius: 20px;
}
.chater-header-list-image img {
width: 100%;
height: 100%;
border-radius: 20px;
}
.chater-header-list-message {
flex: 1;
display: flex;
flex-direction: column;
justify-content: center;
}
.chater-header-list-message-1 {
display: flex;
justify-content: space-between;
line-height: 14px;
margin-bottom: 6px
}
.chater-header-list-message-2 {
line-height: 12px;
font-size: 12px;
display: flex;
justify-content: space-between;
align-items: center;
}
.chater-right {
flex: 1;
position: relative;
}
.shopro-chat-container {
height: 517px;
padding: 20px;
overflow: auto;
}
.shopro-chat-container-item {
display: flex;
margin-bottom: 42px;
}
.shopro-chat-container-item-system {
width: 100%;
}
.shopro-chat-container-item-image {
width: 38px;
height: 38px;
border: 1px solid #E6E6E6;
border-radius: 19px;
margin-right: 14px
}
.shopro-chat-container-item-image-1 {
width: 38px;
height: 38px;
border: 1px solid #E6E6E6;
border-radius: 19px;
margin-left: 14px
}
.shopro-chat-container-item-message {
background: #F6F6F6;
border-radius: 6px 6px 6px 0px;
max-width: 432px;
}
.shopro-chat-container-item-message-1 {
max-width: 432px;
border-radius: 6px 6px 0px 6px;
color: #444;
background: #ECE1FF;
}
.shopro-chat-container-item-message-text {
padding: 10px;
line-height: 18px;
}
.shopro-chat-container-item-message-text img {
width: 100%;
}
.shopro-send-container {
width: 100%;
height: 140px;
padding: 0 24px 0 16px;
border-top: 1px solid #e6e6e6;
}
.shopro-send-tip-container {
height: 42px;
display: flex;
align-items: center;
}
.shopro-send-tip-item {
width: 18px;
height: 18px;
margin-right: 12px;
cursor: pointer;
}
.shopro-send-textarea {
height: 44px;
overflow: auto;
}
.shopro-send-textarea::-webkit-scrollbar {
width: 6px;
}
.shopro-send-textarea::-webkit-scrollbar-thumb {
width: 6px;
background: #ccc;
height: 20px;
border-radius: 3px;
}
.shopro-send-textarea textarea {
height: 44px;
width: 554px !important;
border: none;
margin: 0px;
}
.shopro-send-textarea textarea:focus {
border: none !important;
}
.shopro-send-button-container {
padding: 12px 0;
height: 64px
}
.shopro-send-button {
width: 78px;
height: 30px;
line-height: 30px;
text-align: center;
font-size: 13px;
color: #fff;
background: #7438D5;
border-radius: 4px;
float: right;
cursor: pointer;
}
#inputFile {
display: none;
}
.shopro-chat-goods-item {
min-width: 240px;
height: 60px;
/* background: #FFFFFF; */
/* border: 1px solid #E6E6E6; */
border-radius: 4px;
padding: 8px;
display: flex;
align-items: center;
}
.shopro-chat-goods-image {
width: 44px;
height: 44px;
border: 1px solid #E6E6E6;
border-radius: 3px;
margin-right: 10px;
}
.shopro-chat-goods-image .el-image,
.shopro-chat-image {
position: relative;
border-radius: 3px !important;
}
.shopro-chat-goods-message {
display: flex;
flex-direction: column;
justify-content: space-between;
flex: 1;
height: 100%;
}
.shopro-chat-goods-bodys {
justify-content: space-between;
height: 20px;
}
.customer-service {
color: #fff;
justify-content: flex-end;
}
.customer-user {
color: #444;
justify-content: flex-start;
}
.customer-system {
justify-content: center;
}
.shopro-chat-system {
height: 30px;
line-height: 30px;
padding: 0 10px;
border-radius: 10px;
background: #f9f9f9;
}
.shopro-chat-emoji-container {
display: flex;
flex-wrap: wrap;
height: 150px;
overflow: auto;
padding: 10px 10px 5px;
}
.shopro-chat-emoji-image {
width: 24px;
height: 24px;
/* border: 1px solid #E6E6E6; */
border-radius: 3px;
margin-right: 10px;
margin-bottom: 5px;
}
.shopro-chat-emoji-image:nth-of-type(6n) {
margin-right: 0px;
}
.shopro-send-pre,
.shopro-send-pre:focus,
.shopro-send-pre:default {
border: none !important;
outline: none;
background: none;
height: 44px;
padding: 0;
}
.message-dot {
padding: 4px 7px;
border-radius: 10px;
text-align: center;
background: #F15847;
color: #fff;
}
.common-words-item,
.common-words-item-tip {
cursor: pointer;
height: 30px;
line-height: 30px;
padding: 0 12px;
border-bottom: 1px solid #e6e6e6;
color: #666;
}
.common-words-item-tip {
height: 40px;
line-height: 40px;
border-bottom: none;
}
.common-words-item:hover {
background: #F7F7FC;
}
.no-more-data {
display: flex;
justify-content: center;
align-items: center;
margin-bottom: 22px;
}
.shopro-chat-order-item {
cursor: pointer;
}
.shopro-chat-order-title {
height: 30px;
line-height: 30px;
border-bottom: 1px solid #e6e6e6;
padding: 0 10px;
}
#shopro-kefu-container .el-dialog__headerbtn {
height: 50px;
top: 0;
}
.shopro-kefu-title-line input,
.shopro-kefu-title-line .el-input__inner {
border: none;
background-color: #FBFBFB;
color: inherit;
}
#shopro-kefu-button .message-dot {
width: 14px;
height: 14px;
border-radius: 7px;
float: right;
}
.el-popover {
padding: 0;
}
.el-popover-common-words {
max-height: 150px;
overflow-y: auto;
font-size: 12px;
}
.emoji {
width: 20px !important;
height: 20px !important;
margin: 0 2px;
}
.el-icon-loading {
color: #7438D5;
font-size: 20px;
position: absolute;
top: 50%;
left: 50%;
margin-left: -10px;
margin-top: -10px;
}
.shopro-chat-container-item-message .el-icon-loading {
color: #999;
}
.transfer-item {
width: 160px;
background: #fff;
font-size: 12px;
}
.transfer-item .el-input__inner {
padding: 0 10px;
}
.el-dialog__wrapper {
overflow: hidden;
}
.specific-createtime {
width: 100%;
display: flex;
justify-content: center;
margin-bottom: 6px;
}
.specific-createtime .createtime-item {
width: 160px;
border-radius: 10px;
height: 20px;
line-height: 20px;
background: #f6f6f6;
display: flex;
align-items: center;
justify-content: center;
color: #777;
}
label {
margin-bottom: 0;
}
.error-tip-popover.el-popover {
padding: 12px 16px;
border: 1px solid #e6e6e6;
}
.error-tip-popover.el-popper[x-placement^=left] .popper__arrow {
border-left-color: #e6e6e6;
}
.kefu-access-status {
position: absolute;
top: 20px;
left: 16px;
width: 565px;
height: 42px;
background: #FFFCF7;
box-shadow: 0px 2px 12px rgba(0, 0, 0, 0.1);
border-radius: 4px;
padding: 0 16px;
font-size: 14px;
color: #F0AF41;
display: flex;
align-items: center;
justify-content: space-between;
z-index: 100;
}
.kefu-access-status-left i {
margin-right: 8px;
}
.shopro-nosend-container {
padding: 16px;
font-size: 17px;
color: #D1D1D1;
}
#shopro-kefu-container .shopro-chat-container-icon {
display: flex;
align-items: center;
justify-content: center;
flex-direction: column;
}
#shopro-kefu-container .shopro-chat-container-icon .el-image {
width: 146px;
height: 146px;
}
.shopro-chat-container-tip {
font-size: 16px;
color: #999999;
margin-top: 30px;
}
</style>
<script type="text/x-template" id="chatTemp" style="position: relative;">
<div id="shopro-kefu-container" class="">
<el-popover
popper-class="error-tip-popover"
placement="left"
width="264"
trigger="manual"
v-model="errorTipVisible">
<div>客服连接失败,请点击 <span style="cursor: pointer;color: #7438D5;" @click="linkWebSocket(passvalue.wsUri, passvalue.token, passvalue.expire_time, passvalue.customer_service_id)">重新连接</span><i style="margin-left:10px;cursor: pointer" class="el-icon-close" @click="closeErrorTipVisible"></i></div>
<div slot="reference" id="shopro-kefu-button" ref="shoproKefuButtonRef" v-show="isButtonShow" @mousedown="moveKefu" @click="openDialog()">
<div v-if="kefuButtonvisible && !dialogVisible" class="message-dot"></div>
</div>
</el-popover>
<el-dialog :visible.sync="dialogVisible" :before-close="handleClose" :custom-class="shoproKefuShake?'shopro-kefu-container-shake':''" v-dialogDrag>
<span slot="title">
<div class="shopro-kefu-title" ref="shoproKefuTitleRef" v-if="adminData.customer_service" @click.stop="closerightShowId">
<img class="shopro-kefu-title-avatar" :src="adminData.customer_service.avatar?Fast.api.cdnurl(adminData.customer_service.avatar):'/assets/addons/shopro/img/chat/default.png'">
<div class="shopro-kefu-title-name">客服-{{adminData.customer_service.name}}</div>
<div class="shopro-kefu-title-line" v-if="relink==1">
<el-select v-model="lineStatus" size="mini" placeholder="" @change="changeLineStatus" :style="{color:lineStatus=='online'?'#7438D5':(lineStatus=='offline'?'#ED655F':'#666666')}">
<el-option v-for="line in lineOptions" :key="line.value" :label="line.label" :value="line.value">
<span :style="{color: line.color}">{{ line.label }}</span>
</el-option>
</el-select>
</div>
<div v-if="relink==0">
网络断开中,请点击 <span style="cursor: pointer;color: #7438D5;" @click="linkWebSocket(passvalue.wsUri, passvalue.token, passvalue.expire_time, passvalue.customer_service_id)">重新连接</span>
</div>
</div>
</span>
<div class="shopro-kefu-content" @click.stop="closerightShowId">
<div class="chater-left">
<div class="chater-header">
<div class="chater-header-item"
v-for="(chater,chaterIndex) in liaoData" @click="changeGroup(chaterIndex)">
<span v-if="groupIndex!=chaterIndex">{{chater.title}}</span>
<div class="chater-header-item-active" v-if="groupIndex==chaterIndex">{{chater.title}}</div>
</div>
</div>
<div class="chater-header-container scrollbar-containering">
<div class="chater-header-list" v-if="openGroupList.length>0"
v-for="(group,gIndex) in openGroupList" :class="[(user_offline.includes(group.session_id) && isChatingId==group.session_id)?'chater-header-list-offline-active':'',((user_offline.includes(group.session_id) && isChatingId!=group.session_id)) ?'chater-header-list-offline':'',((!user_offline.includes(group.session_id)) && isChatingId==group.session_id)?'chater-header-list-active':'']" @click.stop="selectChating(group.session_id,gIndex,true,group)"
@contextmenu.prevent="show($event,group.session_id,gIndex)">
<div class="display-flex">
<div class="chater-el-icon-close" @click.stop="deleteChating(group.session_id,gIndex,true)">
<i class="el-icon-close"></i>
</div>
<div class="chater-header-list-image">
<img :src="group.avatar?Fast.api.cdnurl(group.avatar):'/assets/addons/shopro/img/chat/user-default.png'" />
</div>
<div class="chater-header-list-message">
<div class="chater-header-list-message-1">
<div class="display-flex" style="flex:1">
<div class="ellipsis-item">{{group.nickname}}</div>
<div class="offline-status">
<span v-if="user_offline.includes(group.session_id)" class="line-status-offline">离线</span>
<span v-else class="line-status-online">在线</span>
</div>
</div>
<div style="font-size:12px;flex-shrink: 0;" v-if="group.last_message">
{{timeFilter(group.last_message.createtime*1000)}}
</div>
</div>
<div class="chater-header-list-message-2">
<div class="display-flex">
<!-- <div v-if="user_offline.includes(group.session_id)" class="offline-status">{{user_offline.includes(group.session_id)?'离线':''}}</div> -->
<div v-if="group.last_message">
<div v-if="group.last_message.message_type=='text'">
[文本]
</div>
<div v-if="group.last_message.message_type=='image'">[图片]</div>
<div v-if="group.last_message.message_type=='goods'">[商品]</div>
<div v-if="group.last_message.message_type=='order'">[订单]</div>
</div>
</div>
<div class="message-dot" v-if="group.message_unread_num">{{group.message_unread_num>99?'99+':group.message_unread_num}}</div>
</div>
</div>
</div>
<!-- 右键 -->
<div :style="{position:'fixed',top:rightShowPosition.top,left:rightShowPosition.left,zIndex:1}" v-if="rightShowId==group.session_id">
<el-select class="transfer-item" v-model="transferAdminList" placeholder="请选择转接客服人员" @change="transferKfu" size="small">
<el-option
v-for="item in changeKefuList"
:key="item.id"
:label="item.name"
:value="item.id">
</el-option>
</el-select>
</div>
</div>
</div>
</div>
<div class="chater-right">
<!-- 弹出提示 -->
<div v-if="kefuAccessStatus" class="kefu-access-status">
<div class="kefu-access-status-left">
<i class="el-icon-warning"></i>
{{kefuAccessTip}}
</div>
<i class="el-icon-close" @click="closeKefuAccessStatus"></i>
</div>
<div v-show="!isChatingId" class="shopro-chat-container scrollbar-containering shopro-chat-container-icon">
<el-image src="/assets/addons/shopro/img/chat/chat-icon.png" fit="contain">
<div slot="error" class="image-slot">
<i class="el-icon-picture-outline"></i>
</div>
</el-image>
<div class="shopro-chat-container-tip">
暂时没有会话哦!
</div>
</div>
<div v-show="isChatingId" class="shopro-chat-container scrollbar-containering" ref="shoproChatContainerRef">
<div class="no-more-data" v-if="message_num<10">没有更多数据了</div>
<template v-if="isChatingId">
<div class="shopro-chat-container-item"
:class="[specific.sender_identify=='customer_service'?'customer-service':'customer-user',specific.message_type=='system'?'customer-system':'']"
v-for="(specific,specificindex) in specificChatMessage" style="flex-direction: column;">
<template v-if="specific.message_type=='system'">
<div class="shopro-chat-system">{{specific.message}}<div>
</template>
<template v-if="specific.sender_identify=='user' && specific.message_type!='system'">
<template>
<div class="specific-createtime" v-if="specificindex>0 && specific.createtime-specificChatMessage[specificindex-1].createtime>300">
<div class="createtime-item">
{{Moment(specific.createtime*1000).format('YYYY-MM-DD HH:mm:ss')}}
</div>
</div>
<div class="specific-createtime" v-if="specificindex==0 && specific.createtime">
<div class="createtime-item">
{{Moment(specific.createtime*1000).format('YYYY-MM-DD HH:mm:ss')}}
</div>
</div>
</template>
<div class="display-flex">
<div class="shopro-chat-container-item-image">
<el-image v-if="specific.identify"
:src="specific.identify.avatar?Fast.api.cdnurl(specific.identify.avatar):'/assets/addons/shopro/img/chat/user-default.png'"
fit="cover">
<div slot="error" class="image-slot">
<i class="el-icon-picture-outline"></i>
</div>
</el-image>
</div>
<div class="shopro-chat-container-item-message">
<!--type='text' -->
<div class="shopro-chat-container-item-message-text" v-if="specific.message_type=='text'" v-html="specific.message"></div>
<!--type='image' -->
<div class="shopro-chat-container-item-message-text shopro-chat-image" :style="{width:!specific.hidden?'30px':''}" v-if="specific.message_type=='image'">
<i v-if="!specific.hidden" class="el-icon-loading"></i>
<el-image ref="imageRef" lazy :src="Fast.api.cdnurl(specific.message)" fit="contain" @load="getimageload(specificindex)" @error="imagerror(specificindex)">
<div slot="error" class="image-slot">
<i class="el-icon-picture-outline"></i>
</div>
</el-image>
</div>
<!--type='goods' -->
<div class="shopro-chat-goods-item" v-if="specific.message_type=='goods'" @click="openGoods(specific.message.id)">
<div class="shopro-chat-goods-image">
<el-image
:src="Fast.api.cdnurl(specific.message.image)"
fit="contain">
<div slot="error" class="image-slot">
<i class="el-icon-picture-outline"></i>
</div>
</el-image>
</div>
<div class="shopro-chat-goods-message">
<div class="display-flex">
<div style="margin-right:10px;">{{specific.message.id}}</div>
<div class="shopro-chat-goods-title ellipsis-item">{{specific.message.title}}</div>
</div>
<div class="shopro-chat-goods-bodys display-flex">
<div>¥{{specific.message.price}}</div>
</div>
</div>
</div>
<!--type='order' -->
<div class="shopro-chat-order-item" v-if="specific.message_type=='order'" @click="openOrder(specific.message.id)">
<div class="shopro-chat-order-title">订单号:{{specific.message.order_sn}}</div>
<div class="shopro-chat-goods-item">
<div class="shopro-chat-goods-image">
<el-image
:src="Fast.api.cdnurl(specific.message.image)"
fit="contain">
<div slot="error" class="image-slot">
<i class="el-icon-picture-outline"></i>
</div>
</el-image>
</div>
<div class="shopro-chat-goods-message">
<div class="display-flex">
<div style="margin-right:10px">{{specific.message.id}}</div>
<div class="shopro-chat-goods-title ellipsis-item">{{specific.message.title}}</div>
</div>
<div class="shopro-chat-goods-bodys display-flex">
<div>¥{{specific.message.price}}</div>
<div class="shopro-chat-goods-stock">x{{specific.message.num}}</div>
</div>
</div>
</div>
</div>
</div>
</div>
</template>
<template v-if="specific.sender_identify=='customer_service' && specific.message_type!='system'">
<div class="specific-createtime" v-if="specificindex>0 && specific.createtime-specificChatMessage[specificindex-1].createtime>300">
<div class="createtime-item">
{{Moment(specific.createtime*1000).format('YYYY-MM-DD HH:mm:ss')}}
</div>
</div>
<div class="specific-createtime" v-if="specificindex==0 && specific.createtime">
<div class="createtime-item">
{{Moment(specific.createtime*1000).format('YYYY-MM-DD HH:mm:ss')}}
</div>
</div>
<div class="display-flex" style="justify-content: flex-end;">
<div class="shopro-chat-container-item-message-1">
<!--type='text' -->
<div class="shopro-chat-container-item-message-text" v-if="specific.message_type=='text'" v-html="specific.message"></div>
<!--type='image' -->
<div class="shopro-chat-container-item-message-text shopro-chat-image" :style="{width:!specific.hidden?'30px':''}" v-if="specific.message_type=='image' && specific.message">
<i v-if="!specific.hidden" class="el-icon-loading"></i>
<el-image ref="imageRef" lazy :src="Fast.api.cdnurl(specific.message)" fit="contain" @load="getimageload(specificindex)" @error="imagerror(specificindex)">
<div slot="error" class="image-slot">
<i class="el-icon-picture-outline"></i>
</div>
</el-image>
</div>
<div class="shopro-chat-goods-item" v-if="specific.message_type=='goods'" @click="openGoods(specific.message.id)">
<div class="shopro-chat-goods-image">
<el-image
:src="Fast.api.cdnurl(specific.message.image)"
fit="contain">
<div slot="error" class="image-slot">
<i class="el-icon-picture-outline"></i>
</div>
</el-image>
</div>
<div class="shopro-chat-goods-message">
<div class="display-flex">
<div style="margin-right:10px">{{specific.message.id}}</div>
<div class="shopro-chat-goods-title ellipsis-item">{{specific.message.title}}</div>
</div>
<div class="shopro-chat-goods-bodys display-flex">
<div>¥{{specific.message.price}}</div>
</div>
</div>
</div>
</div>
<div class="shopro-chat-container-item-image-1">
<el-image v-if="specific.identify"
:src="specific.identify.avatar?Fast.api.cdnurl(specific.identify.avatar):'/assets/addons/shopro/img/chat/default.png'"
fit="cover">
<div slot="error" class="image-slot">
<i class="el-icon-picture-outline"></i>
</div>
</el-image>
</div>
</div>
</template>
</div>
</template>
</div>
<div class="shopro-send-container shopro-nosend-container" v-show="isChatingId && kefuAccessStatusSend">
暂时无法与之会话
</div>
<div class="shopro-send-container" v-show="isChatingId && !kefuAccessStatusSend">
<div class="shopro-send-tip-container">
<el-popover placement="top-start" width="222" v-model="emojivisible">
<div class="scrollbar-containering shopro-chat-emoji-container" style="">
<div class="shopro-chat-emoji-image" v-for="emoji in emoji_list" @click="selectEmoji(emoji)">
<el-image
:src="'/assets/addons/shopro/img/emoji/'+emoji.file"
fit="contain">
<div slot="error" class="image-slot">
<i class="el-icon-picture-outline"></i>
</div>
</el-image>
</div>
</div>
<img class="shopro-send-tip-item" slot="reference" src="/assets/addons/shopro/img/chat/expression.png" />
</el-popover>
<el-popover placement="top-start" width="180" v-model="commonWordsvisible">
<div>
<div class="common-words-item" v-if="commonWordsList.length==0">赶紧去配置常用语吧~</div>
<div class="scrollbar-containering el-popover-common-words" v-if="commonWordsList.length>0">
<div class="common-words-item ellipsis-item" v-for="(words,wordsIndex) in commonWordsList" @click="selectCommonWords(wordsIndex)">{{words.name}}</div>
</div>
</div>
<img class="shopro-send-tip-item" slot="reference" src="/assets/addons/shopro/img/chat/commonWords.png" />
</el-popover>
<img class="shopro-send-tip-item" style="margin-top: 4px;" @click="selectGoods()" src="/assets/addons/shopro/img/chat/goods.png" />
<div class="shopro-send-tip-item">
<label for="inputFile">
<img class="shopro-send-tip-item" src="/assets/addons/shopro/img/chat/file.png" />
</label>
<input id="inputFile" type="file" @change="addfile" ref="inputFileRef" multiple accept="image/png,image/jpeg,image/gif,image/jpg"/>
</div>
</div>
<div class="shopro-send-textarea scrollbar-containering">
<div class="shopro-send-pre" v-model="sendMessage" contenteditable @keyup.enter.stop="successMessage(event)"></div>
</div>
<div class="shopro-send-button-container">
<div class="shopro-send-button" @click="successMessage()">发送</div>
</div>
</div>
</div>
</div>
</div>
</el-dialog>
</div>
</script>