|
|
@@ -6,8 +6,7 @@ |
|
|
|
<view class="h-b-top"> |
|
|
|
<text class="name">{{ userlistobj.agentName || '' }}</text> |
|
|
|
<view class="status"> |
|
|
|
<text class="item">{{ userlistobj.validInvalidName }}</text> |
|
|
|
<text class="item" style="margin: 0 .5em;">|</text> |
|
|
|
<text class="pointer"></text> |
|
|
|
<text class="item">{{ userlistobj.violatedStatus | ViolatedStatus }}</text> |
|
|
|
</view> |
|
|
|
</view> |
|
|
@@ -31,7 +30,30 @@ |
|
|
|
<!-- tab选择框 --> |
|
|
|
<u-tabs :list="list" :is-scroll="false" bg-color="transparent" :show-bar="false" :current="current" |
|
|
|
@change="change"></u-tabs> |
|
|
|
|
|
|
|
<template v-if="current == 0"> |
|
|
|
<view class="words-list"> |
|
|
|
<scroll-view :scroll-top="scrollTop" lower-threshold='100px' @scrolltolower="ltolower()" |
|
|
|
upper-threshold='40px' @scrolltoupper="rolltoupper()" :scroll-into-view="scrollId" scroll-y="true" |
|
|
|
class="zhuti text scroll-Y"> |
|
|
|
<!-- 聊天记录--> |
|
|
|
<view class="dialog-block" style="border-bottom: none;"> |
|
|
|
<block v-for="(item,index) in findTabooWordsList" :key="index"> |
|
|
|
<view class="text"> |
|
|
|
<view class="avatar"> |
|
|
|
<view :style="[SPEAKERSTYLE(item.speaker)]"> |
|
|
|
<image v-if="item.isShow == 0" :src="Aimg" mode="widthFix"></image> |
|
|
|
<text v-else>{{ item.speaker | toCapital }}</text> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
<view class="content"> |
|
|
|
<view v-html="item.onebest"></view> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
</block> |
|
|
|
</view> |
|
|
|
</scroll-view> |
|
|
|
</view> |
|
|
|
</template> |
|
|
|
<template v-if="current == 1"> |
|
|
|
<!-- 音频 --> |
|
|
|
<view class="audio"> |
|
|
@@ -48,32 +70,30 @@ |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
</template> |
|
|
|
|
|
|
|
|
|
|
|
<scroll-view :scroll-top="scrollTop" lower-threshold='100px' @scrolltolower="ltolower()" upper-threshold='40px' |
|
|
|
@scrolltoupper="rolltoupper()" :scroll-into-view="scrollId" scroll-y="true" class="zhuti text scroll-Y"> |
|
|
|
<!-- 聊天记录--> |
|
|
|
<view class="dialog-block" v-for="(dialog,i) in dialogList" :key="i"> |
|
|
|
<view :id="'dialog'+i" class="fileName">录音文件</view> |
|
|
|
<block v-for="(item,index) in dialog.message" :key="index"> |
|
|
|
<view class="text" :id="'dialog'+csdFileindex+'text'+item.bg" |
|
|
|
:class="{active: item.bg < playNow && item.ed > playNow, reverse: Number(item.speaker) % 2 == 0}" |
|
|
|
:data-speaker="item.speaker"> |
|
|
|
<view class="avatar"> |
|
|
|
<view :style="[SPEAKERSTYLE(item.speaker)]"> |
|
|
|
<image v-if="item.isShow == 0" :src="Aimg" mode="widthFix"></image> |
|
|
|
<text v-else>{{ item.speaker | toCapital }}</text> |
|
|
|
<scroll-view :scroll-top="scrollTop" lower-threshold='100px' @scrolltolower="ltolower()" |
|
|
|
upper-threshold='40px' @scrolltoupper="rolltoupper()" :scroll-into-view="scrollId" scroll-y="true" |
|
|
|
class="zhuti text scroll-Y"> |
|
|
|
<!-- 聊天记录--> |
|
|
|
<view class="dialog-block" v-for="(dialog,i) in dialogList" :key="i"> |
|
|
|
<view :id="'dialog'+i" class="fileName">录音文件</view> |
|
|
|
<block v-for="(item,index) in dialog.message" :key="index"> |
|
|
|
<view class="text" :id="'dialog'+csdFileindex+'text'+item.bg" |
|
|
|
:class="{active: item.bg < playNow && item.ed > playNow, reverse: Number(item.speaker) % 2 == 0}" |
|
|
|
:data-speaker="item.speaker"> |
|
|
|
<view class="avatar"> |
|
|
|
<view :style="[SPEAKERSTYLE(item.speaker)]"> |
|
|
|
<image v-if="item.isShow == 0" :src="Aimg" mode="widthFix"></image> |
|
|
|
<text v-else>{{ item.speaker | toCapital }}</text> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
<view class="content"> |
|
|
|
<view v-html="item.onebest"></view> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
<view class="content"> |
|
|
|
<view v-html="item.onebest"></view> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
</block> |
|
|
|
</view> |
|
|
|
</scroll-view> |
|
|
|
|
|
|
|
</block> |
|
|
|
</view> |
|
|
|
</scroll-view> |
|
|
|
</template> |
|
|
|
|
|
|
|
<view class="bottombox"> |
|
|
|
<!-- 播放块 --> |
|
|
@@ -96,6 +116,10 @@ |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
</template> |
|
|
|
<!-- 占位 --> |
|
|
|
<template v-else> |
|
|
|
<view class="bottomhead" style="border-top: none;"></view> |
|
|
|
</template> |
|
|
|
|
|
|
|
<template v-if="userlistobj.invalidViolatedCause"> |
|
|
|
<view class="bottomtips"> |
|
|
@@ -202,7 +226,7 @@ |
|
|
|
scrollId: "", // 当前播放滚动到的位置 |
|
|
|
tagValidShow: false, // 标记弹窗 |
|
|
|
reasonSrc: '', // 标记无效的原因 |
|
|
|
|
|
|
|
findTabooWordsList: [], // 违禁词列表 |
|
|
|
nextPageObj: JSON.parse(uni.getStorageSync('nextPageObj')), // 当前页面筛选内容 |
|
|
|
} |
|
|
|
}, |
|
|
@@ -226,9 +250,25 @@ |
|
|
|
} |
|
|
|
this.initAudioFnc() |
|
|
|
this.gituserlist() |
|
|
|
this.findTabooWords() |
|
|
|
}, |
|
|
|
|
|
|
|
methods: { |
|
|
|
// 获取违禁词 |
|
|
|
findTabooWords() { |
|
|
|
this.$u.get('/customer/findTabooWords', { customerId: this.customerId }).then(res => { |
|
|
|
let arr = [] |
|
|
|
res.map(item => { |
|
|
|
if (item.transferContent) { |
|
|
|
item.transferContents = JSON.parse(item.transferContent) |
|
|
|
arr.push(item.transferContents) |
|
|
|
} |
|
|
|
}) |
|
|
|
this.findTabooWordsList = arr |
|
|
|
console.log(this.findTabooWordsList, 'findTabooWordsList') |
|
|
|
}) |
|
|
|
}, |
|
|
|
|
|
|
|
// 确认无效标记 setViolatedStatus = 2 |
|
|
|
inputDone() { |
|
|
|
if (!this.reasonSrc) { |
|
|
@@ -320,7 +360,7 @@ |
|
|
|
}) |
|
|
|
}) |
|
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
// 检查是否有录音 |
|
|
|
|
|
|
|
// 设置违禁状态 |
|
|
@@ -546,9 +586,9 @@ |
|
|
|
|
|
|
|
//搜索跳转 |
|
|
|
adasdasdasd(e) { |
|
|
|
const currTimeStr = this.formatTime(parseInt(e.bg/1000)) |
|
|
|
const currTimeStr = this.formatTime(parseInt(e.bg / 1000)) |
|
|
|
this.currentTimeStr = currTimeStr |
|
|
|
this.innerAudioContext.seek(parseInt(e.bg/1000)); |
|
|
|
this.innerAudioContext.seek(parseInt(e.bg / 1000)); |
|
|
|
if (uni.getStorageSync('entrance') == 1) { |
|
|
|
return |
|
|
|
} else { |
|
|
@@ -832,8 +872,7 @@ |
|
|
|
.header { |
|
|
|
padding: 20rpx; |
|
|
|
width: 100%; |
|
|
|
height: 180rpx; |
|
|
|
background: #038EF5; |
|
|
|
height: 210rpx; |
|
|
|
|
|
|
|
.h-box { |
|
|
|
padding: 0 16rpx; |
|
|
@@ -849,9 +888,23 @@ |
|
|
|
justify-content: space-between; |
|
|
|
|
|
|
|
.name { |
|
|
|
font-size: 32rpx; |
|
|
|
font-size: 30rpx; |
|
|
|
font-weight: bold; |
|
|
|
} |
|
|
|
|
|
|
|
.status { |
|
|
|
display: flex; |
|
|
|
align-items: center; |
|
|
|
|
|
|
|
.pointer { |
|
|
|
margin: 0 .5em; |
|
|
|
width: 12rpx; |
|
|
|
height: 12rpx; |
|
|
|
border-radius: 50%; |
|
|
|
background: #2671E2; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
.h-b-btm { |
|
|
@@ -877,7 +930,13 @@ |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.words-list { |
|
|
|
flex-grow: 1; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
.audio { |
|
|
|
|
|
|
|
.headboxbott { |
|
|
@@ -1025,11 +1084,11 @@ |
|
|
|
.bottombox { |
|
|
|
width: 100%; |
|
|
|
min-height: 170rpx; |
|
|
|
border-top: 1px solid #E0E0E0; |
|
|
|
|
|
|
|
.bottomhead { |
|
|
|
width: 100%; |
|
|
|
height: 81rpx; |
|
|
|
border-top: 1px solid #E0E0E0; |
|
|
|
border-bottom: 1px solid #E0E0E0; |
|
|
|
display: flex; |
|
|
|
justify-content: space-between; |
|
|
|