|
- <template>
- <view class="box">
- <!-- 搜索框点击跳转 -->
- <view>
- <view class="search-box">
- <view class="search" @click="goSearch">
- <view class="search-img">
- <image class="search-img1" src="../../../static/images/search.png" mode=""></image>
- </view>
- <view class="search-text">输入客户姓名/手机号</view>
- </view>
- </view>
- </view>
-
- <!-- 选择器 -->
- <view class="boxtittab">
- <view class="tabbox" @click="taptimeisshow">
- 接待时间<u-icon name="arrow-down" size="24" style="padding-left: 12rpx;"></u-icon>
- </view>
- <view class="tabbox" @click="taptimetuisshow">
- 接待时长<u-icon name="arrow-down" size="24" style="padding-left: 12rpx;"></u-icon>
- </view>
- <view class="tabbox" @click="tapsoltishow">
- 排序<u-icon name="arrow-down" size="24" style="padding-left: 12rpx;"></u-icon>
- </view>
- <view class="tabbox" @click="screenshow">
- 更多筛选<u-icon name="arrow-down" size="24" style="padding-left: 12rpx;"></u-icon>
- </view>
- </view>
- <view class="content">
- <view v-if="recordList.length==0" style="width: 100%;height: 100%;display: flex;align-items: center;background: #FFFFFF;">
- <view style="width: 100%;padding-top: 200rpx;">
- <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="recordList.length!=0" 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;color: red;">{{item.receptionStatusName || ''}}</view>
- </view>
-
-
- <view class="right" v-if="item.recording!=0">
- <view style="margin-right: 6rpx;">{{item.validInvalidName||''}}</view>
- <view v-if="methodsisshow==true">
- <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="">无录音</view>
- </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'}}分 -->
- {{item.fraction || '0'}}%
- </view>
- </view>
- <view class="content-last">
- {{item.createTime}} | {{item.mm || '0'}} min
- </view>
- </view>
- </view>
-
- <u-popup v-model="screenShow" mode="top" height="780">
- <view class="screen">
- <!-- 顾问选择 -->
- <view class="screen-counselor">
- <view class="screen-text">
- 所属顾问
- </view>
- <view class="screen-sel" @click="selectshow = true">
- <u-input v-model="screen.counselorName" type="text" placeholder='请选择' class="screen-inp" disabled />
- <image class="screen-sel-img" src="../../../static/images/right.png" mode=""></image>
- </view>
- </view>
- <view class="screen-counselor">
- <view class="screen-text">
- 客户阶段
- </view>
- <view class="screen-sel" @click="selectPhaseShow = true">
- <u-input v-model="screen.clientStageName" type="text" placeholder='请选择' class="screen-inp" disabled />
- <image class="screen-sel-img" src="../../../static/images/right.png" mode=""></image>
- </view>
- </view>
-
- <view class="screen-record">
- <view class="screen-record-text">
- 录音标识
- </view>
- <view class="screen-record-tab">
- <view :class="[screen.validInvalid==0?'screen-record-chose':'screen-record-nochose']" @click="screenvisivalidInvalid(0)">
- 有效接待
- </view>
- <view :class="[screen.validInvalid==1?'screen-record-chose':'screen-record-nochose']" @click="screenvisivalidInvalid(1)">
- 无效接待
- </view>
- </view>
- </view>
- <view class="screen-record">
- <view class="screen-record-text">
- 标记顾问
- </view>
- <view class="screen-record-tab">
- <view :class="[screen.markAdvisor==1?'screen-record-chose':'screen-record-nochose']" @click="screenvisitRecord(1)">
- 标记
- </view>
- <view :class="[screen.markAdvisor==0?'screen-record-chose':'screen-record-nochose']" @click="screenvisitRecord(0)">
- 未标记
- </view>
- </view>
- </view>
- <view class="screen-record">
- <view class="screen-record-text">
- 到访次数
- </view>
- <view class="screen-record-tab">
- <view :class="[screen.visitRecord==1?'screen-record-chose':'screen-record-nochose']" @click="recordclick(1)">
- 首次到访
- </view>
- <view :class="[screen.visitRecord==2?'screen-record-chose':'screen-record-nochose']" @click="recordclick(2)">
- 2次到访
- </view>
- <view :class="[screen.visitRecord==3?'screen-record-chose':'screen-record-nochose']" @click="recordclick(3)">
- 3次到访
- </view>
- <view :class="[screen.visitRecord==4?'screen-record-chose':'screen-record-nochose']" @click="recordclick(4)">
- 3次以上
- </view>
- </view>
- </view>
- <view class="screen-foot">
- <view class="screen-foot-reset" @click="reset">
- 重置
- </view>
- <view class="screen-foot-sure" @click="screensure">
- 确定
- </view>
- </view>
- </view>
- </u-popup>
- <!-- 选择顾问的选择框 -->
- <u-select v-model="selectshow" :list="freeList" @confirm="actionSelectCallback"></u-select>
- <!-- 客户阶段 -->
- <u-select v-model="selectPhaseShow" :list="phaseList" @confirm="selectPhase"></u-select>
-
- <u-calendar v-model="totalTimeShow" mode="range" @change="totalTimeChange"></u-calendar>
-
- <u-popup v-model="timeshow" mode="bottom">
- <view class="timeview" :style="{ color: activeTotal == 5 ? '#2B6EFF' : '#333333' }" @click="tabtimetap(5)">全部</view>
- <view class="timeview" :style="{ color: activeTotal == 0 ? '#2B6EFF' : '#333333' }" @click="tabtimetap(0)">今天</view>
- <view class="timeview" :style="{ color: activeTotal == 1 ? '#2B6EFF' : '#333333' }" @click="tabtimetap(1)">昨天</view>
- <view class="timeview" :style="{ color: activeTotal == 2 ? '#2B6EFF' : '#333333' }" @click="tabtimetap(2)">近7天</view>
- <view class="timeview" :style="{ color: activeTotal == 3 ? '#2B6EFF' : '#333333' }" @click="tabtimetap(3)">近30天</view>
- <view class="timeview" :style="{ color: activeTotal == 4 ? '#2B6EFF' : '#333333' }" @click="tabtimetap(4)">自定义</view>
- </u-popup>
- <u-popup v-model="timetushow" mode="bottom">
- <view class="timeview" :style="{ color: activeTotal2 == 0 ? '#2B6EFF' : '#333333' }" @click="timetap(0)">全部</view>
- <view class="timeview" :style="{ color: activeTotal2 == 1 ? '#2B6EFF' : '#333333' }" @click="timetap(1)">0~15min</view>
- <view class="timeview" :style="{ color: activeTotal2 == 2 ? '#2B6EFF' : '#333333' }" @click="timetap(2)">15~30min</view>
- <view class="timeview" :style="{ color: activeTotal2 == 3 ? '#2B6EFF' : '#333333' }" @click="timetap(3)">30~60min</view>
- <view class="timeview" :style="{ color: activeTotal2 == 4 ? '#2B6EFF' : '#333333' }" @click="timetap(4)">60~90min</view>
- <view class="timeview" :style="{ color: activeTotal2 == 5 ? '#2B6EFF' : '#333333' }" @click="timetap(5)">90min以上</view>
- </u-popup>
- <u-select v-model="soltishow" :list="orderBylist" @confirm="selectCallback2"></u-select>
- </view>
- </template>
-
- <script>
- export default{
- data(){
- return{
- orderBylist:[
- {label:'全部',value:'0'},
- {label:'创建时间倒序',value:'1'},
- {label:'创建时间正序',value:'2'},
- {label:'接待时间倒序',value:'3'},
- {label:'接待时间正序',value:'4'},
- {label:'执行率正序',value:'5'},
- {label:'执行率倒序',value:'6'},
- {label:'接访次数正序',value:'7'},
- {label:'接访次数倒序',value:'8'},
- ],
- activeTotal: 5,
- value:'',
- screenShow:false,
- selectshow:false,
- selectPhaseShow:false,
- phaseList:[],
- totalTimeShow: false,
- screen:{
- agentId:'',//顾问id
- record:'0',
- markAdvisor:null,
- visitRecord:null,
- validInvalid:null,
- clientStage:'',
- clientStageName:''
- },
- freeList:[],//顾问
- recordList:[],
- buildingID:'',
- nextPage:1,
- totalRecord:"",
- staTime:'',
- endtime:'',
- isnorefresh:'',
- activeTotal2:0,
- timeshow:false,
- timetushow:false,
- soltishow:false,
- orderBy:'',
- methodsisshow:false,
- userInfo:{},
- }
- },
- onLoad(options) {
- this.isnorefresh=options.refresh;
- if(options.activeTotal){
- this.activeTotal=options.activeTotal
- }
- if(options.markAdvisor){
- this.screen.markAdvisor=options.markAdvisor
- }
- if(options.validInvalid){
- this.screen.validInvalid=options.validInvalid
- }
- if(options.staTime){
- this.staTime=options.staTime;
- this.endtime=options.endtime;
- }
-
- },
- onShow() {
-
- this.userInfo = uni.getStorageSync('weapp_session_userInfo_data');
- if(this.userInfo.dataCode==6 || this.userInfo.dataCode==3){
- this.methodsisshow=false;
- }else{
- this.methodsisshow=true;
- }
-
- if(this.isnorefresh=='refresh'){
- this.buildingID = uni.getStorageSync('buildingID').id;
- this.recordList=[];
- this.nextPage=1;
- this.getMyCustom()
- this.getFreeList();
- this.isnorefresh='';
- }
-
- this.getCustomPhase()
- },
- onReachBottom() {
- if(this.totalRecord==this.nextPage){
- uni.showToast({
- icon:'none',
- title: '到底了',
- duration: 2000
- });
- return
- }else{
- this.nextPage+=1;
- this.getMyCustom();
- }
- },
- methods:{
- getCustomPhase(){
- this.phaseList=[]
- this.$u.post("/customer/lifeTrackDefineList",{houseId:this.buildingID}).then(res => {
- let tempArr = []
- res.forEach(item=>{
- let tempObj = {}
- tempObj.label = item.stageName;
- tempObj.value = item.id;
- tempArr.push(tempObj)
- })
- this.phaseList = tempArr;
- })
- },
- selectPhase(e){
- this.screen.clientStageName=e[0].label;
- this.screen.clientStage=e[0].value;
- },
- tapsoltishow(){
- this.soltishow=true;
- },
- taptimetuisshow(){
- this.timetushow=true;
- },
- taptimeisshow(){
- this.timeshow=true;
- },
- //选择标签
- selectCallback2(e){
- this.orderBy=e[0].value;
- this.nextPage=1;
- this.recordList=[];
- this.getMyCustom();
- },
- //选择录音时长
- timetap(index){
- this.timetushow=false;
- this.activeTotal2=index;
- this.nextPage=1;
- this.recordList=[];
- this.getMyCustom();
- },
- //时间选择
- tabtimetap(index){
- this.timeshow=false;
- if (index == 4) {
- this.totalTimeShow = true;
- } else {
- this.activeTotal = index;
- this.staTime='';
- this.endtime='';
- this.nextPage=1;
- this.recordList=[];
- this.getMyCustom();
- }
- },
- //自定义时间
- totalTimeChange(e) {
- this.staTime=e.startDate;
- this.endtime=e.endDate;
- this.activeTotal=4;
- this.nextPage=1;
- this.recordList=[];
- this.getMyCustom();
- },
- tapThevisiting(item) {
- uni.showLoading({
- title: '加载中',
- mask:true
- });
- if(item.status==0){
- setTimeout(function () {
- uni.hideLoading();
- }, 2000);
- uni.showToast({
- icon: "none",
- title: "排队中"
- })
- return
- }else{
- const parames = {
- pageNum: 1,
- pageSize: 100,
- query: {
- customerId: item.id,
- }
- }
- var item={
- bg:0,
- customerId:item.id,
- }
- uni.setStorageSync("searchobj", item); //写入缓存
- uni.setStorageSync("entrance", 1); //写入缓存
- this.$u.post("/corpus/findByPage", parames).then(res => {
- if(res==null){
- setTimeout(function () {
- uni.hideLoading();
- }, 2000);
- uni.showToast({
- icon: "none",
- title: "暂无音频"
- })
- return
- }else{
- setTimeout(function () {
- uni.hideLoading();
- }, 2000);
- let newobj = res[0];
- if(res[0].merge==0){
- uni.navigateTo({
- url: `/pages/mine/details2?customerId=${newobj.customerId}&status=${newobj.status}&stateisshow=${"2"}`
- })
- }else{
- uni.navigateTo({
- url: `/pages/mine/details?customerId=${newobj.customerId}&status=${newobj.status}&stateisshow=${"1"}`
- })
- }
- }
- })
- }
-
- },
- getMyCustom(){
- let dateType=0;
- let recDurationInterval=0;
- let orderBy=0;
- if(this.activeTotal==5){
- dateType=null;
- }else if(this.activeTotal==4){
- dateType=null;
- }else{
- dateType=this.activeTotal;
- }
-
- if(this.activeTotal2==0){
- recDurationInterval=null
- }else{
- recDurationInterval=this.activeTotal2
- }
-
- if(this.orderBy==0){
- orderBy=null;
- }else{
- orderBy=this.orderBy;
- }
- var parames = {
- pageNum: this.nextPage,
- pageSize: 10,
- query: {
- projectId:this.buildingID,
- time:1,
- staTime:this.staTime,
- endtime:this.endtime,
- visitRecord:this.screen.visitRecord,
- markAdvisor:this.screen.markAdvisor,
- dateType:dateType,
- recDurationInterval:recDurationInterval,
- orderBy:orderBy,
- validInvalid:this.screen.validInvalid,
- clientStage:this.screen.clientStage,
- }
- };
- if(this.screen.agentId){
- parames.query.agentId = this.screen.agentId
- }
-
-
- this.$u.post("/customer/findbypage", parames).then(data => {
- var list = data.results || [];
- this.recordList = [...this.recordList, ...list];
- this.totalRecord=data.totalPage;
- })
- },
- //获取顾问列表
- getFreeList() {
- this.$u.post("/cusLvStatistics/selectAllAccountIdByHouseId", { houseId: this.buildingID }).then(res => {
- this.freeList = res;
- this.freeList.forEach(item=>{
- item.label=item.name;
- item.value=item.accountId
- })
- })
- },
- // 筛选
- screenshow(){
- this.screenShow=true
- },
- actionSelectCallback(e){
- this.screen.agentId=e[0].value;
- this.screenShow=false;
- this.recordList=[];
- this.nextPage=1;
- this.getMyCustom();
- },
- reset(){
- this.screen={
- counselorName:'',
- record:'0',
- markAdvisor:null,
- visitRecord:null,
- validInvalid:null,
- clientStage:'',
- clientStageName:''
- }
- this.screenShow=false;
- this.nextPage=1;
- this.recordList=[];
- this.getMyCustom();
- },
- recordclick(i){
- if(this.screen.visitRecord==i){
- this.screen.visitRecord=null
- }else{
- this.screen.visitRecord=i
- }
- },
- screenvisitRecord(i){
- if(this.screen.markAdvisor==i){
- this.screen.markAdvisor=null
- }else{
- this.screen.markAdvisor=i
- }
- },
- screenvisivalidInvalid(i){
- console.log(this.screen.validInvalid,i)
- if(this.screen.validInvalid==i){
- this.screen.validInvalid=null
- }else{
- this.screen.validInvalid=i
- }
- },
- screensure(){
- this.screenShow=false;
- this.recordList=[];
- this.nextPage=1;
- this.getMyCustom();
- },
- goSearch(){
- uni.navigateTo({
- url: '/pages/center/records/recordSearch'
- });
- },
- },
- }
- </script>
-
- <style lang="scss" scoped>
- .box {
- width: 100%;
- height: 100%;
- background: #F8F8F8;
- }
- .timeview{
- height: 80rpx;
- line-height: 80rpx;
- width: 100%;
- text-align: center;
- border-bottom: 1px solid #F8F8F8;
- }
- //时间切换的样式
- .boxtittab {
- 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;
- }
- }
- .search-box{
- width: 100%;
- height: 102rpx;
- background: #FFFFFF;
- display: flex;
- align-items: center;
- justify-content: center;
- .search{
- width: 94%;
- height: 70rpx;
- display: flex;
- align-items: center;
- background: #F8F8F8;
- border-radius: 33rpx;
- .search-img{
- width: 26rpx;
- height: 30rpx;
- margin-left: 20rpx;
- .search-img1{
- width: 100%;
- height: 100%;
- margin-top: 2rpx;
- }
- }
- .search-text{
- font-size: 28rpx;
- font-weight: 400;
- color: #999999;
- margin-left:10rpx;
- }
- }
- .search-screen{
- width: 40rpx;
- height: 40rpx;
- margin-left: 30rpx;
- .search-screen1{
- width: 100%;
- height: 100%;
- }
- }
- }
- .content{
- .content-tips{
- background: #fff;
- padding: 0 20rpx;
- box-sizing: border-box;
- overflow: hidden;
- margin-top: 20rpx;
- .content-first{
- margin-top: 19rpx;
- display: flex;
- justify-content: space-between;
- .left{
- display: flex;
- .img{
- width: 52rpx;
- height: 52rpx;
- background: #FFFFFF;
- border: 1px solid #C9C9C9;
- border-radius: 50%;
- text-align: center;
- line-height: 52rpx;
- }
- .name{
- font-weight: 600;
- color: #333333;
- // margin-left: 20rpx;
- margin-top: 11rpx;
- }
- .status{
- width: 110rpx;
- height: 42rpx;
- background: #FFF9F5;
- border-radius: 4rpx;
- font-size: 26rpx;
- font-weight: 400;
- color: #EC8D49;
- line-height: 42rpx;
- text-align: center;
- margin-left: 19rpx;
- margin-top: 11rpx;
- }
- }
- .right{
- display: flex;
- margin-top: 11rpx;
- .point{
- width: 12rpx;
- height: 12rpx;
- background: #2B6EFF;
- border-radius: 50%;
- margin-right: 9rpx;
- margin-top: 16rpx;
-
- }
- }
- }
-
-
- .content-sec{
- display: flex;
- justify-content: space-between;
- margin-top: 19rpx;
- .left{
- display: flex;
- .cus{
- font-size: 30rpx;
- font-weight: 400;
- color: #666666;
- // line-height: 30rpx;
- }
- .arriveNum{
- font-size: 30rpx;
- font-weight: 400;
- // line-height: 30rpx;
- margin-left: 10rpx;
- }
- }
- .right{
- width: 120rpx;
- height: 46rpx;
- background: #F4F8FD;
- border-radius: 6rpx;
- text-align: center;
- line-height: 46rpx;
- font-weight: 400;
- color: #2671E2;
- }
- }
- .content-last{
- // margin: 30rpx 0;
- font-size: 30rpx;
- font-weight: 400;
- color: #666666;
- line-height: 30rpx;
- margin-top: 22rpx;
- margin-bottom: 30rpx;
- }
-
- }
- }
- // 这是弹出层
- .screen{
- // box-sizing: border-box;
- // padding: 0 30rpx;
- position:absolute;
- .screen-counselor{
- display: flex;
- height: 106rpx;
- // padding: 40rpx 30rpx 36rpx 30rpx;
- padding: 0 30rpx;
- box-sizing: border-box;
- border-bottom: 1px solid #EEEEEE;
- .screen-text{
- margin: 40rpx 0 36rpx 0;
- font-size: 30rpx;
- font-weight: 400;
- color: #333333;
- line-height: 30rpx;
- }
- .screen-sel{
- display: flex;
- justify-content: space-between;
- width: 500rpx;
- margin-left: 60rpx;
- .screen-sel-img{
- margin: 40rpx 0 36rpx 0;
- width: 14rpx;
- height: 30rpx;
- }
- .screen-inp{
- margin-top: 20rpx;
- }
- }
- }
- .screen-record{
- height: 192rpx;
- // width: 100%;
- overflow: hidden;
- padding: 0 30rpx;
- box-sizing: border-box;
- border-bottom: 1px solid #EEEEEE;
- .screen-record-text{
- margin-top: 36rpx;
- font-size: 30rpx;
- font-weight: 400;
- color: #333333;
- line-height: 30rpx;
- }
- .screen-record-tab{
- margin-top: 30rpx;
- display: flex;
- // justify-content: space-around;
- .screen-record-chose{
- width: 156rpx;
- height: 60rpx;
- background: #2671E2;
- border-radius: 4rpx;
- border: 1px solid #2671E2;
- text-align: center;
- line-height: 60rpx;
- margin-right: 22rpx;
- color: #FFFFFF;
- }
- .screen-record-nochose{
- width: 156rpx;
- height: 60rpx;
- background: #FFFFFF;
- border-radius: 4rpx;
- border: 1px solid #C9C9C9;
- text-align: center;
- line-height: 60rpx;
- margin-right: 22rpx;
- }
-
- }
- }
- .screen-foot{
- width: 100%;
- height: 100rpx;
- display: flex;
- .screen-foot-reset{
- width: 50%;
- text-align: center;
- height: 100rpx;
- line-height: 100rpx;
- font-size: 30rpx;
- font-weight: 400;
- color: #666666;
- }
- .screen-foot-sure{
- width: 50%;
- text-align: center;
- line-height: 100rpx;
- height: 100rpx;
- font-size: 30rpx;
- font-weight: 400;
- color: #FFFFFF;
- background: #2671E2;
- }
- }
- }
- </style>
|