@@ -2,9 +2,9 @@ | |||||
* 小程序配置文件 | * 小程序配置文件 | ||||
*/ | */ | ||||
// 此处主机域名修改成腾讯云解决方案分配的域名 | // 此处主机域名修改成腾讯云解决方案分配的域名 | ||||
var host = 'http://121.42.63.138:9091/autoSR/api'; // 测试站 | |||||
// var host = 'http://121.42.63.138:9091/autoSR/api'; // 测试站 | |||||
// var host = 'http://192.168.31.163:8080/autoSR/api'; // 长龙 | // var host = 'http://192.168.31.163:8080/autoSR/api'; // 长龙 | ||||
// var host = 'http://192.168.31.128:8080/autoSR/api'; // 佳豪 | |||||
var host = 'http://192.168.31.128:8080/autoSR/api'; // 佳豪 | |||||
// var host = 'http://10.2.1.104:8081/autoSR/api'; // 刘敏 | // var host = 'http://10.2.1.104:8081/autoSR/api'; // 刘敏 | ||||
// var host = 'https://zkgj.quhouse.com/api'; // 质控正式 | // var host = 'https://zkgj.quhouse.com/api'; // 质控正式 | ||||
// var host = 'https://hfju.com/api'; // 数智正式 | // var host = 'https://hfju.com/api'; // 数智正式 | ||||
@@ -968,7 +968,7 @@ | |||||
Confirmthetag(){ | Confirmthetag(){ | ||||
var num=this.roleindexbiaoji+1; | var num=this.roleindexbiaoji+1; | ||||
uni.request({ | uni.request({ | ||||
url: config.service.markConsultant + '?id=' + this.luyinList[this.csdFileindex].id+"&speaker="+num, //仅为示例,并非真实接口地址。 | |||||
url: config.service.markConsultant + '?id=' + this.luyinList[this.csdFileindex].id+"&speaker="+num+'&customerId='+this.customerId, //仅为示例,并非真实接口地址。 | |||||
method: "GET", | method: "GET", | ||||
header: { | header: { | ||||
'content-type': 'application/json', | 'content-type': 'application/json', | ||||
@@ -57,33 +57,52 @@ | |||||
</view> | </view> | ||||
</view> | </view> | ||||
<view class="tabactive1" v-if="activeTotal==0"> | |||||
<view class="content-tips" v-for="(item,index) in Thevisitingrecords" :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">代接待</view> | |||||
</view> | |||||
<!-- <view class="right"> | |||||
<view class="point"></view> | |||||
<view class="">优秀案例</view> | |||||
</view> --> | |||||
<!-- 接待记录 --> | |||||
<view class="tabactive1" v-if="activeTotal==0" style="min-height: 600rpx;"> | |||||
<view v-if="Thevisitingrecords.length==0" style="width: 100%;height: 100%;display: flex;align-items: center;"> | |||||
<view style="width: 100%;padding-top: 60rpx;"> | |||||
<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> | ||||
<view class="content-sec"> | |||||
<view class="left"> | |||||
<view class="cus">客户:{{item.name || ''}} |</view> | |||||
<view class="arriveNum">{{item.visitRecord || '--'}}次到访</view> | |||||
</view> | |||||
<view class="right">{{item.fraction || '0'}}% | {{item.fraction || '0'}}分</view> | |||||
<view style="text-align: center;width: 100%;margin-top: 20rpx;color: #999999;">暂无数据</view> | |||||
</view> | |||||
</view> | |||||
<view v-if="Thevisitingrecords.length!=0" class="content-tips" v-for="(item,index) in Thevisitingrecords" :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">代接待</view> | |||||
</view> | |||||
<!-- <view class="right"> | |||||
<view class="point"></view> | |||||
<view class="">优秀案例</view> | |||||
</view> --> | |||||
</view> | |||||
<view class="content-sec"> | |||||
<view class="left"> | |||||
<view class="cus">客户:{{item.name || ''}} |</view> | |||||
<view class="arriveNum">{{item.visitRecord || '--'}}次到访</view> | |||||
</view> | </view> | ||||
<view class="content-last">{{item.createTime}} | {{item.mm || '--'}}分钟</view> | |||||
<view class="right">{{item.fraction || '0'}}% | {{item.fraction || '0'}}分</view> | |||||
</view> | </view> | ||||
<view class="content-last">{{item.createTime}} | {{item.mm || '--'}}分钟</view> | |||||
</view> | |||||
</view> | </view> | ||||
<view class="tabactive2" v-if="activeTotal==1"> | |||||
<view class="tab2-tips" v-for="(item,index) in fllowList" :key="index"> | |||||
<!-- 跟进记录 --> | |||||
<view class="tabactive2" v-if="activeTotal==1" style="min-height: 600rpx;"> | |||||
<view v-if="fllowList.length==0" style="width: 100%;height: 100%;display: flex;align-items: center;"> | |||||
<view style="width: 100%;padding-top: 60rpx;"> | |||||
<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="fllowList.length!=0" class="tab2-tips" v-for="(item,index) in fllowList" :key="index"> | |||||
<view class="tab2-first"> | <view class="tab2-first"> | ||||
<view class="tab2-first-1"> | <view class="tab2-first-1"> | ||||
<view class="tab2-first-left"> | <view class="tab2-first-left"> | ||||
@@ -92,7 +111,7 @@ | |||||
</view> | </view> | ||||
<view class="tab2-first-right">{{item.createTime}}</view> | <view class="tab2-first-right">{{item.createTime}}</view> | ||||
</view> | </view> | ||||
<view class="tab2-first-foot">{{item.remarks || '--'}}</view> | |||||
<view class="tab2-first-foot">跟进内容:{{item.remarks || '暂无'}}</view> | |||||
</view> | </view> | ||||
<!-- <view class="tab2-sec"> | <!-- <view class="tab2-sec"> | ||||
<view class="tab-sec-edit">编辑记录</view> | <view class="tab-sec-edit">编辑记录</view> | ||||
@@ -100,37 +119,69 @@ | |||||
</view> | </view> | ||||
</view> | </view> | ||||
<!-- <view class="tabactive" v-if="activeTotal==2">执行率</view> --> | |||||
<!-- 评分 --> | <!-- 评分 --> | ||||
<view v-if="activeTotal==2" class="tabactive rate-box" > | |||||
<view class="title">总执行率 {{totalRate}}%</view> | |||||
<view v-for="(item,index) in ratelist" :key="index" class="u-m-b-14"> | |||||
<view class="level1"> | |||||
<view class="level-name u-line-1"> | |||||
{{item.name}} | |||||
<view class="ratecenter" v-if="activeTotal==2"> | |||||
<view class="ratetetle">执行总览</view> | |||||
<view class="rateyuanbox"> | |||||
<view class="rateyuanboxzuo"> | |||||
<view class="boxzuoview cccccc">3次</view> | |||||
<view style="color: #333333;font-size: 28rpx;font-weight: 400;text-align: center;">接待次数</view> | |||||
</view> | |||||
<view class="rateyuanboxyou"> | |||||
<view class="boxzuoview" style="width: 100%;display: flex;justify-content: center;"> | |||||
<u-circle-progress active-color="#4FC78F" width='139' :percent="customerInfo.fraction"> | |||||
<view style="text-align: center;color: #4FC78F;">{{customerInfo.fraction}}%</view> | |||||
</u-circle-progress> | |||||
</view> | </view> | ||||
<view class="level-progress"> | |||||
<view class="color" :style="{width: item.ratepercent/item.rate*100+'%'}"></view> | |||||
<view style="color: #333333;font-size: 28rpx;font-weight: 400;text-align: center;">销讲执行率</view> | |||||
</view> | |||||
<view class="rateyuanboxzuo"> | |||||
<view class="boxzuoview cccccc">{{customerInfo.mm}}分</view> | |||||
<view style="color: #333333;font-size: 28rpx;font-weight: 400;text-align: center;">接待时长</view> | |||||
</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: 20rpx;">指标</view> | |||||
<view style="flex: 1;font-size: 28rpx;color: #333333;font-weight: 600;text-indent: 170rpx;">执行率</view> | |||||
</view> | |||||
<view v-if="ratelist.length==0" style="width: 100%;height: 100%;display: flex;align-items: center;"> | |||||
<view style="width: 100%;padding-top: 60rpx;"> | |||||
<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> | ||||
<view class="level-rate">{{((item.ratepercent/item.rate).toFixed(2)*100).toFixed()}}%</view> | |||||
<image v-if="!item.show" class="arrow rotatearrow" @click="changeshow(item,1)" src="/static/images/down.png" | |||||
mode="" /> | |||||
<image v-else class="arrow" @click="changeshow(item,0)" src="/static/images/up.png" mode="" /> | |||||
<view style="text-align: center;width: 100%;margin-top: 20rpx;color: #999999;">暂无数据</view> | |||||
</view> | </view> | ||||
<view class="level1-subbox" v-if="item.show"> | |||||
<view class="sub-name" v-for="(subitem,i) in item.children" :key="i"> | |||||
<view class="subitem-name u-line-1" @tap="clickaudeopal(subitem)">{{subitem.name}}</view> | |||||
<image class="checkimg" v-if="!subitem.selected" src="/static/images/rate-checked.png" mode="" /> | |||||
<image class="checkimg" v-else src="/static/images/rate-nocheck.png" mode="" /> | |||||
</view> | |||||
<view v-if="ratelist.length!=0" class="rate-box" style="margin-top: 10rpx;"> | |||||
<!-- <view class="title">总执行率 {{totalRate}}%</view> --> | |||||
<view v-for="(item,index) in ratelist" :key="index" class="u-m-b-14"> | |||||
<view class="level1"> | |||||
<view class="level-name u-line-1"> | |||||
{{item.name}} | |||||
</view> | |||||
<view class="level-progress"> | |||||
<view class="color" :style="{width: item.ratepercent/item.rate*100+'%'}"></view> | |||||
</view> | |||||
<view class="level-rate">{{((item.ratepercent/item.rate).toFixed(2)*100).toFixed()}}%</view> | |||||
<image v-if="!item.show" class="arrow rotatearrow" @click="changeshow(item,1)" src="/static/images/down.png" | |||||
mode="" /> | |||||
<image v-else class="arrow" @click="changeshow(item,0)" src="/static/images/up.png" mode="" /> | |||||
</view> | |||||
<view class="level1-subbox" v-if="item.show"> | |||||
<view class="sub-name" v-for="(subitem,i) in item.children" :key="i"> | |||||
<view class="subitem-name u-line-1" @tap="clickaudeopal(subitem)">{{subitem.name}}</view> | |||||
<image class="checkimg" v-if="!subitem.selected" src="/static/images/rate-checked.png" mode="" /> | |||||
<image class="checkimg" v-else src="/static/images/rate-nocheck.png" mode="" /> | |||||
</view> | |||||
</view> | </view> | ||||
</view> | </view> | ||||
</view> | </view> | ||||
</view> | </view> | ||||
</view> | </view> | ||||
<view class="pon-foot"> | |||||
<view class="pon-foot" v-if="buttonisshow"> | |||||
<view class="foot-tab" @click="goRemind">添加提醒</view> | <view class="foot-tab" @click="goRemind">添加提醒</view> | ||||
<!-- <view class="foot-tab">拨打电话</view> --> | <!-- <view class="foot-tab">拨打电话</view> --> | ||||
<view class="foot-tab" @click="followRecordAdd()">写跟进</view> | <view class="foot-tab" @click="followRecordAdd()">写跟进</view> | ||||
@@ -154,12 +205,20 @@ | |||||
totalRate:[], | totalRate:[], | ||||
ratelist:[], | ratelist:[], | ||||
fllowList:[], | fllowList:[], | ||||
userInfo:{}, | |||||
buttonisshow:false | |||||
} | } | ||||
}, | }, | ||||
onLoad(options) { | onLoad(options) { | ||||
this.customerId = options.id; | this.customerId = options.id; | ||||
}, | }, | ||||
onShow() { | onShow() { | ||||
this.userInfo = uni.getStorageSync('weapp_session_userInfo_data'); | |||||
if(this.userInfo.dataCode == 6){ | |||||
this.buttonisshow=true; | |||||
}else{ | |||||
this.buttonisshow=false | |||||
} | |||||
this.getCustomerInfo() | this.getCustomerInfo() | ||||
this.tabtimetap(0) | this.tabtimetap(0) | ||||
}, | }, | ||||
@@ -176,12 +235,12 @@ | |||||
this.$u.get("/customer/findById", { | this.$u.get("/customer/findById", { | ||||
id: this.customerId | id: this.customerId | ||||
}).then(res => { | }).then(res => { | ||||
if(res.fraction==null){ | |||||
res.fraction='0'; | |||||
} | |||||
this.customerInfo = res; | this.customerInfo = res; | ||||
}) | }) | ||||
}, | }, | ||||
tabtimetap(idx){ | tabtimetap(idx){ | ||||
this.activeTotal=idx | this.activeTotal=idx | ||||
if(idx==0){ | if(idx==0){ | ||||
@@ -234,6 +293,11 @@ | |||||
this.$u.post("/customer/getCusStage", { | this.$u.post("/customer/getCusStage", { | ||||
customerId: this.customerId | customerId: this.customerId | ||||
}).then(res => { | }).then(res => { | ||||
res.forEach(item=>{ | |||||
item.agentName=this.customerInfo.agentName | |||||
}) | |||||
this.fllowList = res; | this.fllowList = res; | ||||
}) | }) | ||||
}, | }, | ||||
@@ -324,6 +388,45 @@ | |||||
</script> | </script> | ||||
<style lang="scss" scoped> | <style lang="scss" scoped> | ||||
.cccccc{ | |||||
text-align: center; | |||||
height: 140rpx; | |||||
line-height: 140rpx; | |||||
font-size: 30rpx; | |||||
} | |||||
.ratecenter{ | |||||
background-color: #FFFFFF; | |||||
padding-bottom: 30rpx; | |||||
width: 100%; | |||||
.ratetetle{ | |||||
padding: 30rpx; | |||||
font-size: 30rpx; | |||||
font-weight: 400; | |||||
color: #333333; | |||||
padding-bottom:6rpx; | |||||
} | |||||
.rateyuanbox{ | |||||
width: 100%; | |||||
height:210rpx; | |||||
padding-bottom: 30rpx; | |||||
border-bottom:1rpx solid #E0E0E0; | |||||
display: flex; | |||||
padding-left: 80rpx; | |||||
padding-right: 80rpx; | |||||
.rateyuanboxzuo{ | |||||
width: 30%; | |||||
height: 100%; | |||||
} | |||||
.rateyuanboxyou{ | |||||
width: 40%; | |||||
height: 100%; | |||||
} | |||||
.boxzuoview{ | |||||
width: 100%; | |||||
height: 140rpx; | |||||
} | |||||
} | |||||
} | |||||
.box { | .box { | ||||
width: 100%; | width: 100%; | ||||
height: 100%; | height: 100%; | ||||
@@ -695,7 +798,7 @@ | |||||
.tabactive2{ | .tabactive2{ | ||||
.tab2-tips{ | .tab2-tips{ | ||||
background: #fff; | background: #fff; | ||||
height: 270rpx; | |||||
// height: 270rpx; | |||||
overflow: auto; | overflow: auto; | ||||
margin-bottom: 20rpx; | margin-bottom: 20rpx; | ||||
.tab2-first{ | .tab2-first{ | ||||
@@ -3,7 +3,7 @@ | |||||
<view style="width: 690rpx;margin: 0 auto;margin-top: 20rpx;"> | <view style="width: 690rpx;margin: 0 auto;margin-top: 20rpx;"> | ||||
<u-search @search='searchinfo()' placeholder="请输入" v-model="keyword"></u-search> | <u-search @search='searchinfo()' placeholder="请输入" v-model="keyword"></u-search> | ||||
</view> | </view> | ||||
<view @click="searchinfo()">搜索</view> | |||||
<!-- <view @click="searchinfo()">搜索</view> --> | |||||
<view class="content"> | <view class="content"> | ||||
<view class="content-tips" v-for="(item,index) in recordList" :key='index' @click="godetail()"> | <view class="content-tips" v-for="(item,index) in recordList" :key='index' @click="godetail()"> | ||||
<view class="content-first"> | <view class="content-first"> | ||||
@@ -27,7 +27,7 @@ | |||||
添加时间:<view class="content-sec-lab1">{{item.createTime}}</view> | 添加时间:<view class="content-sec-lab1">{{item.createTime}}</view> | ||||
</view> | </view> | ||||
<view class="content-sec-num"> | <view class="content-sec-num"> | ||||
<view class="">{{item.visitRecord}}次到访</view> | |||||
<view class="">{{item.visitRecord || "0"}}次到访</view> | |||||
<view class="">{{item.fraction || '0'}}% | {{item.fraction || '0'}}分</view> | <view class="">{{item.fraction || '0'}}% | {{item.fraction || '0'}}分</view> | ||||
</view> | </view> | ||||
</view> | </view> | ||||
@@ -76,6 +76,7 @@ | |||||
pageSize: 10, | pageSize: 10, | ||||
query: { | query: { | ||||
projectId:this.buildingID, | projectId:this.buildingID, | ||||
nameOrPhone:this.keyword | |||||
} | } | ||||
}; | }; | ||||
this.$u.post("/customer/customerManagement", parames).then(data => { | this.$u.post("/customer/customerManagement", parames).then(data => { | ||||
@@ -148,8 +148,7 @@ | |||||
<!-- 选择顾问的选择框 --> | <!-- 选择顾问的选择框 --> | ||||
<u-select v-model="selectshow" :list="freeList" @confirm="actionSelectCallback"></u-select> | <u-select v-model="selectshow" :list="freeList" @confirm="actionSelectCallback"></u-select> | ||||
<!-- 客户标签 --> | <!-- 客户标签 --> | ||||
<u-select v-model="selectTipshow" :list="list1" @confirm="selectCallback"></u-select> | |||||
<!-- 时间选择器 --> | |||||
<u-select v-model="selectTipshow" :list="findKeywordsList" @confirm="selectCallback"></u-select> | |||||
</view> | </view> | ||||
</template> | </template> | ||||
@@ -168,14 +167,16 @@ | |||||
agentIdtext:'', | agentIdtext:'', | ||||
visitRecord:'', | visitRecord:'', | ||||
record:null, | record:null, | ||||
cunsumerTips:'' | |||||
cunsumerTips:'', | |||||
cunsumerTipsid:'' | |||||
}, | }, | ||||
stageList:['未知','到访','意向','定金','成交'], | stageList:['未知','到访','意向','定金','成交'], | ||||
recordList:[], | recordList:[], | ||||
nextPage:1, | nextPage:1, | ||||
totalRecord:'', | totalRecord:'', | ||||
freeList:[], | freeList:[], | ||||
userInfo:{} | |||||
userInfo:{}, | |||||
findKeywordsList:[], | |||||
} | } | ||||
}, | }, | ||||
onShow() { | onShow() { | ||||
@@ -183,6 +184,7 @@ | |||||
this.recordList=[] | this.recordList=[] | ||||
this.getMyCustom() | this.getMyCustom() | ||||
this.getFreeList() | this.getFreeList() | ||||
this.getfindKeywordsList() | |||||
}, | }, | ||||
onReachBottom() { | onReachBottom() { | ||||
if(this.totalRecord==this.nextPage){ | if(this.totalRecord==this.nextPage){ | ||||
@@ -210,15 +212,10 @@ | |||||
pageSize: 10, | pageSize: 10, | ||||
query: { | query: { | ||||
projectId:this.buildingID, | projectId:this.buildingID, | ||||
keywordsId:this.screen.cunsumerTipsid, | |||||
agentId:this.screen.agentId | |||||
} | } | ||||
}; | }; | ||||
if (this.screen.agentId.length > 0) { | |||||
parames.query.agentId = this.screen.agentId; | |||||
} | |||||
if (this.screen.visitRecord.length > 0) { | |||||
parames.query.visitRecord = this.screen.visitRecord; | |||||
} | |||||
if (this.screen.visitRecord > 0) { | if (this.screen.visitRecord > 0) { | ||||
parames.query.visitRecord = this.screen.visitRecord; | parames.query.visitRecord = this.screen.visitRecord; | ||||
} | } | ||||
@@ -249,6 +246,7 @@ | |||||
}, | }, | ||||
//获取顾问列表 | //获取顾问列表 | ||||
getFreeList() { | getFreeList() { | ||||
this.freeList=[] | |||||
this.$u.get("/zkAgentPool/freeList?itemId="+this.buildingID).then(res => { | this.$u.get("/zkAgentPool/freeList?itemId="+this.buildingID).then(res => { | ||||
this.freeList = res; | this.freeList = res; | ||||
this.freeList.forEach(item=>{ | this.freeList.forEach(item=>{ | ||||
@@ -257,6 +255,21 @@ | |||||
}) | }) | ||||
}) | }) | ||||
}, | }, | ||||
//获取客户标签 | |||||
getfindKeywordsList() { | |||||
this.findKeywordsList=[] | |||||
this.$u.post("/customer/findKeywords",{houseId:this.buildingID}).then(res => { | |||||
res.forEach(item=>{ | |||||
if(item.isInterval==0){ | |||||
item.label=item.name+item.unit+'-'+item.endName+item.unit; | |||||
}else{ | |||||
item.label=item.name | |||||
} | |||||
item.value=item.id; | |||||
}) | |||||
this.findKeywordsList = res; | |||||
}) | |||||
}, | |||||
// 筛选 | // 筛选 | ||||
screenshow(){ | screenshow(){ | ||||
this.screenShow=true | this.screenShow=true | ||||
@@ -268,7 +281,8 @@ | |||||
}, | }, | ||||
//选择标签 | //选择标签 | ||||
selectCallback(e){ | selectCallback(e){ | ||||
console.log(e[0].label) | |||||
this.screen.cunsumerTips=e[0].label; | |||||
this.screen.cunsumerTipsid=e[0].value; | |||||
}, | }, | ||||
//重置 | //重置 | ||||
reset(){ | reset(){ | ||||
@@ -277,16 +291,19 @@ | |||||
agentIdtext:'', | agentIdtext:'', | ||||
visitRecord:'', | visitRecord:'', | ||||
record:null, | record:null, | ||||
cunsumerTips:'' | |||||
cunsumerTips:'', | |||||
cunsumerTipsid:'' | |||||
} | } | ||||
this.nextPage=1; | |||||
this.recordList=[]; | this.recordList=[]; | ||||
this.screenShow=false; | |||||
this.getMyCustom(); | this.getMyCustom(); | ||||
}, | }, | ||||
//筛选确认 | //筛选确认 | ||||
screensure(){ | screensure(){ | ||||
this.screenShow=false; | |||||
this.nextPage=1; | this.nextPage=1; | ||||
this.recordList=[]; | this.recordList=[]; | ||||
this.screenShow=false; | |||||
this.getMyCustom(); | this.getMyCustom(); | ||||
}, | }, | ||||
goSearch(){ | goSearch(){ | ||||
@@ -53,7 +53,7 @@ | |||||
<view class="content-sec"> | <view class="content-sec"> | ||||
<view class="left"> | <view class="left"> | ||||
<view class="cus">客户:{{item.name || '--'}} |</view> | <view class="cus">客户:{{item.name || '--'}} |</view> | ||||
<view class="arriveNum">首次到访</view> | |||||
<view class="arriveNum">{{item.visitRecord || "--"}}次到访</view> | |||||
</view> | </view> | ||||
<view class="right"> | <view class="right"> | ||||
{{item.fraction || '0'}}% | {{item.fraction || '0'}}分 | {{item.fraction || '0'}}% | {{item.fraction || '0'}}分 | ||||
@@ -100,10 +100,10 @@ | |||||
标记顾问 | 标记顾问 | ||||
</view> | </view> | ||||
<view class="screen-record-tab"> | <view class="screen-record-tab"> | ||||
<view :class="[screen.flag==0?'screen-record-chose':'screen-record-nochose']" @click="screen.flag=0"> | |||||
<view :class="[screen.markAdvisor==1?'screen-record-chose':'screen-record-nochose']" @click="screen.markAdvisor=1"> | |||||
标记 | 标记 | ||||
</view> | </view> | ||||
<view :class="[screen.flag==1?'screen-record-chose':'screen-record-nochose']" @click="screen.flag=1"> | |||||
<view :class="[screen.markAdvisor==0?'screen-record-chose':'screen-record-nochose']" @click="screen.markAdvisor=0"> | |||||
未标记 | 未标记 | ||||
</view> | </view> | ||||
</view> | </view> | ||||
@@ -113,16 +113,16 @@ | |||||
到访次数 | 到访次数 | ||||
</view> | </view> | ||||
<view class="screen-record-tab"> | <view class="screen-record-tab"> | ||||
<view :class="[screen.arriveNum==0?'screen-record-chose':'screen-record-nochose']" @click="screen.arriveNum=0"> | |||||
<view :class="[screen.visitRecord==1?'screen-record-chose':'screen-record-nochose']" @click="screen.visitRecord=1"> | |||||
首次到访 | 首次到访 | ||||
</view> | </view> | ||||
<view :class="[screen.arriveNum==1?'screen-record-chose':'screen-record-nochose']" @click="screen.arriveNum=1"> | |||||
<view :class="[screen.visitRecord==2?'screen-record-chose':'screen-record-nochose']" @click="screen.visitRecord=2"> | |||||
第二次 | 第二次 | ||||
</view> | </view> | ||||
<view :class="[screen.arriveNum==2?'screen-record-chose':'screen-record-nochose']" @click="screen.arriveNum=2"> | |||||
<view :class="[screen.visitRecord==3?'screen-record-chose':'screen-record-nochose']" @click="screen.visitRecord=3"> | |||||
第三次 | 第三次 | ||||
</view> | </view> | ||||
<view :class="[screen.arriveNum==3?'screen-record-chose':'screen-record-nochose']" @click="screen.arriveNum=3"> | |||||
<view :class="[screen.visitRecord==4?'screen-record-chose':'screen-record-nochose']" @click="screen.visitRecord=4"> | |||||
三次以上 | 三次以上 | ||||
</view> | </view> | ||||
</view> | </view> | ||||
@@ -156,8 +156,8 @@ | |||||
screen:{ | screen:{ | ||||
agentId:'',//顾问id | agentId:'',//顾问id | ||||
record:'0', | record:'0', | ||||
flag:'0', | |||||
arriveNum:'0' | |||||
markAdvisor:null, | |||||
visitRecord:null | |||||
}, | }, | ||||
freeList:[],//顾问 | freeList:[],//顾问 | ||||
@@ -217,15 +217,18 @@ | |||||
uni.navigateTo({ | uni.navigateTo({ | ||||
url: `/pages/mine/details?customerId=${newobj.customerId}&status=${newobj.status}&itemobj=${JSON.stringify(item)}&stateisshow=${"1"}` | url: `/pages/mine/details?customerId=${newobj.customerId}&status=${newobj.status}&itemobj=${JSON.stringify(item)}&stateisshow=${"1"}` | ||||
}) | }) | ||||
// uni.navigateTo({ | |||||
// url: `/pages/main/details?customerId=${newobj.customerId}&status=${newobj.status}&itemobj=${JSON.stringify(item)}&stateisshow=${"2"}` | |||||
// }) | |||||
} | } | ||||
}) | }) | ||||
} | } | ||||
}, | }, | ||||
getMyCustom(){ | getMyCustom(){ | ||||
let dateType=0; | |||||
if(this.activeTotal==3){ | |||||
dateType=null; | |||||
}else{ | |||||
dateType=this.activeTotal | |||||
} | |||||
var parames = { | var parames = { | ||||
pageNum: this.nextPage, | pageNum: this.nextPage, | ||||
pageSize: 10, | pageSize: 10, | ||||
@@ -233,12 +236,18 @@ | |||||
projectId:this.buildingID, | projectId:this.buildingID, | ||||
time:1, | time:1, | ||||
staTime:this.staTime, | staTime:this.staTime, | ||||
endtime:this.endtime | |||||
endtime:this.endtime, | |||||
visitRecord:this.screen.visitRecord, | |||||
markAdvisor:this.screen.markAdvisor, | |||||
dateType:dateType | |||||
} | } | ||||
}; | }; | ||||
if(this.screen.agentId){ | if(this.screen.agentId){ | ||||
parames.query.agentId = this.screen.agentId | parames.query.agentId = this.screen.agentId | ||||
} | } | ||||
this.$u.post("/customer/findbypage", parames).then(data => { | this.$u.post("/customer/findbypage", parames).then(data => { | ||||
var list = data.results || []; | var list = data.results || []; | ||||
this.recordList = [...this.recordList, ...list]; | this.recordList = [...this.recordList, ...list]; | ||||
@@ -263,6 +272,9 @@ | |||||
this.activeTotal = index; | this.activeTotal = index; | ||||
this.staTime=''; | this.staTime=''; | ||||
this.endtime=''; | this.endtime=''; | ||||
this.nextPage=1; | |||||
this.recordList=[]; | |||||
this.getMyCustom(); | |||||
} | } | ||||
}, | }, | ||||
//自定义时间 | //自定义时间 | ||||
@@ -289,13 +301,19 @@ | |||||
this.screen={ | this.screen={ | ||||
counselorName:'', | counselorName:'', | ||||
record:'0', | record:'0', | ||||
flag:'0', | |||||
arriveNum:'0' | |||||
markAdvisor:null, | |||||
visitRecord:null | |||||
} | } | ||||
this.screenShow=false; | |||||
this.nextPage=1; | |||||
this.recordList=[]; | |||||
this.getMyCustom(); | |||||
}, | }, | ||||
screensure(){ | screensure(){ | ||||
console.log(this.screen) | |||||
this.screenShow=false | |||||
this.screenShow=false; | |||||
this.recordList=[]; | |||||
this.nextPage=1; | |||||
this.getMyCustom(); | |||||
}, | }, | ||||
goSearch(){ | goSearch(){ | ||||
uni.navigateTo({ | uni.navigateTo({ | ||||
@@ -3,7 +3,7 @@ | |||||
<view style="width: 690rpx;margin: 0 auto;margin-top: 20rpx;"> | <view style="width: 690rpx;margin: 0 auto;margin-top: 20rpx;"> | ||||
<u-search @search='searchinfo()' placeholder="请输入" v-model="keyword"></u-search> | <u-search @search='searchinfo()' placeholder="请输入" v-model="keyword"></u-search> | ||||
</view> | </view> | ||||
<view @click="searchinfo()">搜索</view> | |||||
<!-- <view @click="searchinfo()">搜索</view> --> | |||||
<view class="content"> | <view class="content"> | ||||
<view class="content-tips" v-for="(item,index) in recordList" :key='index'> | <view class="content-tips" v-for="(item,index) in recordList" :key='index'> | ||||
@@ -21,7 +21,7 @@ | |||||
<view class="content-sec"> | <view class="content-sec"> | ||||
<view class="left"> | <view class="left"> | ||||
<view class="cus">客户:{{item.name || '--'}} |</view> | <view class="cus">客户:{{item.name || '--'}} |</view> | ||||
<view class="arriveNum">首次到访</view> | |||||
<view class="arriveNum">{{item.visitRecord || "0"}}次到访</view> | |||||
</view> | </view> | ||||
<view class="right"> | <view class="right"> | ||||
{{item.fraction || '0'}}% | {{item.fraction || '0'}}分 | {{item.fraction || '0'}}% | {{item.fraction || '0'}}分 | ||||
@@ -14,6 +14,7 @@ | |||||
<view class="Workcard" v-if="Whetheroffline==true"> | <view class="Workcard" v-if="Whetheroffline==true"> | ||||
<view class="Workcard-box"> | <view class="Workcard-box"> | ||||
<view class="Workcardimg"> | <view class="Workcardimg"> | ||||
<view class="Workcardimg1"> | <view class="Workcardimg1"> | ||||
<view v-if="percentage>20" class="bar" :style="{width : percentage + '%' }"></view> | <view v-if="percentage>20" class="bar" :style="{width : percentage + '%' }"></view> | ||||
<view v-if="percentage<20" class="bar1" :style="{width : percentage + '%' }"></view> | <view v-if="percentage<20" class="bar1" :style="{width : percentage + '%' }"></view> | ||||
@@ -85,7 +86,7 @@ | |||||
<view class="real-timebox"> | <view class="real-timebox"> | ||||
<view class="timebox"> | <view class="timebox"> | ||||
<view class="real"> | <view class="real"> | ||||
<view class="realnum">{{realtimeobj.sumCustomer || 0}}</view> | |||||
<view class="realnum">{{realtimeobj.receptionCount || 0}}</view> | |||||
<view class="realtext">接待量</view> | <view class="realtext">接待量</view> | ||||
</view> | </view> | ||||
<view class="real"> | <view class="real"> | ||||
@@ -93,7 +94,7 @@ | |||||
<view class="realtext">正在接待</view> | <view class="realtext">正在接待</view> | ||||
</view> | </view> | ||||
<view class="real"> | <view class="real"> | ||||
<view class="realnum">{{realtimeobj.activeCustomer || 0}}</view> | |||||
<view class="realnum">{{realtimeobj.sumCustomer|| 0}}</view> | |||||
<view class="realtext">接待客户</view> | <view class="realtext">接待客户</view> | ||||
</view> | </view> | ||||
<view class="real"> | <view class="real"> | ||||
@@ -125,11 +126,11 @@ | |||||
<view class="real-timebox"> | <view class="real-timebox"> | ||||
<view class="timebox"> | <view class="timebox"> | ||||
<view class="real"> | <view class="real"> | ||||
<view class="realnum">{{Thisweekobj.sumCustomer || 0}}</view> | |||||
<view class="realnum">{{Thisweekobj.receptionCount || 0}}</view> | |||||
<view class="realtext">接待量</view> | <view class="realtext">接待量</view> | ||||
</view> | </view> | ||||
<view class="real"> | <view class="real"> | ||||
<view class="realnum">{{Thisweekobj.activeCustomer || 0}}</view> | |||||
<view class="realnum">{{Thisweekobj.sumCustomer || 0}}</view> | |||||
<view class="realtext">接待客户</view> | <view class="realtext">接待客户</view> | ||||
</view> | </view> | ||||
<view class="real"> | <view class="real"> | ||||
@@ -215,6 +216,7 @@ | |||||
sumDuration: '', | sumDuration: '', | ||||
tagCustomer: '', | tagCustomer: '', | ||||
fraction: '', | fraction: '', | ||||
receptionCount:'' | |||||
}, | }, | ||||
Thisweekobj: { | Thisweekobj: { | ||||
sumCustomer: '', | sumCustomer: '', | ||||
@@ -223,6 +225,7 @@ | |||||
sumDuration: '', | sumDuration: '', | ||||
tagCustomer: '', | tagCustomer: '', | ||||
fraction: '', | fraction: '', | ||||
receptionCount:'' | |||||
} | } | ||||
}; | }; | ||||
}, | }, | ||||
@@ -279,6 +282,7 @@ | |||||
sumDuration: util.formatSecond(data.data.data.sumDuration), | sumDuration: util.formatSecond(data.data.data.sumDuration), | ||||
tagCustomer: data.data.data.tagCustomer, | tagCustomer: data.data.data.tagCustomer, | ||||
fraction: data.data.data.fraction, | fraction: data.data.data.fraction, | ||||
receptionCount:data.data.data.receptionCount | |||||
} | } | ||||
} | } | ||||
} | } | ||||
@@ -307,6 +311,7 @@ | |||||
sumDuration: util.formatSecond(data.data.data.sumDuration), | sumDuration: util.formatSecond(data.data.data.sumDuration), | ||||
tagCustomer: data.data.data.tagCustomer, | tagCustomer: data.data.data.tagCustomer, | ||||
fraction: data.data.data.fraction, | fraction: data.data.data.fraction, | ||||
receptionCount:data.data.data.receptionCount | |||||
} | } | ||||
} | } | ||||
} | } | ||||
@@ -9,10 +9,10 @@ | |||||
<view :class="{ activecllasscet: activeTotal == 0 }" @click="tabtimetap(0)">全部</view> | <view :class="{ activecllasscet: activeTotal == 0 }" @click="tabtimetap(0)">全部</view> | ||||
</view> --> | </view> --> | ||||
<view class="tabbox"> | <view class="tabbox"> | ||||
<view :class="{ activecllasscet: activeTotal == 1 }" @click="tabtimetap(1)">正在接待</view> | |||||
<view :class="{ activecllasscet: activeTotal == 1 }" @click="tabtimetap(1)">排队顾问</view> | |||||
</view> | </view> | ||||
<view class="tabbox"> | <view class="tabbox"> | ||||
<view :class="{ activecllasscet: activeTotal == 2 }" @click="tabtimetap(2)">空闲顾问</view> | |||||
<view :class="{ activecllasscet: activeTotal == 2 }" @click="tabtimetap(2)">暂停顾问</view> | |||||
</view> | </view> | ||||
</view> | </view> | ||||
<view class="content"> | <view class="content"> | ||||
@@ -28,10 +28,10 @@ | |||||
{{item.name}} | {{item.name}} | ||||
</view> | </view> | ||||
</view> | </view> | ||||
<view class="state"> | |||||
<!-- <view class="state"> | |||||
<view class="point" v-if="activeTotal==1"></view> | <view class="point" v-if="activeTotal==1"></view> | ||||
{{activeTotal==1?'接待中':'空闲'}} | {{activeTotal==1?'接待中':'空闲'}} | ||||
</view> | |||||
</view> --> | |||||
</view> | </view> | ||||
<view class="reception"> | <view class="reception"> | ||||
<view class=""> | <view class=""> | ||||
@@ -528,7 +528,7 @@ | |||||
Confirmthetag(){ | Confirmthetag(){ | ||||
var num=this.roleindexbiaoji+1; | var num=this.roleindexbiaoji+1; | ||||
uni.request({ | uni.request({ | ||||
url: config.service.markConsultant + '?id=' + this.luyinList[this.csdFileindex].id+"&speaker="+num, //仅为示例,并非真实接口地址。 | |||||
url: config.service.markConsultant + '?id=' + this.luyinList[this.csdFileindex].id+"&speaker="+num+'&customerId='+this.customerId, //仅为示例,并非真实接口地址。 | |||||
method: "GET", | method: "GET", | ||||
header: { | header: { | ||||
'content-type': 'application/json', | 'content-type': 'application/json', | ||||
@@ -1,6 +1,6 @@ | |||||
const baseUrl = 'http://121.42.63.138:9091/autoSR/api';// 测试站 | |||||
// const baseUrl = 'http://121.42.63.138:9091/autoSR/api';// 测试站 | |||||
// const baseUrl = 'http://192.168.31.161:8080/autoSR/api'; // 长龙 | // const baseUrl = 'http://192.168.31.161:8080/autoSR/api'; // 长龙 | ||||
// const baseUrl = 'http://192.168.31.128:8080/autoSR/api'; // 佳豪 | |||||
const baseUrl = 'http://192.168.31.128:8080/autoSR/api'; // 佳豪 | |||||
// const baseUrl = 'http://10.2.1.104:8081/autoSR/api'; // 刘敏 | // const baseUrl = 'http://10.2.1.104:8081/autoSR/api'; // 刘敏 | ||||
// const baseUrl = 'https://zkgj.quhouse.com/api'; // 质控正式 | // const baseUrl = 'https://zkgj.quhouse.com/api'; // 质控正式 | ||||
// const baseUrl = 'https://hfju.com/api'; // 数智正式 | // const baseUrl = 'https://hfju.com/api'; // 数智正式 | ||||