Browse Source

合并代码,提交冲突

yun
corala 1 year ago
parent
commit
c7d8902f9c
10 changed files with 394 additions and 218 deletions
  1. +2
    -2
      manifest.json
  2. +5
    -2
      pages/center/Piabodata/TrendAnalysis.vue
  3. +2
    -2
      pages/center/consumer/consumerDetail.vue
  4. +48
    -39
      pages/learning/Equinoctial/index.vue
  5. +3
    -3
      pages/login/index.vue
  6. +174
    -91
      pages/mine/details2.vue
  7. +1
    -1
      pages/mine/reception/addreception.vue
  8. +154
    -75
      pages/mine/reception/consultant.vue
  9. +3
    -1
      pages/reportExcel/dayReport.vue
  10. +2
    -2
      utils/domain.js

+ 2
- 2
manifest.json View File

@@ -1,5 +1,5 @@
{
"name" : "去房智控管家",
"name" : "数智工牌",
"appid" : "__UNI__7A1611D",
"description" : "去房智控管家",
"versionName" : "1.1.0",
@@ -91,7 +91,7 @@
},
"quickapp" : {},
"mp-weixin" : {
"appid" : "wx8f883dca5ecc5510",
"appid" : "wxe044603515ff2cb5",
"setting" : {
"urlCheck" : false,
"es6" : true,


+ 5
- 2
pages/center/Piabodata/TrendAnalysis.vue View File

@@ -76,11 +76,14 @@
<text style="margin-right: 10rpx;">对比:{{index==1?item.num1+'%':item.num1}} </text>
<template v-if="item.num2*1 != 0">
<text
:style="{color:item.num2*1>0?'red':'green'}">{{item.num2+'%'}}{{item.num2*1 > 0 ? '↑':'↓'}}</text>
:style="{color:item.num2*1>0?'red':'green'}">
<!-- +'%' -->
{{item.num2}}{{ item.name == '平均执行率' ? "%" : "" }}{{item.num2*1 > 0 ? '↑':'↓'}}</text>
</template>
<template v-else>
<!-- +'%' -->
<text
:style="{color:item.num2*1>0?'red':'green'}">{{item.num2+'%'}}</text>
:style="{color:item.num2*1>0?'red':'green'}">{{item.num2}}{{ item.name == '平均执行率' ? "%" : "" }}</text>
</template>
</view>
</view>


+ 2
- 2
pages/center/consumer/consumerDetail.vue View File

@@ -1405,12 +1405,12 @@
}

.pon-foot {
position: fixed;
position: sticky;
bottom: 0;
width: 750rpx;
height: 100rpx;
background: #FFFFFF;
box-shadow: 0px -2rpx 8rpx 0rpx rgba(224, 224, 224, 0.5);
bottom: 0;
display: flex;
justify-content: space-around;
align-items: center;


+ 48
- 39
pages/learning/Equinoctial/index.vue View File

@@ -17,18 +17,17 @@
</view>
<zaudio :duration="duration" theme="theme4"></zaudio>
</view>
<scroll-view lower-threshold='20px' @scrolltolower="ltolower()" scroll-y="true"
class="text scroll-Y" :scroll-top="scrollTop" :scroll-into-view="scrollId">
<scroll-view lower-threshold='20px' @scrolltolower="ltolower()" scroll-y="true" class="text scroll-Y"
:scroll-top="scrollTop" :scroll-into-view="scrollId">
<!-- 音频识别模块 -->
<view>
<!-- 聊天记录-->
<view class="dialog-block" v-for="(dialog,i) in dialogList" :key="i">
<view :id="'dialog'+i" class="fileName">录音文件</view>
<view class="text dingweishiy"
v-for="(item,index) in dialog.message" :key="index" :id="'dialog'+csdFileindex+'text'+item.bg"
:class="{active: Math.floor(item.bg/1000) <= playNow && Math.floor(item.ed/1000) > playNow && i==0}"
:data-speaker="item.speaker"
>
<view class="text dingweishiy" v-for="(item,index) in dialog.message" :key="index"
:id="'dialog'+csdFileindex+'text'+item.bg"
:class="{active: Math.floor(item.bg/1000) <= playNow && Math.floor(item.ed/1000) > playNow && i==0}"
:data-speaker="item.speaker">
<view class="avatar">
<text :style="[SPEAKERSTYLE(item.speaker)]">{{ item.speaker | toCapital }}</text>
</view>
@@ -208,23 +207,23 @@
startFile: '',
num: 0, //上拉 转写文件下标
Bnum: 0, //下拉 转写文件下标
ACTION: Symbol('zaudio'), // 唯一值区分每个页面的方法
isPageHide: false, // 是否息屏
duration: '',
};
},
onLoad(options) {
this.startTime=options.startTime
this.customerId=options.customerId,
this.biaoqian=options.biaoqian;
this.startFile=options.startFile;
this.startTime = options.startTime
this.customerId = options.customerId;
this.biaoqian = options.biaoqian;
this.startFile = options.startFile;
this.getdianzan()
this.getCommentList();
//注意: 不同的回调方法, 相同的业务函数方法名, 不会相互影响;
this.$zaudio.on('stop', this.ACTION, () => {
console.log('我是强制暂停或关闭小程序音频浮窗触发的')
@@ -241,14 +240,16 @@
})
},
onShow() {
//实时渲染当前的播放状态
this.$zaudio.syncRender()
this.initRecord();
!this.isPageHide && this.getluyinList();
},
onHide() {
this.isPageHide = true
},
onUnload(){
onUnload() {
//卸载不需要的业务和获取播放状态的业务,提高页面性能
this.$zaudio.off('seek', this.ACTION);
this.$zaudio.off('stop', this.ACTION);
@@ -264,11 +265,13 @@
const message = this.dialogList[0].message;
if (!message) return
for (let i = 0; i < message.length; i++) {
if ((Math.floor(message[i].bg / 1000) <= this.playNow && this.playNow < Math.floor(message[i].ed / 1000))) {
if ((Math.floor(message[i].bg / 1000) <= this.playNow && this.playNow < Math.floor(message[i].ed /
1000))) {
this.scrollId = "dialog" + this.csdFileindex + "text" + message[i].bg;
break;
}
if (i < message.length - 1 && Math.floor(message[i].ed / 1000) < this.playNow && this.playNow < Math.floor(message[i + 1].bg / 1000)) {
if (i < message.length - 1 && Math.floor(message[i].ed / 1000) < this.playNow && this.playNow <
Math.floor(message[i + 1].bg / 1000)) {
this.scrollId = "dialog" + this.csdFileindex + "text" + message[i].bg;
break;
}
@@ -286,8 +289,8 @@
duration: 2000
});
return
}else {
this.num=this.num+1;
} else {
this.num = this.num + 1;
uni.request({
url: config.service.getCorpusAnalysis + '?corpusId=' + this.luyinList[this.num].id +
"&customerId=" + this.customerId, //仅为示例,并非真实接口地址。
@@ -298,8 +301,7 @@
},
success: (data) => {
if (data.data.code == 10000) {
if (data.data.data.audioContent.length == 0) {
} else {
if (data.data.data.audioContent.length == 0) {} else {
const jsonInfo = JSON.parse(data.data.data.audioContent);
this.dialogList.push({
message: jsonInfo
@@ -386,9 +388,9 @@
if (cet.id == this.startFile) {
this.csdFileindex = index;
this.recordPath = res[index].recordPath
this.date=res[index].receptionTime
this.num=index;//下拉起始位置
this.Bnum=index;
this.date = res[index].receptionTime
this.num = index; //下拉起始位置
this.Bnum = index;
this.luyinList = res;
this.zyAudio();
this.getCorpusAnalysis()
@@ -455,7 +457,7 @@
uni.hideLoading();
}
},
//音频前进回退
sliderChangeComplate(currentTime) {},
// 获取转义后的对话结果
@@ -477,11 +479,11 @@
});
setTimeout(function() {
uni.hideLoading();
}, 2000);
}else{}
},
}, 2000);
} else {}
},
fail(error) {
return false;
return false;
}
});
},
@@ -490,12 +492,12 @@
},
// 文件切换播放
filechange(item, i) {
this.num=i;//下拉起始位置
this.Bnum=i;
this.csdFileindex=i;
this.num = i; //下拉起始位置
this.Bnum = i;
this.csdFileindex = i;
this.recordPath = item.recordPath;
this.date=item.receptionTime;
this.isshowFile=false;
this.date = item.receptionTime;
this.isshowFile = false;
setTimeout(() => {
this.$zaudio.operate(i)
}, 50)
@@ -663,7 +665,7 @@
})
})
},
//录音实例
zyAudio() {
let data = this.luyinList.map((item, index) => {
@@ -677,10 +679,17 @@
this.$zaudio.setAudio(data)
//渲染第一首音频
this.$zaudio.setRender(0)
if (this.startTime) {
setTimeout(() => {
this.stepPlay(parseInt(this.startTime / 1000))
})
}

},
// 跳转指定位置播放
stepPlay(t) {
console.log(t)
this.$zaudio.seek(t)
if (this.$zaudio.paused) {
this.$zaudio.operate()


+ 3
- 3
pages/login/index.vue View File

@@ -8,15 +8,15 @@
<view class="cwjs-item center">
<image src="https://qufang.oss-cn-beijing.aliyuncs.com/channelHelper/user.png" class="logo_input">
</image>
<input class="cwjs-item cwjs-input" v-model="username" placeholder="请输入账号名" type="number" maxlength="11" placeholder-style="color:#AAAAAA"/>
<input class="cwjs-item cwjs-input" style="font-size: 36rpx;" v-model="username" placeholder="请输入账号名" type="number" maxlength="11" placeholder-style="color:#AAAAAA"/>
</view>
</view>
<view class="cwjs-cells item-flex" style="margin-top:13rpx;">
<view class="cwjs-item center">
<image src="https://qufang.oss-cn-beijing.aliyuncs.com/channelHelper/lock.png" class="logo_input">
</image>
<input class="cwjs-item cwjs-input" placeholder="请输入密码" placeholder-style="color:#AAAAAA" type="password" v-model="password" maxlength="16" v-if="passwordType"/>
<input class="cwjs-item cwjs-input" placeholder="请输入密码" placeholder-style="color:#AAAAAA" maxlength="16" v-model="password" v-else/>
<input class="cwjs-item cwjs-input" style="font-size: 36rpx;" placeholder="请输入密码" placeholder-style="color:#AAAAAA" type="password" v-model="password" maxlength="16" v-if="passwordType"/>
<input class="cwjs-item cwjs-input" style="font-size: 36rpx;" placeholder="请输入密码" placeholder-style="color:#AAAAAA" maxlength="16" v-model="password" v-else/>
</view>
<view class="imagesBox" @tap="changeBindPassword">
<image v-if="passwordType==false" src="../../static/images/zhengkai.png" class="images" mode="scaleToFill"></image>


+ 174
- 91
pages/mine/details2.vue View File

@@ -9,12 +9,6 @@
<image v-if="status==0" @click="notappick()" src="../../static/images/nopike.png" mode=""></image>
</view>
</view>
<!-- <view class="inputbox" v-if="guanjianciishow">
<view class="thisinput" @click="toKeywordsearch()">
请输入或选择
</view>
</view> -->
<!-- 标记顾问 -->
<view class="headboxbott">
<view class="headovfu">
<u-tabs-swiper ref="tabs" font-size="30" :bold="true" swiper-width="600" :current="roleindex"
@@ -34,7 +28,14 @@
<view :id="'dialog'+i" class="fileName">录音文件</view>
<view class="text" :id="'dialog'+csdFileindex+'text'+item.bg"
:class="{active: Math.floor(item.bg/1000) <= playNow && Math.floor(item.ed/1000) > playNow, isGreen: item.isShow == 0}"
v-for="(item,index) in dialog.message" :key="index" :data-speaker="item.speaker">
v-for="(item,index) in dialog.message" :key="index" :data-speaker="item.speaker" @click.stop>
<template v-if="refined">
<view class="checkbox" :class="{select: item.checked}" @click="cbChange(item)">
<template v-if="item.checked">
<u-icon name="checkbox-mark" color="#fff" />
</template>
</view>
</template>
<view class="avatar">
<view :style="[SPEAKERSTYLE(item.speaker)]">
<text>{{ item.speaker | toCapital }}</text>
@@ -73,14 +74,14 @@
</view>
</view>
</view>
<image @click="clickbofang(dialog.backindex,item)" class="play"
<image v-if="!refined" @click="clickbofang(dialog.backindex,item)" class="play"
src="../../static/images/recordingManagement/play.png"></image>
</view>
</view>
</view>
</view>
</scroll-view>
<view class="bottombox">
<view class="bottombox" v-if="!refined">
<!-- 播放块 :src="recordPath" -->
<zaudio :duration="duration" theme="theme4"></zaudio>
<!-- 底部弹框 -->
@@ -106,13 +107,27 @@
mode=""></image>
<view @click="Receivedetailsabouttab('Receivedetailsabout')">更多</view>
<view class="allimg" v-if="Thetapeidisshow">
<view v-if="eqLog!=-1" @click="eqLogClick()" style="line-height: 70rpx;margin-top: 10rpx;">设备日志</view>
<view v-if="eqLog!=-1" @click="eqLogClick()" style="line-height: 70rpx;margin-top: 10rpx;">设备日志
</view>
<view @click="Receivetap()" style="line-height: 70rpx;margin-top: 10rpx;">接待信息</view>
<view v-if="Menulistisshow==true" @click="alllogo()" style="line-height:70rpx;">{{userlistobj.validInvalidName}}</view>
<view v-if="Menulistisshow==true" @click="alllogo()" style="line-height:70rpx;">
{{userlistobj.validInvalidName}}
</view>
</view>
</view>
<view class="tmmchen" @click="Receivetap()" v-if="Menulistisshow==false">
<image @click="Receivedetailsabouttab('Receivedetailsabout')"
src="../../static/images/audioinfo2.png" mode=""></image>
<view @click="Receivedetailsabouttab('Receivedetailsabout')">接待信息</view>
</view>
</view>
</view>
<template v-else>
<view class="bottomboxs">
<view class="bottomboxs-item" @click="sureRefinement">确定</view>
<view class="bottomboxs-item" @click="cancelAllAdd">取消</view>
</view>
</template>
<!-- 标记 -->
<view class="zhezhao" v-if="biojiisshow" @tap="unmarktap()"></view>
<view class="bounced" v-if="biojiisshow">
@@ -230,9 +245,12 @@
</view>
</view>
<view class="pingfenbox">
<view :class="{ activecllasscet: zhixingcenterindex == 0 }" @click="recordclick(0)">销讲总执行率{{totalRate||0}}%</view>
<view v-if="methodsisshow==true" :class="{ activecllasscet: zhixingcenterindex == 1 }" @click="recordclick(1)">禁忌执行</view>
<view :class="{ activecllasscet: zhixingcenterindex == 2 }" @click="recordclick(2)">需求挖掘率{{KeyWordsfraction||0}}%</view>
<view :class="{ activecllasscet: zhixingcenterindex == 0 }" @click="recordclick(0)">
销讲总执行率{{totalRate||0}}%</view>
<view v-if="methodsisshow==true" :class="{ activecllasscet: zhixingcenterindex == 1 }"
@click="recordclick(1)">禁忌执行</view>
<view :class="{ activecllasscet: zhixingcenterindex == 2 }" @click="recordclick(2)">
需求挖掘率{{KeyWordsfraction||0}}%</view>
</view>
<view v-if="zhixingcenterindex == 0" class="cenisbox">
<view
@@ -269,14 +287,13 @@
</view>
</view>
<view class="hsnrtest" v-if="subitem.show">话术内容</view>
<view class="Level3che" @tap="clickaudeopal(che)" v-if="subitem.show"
<view class="Level3che" @tap="clickaudeopal(che)" v-if="subitem.show"
v-for="(che,inc) in subitem.children" :key='inc'>
<view class="title1" :class="{gray: che.viewFlag == 1}">{{inc+1}}.{{che.name}}</view>
<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/rate-nocheck.png"
mode="" />
<image v-else class="arrow" src="/static/images/rate-nocheck.png" mode="" />
</view>
</view>
<view v-if="subitem.show" style="width: 100%;height: 30rpx;"></view>
@@ -303,7 +320,8 @@
<view class="title1">{{item.name}}</view>
<view class="leve1-jindu">
<view class="jindutiao">
<view class="huanxing" v-if="item.selected==0" :style="{width: item.fraction+'%'}"></view>
<view class="huanxing" v-if="item.selected==0" :style="{width: item.fraction+'%'}">
</view>
<view class="huanxing" v-else style="width: 0"></view>
<view class="text">{{item.selected==0?item.fraction:0}}%</view>
</view>
@@ -313,18 +331,16 @@
<image v-else class="arrow" src="/static/images/up.png" mode="" />
</view>
</view>
<!-- 话术在一级下 -->
<!-- 话术在一级下 -->
<view v-if="item.showLevel==1">
<view class="hhhbox" v-if="item.show" style="padding: 30rpx;">
<view class="hsnrtest">话术内容</view>
<view class="Level3che"
v-for="(che,inc) in item.questionList" :key='inc'>
<view class="Level3che" v-for="(che,inc) in item.questionList" :key='inc'>
<view class="title1">{{inc+1}}.{{che.question}}</view>
<view class="jiantobox">
<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/rate-nocheck.png"
mode="" />
<image v-else class="arrow" src="/static/images/rate-nocheck.png" mode="" />
</view>
</view>
</view>
@@ -346,14 +362,12 @@
</view>
<view v-if="subitem.show" style="padding: 30rpx 0;">
<view class="hsnrtest">话术内容</view>
<view class="Level3che"
v-for="(che,inc) in subitem.questionList" :key='inc'>
<view class="Level3che" v-for="(che,inc) in subitem.questionList" :key='inc'>
<view class="title1">{{inc+1}}.{{che.question}}</view>
<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/rate-nocheck.png"
mode="" />
<image v-if="che.selected==0" class="arrow"
src="/static/images/rate-checked.png" mode="" />
<image v-else class="arrow" src="/static/images/rate-nocheck.png" mode="" />
</view>
</view>
</view>
@@ -486,9 +500,9 @@
<u-select v-model="treeshow" mode="mutil-column-auto" @confirm="confirmTree" :list="treelist"></u-select>
<!-- 加载组件 -->
<loading v-model="LOADING"></loading>
</view>
</template>

<script>
@@ -615,7 +629,8 @@
isPageHide: false, // 是否息屏
duration: '', // 总时长
isBand: false, // 阻止二次提交
eqLog:0,
refined: false,
eqLog: 0,
};
},
computed: {
@@ -628,10 +643,11 @@
onLoad(options) {
this.LOADING = true
let menu = uni.getStorageSync('weapp_session_Menu_data');
this.eqLog = menu.findIndex(item=>item.name=='设备日志');
this.eqLog = menu.findIndex(item => item.name == '设备日志');

this.status = options.status;
this.customerId = options.customerId;
this.KeyWordsfraction = options.wordFraction=='undefined'?0:options.wordFraction;
this.KeyWordsfraction = options.wordFraction == 'undefined' ? 0 : options.wordFraction;
this.itemobj = uni.getStorageSync('searchobj');
// console.log(this.itemobj)
this.stateisshow = options.stateisshow;
@@ -768,6 +784,11 @@
this.wajueshow = false
this.wajueItem.isshow= false
},
// 选中取反
cbChange(item) {
item.checked = !item.checked
this.$forceUpdate()
},
// 隐藏长按提示框
cancelBeast() {
this.dialogList.forEach(res => {
@@ -776,12 +797,27 @@
})
})
},
hangeshow2(item,type){

// 重置选择加精的内容
cancelAllAdd() {
console.log('chufa')
this.dialogList.forEach(item => {
if (item.message && item.message.length > 0) {
item.message.forEach(items => {
items.checked = false
})
}
})
this.refined = false
// this.$forceUpdate()
},

hangeshow2(item, type) {
item.show = !item.show;
},
eqLogClick(){
eqLogClick() {
uni.navigateTo({
url:`./equipmentLog?id=${this.customerId}`
url: `./equipmentLog?id=${this.customerId}`
})
},
rolexuanze(index) {
@@ -837,9 +873,9 @@
this.zhixingcenterindex = i;
if (i == 0) {
this.getRatelist()
} else if(i==1) {
} else if (i == 1) {
this.huoqujinji()
}else{
} else {
this.getfindKeyWordsBycusId()
}
},
@@ -866,7 +902,7 @@
this.Pinspeak = false
uni.navigateTo({
url: '/pages/mine/ScoringPlaylist?customerId=' + this.customerId + "&id=" + item
.marketingId + "&type=" + 0 + '&UpDateEvent=DETAILS2INIT'
.marketingId + "&type=" + 0 + '&UpDateEvent=DETAILS2INIT'
})
}
},
@@ -1006,34 +1042,34 @@
success: function(res) {
that.isBand = true
if (that.noClick) {
that.noClick= false;
if (res.confirm) {
let parames = {
id: that.customerId,
validInvalid: '',
invalidReason: 0
}
if (that.userlistobj.validInvalid == 0) {
parames.validInvalid = 1;
} else {
parames.validInvalid = 0;
}
that.$u.post("/customer/updateValidInvalid", parames).then(res => {
console.log(res)
that.noClick = false;
if (res.confirm) {
let parames = {
id: that.customerId,
validInvalid: '',
invalidReason: 0
}
if (that.userlistobj.validInvalid == 0) {
parames.validInvalid = 1;
} else {
parames.validInvalid = 0;
}
that.$u.post("/customer/updateValidInvalid", parames).then(res => {
console.log(res)
that.isBand = false
that.Thetapeidisshow = false;
}).catch(e => {
that.Thetapeidisshow = false;
}).catch(e => {
that.isBand = false
})
}
setTimeout(()=> {
that.noClick= true;
}, 2000)
}
setTimeout(() => {
that.noClick = true;
}, 2000)
} else {
// 这里是重复点击的判断
// 这里是重复点击的判断
}
}
});
} else {
@@ -1064,7 +1100,7 @@
this.$u.post("/customer/updateValidInvalid", parames).then(res => {
console.log(res)
this.Thetapeidisshow = false;
}).catch(e=>{
}).catch(e => {
this.isBand = false
})
},
@@ -1166,7 +1202,8 @@
this.newluyinList = [];
this.fenjiaoseunfo()
this.$forceUpdate()
}, //------------------------------------分角色标记刷新
},
//------------------------------------分角色标记刷新
fenjiaoseunfo() {
var bgcd = this.playNow * 1000;
this.newluyinList = [];
@@ -1247,10 +1284,13 @@
//下拉标记点
this.toptextindex = data.data.data.index;
this.isShowMark = data.data.data.viewNameFlag;
console.log(this.isShowMark)
jsonInfo.forEach(item => {
item.message = JSON.parse(item.onebest)
item.backindex = this.csdFileindex
console.log(item.message, '123u8123u89i123io')
item.message.forEach(info => {
info.checked = false
})
})

this.newluyinList = jsonInfo;
@@ -1521,7 +1561,7 @@
title: '正确值不能为空',
type: 'warning',
})
this.isshow2 = true;
this.isshow2 = true;
return
}
} else {
@@ -1529,7 +1569,7 @@
title: '错误词不能为空',
type: 'warning',
})
this.isshow2 = true;
this.isshow2 = true;
return
}
}
@@ -1553,6 +1593,12 @@
},
//加精华
Addtheessence() {
this.refined = true
this.cancelBeast()
},

// 确认批量加精
sureRefinement() {
this.isshow3 = true;
this.biaoqianlist = []
let parames = {
@@ -1566,6 +1612,7 @@
})
})
},

// 取消加精
Cancelout2() {
this.isshow3 = false;
@@ -1650,30 +1697,30 @@
getfindKeyWordsBycusId() {
this.$u.get("/cusLvStatistics/findKeyWordsBycusId?cusId=" + this.customerId).then(res => {
// console.log(res)
if(res.length){
if (res.length) {
// this.KeyWordsfraction = 0
res.forEach(item=>{
res.forEach(item => {
// if(item.selected==0){
// this.KeyWordsfraction += +item.fraction // 总执行率
// }
item.show = false
item.children.forEach(obj=>{
item.children.forEach(obj => {
obj.show = false
if(obj.questionList.length){
obj.questionList.forEach(subobj=>{
subobj.show =false
if (obj.questionList.length) {
obj.questionList.forEach(subobj => {
subobj.show = false
})
}
})
if(item.questionList.length){
item.questionList.forEach(obj=>{
obj.show =false
if (item.questionList.length) {
item.questionList.forEach(obj => {
obj.show = false
})
}
})
this.KeyWordsfractionList = res
}else{
this.KeyWordsfractionList = []
} else {
this.KeyWordsfractionList = []
}
})
},
@@ -1813,14 +1860,13 @@
jsonInfo.forEach(item => {
item.message = JSON.parse(item.onebest)
item.backindex = this.csdFileindex;
if (info.onebest) {
item.message.forEach(che => {
if (che.onebest == info.onebest) {
che.onebest =
`<font style='color: red'>${che.onebest}</font>`;
}
})
}
item.message.forEach(che => {
che.checked = false
if (che.onebest == info.onebest) {
che.onebest =
`<font style='color: red'>${che.onebest}</font>`;
}
})
})

this.newluyinList = jsonInfo;
@@ -1829,7 +1875,7 @@
var itc = parseInt(info.bg / 1000)
this.adasdasdasd(itc)
},
fail: () => {
this.LOADING = false
}
@@ -2038,6 +2084,25 @@
align-items: center;
}
}

.bottomboxs {
width: 100%;
height: 90rpx;
display: flex;
justify-content: space-around;

.bottomboxs-item {
width: 45%;
height: 100%;
display: flex;
justify-content: center;
align-items: center;
color: #fff;
background: #008EF2;
font-size: 36rpx;
font-weight: bold;
}
}
}

.headboxhead {
@@ -2522,6 +2587,23 @@
}
}

.checkbox {
margin: 80rpx 20rpx 0;
width: 48rpx;
height: 48rpx;
display: flex;
justify-content: center;
align-items: center;
border-radius: 50%;
border: 1rpx solid #70798D;

&.select {
border-color: #008EF2;
background: #008EF2;
color: #fff;
}
}

.scroll-Y .text .contentInfo .info {
color: #ccc;
font-size: 18rpx;
@@ -2699,7 +2781,7 @@
color: #2671E2;
font-weight: 400;
}
.gray {
color: #979797 !important;
}
@@ -2844,7 +2926,8 @@
padding: 20rpx;
border: 1rpx solid #E4F0FF;
}
/deep/ .u-model-title{

/deep/ .u-model-title {
padding: 34rpx 0 16rpx !important;
}



+ 1
- 1
pages/mine/reception/addreception.vue View File

@@ -380,7 +380,7 @@
},
//获取顾问列表
getFreeList() {
this.$u.get("/zkAgentPool/freeList?itemId=" + this.parames.projectId).then(res => {
this.$u.get("/zkAgentPool/freeList?itemId=" + this.parames.projectId+"&deptId="+''+'&name='+'').then(res => {
this.freeList = res;
this.freeList.forEach(item => {
if (item.onLine == 0) {


+ 154
- 75
pages/mine/reception/consultant.vue View File

@@ -4,7 +4,16 @@
<view class="nextcon">
下一位接待顾问:{{textcdhSKJ}}
</view>
<view class="content" style="padding-bottom: 200rpx;">
<!-- 搜索筛选顾问 -->
<view class="search-tag">
<u-search v-model="keywords" @search="searchFunc" bgColor="#F8F8F8" shape="round" placeholder="顾问名称"
:showAction="false" :clearabled="true"></u-search>

<view class="tabs-box" v-if="list.length > 0">
<u-tabs :list="list" :current="listCurrent" name="deptName" @change="change"></u-tabs>
</view>
</view>
<view class="content">
<radio-group @change="radioChange">
<view v-for="(item,index) in freeList" :key="index" class="content-tips">
<view class="left">
@@ -13,7 +22,8 @@
</view>
<view class="text">
<view class="name">
{{item.name}}
<text class="names">{{item.name}}</text>
<text :class="item.class">{{ item.label }}</text>
</view>
<view class="num">
今日接待: {{item.todayNum}}
@@ -26,17 +36,17 @@
</view>
</view>
</radio-group>
</view>
<view class="empty" v-if="freeList.length == 0">
<image class="image" src="@/static/images/customerEmpty.png" mode=""></image>
<view class="tips">
暂无空闲顾问

<view class="empty" v-if="freeList.length == 0">
<image class="image" src="@/static/images/customerEmpty.png" mode=""></image>
<view class="tips">
暂无空闲顾问
</view>
</view>
</view>
<view class="save" @click="save" :class="{active:chosedAgentId}">
<view v-if="freeList.length > 0" class="save" @click="save" :class="{active:chosedAgentId}">
保存
</view>

<u-modal v-model="show" :mask-close-able="true" :title="'代接待提醒'" :confirm-text="confirmtext"
:cancel-text='canceltext' @cancel="confirmA" @confirm="confirmB" :show-cancel-button='true'
:content="content"></u-modal>
@@ -68,6 +78,10 @@
canceltext: '2', //取消文字
daitiReceptionobj: {},
replaceReception: 0,
keywords: '', // 关键词

list: [], // 部门列表
listCurrent: 0, //选中分类下标
from: '', // 来源页面需要通知的事件
}
},
@@ -88,8 +102,13 @@
this.getFreeList();
},
//
searchFunc() {
this.getFreeList();
},

async iniPage() {
// await this.getAllDeptName()
await this.getAllDeptName()
await this.getFreeList();
},
// 获取顾问列表
@@ -112,9 +131,10 @@
// 获取空闲顾问
async getFreeList() {
try {
let deptId = this.list.length > 0 ? this.list[this.listCurrent].id : ''
// deptId 部门id
// name 顾问名称
let res = await this.$u.get(`/zkAgentPool/freeList?itemId=${this.buildingID}`)
let res = await this.$u.get(`/zkAgentPool/freeList?itemId=${this.buildingID}&name=${this.keywords||''}&deptId=${deptId}`)
if (res.length == 0) {
this.freeList = []
} else {
@@ -123,6 +143,19 @@
this.current = res.findIndex(item => item.agentId == this.customerId)
}
this.freeList = res;
this.freeList.forEach(item => {
if (item.onLine == 0) {
item.label = "(离线)";
item.class = 'red'
} else if (item.onLine == 1) {
item.label = "(在线)";
item.class = 'gren'
} else {
item.label = "(无设备)";
item.class = 'none'
}
})
this.textcdhSKJ = res[0].name
}
this.LOADING = false
@@ -148,6 +181,7 @@
this.replaceReception = 1;
this.baochunfun()
},
save() {
console.log(this.chosedAgentId)
if (!this.chosedAgentId) {
@@ -227,50 +261,17 @@
</script>

<style lang="scss" scoped>
.empty {
flex: 1;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;

.image {
width: 478upx;
height: 478upx;
}

.tips {
font-size: 36upx;
color: #242424;
line-height: 1;
margin-top: 50upx;
}
}

.save {
position: fixed;
width: calc(100vw - 60upx);
bottom: 50upx;
left: 30rpx;
color: #FFFFFF;
font-size: 30upx;
height: 98upx;
border-radius: 8upx;
display: flex;
justify-content: center;
align-items: center;
background: rgba(42, 111, 255, 1);
}

.box {
background: #F8F8F8;
width: 100%;
height: 100%;
min-height: calc(100vh - var(--window-top));
display: flex;
flex-direction: column;
font-size: 30rpx;
font-weight: 400;

// line-height: 30px;
.nextcon {
flex-shrink: 0;
height: 78rpx;
background: #F4F8FD;
color: #2671E2;
@@ -278,44 +279,122 @@
line-height: 78rpx;
}

.content-tips {
display: flex;
justify-content: space-between;
.search-tag {
margin: 0 0 20rpx 0;
padding: 30rpx 30rpx 0;
background: #fff;
padding: 0 30rpx;
height: 148rpx;
margin-bottom: 20rpx;

.left {
.tabs-box {
background: #fff;
}
}


.content {
flex-grow: 1;
display: flex;
flex-direction: column;

.content-tips {
display: flex;
margin-top: 30rpx;
justify-content: space-between;
background: #fff;
padding: 0 30rpx;
height: 148rpx;
margin-bottom: 20rpx;

.img {
width: 72rpx;
height: 72rpx;
background: #FFFFFF;
border: 1px solid #C9C9C9;
line-height: 64rpx;
text-align: center;
border-radius: 50%;
margin-right: 20rpx;
}
.left {
display: flex;
margin-top: 30rpx;

.img {
width: 72rpx;
height: 72rpx;
background: #FFFFFF;
border: 1px solid #C9C9C9;
line-height: 64rpx;
text-align: center;
border-radius: 50%;
margin-right: 20rpx;
}

.text {
.name {
margin-top: 4rpx;
margin-bottom: 24rpx;
line-height: 30rpx;
.names {
font-weight: 600;
color: #333333;
}
.red {
margin-left: 10rpx;
color: #E7483C;
font-size: 28rpx;
}
.gren {
margin-left: 10rpx;
color: #43CD80;
font-size: 28rpx;
}
.none {
margin-left: 10rpx;
color: #999;
font-size: 28rpx;
}
}

.text {
.name {
margin-top: 4rpx;
font-weight: 600;
color: #333333;
line-height: 30rpx;
margin-bottom: 24rpx;
}
}

.right {
margin: 54rpx 0;
}
}

.right {
margin: 54rpx 0;

.empty {
flex: 1;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;

.image {
width: 300rpx;
height: 300rpx;
}

.tips {
font-size: 36rpx;
color: #242424;
line-height: 1;
margin-top: 50rpx;
}
}
}



.save {
position: sticky;
bottom: 50rpx;
z-index: 10;
flex-shrink: 0;
margin: 50rpx auto;
width: calc(100vw - 60rpx);
color: #FFFFFF;
font-size: 30rpx;
height: 98rpx;
border-radius: 8rpx;
display: flex;
justify-content: center;
align-items: center;
background: rgba(42, 111, 255, 1);
}
}
</style>

+ 3
- 1
pages/reportExcel/dayReport.vue View File

@@ -454,7 +454,9 @@
}
if (this.weekObj.ZXLTopList && this.weekObj.ZXLTopList.length > 0) {
this.consultant = this.weekObj.ZXLTopList.reverse().slice(0, 3)
this.lowest.push(this.weekObj.ZXLTopList[this.weekObj.ZXLTopList.length - 1])
if (this.weekObj.ZXLTopList[this.weekObj.ZXLTopList.length - 1].value != 100) {
this.lowest.push(this.weekObj.ZXLTopList[this.weekObj.ZXLTopList.length - 1])
}
}
if (this.weekObj.avgJdsList && this.weekObj.avgJdsList.length > 0) {
this.recording = this.weekObj.avgJdsList.reverse().slice(0, 3)


+ 2
- 2
utils/domain.js View File

@@ -1,10 +1,10 @@
// http.js使用域名
// const baseUrl = 'http://81.70.55.170:9090/autoSR/api';// 最新测试
// const baseUrl = 'http://127.0.0.1:8080/autoSR/api'; // 本地
const baseUrl = 'http://192.168.31.169:8080/autoSR/api'; // 长龙
// const baseUrl = 'http://192.168.31.169:8080/autoSR/api'; // 长龙
// const baseUrl = 'http://192.168.31.149:9090/api'; // 盛浩
// const baseUrl = 'https://zkgj.quhouse.com/api'; // 质控正式
// const baseUrl = 'https://hfju.com/api'; // 数智正式
const baseUrl = 'https://hfju.com/api'; // 数智正式
// const baseUrl = 'https://xitong.pachira.cn/api'; // AI营销辅助 普强使用




Loading…
Cancel
Save