Explorar el Código

合并newyun

dmb
douzhuo hace 1 año
padre
commit
1c70209491
Se han modificado 23 ficheros con 3243 adiciones y 987 borrados
  1. +2
    -0
      config.js
  2. +1
    -1
      env/cl.js
  3. +1
    -1
      manifest.json
  4. +9
    -0
      pages.json
  5. +751
    -0
      pages/center/Piabodata/requireminingAnalysis.vue
  6. +263
    -84
      pages/center/consumer/consumerDetail.vue
  7. +2
    -2
      pages/center/consumer/consumerSearch.vue
  8. +0
    -1
      pages/center/consumer/remind.vue
  9. +429
    -72
      pages/center/prohibited/details.vue
  10. +5
    -5
      pages/center/prohibited/index.vue
  11. +510
    -255
      pages/center/records/index.vue
  12. +1
    -14
      pages/center/records/recordSearch.vue
  13. +743
    -405
      pages/index/consumer/index.vue
  14. +33
    -60
      pages/index/index.vue
  15. +128
    -30
      pages/learning/Keywordsearch.vue
  16. +112
    -36
      pages/mine/ScoringPlaylist.vue
  17. +1
    -0
      pages/mine/calibration.vue
  18. +251
    -20
      pages/mine/details2.vue
  19. +1
    -1
      pages/mine/reception/addreception.vue
  20. BIN
      static/images/iconFilter.png
  21. BIN
      static/images/ranking1.png
  22. BIN
      static/images/ranking2.png
  23. BIN
      static/images/ranking3.png

+ 2
- 0
config.js Ver fichero

@@ -42,6 +42,8 @@ var config = {
cmmentList:`${host}/comment/list`,
// 新增评论
saveCmment:`${host}/comment/saveCmment`,
// 获取客户来源列表
sourceList: `${host}/customer/sourceList`,
// 新增文件评论
saveCmmentUpload:`${host}/comment/upload`,
// 点赞


+ 1
- 1
env/cl.js Ver fichero

@@ -1,5 +1,5 @@
const ENV_PATH = {
baseUrl: 'http://192.168.31.161:9999', // 长龙
baseUrl: 'http://192.168.31.160:9999', // 长龙
}

module.exports = ENV_PATH

+ 1
- 1
manifest.json Ver fichero

@@ -82,7 +82,7 @@
"usingComponents" : true,
"permission" : {},
"requiredBackgroundModes" : [ "audio" ],
"lazyCodeLoading": "requiredComponents",
"lazyCodeLoading" : "requiredComponents",
"plugins" : {
"WechatSI" : {
"version" : "0.3.4",


+ 9
- 0
pages.json Ver fichero

@@ -463,6 +463,15 @@
"enablePullDownRefresh": true
}
},
{
"path": "Piabodata/requireminingAnalysis",
"style": {
"navigationBarTitleText": "需求挖掘分析",
"navigationBarBackgroundColor": "#FFFFFF",
"navigationBarTextStyle": "black",
"enablePullDownRefresh": true
}
},
{
"path": "Piabodata/StaffAnalysis",
"style": {


+ 751
- 0
pages/center/Piabodata/requireminingAnalysis.vue Ver fichero

@@ -0,0 +1,751 @@
<template>
<view class="box">
<!-- 选择器 -->
<view class="boxtittab">
<view class="tabbox" @click="timeshow=true" style="color:#409eff">
{{ time }}
<u-icon name="arrow-down" size="24" style="padding-left: 12rpx;"></u-icon>
</view>
<view class="tabbox" @click="deptshow=true" :style="dept=='部门'?'color:#666':'color:#409eff'">
{{ dept}}
<u-icon name="arrow-down" size="24" style="padding-left: 12rpx;"></u-icon>
</view>
<view class="tabbox" @click="guwenshow=true" :style="guwen=='顾问'?'color:#666':'color:#409eff'">
{{ guwen}}
<u-icon name="arrow-down" size="24" style="padding-left: 12rpx;"></u-icon>
</view>
</view>
<view style="width: 100%;height: 20rpx;background: #FAFAFA;"></view>
<view class="boxzonglan" style="min-height: 400rpx;">
<view class="zonglantitle">简报 <text @click="showDesc=true">统计说明</text></view>
<view class="zonglanbox">
<view class="grid" style="height: auto;" v-for="(item,index) in numlist" :key="index">
<view class="audonum">{{item.name}}</view>
<view class="num">{{item.firstnum||0}}</view>
<view class="bottom">
<view class="leftnum">对比:{{item.endnum||0}}</view>
<view class="rightnum" :class="item.duibinum>0?'red':'green'">{{item.duibinum||0}}
<image v-if="item.duibinum>0" src="https://static.quhouse.com/c4145f84cc3c49769ee2ec11465c085b.png" mode="" />
<image v-else src="https://static.quhouse.com/c5dbf780e09a4da0b0bab2d7fa58accd.png" mode="" />
</view>
</view>
</view>
</view>
</view>
<!-- 统计说明 -->
<view class="black-bg" v-if="showDesc">
<view class="tongjiDesc">
<view class="tongji-title">统计说明</view>
<view class="text">
<view><text class="bold">平均挖掘执行率:</text>筛选时间内,有效接待中已标记顾问的挖掘执行率的平均值;</view>
<view><text class="bold">未标记:</text>筛选时间内,有效接待中未标记顾问的接待数;</view>
<view><text class="bold">有效接待:</text>筛选时间内,标记为有效的接待数,不包含待接单;</view>
<view><text class="bold">未挖掘数:</text>筛选时间内,挖掘平均执行率为0的接待数;</view>
</view>
</view>
<view class="close" @click="showDesc=false">X</view>
</view>
<view style="width: 100%;height: 20rpx;background: #FAFAFA;"></view>
<view class="single">
<view class="title">
<view class="title1">平均挖掘执行率趋势</view>
</view>
<view class="uchaserbox">
<qiun-data-charts
type="line"
:chartData="lineOptsect"
:opts="lineOpts"
background="none"
:ontouch="true"
canvasId="wangxiaohuaerlingilingwuyiba2"
:canvas2d="true" />
</view>
</view>
<view style="width: 100%;height: 20rpx;background: #FAFAFA;"></view>
<view class="single">
<view class="title">
<view class="title1">需求挖掘分布</view>
</view>
<view class="uchaserbox">
<qiun-data-charts
type="ring"
:chartData="ringChartData"
:canvas2d="true"
canvasId="ChartBoxIdwangxiaohuaerlingilingwuyiba1"
:opts='opts'
background="none" />
</view>
</view>
<view style="width: 100%;height: 20rpx;background: #FAFAFA;"></view>
<view class="single">
<view class="title">
<view class="title1">需求挖掘排名</view>
</view>
<view class="tabdada">
<view class="tabth">
<view>排名</view>
<view>需求类型/挖掘执行接待数</view>
<view>执行率</view>
<view>操作</view>
</view>
<view v-if="total==0" style="color: #999999;width: 100%;height: 500rpx;line-height: 500rpx;text-align: center;" >暂无数据</view>
<view class="tabtd" v-for="(item,i) in rankList" :key="i">
<view>
<image v-if="i==0" class="ranking" src="../../../static/images/ranking1.png" mode=""></image>
<image v-else-if="i==1" class="ranking" src="../../../static/images/ranking2.png" mode=""></image>
<image v-else-if="i==2" class="ranking" src="../../../static/images/ranking3.png" mode=""></image>
<view class="ranking1" v-else>{{i+1}}</view>
</view>
<view class="u-line-1">{{item.name}}({{item.selected}})</view>
<view>{{max100(item.fraction)}}%</view>
<view @click="Toview(item,i)">查看</view>
</view>
</view>
</view>
<u-popup v-model="timeshow" mode="bottom">
<view class="timeview" :style="{ color: activeTotal == 2 ? '#2B6EFF' : '#333333' }"
@click="tabtimetap(2, '近7天')">
近7天</view>
<view class="timeview" :style="{ color: activeTotal == 5 ? '#2B6EFF' : '#333333' }"
@click="tabtimetap(5, '近15天')">
近15天</view>
<view class="timeview" :style="{ color: activeTotal == 6 ? '#2B6EFF' : '#333333' }"
@click="tabtimetap(6, '近30天')">
近30天</view>
<view class="timeview" :style="{ color: activeTotal == 4 ? '#2B6EFF' : '#333333' }"
@click="tabtimetap(4,'自定义')">
自定义</view>
</u-popup>
<u-calendar v-model="calendarShow" mode="range" @change="calendarTimeChange"></u-calendar>
<u-select v-model="guwenshow" :list="staffList" @confirm="guwenCallback"
:default-value='selindex'></u-select>
<u-select v-model="deptshow" :list="teamList" @confirm="deptCallback"
:default-value='selindex'></u-select>
<!-- 加载组件 -->
<!-- <loading v-model="LOADING"></loading> -->
</view>
</template>

<script>
// var config = require("../../../config");
// import loading from "@/components/loading/index.vue"
export default {
components: {
// loading
},
data() {
return {
LOADING: true,
selindex: '',
guwenshow: false,
timeshow: false,
selectshow: false,
deptshow: false,
deptVal: '',
huashuVal: '',
guwenVal: '',
// 筛选文字展示
time: '近7天',
dept: '部门',
guwen: '顾问',
showDesc: false,
rankList: [],//排名列表
ringChartData: {
},
// ring图 分布图
opts: {
rotate: false,
rotateLock: false,
color: ['#F8A12B','#07B79D','#E7483C','#2671E1'],
padding: [5,5,5,5],
dataLabel: true,
legend: {
show: true,
position: "right",
lineHeight: 25
},
title: {
name: "",
fontSize: 15,
color: "#666666"
},
subtitle: {
name: "",
fontSize: 25,
color: "#7cb5ec"
},
extra: {
ring: {
ringWidth: 60,
activeOpacity: 0.5,
activeRadius: 10,
offsetAngle: 0,
labelWidth: 15,
border: false,
borderWidth: 3,
borderColor: "#FFFFFF"
}
}
},
activeTotal: 2,
houseId: '',
staffList: [],// 员工列表
teamList: [],// 团队列表
team: {
value: '',
label: ''
},
startDate: '',
endDate: '',
calendarShow: false,
numlist: [{
name: '平均挖掘执行率',
firstnum: '',
endnum: '',
duibinum: '',
setName: 'wordFraction'
}, {
name: '未挖掘需求',
firstnum: '',
endnum: '',
duibinum: '',
setName: 'noFinishWord'
},
{
name: '有效接待',
firstnum: '',
endnum: '',
duibinum: '',
setName: 'activeCustomer'
},
{
name: '未标记',
firstnum: '',
endnum: '',
duibinum: '',
setName: 'markAdvisor'
},
],
lineOptsect: {
"categories": [],
"series": [{
"name": "起始时间",
"data": []
},{
"name": "对比时间",
"data": []
}]
},
lineOpts: {
// xAxis: {
// rotateLabel: true
// },
yAxis: {
data: [{
max: 100,
min: 0,
}]
}
}
};
},
onShow() {
// 获取项目id
// this.houseId = uni.getStorageSync('buildingID').id;
// 获取员工
// this.getStaffList()
// // 获取团队
// this.getSectionList()
// this.getdata()
},
onReady: function(){
// 获取项目id
this.houseId = uni.getStorageSync('buildingID').id;
// 获取员工
this.getStaffList()
// 获取团队
this.getSectionList()
this.getdata()
},
methods: {
max100(num) {
if(num>100){
return 100
} else if(!num){
return 0;
}else{
return num;
}
},
getdata(){
// 挖掘分析-简报
this.wordMiningAnalyze()
//挖掘排行
this.getwordMiningRank()
// 挖掘趋势图
this.getwordMiningAnalyzePercentage()
// 挖掘分布图
this.getRingData()
},
// 挖掘排行
getwordMiningRank(){
let dateType = 0;
if (this.activeTotal == 4) {// 选择全部和自定义
dateType = null;
}else {
dateType = this.activeTotal;
this.startDate = ''
this.endDate = ''
}
this.$u.post('/cusLvStatistics/wordMiningRank', {
"houseId": this.houseId,
"deptId": this.deptVal,
"createUser": this.guwenVal,
"dateType":dateType,
"firstStartDate":this.startDate,
"firstEndDate":this.endDate
})
.then(res => {
// console.log(res)
if(res.length){
this.rankList = res.map(item=>{
return {
name: item.name,
id: item.id,
fraction: item.fraction,
selected: item.selected,
keywordsId: item.keywordsId
}
})
}else{
this.rankList = []
}
})
},
// 挖掘分布图
getRingData(){
let dateType = 0;
if (this.activeTotal == 4) {// 选择自定义
dateType = null;
}else {
dateType = this.activeTotal;
this.startDate = ''
this.endDate = ''
}
this.$u.post('/cusLvStatistics/wordMiningAnalyzeFenbu', {
"houseId": this.houseId,
"deptId": this.deptVal,
"createUser": this.guwenVal,
"dateType":dateType,
"firstStartDate":this.startDate,
"firstEndDate":this.endDate
})
.then(res => {
// console.log(res)
this.ringChartData = { series: [
{
data: [
{"name":"30%及以下","value": res.a||0},
{"name":"31%~50%","value": res.b||0},
{"name":"51%~70%","value": res.c||0},
{"name":"71%及以上","value": res.d||0},
]
}
]}
})
},
//跳转到接待记录
Toview(item,i){
uni.navigateTo({
url: '/pages/center/records/index?refresh=refresh&activeTotal='+this.activeTotal+'&staTime='+ this.startDate + '&endTime='+this.endDate+'&validInvalid=0'+'&keywordsId='+item.keywordsId+'&source=wajue'
});
},
// 挖掘分析-简报
wordMiningAnalyze() {
let dateType = 0;
if (this.activeTotal == 4) {// 选择全部和自定义
dateType = null;
}else {
dateType = this.activeTotal;
this.startDate = ''
this.endDate = ''
}
let params = {
"houseId": this.houseId,
"deptId": this.deptVal,
"createUser": this.guwenVal,
"dateType":dateType,
"firstStartDate":this.startDate,
"firstEndDate":this.endDate
}
this.$u.post("/cusLvStatistics/wordMiningAnalyze",params).then(res => {
// console.log(res.contrast)
res.contrast.wordFraction = (res.contrast.wordFraction||0) + '%'
res.first.wordFraction = this.max100(res.first.wordFraction) + '%'
res.end.wordFraction = this.max100(res.end.wordFraction) + '%'
this.numlist.forEach(item => {
item.duibinum = res.contrast[item.setName]
item.endnum = res.end[item.setName]
item.firstnum = res.first[item.setName]
})
})
},
// 获取员工列表
getStaffList() {
this.$u.post('/cusLvStatistics/selectAllAccountIdByHouseId', {
houseId: this.houseId
})
.then(res => {
// console.log(res)
if(res.length){
this.staffList = res.map(item => {
return {
label: item.name,
value: item.accountId
}
})
this.staffList.unshift({
label: '全部',
value: ''
})
}
})
},
// 挖掘率趋势图
getwordMiningAnalyzePercentage() {
let categories1 = []
let categories2 = []
let categories3 = []
let dateType = 0;
if (this.activeTotal == 4) {// 选择全部和自定义
dateType = null;
}else {
dateType = this.activeTotal;
this.startDate = ''
this.endDate = ''
}
this.$u.post('/cusLvStatistics/wordMiningAnalyzePercentage', {
"houseId": this.houseId,
"deptId": this.deptVal,
"createUser": this.guwenVal,
"dateType":dateType,
"firstStartDate":this.startDate,
"firstEndDate":this.endDate
})
.then(res => {
if(res.first&&res.first.length){
categories1 = res.first.map(item=> item.statDate.substring(5,10))
this.lineOptsect.series[0].data=res.first.map(item=> item.wordFraction)
}else{
categories1= []
this.lineOptsect.series[0].data = []
}
if(res.end&&res.end.length){
this.lineOptsect.series[1].data=res.end.map(item=> item.wordFraction)
categories2 = res.end.map(item => item.statDate.substring(5,10))
}else{
categories2 = []
this.lineOptsect.series[1].data = []
}
for(let i=0;i<categories1.length;i++){
categories3.push(categories1[i]+'/'+categories2[i])
}
// console.log(categories3)
this.lineOptsect.categories = categories3
})
},
// 获取团队列表
getSectionList() {
this.$u.post('/cusLvStatistics/findAllDeptIdByHouseId', {
houseId: this.houseId
})
.then(res => {
this.teamList = []
if(res.length){
this.teamList = res.map(item=> {
return {
label: item.deptName,
value: item.deptId
}
})
this.teamList.unshift({
label: '全部',
value: ''
})
}
})
},
//时间切换
tabtimetap(index, text) {
this.activeTotal = index;
if (index == 4) {
this.calendarShow = true;
} else {
this.endDate = ''
this.startDate = ''
this.time = text
this.getdata()
}
this.timeshow = false
},
// 顾问选择
guwenCallback(e){
// console.log(e)
this.guwenVal = e[0].value
this.guwen = e[0].label
this.getdata()
},
// 部门选择
deptCallback(e){
// console.log(e)
this.deptVal = e[0].value
this.dept = e[0].label
this.getdata()
},
//自定义时间
calendarTimeChange(e) {
this.endDate = e.endDate
this.startDate = e.startDate
this.time = '自定义'
this.getdata()
}
}
};
</script>
<style lang="scss" scoped>
.box {
width: 100%;
height: 100%;
background: #FAFAFA;
}
//时间切换的样式
.boxtittab {
position: sticky;
top: var(--window-top);
z-index: 999;
width: 100;
height: 92rpx;
background: #FFFFFF;
border: 1px solid #E0E0E0;
display: flex;
align-items: center;

.tabbox {
flex: 1;
height: 100%;
text-align: center;
line-height: 92rpx;
color: #666666;
font-size: 28rpx;
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
/* 将对象作为弹性伸缩盒子模型显示 */
-webkit-line-clamp: 1;
/* 控制最多显示几行 */
-webkit-box-orient: vertical;
/* 设置或检索伸缩盒对象的子元素的排列方式 */
}
}
.timeview {
height: 80rpx;
line-height: 80rpx;
width: 100%;
text-align: center;
border-bottom: 1px solid #F8F8F8;
}
.black-bg{
position: fixed;
background: rgba(0,0,0,0.6);
left: 0;
right: 0;
top: 0;
bottom: 0;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
z-index: 9999;
.tongjiDesc{
width: 80%;
background: #FFFFFF;
border-radius: 12rpx;
padding: 30rpx;
}
.close{
background: #fff;
border-radius: 50%;
width: 80rpx;
height: 80rpx;
margin-top: 30rpx;
display: flex;
justify-content: center;
align-items: center;
}
.tongji-title{
text-align: center;
font-size: 30rpx;
margin-bottom: 20rpx;
}
.text view{
margin-bottom: 24rpx;
}
.bold{
font-weight: bold;
}
}
.grid{
border: 1rpx solid #eee;
}
.grid:nth-child(1) {
border-right: none;
border-bottom: none;
}

.grid:nth-child(2) {
border-bottom: none;
}

.grid:nth-child(3) {
border-right: none;
}
.grid .bottom{
display: flex;
align-items: center;
padding-left: 20rpx;
margin: 10rpx 0 20rpx;
.leftnum{
height: 36rpx;
font-size: 26rpx;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #666666;
line-height: 36rpx;
margin-right: 20rpx;
}
.rightnum{
height: 36rpx;
font-size: 26rpx;
font-family: PingFangSC-Semibold, PingFang SC;
font-weight: 600;
color: #666;
line-height: 36rpx;
display: flex;
align-items: center;
&.red{
color: #E6273A;
}
&.green{
color: #43CD80;
}
image{
width: 18rpx;
height: 14rpx;
margin-left: 6rpx;
}
}
}
.zonglantitle{
display: flex;
justify-content: space-between;
align-items: center;
text{
color: #666666;
}
}

.uchaserbox{
width: 100%;
height: 500rpx;
}
.tabdada {
width: 100%;
height: auto;
padding-bottom: 40rpx;
.tabth {
width: 100%;
height: 28rpx;
display: flex;
font-size: 28rpx;
line-height: 28rpx;
color: #666666;
margin-top: 28rpx;
}

.tabth>view:nth-of-type(1) {
width: 10%;
text-align: center;
}

.tabth>view:nth-of-type(2) {
width: 46%;
text-align: center;
}

.tabth>view:nth-of-type(3) {
width: 22%;
text-align: center;
}

.tabth>view:nth-of-type(4) {
width: 22%;
text-align: center;
}

.tabtd {
width: 100%;
height: 30rpx;
display: flex;
font-size: 26rpx;
line-height: 30rpx;
margin-top: 32rpx;
}

.tabtd>view:nth-of-type(1) {
width: 10%;
text-align: center;
line-height: 30rpx;
}

.tabtd>view:nth-of-type(2) {
width: 46%;
max-width: 400rpx;
text-align: center;
color: #333333;
}

.tabtd>view:nth-of-type(3) {
width: 22%;
text-align: center;
color: #333333;
}

.tabtd>view:nth-of-type(4) {
width: 22%;
text-align: center;
color: #2671E2;
}

.ranking {
width: 34rpx;
height: 34rpx;
}
.ranking1 {
width: 30rpx;
height: 30rpx;
background: #ECF1FF;
color: #424D64;
font-size: 18rpx;
text-align: center;
line-height: 30rpx;
border-radius: 50%;
margin: 0 auto;
}

.tabech {
width: 100%;
height: 600rpx;
}
}
</style>

+ 263
- 84
pages/center/consumer/consumerDetail.vue Ver fichero

@@ -11,16 +11,14 @@
<view class="img B" v-else-if="customerInfo.level==2">B</view>
<view class="img C" v-else-if="customerInfo.level==3">C</view>
<view class="img D" v-else-if="customerInfo.level==4">D</view>
<view v-if="customerInfo.clientStageName" class="clientStageName">{{ customerInfo.clientStageName }}</view>
<view v-if="customerInfo.clientStageName" class="clientStageName">
{{ customerInfo.clientStageName }}
</view>
</view>
<view class="edit" @click="goedit()" v-if="isHavePermission">
<image class="screen-sel-img" src="../../../static/images/edit.png" mode=""></image>
</view>
</view>
<!-- <view class="right">
<view class="point"></view>
<view class="test">定金</view>
</view> -->
</view>
<view class="content-sec">
<view class="content-sec-lab">
@@ -31,13 +29,13 @@
<view class="content-sec-lab">
顾问姓名:<view class="content-sec-lab1">{{customerInfo.agentName||'--'}}</view>
</view>
<view class="content-sec-lab" >
客户标签:
<text v-if="!customerInfo.demand.cusSemanticWordsList">暂无</text>
<view v-else class="content-sec-tips" v-show="ind<=1"
v-for="(che,ind) in customerInfo.demand.cusSemanticWordsList" :key='ind'>{{che.name}}
</view>
<view @click.stop="tipshow=true" v-if="customerInfo.demand.cusSemanticWordsList.length>1" class="content-sec-tips" style="text-decoration: underline;background: #fff">查看全部</view>
<view class="content-sec-lab">
<view class="u-flex" style="flex:1">
挖掘执行:<view class="content-sec-lab1">{{customerInfo.wordFraction||0}}%</view>
</view>
<view class="u-flex" style="flex:1">
挖掘成功:<view class="content-sec-lab1">{{customerInfo.wordFinishFraction||0}}%</view>
</view>
</view>
<view class="content-sec-lab">
添加时间:<view class="content-sec-lab1">{{customerInfo.createTime}}</view>
@@ -45,14 +43,9 @@
<view class="content-sec-num">
<view>到访{{customerInfo.visitRecord || '--'}}次</view>
<view>
{{customerInfo.mm || '0'}}min/{{customerInfo.fraction || '0'}}%
{{customerInfo.mm || '0'}}min/{{customerInfo.fraction || '0'}}%
</view>
</view>
<!-- <view class="content-sec-num">
<view class="">到访{{customerInfo.visitRecord || '--'}}次</view>
<view class="">{{customerInfo.fraction || '0'}}% | {{customerInfo.mm || '0'}}<text
style="font-size: 24rpx;">min</text></view>
</view> -->
</view>
<view class="content-last">
<view class="content-last-con">
@@ -71,7 +64,10 @@
<view :class="{ activecllasscet: activeTotal == 1 }" @click="tabtimetap(1)">跟进记录</view>
</view>
<view class="tabbox">
<view :class="{ activecllasscet: activeTotal == 2 }" @click="tabtimetap(2)">执行率</view>
<view :class="{ activecllasscet: activeTotal == 2 }" @click="tabtimetap(2)">销讲执行率</view>
</view>
<view class="tabbox">
<view :class="{ activecllasscet: activeTotal == 3 }" @click="tabtimetap(3)">挖掘执行率</view>
</view>
</view>

@@ -94,10 +90,6 @@
<view class="name">{{item.agentName || '--'}}</view>
<view class="status" v-if="item.replaceReception==1">代接待</view>
</view>
<!-- <view class="right">
<view class="point"></view>
<view class="">优秀案例</view>
</view> -->
</view>

<view class="content-sec">
@@ -129,19 +121,17 @@
<view class="tab2-first-left">
<view class="img">{{item.agentName.slice(0,1) || '--'}}</view>
<view class="name">{{item.agentName || '||'}}</view>
<view v-if="item.clientStageName" class="clientStageName">{{ item.clientStageName }}</view>
<view v-if="item.clientStageName" class="clientStageName">{{ item.clientStageName }}
</view>
</view>
<view class="tab2-first-right">{{item.createTime}}</view>
</view>
<view class="tab2-first-foot">跟进内容:{{item.remarks || '暂无'}}</view>
</view>
<!-- <view class="tab2-sec">
<view class="tab-sec-edit">编辑记录</view>
</view> -->
</view>
</view>

<!-- 评分 -->
<!-- 销讲执行率 -->
<view class="ratecenter" v-if="activeTotal==2">
<view class="ratetetle">执行总览</view>
<view class="rateyuanbox">
@@ -155,11 +145,11 @@
<view style="text-align: center;color: #07B79D;">{{customerInfo.fraction}}%</view>
</u-circle-progress>
</view>
<view class="ratetetle-desc">销讲执行率</view>
<view class="ratetetle-desc">销讲执行率</view>
</view>
<view class="rateyuanboxzuo">
<view class="boxzuoview">{{customerInfo.mm}}min</view>
<view class="ratetetle-desc">接待时长</view>
<view class="ratetetle-desc">接待时长</view>
</view>
</view>
<view class="middle-title">
@@ -210,20 +200,147 @@
<view class="jiantobox">
<image v-if="che.selected==0" class="arrow" src="/static/images/rate-checked.png"
mode="" />
<image v-else class="arrow" src="/static/images/no-checked.png"
mode="" />
<image v-else class="arrow" src="/static/images/no-checked.png" mode="" />
</view>
</view>
<view v-if="subitem.show" style="width: 100%;height: 30rpx;"></view>
</view>
</view>
</view>
<!-- 需求挖掘执行率 -->
<view class="xuqiu" v-if="activeTotal==3">
<!-- 暂无数据 -->
<view v-if="KeyWordsfractionList.length==0"
style="width: 100%;height: 100%;display: flex;align-items: center;">
<view style="width: 100%;padding-top: 60rpx;background: #fff;">
<view style="width: 100%;text-align: center;">
<image style="width: 220rpx;height: 200rpx;"
src="https://static.quhouse.com/zhikong_xcx_img/nodatalist.png" mode=""></image>
</view>
<view style="text-align: center;width: 100%;margin-top: 20rpx;color: #999999;">暂无数据</view>
</view>
</view>
<!-- 需求挖掘执行率 -->
<view v-if="KeyWordsfractionList.length">
<view class="top-box">
<view style="width:50%;text-align:center">挖掘执行率:{{customerInfo.wordFraction||0}}%</view>
<view style="width:50%;text-align:center">挖掘成功率:{{customerInfo.wordFinishFraction||0}}%</view>
</view>
<view
style="width: 100%;height: 80rpx;border-bottom: 1rpx solid #e0e0e0;display: flex;align-items: center;background: #fff;">
<view style="flex: 1;font-size: 28rpx;color: #333333;font-weight: 600;text-indent: 50rpx;">指标
</view>
<view style="flex: 1;font-size: 28rpx;color: #333333;font-weight: 600;text-indent: 70rpx;">执行率
</view>
<view style="flex: 1;font-size: 28rpx;color: #333333;font-weight: 600;text-indent: 70rpx;">挖掘成功
</view>
<view style="flex: 0 0 30rpx;"></view>
</view>
<!-- 暂无数据 -->
<view v-if="KeyWordsfractionList.length == 0"
style="width: 100%; height: 100%; display: flex; align-items: center">
<view style="width: 100%; padding-top: 60rpx;background:#fff;">
<view style="width: 100%; text-align: center">
<image style="width: 220rpx; height: 200rpx"
src="https://static.quhouse.com/zhikong_xcx_img/nodatalist.png" mode=""></image>
</view>
<view style="
text-align: center;
width: 100%;
margin-top: 20rpx;
color: #999999;
">暂无数据</view>
</view>
</view>
<!-- 挖掘执行话术展示 -->
<view class="Level-box" v-else v-for="(item, index) in KeyWordsfractionList" :key="index">
<view class="Level1che" @click="changeshowlevel1(item, 1)">
<view class="title1" style="flex: 1">{{ item.name }}</view>
<view class="Level1-middle" style="flex: 2; display: flex">
<view class="item" style="flex: 1; text-align: center">执行{{ item.fraction || 0 }}%
</view>
<view class="item" style="flex:1;text-align:center;color:#2671E2"
v-if="item.keywordsList&&item.keywordsList.length">
已完成({{item.keywordsList.length}})</view>
<view class="item" v-else style="flex:1;text-align:center;">未完成</view>
</view>
<view class="jiantobox">
<image v-if="!item.show" class="arrow rotatearrow" src="/static/images/down.png"
mode="" />
<image v-else class="arrow" src="/static/images/up.png" mode="" />
</view>
</view>
<!-- 话术在一级下 -->
<view v-if="item.children&&item.children.length==0">
<view class="hhhbox" v-if="item.show" style="padding: 30rpx;">
<view class="hsnrtest" style="font-size:30rpx;color: #333;line-height: 42rpx;">
客户标签:{{ getKeywordsList(item.keywordsList) }}</view>
<view class="hsnrtest">话术内容:</view>
<view v-if="item.modelList.length==0">暂无话术</view>
<view class="Level3che" v-for="(che,inc) in item.modelList" :key='inc'>
<view class="title1" @click="clickWajue(che)"
:style="che.isAskQuestions==2?'color:#FF8C13':che.isAskQuestions==0?'':'color: #666'">
{{inc+1}}.{{che.showFormatExpression}}
</view>
<view class="jiantobox">
<!-- 0本次选中 1未选中 2上次选中 -->
<image v-if="che.isAskQuestions==0" class="arrow"
src="/static/images/rate-checked.png" mode="" />
<image v-else-if="che.isAskQuestions==2" class="arrow"
src="/static/images/checked-yellow.png" mode="" />
<image v-else class="arrow" src="/static/images/rate-nocheck.png" mode="" />
</view>
</view>
</view>
</view>
<!-- 话术在二级下 -->
<view v-if="item.children&&item.children.length">
<view class="hhhbox" v-if="item.show" v-for="(subitem, i) in item.children" :key="i">
<view class="Level2che" @click="changeshow2(subitem, 1)">
<view class="title1 u-line-1">{{ subitem.name }}</view>
<view class="leve1-jindu">
<view class="zhixing" v-if="subitem.isAskQuestions == 0">已执行</view>
<view class="zhixing2" v-else>未执行</view>
</view>
<view class="leve1-jindu">
<view class="zhixing" v-if="subitem.selected == 0">已完成</view>
<view class="zhixing2" v-else>未完成</view>
</view>
<view class="jiantobox">
<image v-if="!subitem.show" class="arrow rotatearrow"
src="/static/images/down.png" mode="" />
<image v-else class="arrow" src="/static/images/up.png" mode="" />
</view>
</view>
<view v-if="subitem.show" style="padding: 30rpx 0">
<view class="hsnrtest" style="font-size: 30rpx;color: #333">
客户标签:{{ getKeywordsList(subitem.keywordsList) }}</view>
<view class="hsnrtest">话术内容:</view>
<view v-if="subitem.modelList.length==0">暂无话术</view>
<view class="Level3che" v-for="(che, inc) in subitem.modelList" :key="inc">
<view class="title1" @click="clickWajue(che)" :style="che.isAskQuestions == 2 ? 'color:#FF8C13' : che.isAskQuestions == 0 ? '' : 'color: #666'">
{{ inc + 1 }}.{{ che.showFormatExpression }}
</view>
<view class="jiantobox">
<image v-if="che.isAskQuestions == 0" class="arrow"
src="/static/images/rate-checked.png" mode="" />
<image v-else-if="che.isAskQuestions == 2" class="arrow"
src="/static/images/checked-yellow.png" mode="" />
<image v-else class="arrow" src="/static/images/rate-nocheck.png" mode="" />
</view>
</view>
</view>
</view>
</view>
</view>
</view>
</view>
</view>

<view class="pon-foot" v-if="buttonisshow">
<!-- <view class="foot-tab" @click="goRemind">添加提醒</view> -->
<!-- <view class="foot-tab">拨打电话</view> -->
<view class="foot-tab" @click="followRecordAdd()">写跟进</view>
<!-- <view class="foot-tab" @click="goRemind">添加提醒</view>
<view class="foot-tab">拨打电话</view> -->
<view class="foot-tab" @click="followRecordAdd">写跟进</view>
</view>
<!-- closeable -->
<u-popup v-model="tipshow" mode="center" width="500rpx" height="500rpx" closeable>
@@ -237,17 +354,18 @@
</scroll-view>

</u-popup>
<!-- 加载组件 -->
<u-loadings v-model="LOADING"></u-loadings>
</view>
</template>

<script>
let _this
let _this;
export default {
data() {
return {
KeyWordsfractionList: [],
activeTotal: 0,
customerId: '',
tipshow: false,
@@ -287,9 +405,59 @@
}
},
methods: {
clickWajue(item) {
if (item.isAskQuestions == 0) {
uni.navigateTo({
url: '/pages/learning/Keywordsearch?customerId=' + this.customerId + "&keyword=" + item
.showFormatExpression +
"&skpl=" + "2" + '&UpDateEvent='
})
}
},
//挖掘率话术客户标签展示
getKeywordsList(list) {
let keywords = [];
if (list && list.length) {
keywords = list.map((item) => item.name);
} else {
return "--";
}
return keywords.join(",");
},
changeshowlevel1(item, type) {
console.log(item)
item.show = !item.show
},
// 客户详情需求挖掘话术
getfindKeyWordsBycusId() {
this.$u
.get("/cusLvStatistics/findKeyWordsBycusId?cusId=" + this.customerId)
.then((res) => {
// console.log(res)
if (res.length) {
res.forEach((item, index) => {
item.show = false;
if (index == 0) {
item.show = true;
}
if (item.children && item.children.length) {
item.children.forEach((obj, i) => {
obj.show = false;
if (i == 0 && index == 0) {
obj.show = true;
}
});
}
});
this.KeyWordsfractionList = res;
} else {
this.KeyWordsfractionList = [];
}
});
},
// 获取到访记录
getVisitList() {
this.$u.get("/customer/findByPhoneAndProject?id=" + this.customerId, ).then(res => {
this.$u.get("/customer/findByPhoneAndProject?id=" + this.customerId).then(res => {
this.Thevisitingrecords = res
})
},
@@ -303,17 +471,7 @@
if (res.fraction == null) {
res.fraction = '0';
}
if (res.demand.cusSemanticWordsList != null) {
res.demand.cusSemanticWords = res.demand.cusSemanticWordsList
res.demand.cusSemanticWordsList.forEach(che => {
if (che.isInterval == 0) {
che.name = che.name + che.unit + '-' + che.endName + che.unit;
}
})
res.demand.cusSemanticWordsList = res.demand.cusSemanticWordsList.slice(0, 3)
}

// console.log(res.demand.cusSemanticWords,'关键字')
this.customerInfo = res;
}).catch(e => {
this.LOADING = false
@@ -325,17 +483,18 @@
this.getVisitList()
} else if (idx == 1) {
this.getFollowList()
} else {
} else if (idx == 2) {
this.getRatelist()
} else { // 需求挖掘率
this.getfindKeyWordsBycusId()
}
},
tapThevisiting(item) {
console.log("11111111111111")
tapThevisiting(_item) {
uni.showLoading({
title: '加载中',
mask: true
});
if (item.yon != 0) {
if (_item.yon != 0) {
setTimeout(function() {
uni.hideLoading();
}, 2000);
@@ -350,12 +509,12 @@
pageNum: 1,
pageSize: 100,
query: {
customerId: item.id,
customerId: _item.id,
}
}
var item = {
bg: 0,
customerId: item.id,
customerId: _item.id,
id: ''
}
uni.setStorageSync("entrance", 1); //写入缓存
@@ -374,7 +533,7 @@
if (res[0].merge == 0) {
let newobj = res[0];
uni.navigateTo({
url: `/pages/mine/details2?customerId=${newobj.customerId}&status=${newobj.status}&stateisshow=${"2"}`
url: `/pages/mine/details2?customerId=${newobj.customerId}&status=${newobj.status}&stateisshow=${"2"}&wordFraction=${_item.wordFraction}`
})
} else {
let newobj = res[0];
@@ -427,10 +586,6 @@
})
}
},
tipupon() {
// if (!this.customerInfo.demand.cusSemanticWordsList) return
this.tipshow = true
},
changeshow(item, type) {
item.show = !item.show
},
@@ -500,9 +655,9 @@
})
},
},
filters: {
// 加密手机
phoneText(mobile) {
if (!mobile) return '--'
@@ -633,10 +788,12 @@
.Level-box {
padding-bottom: 2rpx;
border-bottom: 1rpx solid #E0E0E0;

.hhhbox {
width: 100%;
padding: 0 30rpx;
background: #f8f8f8;

.hsnrtest {
height: 36rpx;
font-size: 26rpx;
@@ -737,7 +894,7 @@
display: flex;
line-height: 98rpx;
align-items: center;
padding:0 30rpx;
padding: 0 30rpx;

.title1 {
flex: 2;
@@ -755,7 +912,8 @@
line-height: 28rpx;
border-radius: 14rpx;
position: relative;
background: rgba(7, 183, 157, 0.2);
background: rgba(7, 183, 157, 0.2);

.huanxing {
height: 100%;
background: #07B79D;
@@ -786,10 +944,12 @@
}
}
}

.ratecenter {
background-color: #FFFFFF;
padding-bottom: 30rpx;
width: 100%;

.ratetetle {
height: 42rpx;
font-size: 30rpx;
@@ -799,6 +959,7 @@
line-height: 42rpx;
padding: 24rpx 30rpx;
}

.rateyuanbox {
width: 100%;
height: 210rpx;
@@ -806,28 +967,33 @@
display: flex;
padding-left: 80rpx;
padding-right: 80rpx;

.rateyuanboxzuo {
width: 30%;
height: 100%;
}

.rateyuanboxyou {
width: 40%;
height: 100%;
}

.boxzuoview {
width: 100%;
height: 140rpx;
line-height: 140rpx;
text-align: center;
}
.ratetetle-desc{

.ratetetle-desc {
color: #666;
font-size:30rpx;
font-size: 30rpx;
font-weight: 400;
text-align: center;
}
}
.middle-title{

.middle-title {
height: 78rpx;
line-height: 78rpx;
display: flex;
@@ -838,10 +1004,12 @@
font-family: PingFangSC-Medium, PingFang SC;
font-weight: 500;
color: #333333;

.item-title1 {
width: 450rpx;
padding-left: 30rpx;
}

.item-title {
flex: 1;
}
@@ -870,6 +1038,7 @@
font-size: 30rpx;
display: flex;
justify-content: center;

.activecllasscet {
border-bottom: 6rpx solid #2671E2;
color: #2671E2;
@@ -903,7 +1072,7 @@
display: flex;
align-items: center;
justify-content: space-between;
.img {
width: 48rpx;
height: 48rpx;
@@ -927,6 +1096,7 @@
margin-right: 16rpx;
display: flex;
}

.clientStageName {
height: 48rpx;
line-height: 48rpx;
@@ -946,12 +1116,13 @@
flex-shrink: 0;
height: 40rpx;
width: 40rpx;

image {
width: 100%;
height: 100%;
}
}
}

.right {
@@ -975,7 +1146,6 @@
.content-sec {
border-top: 1px solid #E0E0E0;
padding: 0 30rpx;
height: 270rpx;
position: relative;

.content-sec-lab {
@@ -1027,6 +1197,7 @@
.content-last {
padding: 30rpx;
margin-top: 28rpx;

.content-last-con {
width: 690rpx;
min-height: 112rpx;
@@ -1199,7 +1370,7 @@
color: #333333;
margin-left: 20rpx;
}
.clientStageName {
height: 48rpx;
line-height: 48rpx;
@@ -1208,7 +1379,7 @@
border: 1rpx solid #ff981e;
box-sizing: border-box;
font-size: 28rpx;
font-family: PingFangSC-Regular,PingFang SC;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #ff981e;
margin-left: 16rpx;
@@ -1311,21 +1482,29 @@
height: 100%;
}
}
.A {
background: #E6625B;
}
background: #E6625B;
}

.B {
background: #FF981E;
}
.B {
background: #FF981E;
}

.C {
background: #F6BD16;
}
.C {
background: #F6BD16;
}

.D {
background: #E6625B;
}
.D {
background: #E6625B;
}

.top-box {
height: 80rpx;
line-height: 80rpx;
display: flex;
color: #2671E2;
border-bottom: 1rpx solid #ccc;
}
</style>

+ 2
- 2
pages/center/consumer/consumerSearch.vue Ver fichero

@@ -56,7 +56,7 @@
</view>
</view>

<template v-if="recordList.length == 0">
<view v-if="recordList.length == 0" style="background:#fff;height: 100vh">
<view style="width: 100%; height: 100%; display: flex; align-items: center">
<view style="width: 100%; height: 100%; padding-top: 200rpx">
<view style="width: 100%; text-align: center">
@@ -71,7 +71,7 @@
">暂无数据</view>
</view>
</view>
</template>
</view>
</view>
</view>
</template>


+ 0
- 1
pages/center/consumer/remind.vue Ver fichero

@@ -6,7 +6,6 @@
客户信息
</view>
<view class="conmsg-lab-2">
<!-- 李先生/12385945986 -->
{{str}}
</view>
</view>


+ 429
- 72
pages/center/prohibited/details.vue Ver fichero

@@ -35,40 +35,58 @@
bg-color="transparent" :show-bar="false" :current="current" @change="change"></u-tabs>
</template>
<template v-if="current == 0">
<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">
<scroll-view 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 && item.isShow == 0" :src="Aimg" mode="widthFix"></image> -->
<text v-if="item.isShow == 0">顾</text>
<text v-else>{{ item.speaker | toCapital }}</text>
</view>
<view class="dialog-block" v-for="(item,i) in findTabooWordsList" :key="i">
<view class="fileName">录音文件</view>
<view class="text" :data-guwen="item.isShow" :data-speaker="item.speaker">
<view class="avatar">
<view>
<image v-if="item.isShow == 0"
src="https://static.quhouse.com/b11a7e1ccf914020b3ee23d3e4862637.png"
mode="widthFix">
</image>
<text v-else :style="[borderColor(item.speaker)]">{{ item.speaker | toCapital }}</text>
</view>

<view class="contentInfo">
<view class="info">
<!-- <text class="AudioUserName">{{ item.speaker | toCapital }}</text> -->
<text class="AudioUserName" v-if="item.isShow == 0">{{item.username}}</text>
<text class="AudioUserName" v-else>{{ item.speaker | toCapital }}</text>
<text>{{conversionTiame(item.bg/1000)}}</text>
</view>
<view class="contentInfo">
<view class="info">
{{ item.speaker | toCapital }} {{conversionTiame(item.bg/1000)}}
</view>
<view class="contentMain" @click.stop>
<view class="content">
<view v-html="item.onebest"></view>
</view>
<view class="contentMain">
<view class="content">
<view v-html="item.onebest"></view>
<image v-if="Math.floor(item.bg/1000) <= playNow && Math.floor(item.ed/1000) > playNow"
class="play" src="https://static.quhouse.com/ce73a5225f7f44be9f313b0e4e4c2c0e.png">
</image>
<image v-else @click="clickbofang(0,item, 'show')" class="play"
src="https://static.quhouse.com/1b6ac53247e043a1bdc59ecfb2167eba.png"></image>
</view>
<!-- ----------对话下方新加话术标签标识------------ -->
<!-- 1 客户画像 2销讲词 3违禁 4 需求挖掘 -->
<view class="newmark" v-if="item.types">
<view class="mark-item" v-for="(subitem,i) in dealTypes(item.types)" :key="i">
<image v-if="dealword(subitem)[0]==1" class="markicon"
src="https://static.quhouse.com/37e0de3f8d1c421dac8bf699d5e7992d.png">
</image>
<image v-if="dealword(subitem)[0]==2" class="markicon"
src="https://static.quhouse.com/b106e8e75db24a59a579a15a78830a76.png">
</image>
<image v-if="dealword(subitem)[0]==3" class="markicon"
src="https://static.quhouse.com/8443a2ecb81d4639991ab29c422e9949.png">
</image>
<image v-if="dealword(subitem)[0]==4" class="markicon"
src="https://static.quhouse.com/1cd794cb6c974d9dad948a6dd444518b.png">
</image>
<view class="marktext"
:style="dealword(subitem)[0]==3?'color:#E7483C':'color:#3E50E8'">
{{dealword(subitem)[1]}}
</view>
<template v-if="isShowMerge">
<image @click="clickbofang(0,item, 'show')" class="play"
src="@/static/images/recordingManagement/play.png"></image>
</template>
</view>
</view>
</view>
</block>
</view>
</view>
</scroll-view>
</template>
@@ -83,7 +101,6 @@
:is-scroll="true">
</u-tabs-swiper>
</view>

</view>
</view>
<scroll-view :scroll-top="scrollTop" lower-threshold='100px' @scrolltolower="ltolower()"
@@ -93,34 +110,87 @@
<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="text"
:class="{active: Math.floor(item.bg/1000) <= playNow && Math.floor(item.ed/1000) > playNow, isGreen: item.isShow == 0}"
:data-guwen="item.isShow" :data-speaker="item.speaker"
:id="'dialog'+csdFileindex+'text'+item.bg">
<view class="avatar">
<view :style="[SPEAKERSTYLE(item.speaker)]">
<!-- <image v-if="item.isShow == 0" :src="Aimg" mode="widthFix"></image> -->
<text v-if="item.isShow == 0">顾</text>
<text v-else>{{ item.speaker | toCapital }}</text>
<view>
<image v-if="item.isShow == 0"
src="https://static.quhouse.com/b11a7e1ccf914020b3ee23d3e4862637.png"
mode="widthFix">
</image>
<text v-else
:style="[borderColor(item.speaker)]">{{ item.speaker | toCapital }}</text>
</view>
</view>
<view class="contentInfo">
<view class="info">
<!-- <text class="AudioUserName">{{ item.speaker | toCapital }}</text> -->
<text class="AudioUserName" v-if="item.isShow == 0">{{ item.username }}</text>
<text class="AudioUserName" v-else>{{ item.speaker | toCapital }}</text>
<text>{{conversionTiame(item.bg/1000)}}</text>
{{ item.speaker | toCapital }} {{conversionTiame(item.bg/1000)}}
</view>
<view class="contentMain">
<view class="contentMain" @click.stop>
<view class="content">
<view v-html="item.onebest"></view>
<view v-html="item.onebest">
</view>

<template v-if="item.isshow">
<view class="tankuangcss" :class="{bottoms:index == 0}">
<view class="tankuangcss-items" @click="clickcopy">
<image src="@/static/images/detail/icon1.png" mode=""></image>
<text>复制</text>
</view>
<view v-if="permissions.commonly4" class="tankuangcss-items"
@click="Oftenthewrongword">
<image src="@/static/images/detail/icon2.png" mode=""></image>
<text>常错词</text>
</view>
<view v-if="permissions.commonly3" class="tankuangcss-items"
@click="Addtheessence">
<image src="@/static/images/detail/icon3.png" mode=""></image>
<text>加精华</text>
</view>
<view class="tankuangcss-items" @click="Modifyrole(index,item)">
<image src="@/static/images/detail/icon4.png" mode=""></image>
<text>修改角色</text>
</view>
</view>
</template>
</view>
<image
v-if="Math.floor(item.bg/1000) <= playNow && Math.floor(item.ed/1000) > playNow"
class="play"
src="https://static.quhouse.com/ce73a5225f7f44be9f313b0e4e4c2c0e.png">
</image>
<image v-else @click="clickbofang(dialog.backindex,item)" class="play"
src="https://static.quhouse.com/1b6ac53247e043a1bdc59ecfb2167eba.png"></image>
</view>
<!-- ----------对话下方新加话术标签标识------------ -->
<!-- 1 客户画像 2销讲词 3违禁 4 需求挖掘 -->
<view class="newmark" v-if="item.types">
<view class="mark-item" v-for="(subitem,i) in dealTypes(item.types)" :key="i">
<image v-if="dealword(subitem)[0]==1" class="markicon"
src="https://static.quhouse.com/37e0de3f8d1c421dac8bf699d5e7992d.png">
</image>
<image v-if="dealword(subitem)[0]==2" class="markicon"
src="https://static.quhouse.com/b106e8e75db24a59a579a15a78830a76.png">
</image>
<image v-if="dealword(subitem)[0]==3" class="markicon"
src="https://static.quhouse.com/8443a2ecb81d4639991ab29c422e9949.png">
</image>
<image v-if="dealword(subitem)[0]==4" class="markicon"
src="https://static.quhouse.com/1cd794cb6c974d9dad948a6dd444518b.png">
</image>
<view class="marktext"
:style="dealword(subitem)[0]==3?'color:#E7483C':'color:#3E50E8'">
{{dealword(subitem)[1]}}
</view>
</view>
<image @click="clickbofang(dialog.backindex,item)" class="play"
src="@/static/images/recordingManagement/play.png"></image>
</view>
</view>
</view>
</block>
</view>

</scroll-view>
</template>

@@ -220,7 +290,6 @@
textindex: 0, //下拉 转写文件下标
toptextindex: 0, //上拉 转写文件下标

dshfkjsdkksodofydwfkhwdfkjh: 0, // 顾问的id之类的
status: 0, // 状态(不明白是什么状态)
speaker: '', // 角色身份
customerId: '', // 楼盘id吧(猜)
@@ -307,10 +376,8 @@
var pages = getCurrentPages();
var currPage = pages[pages.length - 1]; //当前页面
this.infos = currPage.data.info;
}
!this.isPageHide && this.init(this.infos);
}!this.isPageHide && this.init(this.infos);
this.gituserlist()
this.findTabooWords()
},

onHide() {
@@ -322,7 +389,7 @@
this.$zaudio.off('stop', this.ACTION);
this.$zaudio.off('playing', this.ACTION);
// this.$zaudio.setAudio([])
},

methods: {
@@ -338,10 +405,13 @@
arr.push(item.transferContents)
}
})
this.findTabooWordsList = arr
this.findTabooWordsList = arr.map(item => {
if (item.speaker == this.speaker) {
item.isShow = 0
}
return item
})
this.isFirstWords = arr[0].bg
console.log(this.findTabooWordsList, 'findTabooWordsList')
})
},

@@ -503,7 +573,7 @@

//取消标记
unmarktap() {
this.roleindexbiaoji = this.dshfkjsdkksodofydwfkhwdfkjh;
this.roleindexbiaoji = this.speaker;
},

//确认标记
@@ -555,7 +625,7 @@
} else {
this.kehuyixiangcenterindex = 1;
}
if (info.bg != 0) {
this.luyinList = res;
this.recordPath = res[0].recordPath
@@ -608,20 +678,16 @@
})
}
}
if (data.data.data.speaker == null) {
this.dshfkjsdkksodofydwfkhwdfkjh = 0;
} else {
// 顾问下标
this.speaker = data.data.data.speaker || 0;
if (data.data.data.speaker != null) {
if (data.data.data.viewNameFlag == 1) {
this.tablist[data.data.data.speaker].name = this.tablist[data.data.data
.speaker]
.name;
this.tablist[data.data.data.speaker].name = this.tablist[data.data.data.speaker].name;
} else {
this.tablist[data.data.data.speaker].name = this.tablist[data.data.data
.speaker]
.name + "顾问";
this.tablist[data.data.data.speaker].name = this.tablist[data.data.data.speaker].name + "顾问";
}
this.roleindexbiaoji = data.data.data.speaker - 1;
this.dshfkjsdkksodofydwfkhwdfkjh = data.data.data.speaker - 1;
}

if (data.data.data.viewNameFlag == 1) {
@@ -633,13 +699,12 @@
} else {
this.isSw = false
}

this.speaker = data.data.data.speaker;
//上拉标记点
this.textindex = data.data.data.index;
//下拉标记点
this.toptextindex = data.data.data.index;

// 获取违禁话列表
this.findTabooWords()
jsonInfo.forEach(item => {
item.message = JSON.parse(item.onebest)
item.backindex = this.csdFileindex;
@@ -655,6 +720,7 @@
this.newluyinList = jsonInfo;
this.dialogList.push(jsonInfo[0]);
console.log(this.dialogList, '12312321')

if (type == 'show') {
var itc = parseInt(info.bg / 1000)
this.adasdasdasd(itc)
@@ -664,7 +730,6 @@
})
},


//下一页
ltolower() {
var lengthcz = this.newluyinList.length - 1;
@@ -681,6 +746,7 @@
this.dialogList[0].message.push(item)
})
}
console.log("下一页", this.textindex)
},

//上一页
@@ -756,7 +822,7 @@

if (data.data.data.speaker == null) {
this.roleindexbiaoji = 0;
this.dshfkjsdkksodofydwfkhwdfkjh = 0;
this.speaker = 0;
} else {
if (data.data.data.viewNameFlag == 1) {
this.tablist[data.data.data.speaker].name = this.tablist[data.data.data
@@ -768,7 +834,7 @@
.name + "顾问";
}
this.roleindexbiaoji = data.data.data.speaker - 1;
this.dshfkjsdkksodofydwfkhwdfkjh = data.data.data.speaker - 1;
this.speaker = data.data.data.speaker;
}

if (data.data.data.viewNameFlag == 1) {
@@ -951,9 +1017,9 @@
//渲染第一首音频
this.$zaudio.setRender(0)
console.log(this.$zaudio)
if (this.isFirstWords != 0) {
if (this.isFirstWords != 0) {
setTimeout(() => {
this.stepPlay(Math.floor(this.isFirstWords/1000))
this.stepPlay(Math.floor(this.isFirstWords / 1000))
this.isFirstWords = 0
}, 2000)
}
@@ -969,7 +1035,84 @@
if (this.$zaudio.paused) {
this.$zaudio.operate()
}
}
},


// 对话加命中标签
dealTypes(type) {
if (type) {
// let tem = type.split(',')
let tem = type.substring(1).split(',')
return tem
} else {
return []
}
},
// 对话加命中标签
dealword(type) {
if (type) {
let a = type.split('-')
let rest = type.substring(2).split('-').join(',')
let arr = [a[0], rest]
return arr
} else {
return []
}
},



borderColor(index) {
let obj = {
color: '',
borderRadius: '',
border: ''
}
switch (index) {
case 1:
obj.color = '#E6625B';
obj.borderRadius = '8rpx';
obj.border = '2rpx solid #E6625B';
break;
case 2:
obj.color = '#FF981E';
obj.borderRadius = '8rpx';
obj.border = '2rpx solid #FF981E';
break;
case 3:
obj.color = '#F6BD16';
obj.borderRadius = '8rpx';
obj.border = '2rpx solid #F6BD16';
break;
case 5:
obj.color = '#4980C8';
obj.borderRadius = '8rpx';
obj.border = '2rpx solid #4980C8';
break;
case 6:
obj.color = '#60CBEC';
obj.borderRadius = '8rpx';
obj.border = '2rpx solid #60CBEC';
break;
case 7:
obj.color = '##FF981E';
obj.borderRadius = '8rpx';
obj.border = '2rpx solid #FF981E';
break;
case 8:
obj.color = '#4F861E';
obj.borderRadius = '8rpx';
obj.border = '2rpx solid #4F861E';
break;
default:
obj.color = '#9F61C8';
obj.borderRadius = '8rpx';
obj.border = '2rpx solid #9F61C8';
break;
}
return obj
},

},
filters: {
// violatedStatus
@@ -1142,6 +1285,35 @@
}
}

// 违禁正则标签
.newmark {
margin: 30rpx 0 10rpx 120rpx;

.mark-item {
display: flex;
flex-wrap: wrap;
margin-bottom: 12rpx;

.markicon {
width: 30rpx;
height: 30rpx;
margin-right: 12rpx;
}

.marktext {
font-size: 24rpx;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #3E50E8;
min-height: 30rpx;
line-height: 30rpx;
max-width: 420rpx;
text-align: left;
word-break: break-all;
}
}
}

.text {
margin: 50upx 30upx;
display: flex;
@@ -1507,4 +1679,189 @@
/deep/.u-tab-item {
border: 1rpx solid #dedede;
}



.dialog-block {
margin: 20rpx 0;
border-bottom: 1px solid #ccc;

// .fileName {
// max-width: 220rpx;
// text-align: center;
// margin: 10rpx auto;
// font-size: 28rpx;
// font-weight: 400;
// color: #666;
// height: 52rpx;
// line-height: 52rpx;
// background: #F8F8F8;
// border-radius: 4rpx;
// padding: 0 20rpx;
// }
}

.scroll-Y {
font-size: 36rpx;
color: #999999;
background: #FFFFFF;
margin-top: 30rpx;
flex: 1;
overflow-y: scroll;
width: 100%;
}

// 顾问默认在右边显示
.scroll-Y .text[data-guwen="0"] {
flex-direction: row-reverse;
text-align: right;

.contentInfo {
.info {
color: #666;
font-size: 22rpx;
padding: 0 28rpx;
height: 62rpx;
}

.contentMain {
display: flex;
flex-direction: row-reverse;
align-items: center;

.content {
margin-left: 0;
margin-right: 30rpx;
}

.play {
width: 50rpx;
height: 50rpx;
margin-right: 20rpx;
}
}
}



}

.scroll-Y .text[data-guwen="0"] {
.contentInfo {
.info {
.AudioUserName {
margin-left: 10rpx;
}

display: flex;
flex-direction: row-reverse;
}
}
}

.scroll-Y .text {
position: relative;
margin: 30rpx;
line-height: 80rpx;
display: flex;

.contentInfo {
.info {
.AudioUserName {
margin-right: 10rpx;
}
}
}
}

.scroll-Y .text .avatar {
text {
display: block;
width: 72rpx;
height: 72rpx;
line-height: 72rpx;
text-align: center;
background: #FFFFFF;
border-radius: 8rpx;
font-size: 30rpx;
font-family: PingFangSC-Medium, PingFang SC;
font-weight: 500;
box-sizing: border-box;
}

image {
width: 72rpx;
height: 72rpx;
}
}

.scroll-Y .text .contentInfo .info {
color: #666;
font-size: 22rpx;
padding: 0 28rpx;
height: 50rpx;
line-height: 50rpx;
}

.scroll-Y .text .contentInfo .contentMain {
display: flex;
align-items: center;
}

.scroll-Y .text .contentInfo .contentMain .content {
margin-left: 30rpx;
line-height: 42rpx;
text-align: left;
padding: 15rpx 20rpx;
border-radius: 8rpx;
max-width: 442rpx;
background: #F8F8F8;
font-size: 30rpx;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #505050;

.tankuangcss {
position: absolute;
top: -140rpx;
left: 50%;
transform: translateX(-50%);
z-index: 1000;
min-width: 150rpx;
height: 140rpx;
display: flex;
background: rgba(48, 48, 48, 0.8);
border-radius: 15rpx;

.tankuangcss-items {
width: 150rpx;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;

image {
width: 36rpx;
height: 36rpx;
}

text {
margin: 12rpx 0 0 0;
font-size: 24rpx;
color: #fff;
}
}
}

.bottoms {
top: unset;
bottom: -140rpx;
}
}

.scroll-Y .text .contentInfo .contentMain .play {
width: 50rpx;
height: 50rpx;
margin-left: 20rpx;
}
</style>

+ 5
- 5
pages/center/prohibited/index.vue Ver fichero

@@ -26,7 +26,7 @@
</view>
<view class="content">
<view v-if="recordList.length==0"
style="width: 100%;height: 100%;display: flex;align-items: center;background: #FFFFFF;">
style="width: 100%;height: 100vh;display: flex;background: #FFFFFF;">
<view style="width: 100%;padding-top: 200rpx;">
<view style="width: 100%;text-align: center;">
<image style="width: 220rpx;height: 200rpx;"
@@ -393,14 +393,14 @@

this.$u.post("/customer/findbypage", parames).then(data => {
this.LOADING = false
var list = data.results || [];
var list = data.records || [];
if (this.isRefresh) {
this.recordList = list;
} else {
this.recordList = [...this.recordList, ...list];
this.recordList = [].concat(this.recordList,list);
}
this.totalRecord = data.totalPage;
this.totalRecords = data.totalRecord;
this.totalRecord = data.pages;
this.totalRecords = data.total;
this.nextPageObj = parames.query
}).catch(e => {
this.LOADING = false


+ 510
- 255
pages/center/records/index.vue
La diferencia del archivo ha sido suprimido porque es demasiado grande
Ver fichero


+ 1
- 14
pages/center/records/recordSearch.vue Ver fichero

@@ -3,12 +3,10 @@
<view style="width: 690rpx;margin: 0 auto;margin-top: 20rpx;">
<u-search @search='searchinfo()' :show-action='false' placeholder="请输入" v-model="keyword"></u-search>
</view>
<!-- <view @click="searchinfo()">搜索</view> -->
<view class="content" style="background: #F8F8F8;">
<view class="content-tips" v-for="(item,index) in recordList" :key='index' @click="tapThevisiting(item)">
<view class="content-first">
<view class="left">
<!-- <view class="img">{{item.agentName.slice(0,1)}}</view> -->
<view class="name">{{item.agentName}}</view>
<view class="status" v-if="item.replaceReception==1">代接待</view>
<view style="margin-left: 6rpx;margin-top: 11rpx;">{{item.receptionStatusName || ''}}</view>
@@ -20,11 +18,10 @@
<text style="color: red;" v-if="item.taboo==1">违禁接待</text>
<text v-if="item.taboo==1"> |</text>
</view>
<!-- <view class="point"></view> -->
<view v-if="item.markAdvisor==0" class="">未标记</view>
<view v-if="item.markAdvisor==1" class="">已标记</view>
</view>
<view class="right" v-else>
<view class="right" v-else>
<view class="">无录音</view>
</view>
</view>
@@ -35,7 +32,6 @@
</view>
<view class="right">
{{item.fraction || '0'}}%
<!-- | {{item.fraction || '0'}}分 -->
</view>
</view>
<view class="content-last">
@@ -222,15 +218,6 @@
.right{
display: flex;
margin-top: 11rpx;
.point{
width: 12rpx;
height: 12rpx;
background: #2B6EFF;
border-radius: 50%;
margin-right: 9rpx;
margin-top: 16rpx;
}
}
}


+ 743
- 405
pages/index/consumer/index.vue
La diferencia del archivo ha sido suprimido porque es demasiado grande
Ver fichero


+ 33
- 60
pages/index/index.vue Ver fichero

@@ -13,7 +13,6 @@
我的工牌:{{imeiCode||'未绑定'}}
</view>
<view class="" style="color: #2671E2; font-weight: normal;">
<!-- 接待中 -->
{{openFlag=='start'?'接待中':''}}
</view>
</view>
@@ -65,24 +64,6 @@
</view>
</view>
</view>

<!--
<view class="title" v-if="permissions.shebeinum">待处理</view>
<view class="shebenbox" v-if="permissions.shebeinum" >
<view class="shebenche" @click="indexStatus(0)">
<view class="shebenchenum">{{operation.receptionCount || 0}}</view>
<view class="shebenchetext">接待即将结束</view>
</view>
<view class="shebenche" @click="indexStatus(1)">
<view class="shebenchenum">{{operation.accountCount || 0}}</view>
<view class="shebenchetext">未标顾问</view>
</view>
<view class="shebenche" @click="indexStatus(3)">
<view class="shebenchenum">{{operation.forbiddenCount || 0}}</view>
<view class="shebenchetext">违禁提醒</view>
</view>
</view> -->

<!-- 设备总览 -->
<view class="contbox" v-if="permissions.shebeinum">
<view class="title">
@@ -113,8 +94,7 @@
<!-- 今日工作 -->
<view class="contbox" v-if="permissions.shishinum">
<view class="title">
<image class="title-icon" src="https://static.quhouse.com/bc2ec951ad9a47e5bf58f2829926e143.png"
mode="" />今日工作
<image class="title-icon" src="https://static.quhouse.com/bc2ec951ad9a47e5bf58f2829926e143.png" mode="" />今日工作
</view>
<view class="real-timebox">
<view class="timebox">
@@ -125,6 +105,10 @@
</view>
<view class="realtext">平均执行率</view>
</view>
<view class="real" @click="tapjumpreception('6')">
<view class="realnum">{{realtimeobj.wordFraction|| 0}}%</view>
<view class="realtext">平均挖掘执行率</view>
</view>
<view class="real" @click="tapjumpreception('11')">
<view class="realnum">{{realtimeobj.receptionCount || 0}}</view>
<view class="realtext">接待量</view>
@@ -133,12 +117,12 @@
<view class="realnum">{{realtimeobj.receivingCustomer || 0}}</view>
<view class="realtext">正在接待</view>
</view>
<view class="real" @click="tapjumpreception('6')">
</view>
<view class="timebox" >
<view class="real" @click="tapjumpreception('6')">
<view class="realnum">{{realtimeobj.activeCustomer|| 0}}</view>
<view class="realtext">有效接待</view>
</view>
</view>
<view class="timebox" style="margin-bottom:0;">
<view class="real" @click="tapjumpreception('1')">
<view class="realnum">{{realtimeobj.avgDuration|| 0}}<text
style="font-size: 30rpx;font-weight: 400;font-family: SimHei">min</text></view>
@@ -148,16 +132,13 @@
<view class="realnum">{{realtimeobj.tagCustomer || 0}}</view>
<view class="realtext">未标顾问</view>
</view>
<view class="real">
<view @click="prohibitedtap(1)" v-if="methodsisshow==true" class="realnum" style="color: red;">
<view class="real" @click="prohibitedtap(1)" v-if="methodsisshow">
<view class="realnum" style="color: red;">
{{realtimeobj.prohibitedCustomer || 0}}
</view>
<view @click="prohibitedtap(1)" v-if="methodsisshow==true" class="realtext">违禁预警</view>
</view>
<view class="real">
<view class="realnum"></view>
<view class="realtext"></view>
<view class="realtext">违禁预警</view>
</view>

</view>
</view>
@@ -172,26 +153,28 @@
{{choiceIndex}}累计<u-icon name="arrow-down" size="24" style="padding-left: 12rpx;"></u-icon>
</view>
</view>
<!-- <view class="timeshow">统计时间:2022.05.20-2022.05.27</view> -->
<view class="real-timebox">
<view class="timebox">
<view class="real" @click="tapjumpreception('3')">
<view class="realnum u-flex" style="justify-content: center">{{Thisweekobj.fraction || 0}}<text
style="font-weight: 400;font-family: SimHei;font-size: 30rpx;">%</text>
<!-- <image class="qushi-icon" src="/static/images/qushi-up.png" mode="" /> -->
</view>
<view class="realtext">平均执行率</view>
</view>
<view class="real" @click="tapjumpreception('7')">
<view class="realnum">{{Thisweekobj.wordFraction || 0}}%</view>
<view class="realtext">平均挖掘执行率</view>
</view>
<view class="real" @click="tapjumpreception('33')">
<view class="realnum">{{Thisweekobj.receptionCount || 0}}</view>
<view class="realtext">接待量</view>
</view>
</view>
<view class="timebox" style="margin-bottom:0;">
<view class="real" @click="tapjumpreception('7')">
<view class="realnum">{{Thisweekobj.activeCustomer|| 0}}</view>
<view class="realtext">有效接待</view>
</view>
</view>
<view class="timebox" style="margin-bottom:0;">
<view class="real" @click="tapjumpreception('3')">
<view class="realnum">{{Thisweekobj.avgDuration || 0}}<text
style="font-size: 30rpx;font-weight: 400;font-family: SimHei">min</text></view>
@@ -205,10 +188,6 @@
<view class="realnum"></view>
<view class="realtext"></view>
</view>
<view class="real">
<view class="realnum"></view>
<view class="realtext"></view>
</view>
</view>
</view>
</view>
@@ -275,6 +254,13 @@
</view>
<view class="commonly-text">员工分析</view>
</view>
<view class="commonly" @click="toRequireAnalysis()" v-if="permissions.xqwjfx">
<view class="commonly-img">
<image class="commonly-img1"
src="https://static.quhouse.com/c2d3801540cf4880a68cce0e04eb59b0.png" mode=""></image>
</view>
<view class="commonly-text">需求挖掘分析</view>
</view>
</view>
<view class="title"
v-if="permissions.commonly11||permissions.commonly12||permissions.commonly5||permissions.commonly6">
@@ -506,7 +492,12 @@
this.updateInit()
},
methods: {

// 需求挖掘分析
toRequireAnalysis(){
uni.navigateTo({
url: '/pages/center/Piabodata/requireminingAnalysis'
});
},
updateInit() {
this.$u.get(config.service.notReadNum, {
id: uni.getStorageSync('weapp_session_userInfo_data').accountId,
@@ -650,16 +641,7 @@
if (data.data.data == null) {
return
} else {
this.Thisweekobj = {
sumCustomer: data.data.data.sumCustomer,
receivingCustomer: data.data.data.receivingCustomer,
activeCustomer: data.data.data.activeCustomer,
prohibitedCustomer: data.data.data.prohibitedCustomer,
avgDuration: data.data.data.avgDuration || 0,
tagCustomer: data.data.data.tagCustomer,
fraction: data.data.data.fraction,
receptionCount: data.data.data.receptionCount
}
this.Thisweekobj = data.data.data
}
}
})
@@ -681,16 +663,7 @@
if (data.data.data == null) {
return
} else {
this.realtimeobj = {
sumCustomer: data.data.data.sumCustomer,
receivingCustomer: data.data.data.receivingCustomer,
activeCustomer: data.data.data.activeCustomer,
prohibitedCustomer: data.data.data.prohibitedCustomer,
avgDuration: data.data.data.avgDuration || 0,
tagCustomer: data.data.data.tagCustomer,
fraction: data.data.data.fraction,
receptionCount: data.data.data.receptionCount
}
this.realtimeobj = data.data.data
}
},
fail: () => {


+ 128
- 30
pages/learning/Keywordsearch.vue Ver fichero

@@ -1,35 +1,43 @@
<template>
<view class="translation">
<view style="display: flex;align-items: center;width: 100%;padding: 0 30rpx;">
<!-- <view class="search-input">
<view style="flex-shrink: 0;width: 10%;height: 64rpx;display: flex;align-items: center;">
<image style="width: 28rpx;height: 28rpx;margin-left: 30rpx;" src="/static/images/search.png"
mode=""></image>
</view>
<view style="flex-grow: 1;height: 64rpx;display: flex;align-items: center;">
<input type="text" @input="searchinfo" v-model="keyword" placeholder="请输入关键字"
style="flex-grow: 1;color: #999999;font-size: 24rpx;" />
</view>
<view class="box">
<view style="width: 10%; height: 64rpx; display: flex; align-items: center">
<image style="width: 28rpx; height: 28rpx; margin-left: 30rpx" src="/static/images/search.png" mode="">
</image>
</view>
<view style="width: 90%; height: 64rpx; display: flex; align-items: center">
<input type="text" @input="searchinfo" v-model="keyword" placeholder="请输入关键字"
style="width: 100%; color: #999999; font-size: 24rpx" />
</view>
<view class="searchbtn" @click="searchinfo">搜索</view> -->
<u-search class="search-boxs" :disabled="disabled" placeholder="请输入" v-model="keyword" action-text="搜索" :show-action="true"
@search="searchinfo" @custom="searchinfo"></u-search>
</view>
<view style="width: 690rpx;margin: 0 auto;margin-top: 10rpx;">

<view
style="width: 100%;border-bottom: 1px solid #E0E0E0;display: flex;padding-bottom: 10rpx;margin-top: 40rpx;"
v-for="(item,index) in listarr" :key='index' @click="toaidoinfo(item.Content,item.corpusId,item.index)">
<view style="width: 26rpx;height: 36rpx;margin-top: 4rpx;">
<image style="width: 26rpx;height: 28rpx;" src="../../static/images/testimg.png" mode=""></image>
<view class="box-list">
<view style="width: 100%; padding-bottom: 10rpx;" v-for="(item, index) in listarr" :key="index"
@click="toaidoinfo(item.Content, item.corpusId, item.index)">
<view class="item-list">
<view class="icon">
<image style="width: 26rpx; height: 28rpx" src="../../static/images/testimg.png" mode="">
</image>
</view>
<view v-html="item.Content.text" class="text"></view>
<view class="time">{{ item.Content.time }}</view>
</view>
<!-- 1 客户画像 2销讲词 3违禁 4 需求挖掘 -->
<view class="newmark" v-if="item.Content.types">
<view class="mark-item" v-for="(subitem, i) in dealTypes(item.Content.types)" :key="i">
<image v-if="dealword(subitem)[0] == 1" class="markicon"
src="https://static.quhouse.com/37e0de3f8d1c421dac8bf699d5e7992d.png"></image>
<image v-if="dealword(subitem)[0] == 2" class="markicon"
src="https://static.quhouse.com/b106e8e75db24a59a579a15a78830a76.png"></image>
<image v-if="dealword(subitem)[0] == 3" class="markicon"
src="https://static.quhouse.com/8443a2ecb81d4639991ab29c422e9949.png"></image>
<image v-if="dealword(subitem)[0] == 4" class="markicon"
src="https://static.quhouse.com/1cd794cb6c974d9dad948a6dd444518b.png"></image>
<view class="marktext" :style="
dealword(subitem)[0] == 3 ? 'color:#E7483C' : 'color:#3E50E8'
">{{ dealword(subitem)[1] }}</view>
</view>
</view>
<view v-html="item.Content.text"
style="color: #666666;font-size: 28rpx;line-height: 36rpx;margin-left: 10rpx;width: 80%;"></view>
<view style="font-size: 28rpx;width: 10%;width: 14%;text-align: right;">{{item.Content.time}}</view>
</view>

</view>
</view>
</template>
@@ -46,6 +54,7 @@
skpl: '',
disabled: false,
tipsFncName: '', // 通知其他页面的方法名称
types: 0,
};
},
onLoad: function(options) {
@@ -53,6 +62,7 @@
this.keyword = options.keyword;
this.skpl = options.skpl;
if (options.UpDateEvent) this.tipsFncName = options.UpDateEvent
if (options.types) this.types = options.types
if (this.skpl == 2) {
this.searchinfo()
this.disabled = true;
@@ -61,6 +71,26 @@
}
},
methods: {
// 对话加命中标签
dealTypes(type) {
if (type) {
let tem = type.substring(1).split(",");
return tem;
} else {
return [];
}
},
// 对话加命中标签
dealword(type) {
if (type) {
let a = type.split("-");
let rest = type.substring(2).split("-").join(",");
let arr = [a[0], rest];
return arr;
} else {
return [];
}
},
formatTime(num) {
//格式化时间格式
num = num.toFixed(0);
@@ -76,7 +106,10 @@
} else {
let parames = {
keyword: this.keyword,
customerId: this.customerId
customerId: this.customerId,
}
if (this.types == 1) {
parames.type = 1
}
this.$u.post("/corpus/keyWordsMatching", parames).then(res => {
res.forEach(item => {
@@ -146,7 +179,72 @@
}
</script>
<style lang="scss" scoped>
.search-boxs {
width: 100%;
}
.box {
width: 690rpx;
height: 64rpx;
margin: 0 auto;
margin-top: 30rpx;
background: #f2f2f2;
border-radius: 32rpx;
display: flex;
align-items: center;
}

.box-list {
width: 690rpx;
margin: 30rpx auto 0;
}

.item-list {
display: flex;
border-bottom: 1px solid #e0e0e0;

.icon {
width: 26rpx;
height: 36rpx;
margin-top: 4rpx;
}

.text {
color: #666666;
font-size: 28rpx;
line-height: 36rpx;
margin-left: 10rpx;
width: 80%;
}

.time {
font-size: 28rpx;
width: 10%;
width: 14%;
text-align: right;
}
}

.newmark {
margin-top: 20rpx;
padding-left: 30rpx;

.mark-item {
display: flex;
flex-wrap: wrap;
margin-bottom: 12rpx;

.markicon {
width: 30rpx;
height: 30rpx;
margin-right: 12rpx;
}

.marktext {
flex: 1;
font-size: 24rpx;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #3e50e8;
min-height: 30rpx;
line-height: 30rpx;
}
}
}
</style>

+ 112
- 36
pages/mine/ScoringPlaylist.vue Ver fichero

@@ -1,16 +1,31 @@
<template>
<view class="translation">
<view style="width: 690rpx;margin: 0 auto;margin-top: 10rpx;">
<view style="width: 100%;border-bottom: 1px solid #E0E0E0;display: flex;padding-bottom: 10rpx;margin-top: 40rpx;"
v-for="(item,index) in listarr" :key='index' @click="toaidoinfo(item.Content,item.corpusId,item.index)">
<view style="width: 26rpx;height: 36rpx;margin-top: 4rpx;">
<image style="width: 26rpx;height: 28rpx;" src="../../static/images/testimg.png" mode=""></image>
<view class="cont-box" v-for="(item, index) in listarr" :key="index"
@click="toaidoinfo(item.Content, item.corpusId, item.index)">
<view class="top-cont">
<view style="width: 26rpx; height: 36rpx; margin-top: 4rpx">
<image style="width: 26rpx; height: 28rpx" src="../../static/images/testimg.png" mode=""></image>
</view>
<view v-html="item.Content.onebest"
style="color: #666666;font-size: 28rpx;line-height: 36rpx;margin-left: 10rpx;width: 80%;"></view>
<view style="font-size: 28rpx; width: 10%; width: 14%; text-align: right">{{ item.Content.time }}</view>
</view>
<!-- 1 客户画像 2销讲词 3违禁 4 需求挖掘 -->
<view class="newmark" v-if="item.Content.types">
<view class="mark-item" v-for="(subitem,i) in dealTypes(item.Content.types)" :key="i">
<image v-if="dealword(subitem)[0]==1" class="markicon"
src="https://static.quhouse.com/37e0de3f8d1c421dac8bf699d5e7992d.png"></image>
<image v-if="dealword(subitem)[0]==2" class="markicon"
src="https://static.quhouse.com/b106e8e75db24a59a579a15a78830a76.png"></image>
<image v-if="dealword(subitem)[0]==3" class="markicon"
src="https://static.quhouse.com/8443a2ecb81d4639991ab29c422e9949.png"></image>
<image v-if="dealword(subitem)[0]==4" class="markicon"
src="https://static.quhouse.com/1cd794cb6c974d9dad948a6dd444518b.png"></image>
<view class="marktext" :style="dealword(subitem)[0]==3?'color:#E7483C':'color:#3E50E8'">
{{dealword(subitem)[1]}}
</view>
</view>
<view v-html="item.Content.onebest" style="color: #666666;font-size: 28rpx;line-height: 36rpx;margin-left: 10rpx;width: 80%;"></view>
<view style="font-size: 28rpx;width: 10%;width: 14%;text-align: right;">{{item.Content.time}}</view>
</view>
</view>
</view>
</template>
@@ -21,23 +36,44 @@
export default {
data() {
return {
customerId:'',
listarr:[],
id:'',
type:'',
customerId: '',
listarr: [],
id: '',
type: '',
tipsFncName: '', // 提醒页面变更的值
from: '', // 标记需要刷新的来源
};
},
onLoad(options) {
this.customerId = options.customerId;
this.id=options.id;
this.type=options.type;
this.id = options.id;
this.type = options.type;
if (options.UpDateEvent) this.tipsFncName = options.UpDateEvent
if (options.from) this.from = options.from
this.searchinfo()
},
methods: {

// 对话加命中标签
dealTypes(type) {
if (type) {
let tem = type.substring(1).split(',')
return tem
} else {
return []
}
},
// 对话加命中标签
dealword(type) {
if (type) {
let a = type.split('-')
let rest = type.substring(2).split('-').join(',')
let arr = [a[0], rest]
return arr
} else {
return []
}
},
formatTime(num) {
//格式化时间格式
num = num.toFixed(0);
@@ -48,35 +84,35 @@
return min + ":" + second;
},
//搜索
searchinfo(){
let parames={
marketingId:this.id,
customerId:this.customerId,
type:this.type
searchinfo() {
let parames = {
marketingId: this.id,
customerId: this.customerId,
type: this.type
}
this.$u.post("/corpus/pinWordMatching", parames).then(res => {
res.forEach(item=>{
item.Content=JSON.parse(item.transferContent)
res.forEach(item => {
item.Content = JSON.parse(item.transferContent)
})
res.forEach(cet=>{
cet.Content.time=this.formatTime(cet.Content.bg/1000)
res.forEach(cet => {
cet.Content.time = this.formatTime(cet.Content.bg / 1000)
})
this.listarr=res;
this.listarr = res;
})
},
//跳转
toaidoinfo(item,id,index){
item.customerId=this.customerId;
item.id=id;
item.index=index;
toaidoinfo(item, id, index) {
item.customerId = this.customerId;
item.id = id;
item.index = index;
this.infostust(item)
},
//只有一条的时候
infostust(item){
infostust(item) {
console.log("zobudao")
let d = JSON.parse(JSON.stringify([item]))
d[0].onebest="";
console.log(d)
d[0].onebest = "";
console.log(d)
const parames = {
pageNum: 1,
pageSize: 100,
@@ -87,7 +123,7 @@
this.$u.post("/corpus/findByPage", parames).then(res => {
uni.setStorageSync("entrance", 2); //写入缓存
uni.setStorageSync("searchobj", d[0]); //写入缓存
if(res[0].merge==0){
if (res[0].merge == 0) {
let newobj = res[0];
if (this.tipsFncName) {
uni.$emit(this.tipsFncName, d[0])
@@ -100,11 +136,11 @@
url: `/pages/mine/details2?customerId=${newobj.customerId}&status=${newobj.status}&itemobj=${JSON.stringify(d[0])}&stateisshow=${'2'}&refresh=true`
})
}
uni.navigateTo({
url: `/pages/mine/details2?customerId=${newobj.customerId}&status=${newobj.status}&itemobj=${JSON.stringify(d[0])}&stateisshow=${'2'}`
})
}else{
} else {
let newobj = res[0];
uni.navigateTo({
url: `/pages/mine/details?customerId=${newobj.customerId}&status=${newobj.status}&itemobj=${JSON.stringify(d[0])}&stateisshow=${'2'}`
@@ -112,10 +148,50 @@
}
})
},
},
}
</script>
<style lang="scss" scoped>
.translation {
width: 100%;
padding: 0 30rpx;

.cont-box {
width: 100%;
margin-bottom: 20rpx;

.top-cont {
display: flex;
border-bottom: 1px solid #e0e0e0;
}

.newmark {
margin-top: 20rpx;
padding-left: 30rpx;

.mark-item {
display: flex;
flex-wrap: wrap;
margin-bottom: 12rpx;

.markicon {
width: 30rpx;
height: 30rpx;
margin-right: 12rpx;
}

.marktext {
flex: 1;
font-size: 24rpx;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #3E50E8;
min-height: 30rpx;
line-height: 30rpx;
}
}
}
}
}
</style>

+ 1
- 0
pages/mine/calibration.vue Ver fichero

@@ -79,6 +79,7 @@
let param = {
keywordIds:'',
id: this.customerId,
projectId: uni.getStorageSync("buildingID").id
}
let str = []
this.allList.map(item => {


+ 251
- 20
pages/mine/details2.vue Ver fichero

@@ -80,6 +80,23 @@
<image v-else @click="clickbofang(dialog.backindex,item)" class="play"
src="https://static.quhouse.com/1b6ac53247e043a1bdc59ecfb2167eba.png"></image>
</view>
<!-- ----------对话下方新加话术标签标识------------ -->
<!-- 1 客户画像 2销讲词 3违禁 4 需求挖掘 -->
<view class="newmark" v-if="item.types">
<view class="mark-item" v-for="(subitem,i) in dealTypes(item.types)" :key="i">
<image v-if="dealword(subitem)[0]==1" class="markicon"
src="https://static.quhouse.com/37e0de3f8d1c421dac8bf699d5e7992d.png"></image>
<image v-if="dealword(subitem)[0]==2" class="markicon"
src="https://static.quhouse.com/b106e8e75db24a59a579a15a78830a76.png"></image>
<image v-if="dealword(subitem)[0]==3" class="markicon"
src="https://static.quhouse.com/8443a2ecb81d4639991ab29c422e9949.png"></image>
<image v-if="dealword(subitem)[0]==4" class="markicon"
src="https://static.quhouse.com/1cd794cb6c974d9dad948a6dd444518b.png"></image>
<view class="marktext" :style="dealword(subitem)[0]==3?'color:#E7483C':'color:#3E50E8'">
{{dealword(subitem)[1]}}
</view>
</view>
</view>
</view>
</view>
</block>
@@ -287,10 +304,12 @@
</view>
</view>
<view class="pingfenbox">
<view :class="{ activecllasscet: zhixingcenterindex == 0 }" @click="recordclick(0)">销讲总执行率{{totalRate}}%
<view style="overflow: hidden;" :class="{ activecllasscet: zhixingcenterindex == 0 }" @click="recordclick(0)">销讲总执行率{{totalRate}}%
</view>
<view v-if="permissions.commonly6" :class="{ activecllasscet: zhixingcenterindex == 1 }"
@click="recordclick(1)">禁忌执行</view>
<view :class="{ activecllasscet: zhixingcenterindex == 2 }"
@click="recordclick(2)">需求挖掘率</view>
</view>
<view v-if="zhixingcenterindex == 0" class="cenisbox">
<view
@@ -345,6 +364,107 @@
<view v-if="prohibitedlist.length==0" style="width: 100%;text-align: center;margin-top: 60rpx;">暂无数据
</view>
</view>
<!-- 需求挖掘率 -->
<view v-if="zhixingcenterindex == 2" class="cenisbox">
<view class="top-box">
<view style="width:50%;text-align:center">挖掘执行:{{wordFraction||0}}%</view>
<view style="width:50%;text-align:center">挖掘成功:{{percent||0}}%</view>
</view>
<view
style="width: 100%;height: 80rpx;border-bottom: 1rpx solid #E0E0E0;display: flex;align-items: center;">
<view style="flex: 1;font-size: 28rpx;color: #333333;font-weight: 600;text-indent: 28rpx;">指标
</view>
<view style="flex: 1;font-size: 28rpx;color: #333333;font-weight: 600;text-align:center">执行率
</view>
<view style="flex: 1;color: #333333;font-weight: 600;text-align:center;text-indent:28rpx">挖掘成功
</view>
<view style="flex: 0 0 30rpx"></view>
</view>
<view class="Level-box" v-for="(item,index) in KeyWordsfractionList" :key="index">
<view class="Level1che" @click="hangeshow2(item,1)">
<view class="title1" style="flex:1">{{item.name}}</view>
<view class="Level1-middle" style="flex:2;display:flex;">
<view class="item" style="flex:1;text-align:center;">执行{{item.fraction || 0}}%</view>
<view class="item" style="flex:1;text-align:center;color:#2671E2"
v-if="item.keywordsList&&item.keywordsList.length">已完成({{
item.keywordsList.length
}})</view>
<view class="item" v-else style="flex:1;text-align:center;">未完成</view>
</view>
<view class="jiantobox">
<image v-if="!item.show" class="arrow rotatearrow" src="/static/images/down.png"
mode="" />
<image v-else class="arrow" src="/static/images/up.png" mode="" />
</view>
</view>
<!-- 话术在一级下 -->
<view v-if="item.children&&item.children.length==0">
<view class="hhhbox" v-if="item.show" style="padding: 30rpx;">
<view class="hsnrtest" style="font-size:30rpx;color: #333;line-height: 42rpx;">
客户标签:{{ getKeywordsList(item.keywordsList) }}</view>
<view class="hsnrtest" style="margin-top:10rpx">话术内容:</view>
<view v-if="item.modelList.length==0">暂无话术</view>
<view class="Level3che" @click="clickWajue(che)" v-for="(che,inc) in item.modelList"
:key='inc'>
<view class="title1"
:style="che.isAskQuestions==2?'color:#FF8C13':che.isAskQuestions==0?'':'color: #666'">
{{inc+1}}.{{che.showFormatExpression}}
</view>
<view class="jiantobox">
<!-- 0本次选中 1未选中 2上次选中 -->
<image v-if="che.isAskQuestions==0" class="arrow"
src="/static/images/rate-checked.png" mode="" />
<image v-else-if="che.isAskQuestions==2" class="arrow"
src="/static/images/checked-yellow.png" mode="" />
<image v-else class="arrow" src="/static/images/rate-nocheck.png" mode="" />
</view>
</view>
</view>
</view>
<!-- 话术二级下 -->
<view v-if="item.children&&item.children.length">
<view class="hhhbox" v-if="item.show" v-for="(subitem,i) in item.children" :key="i">
<view class="Level2che" @click="hangeshow2(subitem,1)">
<view class="title1 u-line-1">{{subitem.name}}</view>
<view class="leve1-jindu">
<view class="zhixing" v-if="subitem.isAskQuestions==0">已执行</view>
<view class="zhixing2" v-else>未执行</view>
</view>
<view class="leve1-jindu">
<view class="zhixing" v-if="subitem.selected==0">已完成</view>
<view class="zhixing2" v-else>未完成</view>
</view>
<view class="jiantobox">
<image v-if="!subitem.show" class="arrow rotatearrow"
src="/static/images/down.png" mode="" />
<image v-else class="arrow" src="/static/images/up.png" mode="" />
</view>
</view>
<view v-if="subitem.show" style="padding: 30rpx 0;">
<view class="hsnrtest" style="font-size:30rpx;color: #333;line-height: 42rpx;">
客户标签:{{ getKeywordsList(subitem.keywordsList) }}</view>
<view class="hsnrtest" style="margin-top: 10rpx">话术内容:</view>
<view v-if="subitem.modelList.length==0">暂无话术</view>
<view class="Level3che" @click="clickWajue(che)"
v-for="(che,inc) in subitem.modelList" :key='inc'>
<view class="title1"
:style="che.isAskQuestions==2?'color:#FF8C13':che.isAskQuestions==0?'':'color: #666'">
{{inc+1}}.{{che.showFormatExpression}}
</view>
<view class="jiantobox">
<!-- 0本次选中 1未选中 2上次选中 -->
<image v-if="che.isAskQuestions==0" class="arrow"
src="/static/images/rate-checked.png" mode="" />
<image v-else-if="che.isAskQuestions==2" class="arrow"
src="/static/images/checked-yellow.png" mode="" />
<image v-else class="arrow" src="/static/images/rate-nocheck.png" mode="" />
</view>
</view>
</view>
</view>
</view>
</view>
</view>
</view>

<!-- 客户意向 -->
@@ -393,7 +513,6 @@
</view>
</view>
</view>
<!-- @click="Edittag(item,chend,index,i)" -->
<view class="cenisbox" v-if="kehuyixiangcenterindex==1">
<view style="width: 100%;height: 100%;text-align: center;margin-top: 200rpx;"
v-if="Acquirecustomerintentlist2.length==0">
@@ -486,6 +605,7 @@
},
data() {
return {
KeyWordsfractionList: [],
customStyle: {
'width': '320rpx',
'font-size': '34rpx',
@@ -600,10 +720,11 @@
nowPlaying: 0, // 当前播放位置
stepPosition: 0, // 需要跳转的播放位置
templateList: [], // 销讲业务
showTemplate: false, // 展示选择销讲业务弹窗
templateName: '', // 销讲业务类型文字
percent: 0,// 挖掘成功
wordFraction: 0,// 挖掘执行
};
},
computed: {
@@ -621,6 +742,8 @@
this.customerId = options.customerId;
this.itemobj = uni.getStorageSync('searchobj');
this.stateisshow = options.stateisshow;
this.wordFraction = options.wordFraction == 'undefined' ? 0 : options.wordFraction;

this.$zaudio.autoPlay = true
if (options.refresh) this.refresh = options.refresh

@@ -701,7 +824,6 @@
},

methods: {
// 获取销讲业务
getMarketingBusiness() {
this.$u.get('/customer/marketingBusiness', {
@@ -711,7 +833,80 @@
this.templateList = res
})
},
hangeshow2(item, type) {
item.show = !item.show;
},
//挖掘率话术客户标签展示
getKeywordsList(list) {
let keywords = [];
if (list && list.length) {
keywords = list.map((item) => item.name);
} else {
return "--";
}
return keywords.join(",");
},
// // 计算挖掘执行的完成率
getPercent() {
let countArr = this.KeyWordsfractionList.filter(item => item.selected == 0)
this.percent = (countArr.length / this.KeyWordsfractionList.length) * 100
this.percent = this.percent.toFixed(0)
},
// 客户详情需求挖掘话术
getfindKeyWordsBycusId() {
this.$u.get("/cusLvStatistics/findKeyWordsBycusId?cusId=" + this.customerId).then(res => {
// console.log(res)
if (res.length) {
res.forEach((item, index) => {
item.show = false
if (index == 0) {
item.show = true
}
item.children.forEach((obj, i) => {
obj.show = false
if (i == 0 && index == 0) {
obj.show = true;
}
})
})
this.KeyWordsfractionList = res
this.getPercent()
} else {
this.KeyWordsfractionList = []
}
})
},
clickWajue(item) {
if (item.isAskQuestions == 0) {
this.Pinspeak = false
uni.navigateTo({
url: '/pages/learning/Keywordsearch?customerId=' + this.customerId + "&keyword=" + item
.showFormatExpression +
"&skpl=" + "2" + '&UpDateEvent=DETAILS2INIT'
})
}
},
// 对话加命中标签
dealTypes(type) {
if (type) {
// let tem = type.split(',')
let tem = type.substring(1).split(',')
return tem
} else {
return []
}
},
// 对话加命中标签
dealword(type) {
if (type) {
let a = type.split('-')
let rest = type.substring(2).split('-').join(',')
let arr = [a[0], rest]
return arr
} else {
return []
}
},
// 跳转设备日志页面
eqLogClick() {
uni.navigateTo({
@@ -861,8 +1056,10 @@
this.zhixingcenterindex = i;
if (i == 0) {
this.getRatelist()
} else {
} else if(i ==1) {
this.huoqujinji()
}else{
this.getfindKeyWordsBycusId()
}
},
//获取禁忌
@@ -1119,7 +1316,7 @@
this.stateisshow = 1;
uni.navigateTo({
url: '/pages/learning/Keywordsearch?customerId=' + this.customerId + "&status=" + this.status +
"&skpl=" + "1" + '&UpDateEvent=DETAILS2INIT'
"&skpl=" + "1" + '&UpDateEvent=DETAILS2INIT&types=1'
})
},
//标记选择角色
@@ -1985,6 +2182,40 @@


<style lang="scss" scoped>
.contentInfo .newmark {
margin: 30rpx 0 10rpx 30rpx;

.mark-item {
display: flex;
flex-wrap: wrap;
margin-bottom: 12rpx;

.markicon {
width: 30rpx;
height: 30rpx;
margin-right: 12rpx;
}

.marktext {
font-size: 24rpx;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #3E50E8;
min-height: 30rpx;
line-height: 30rpx;
max-width: 420rpx;
text-align: left;
word-break: break-all;
}
}
}

.scroll-Y .text[data-speaker="2"] .newmark,
.scroll-Y .text[data-speaker="4"] .newmark,
.scroll-Y .text[data-speaker="8"] .newmark,
.scroll-Y .text[data-speaker="6"] .newmark {
// margin-left: 84rpx;
}
.box {
width: 100%;
height: 100vh;
@@ -1997,13 +2228,15 @@
line-height: 60rpx;
border-bottom: 1px solid #E0E0E0;
display: flex;
justify-content: space-around;
}

.pingfenbox view {
flex: 1;
width: 100%;
height: 100%;
text-align: center;
font-size: 28rpx;
text-indent: 20rpx;
padding: 0 18rpx;
}

.activecllasscet {
@@ -2408,6 +2641,13 @@
.cenisbox {
flex: 1;
overflow: auto;
.top-box {
height: 80rpx;
line-height: 80rpx;
display: flex;
color: #2671E2;
border-bottom: 1rpx solid #ccc;
}

.jianbox {
width: 100%;
@@ -2640,15 +2880,11 @@
}

// 顾问默认在右边显示
.scroll-Y .text[data-guwen="0"] // .scroll-Y .text[data-speaker="2"],

// .scroll-Y .text[data-speaker="4"],
// .scroll-Y .text[data-speaker="6"]
.scroll-Y .text[data-guwen="0"]
{
flex-direction: row-reverse;
text-align: right;


.contentInfo {
.info {
color: #666;
@@ -2679,10 +2915,7 @@

}

.scroll-Y .text[data-guwen="0"] // .scroll-Y .text[data-speaker="2"],

// .scroll-Y .text[data-speaker="4"],
// .scroll-Y .text[data-speaker="6"]
.scroll-Y .text[data-guwen="0"]
{
.contentInfo {
.info {
@@ -2907,9 +3140,7 @@
border-bottom: 1rpx solid #E0E0E0;
background: #FFFFFF;

// padding-bottom: 32rpx;
.hsnrtest {
height: 24rpx;
font-size: 24rpx;
font-weight: 400;
color: #666666;


+ 1
- 1
pages/mine/reception/addreception.vue Ver fichero

@@ -40,7 +40,7 @@
</view>
</view>

<view class="title" style="border: none;" @click="Buildingselection()">
<view class="title" @click="Buildingselection()">
<view class="titletext">客户来源</view>
<view class="titletext2"
style="font-size: 30rpx;font-weight: 400;color: #B2B2B2;line-height: 110rpx;padding-left: 10rpx;">


BIN
static/images/iconFilter.png Ver fichero

Antes Después
Anchura: 80  |  Altura: 80  |  Tamaño: 2.9 KiB

BIN
static/images/ranking1.png Ver fichero

Antes Después
Anchura: 76  |  Altura: 76  |  Tamaño: 6.0 KiB

BIN
static/images/ranking2.png Ver fichero

Antes Después
Anchura: 76  |  Altura: 76  |  Tamaño: 6.2 KiB

BIN
static/images/ranking3.png Ver fichero

Antes Después
Anchura: 80  |  Altura: 80  |  Tamaño: 7.2 KiB

Cargando…
Cancelar
Guardar