douzhuo 2 лет назад
Родитель
Сommit
1059d4730e
7 измененных файлов: 817 добавлений и 492 удалений
  1. +120
    -19
      pages/center/Piabodata/Employeesstatistics.vue
  2. +120
    -30
      pages/center/Piabodata/StaffAnalysis.vue
  3. +112
    -91
      pages/center/Piabodata/Theteamcompared.vue
  4. +222
    -111
      pages/center/Piabodata/Userinsightinto.vue
  5. +241
    -241
      pages/center/consumer/consumerDetail.vue
  6. +1
    -0
      pages/mine/details2.vue
  7. +1
    -0
      pages/mine/reception/addreception.vue

+ 120
- 19
pages/center/Piabodata/Employeesstatistics.vue Просмотреть файл

@@ -1,18 +1,9 @@
<template>
<view class="box">
<view class="boxtittab">
<view class="tabbox">
<view :class="{ activecllasscet: activeTotal == 4 }" @click="tabtimetap(4)">近七天</view>
</view>
<view class="tabbox">
<view :class="{ activecllasscet: activeTotal == 5 }" @click="tabtimetap(5)">近15天</view>
</view>
<view class="tabbox">
<view :class="{ activecllasscet: activeTotal == 6 }" @click="tabtimetap(6)">近30天</view>
</view>
<view class="tabbox">
<view :class="{ activecllasscet: activeTotal == 3 }" @click="tabtimetap(3)">自定义</view>
</view>

<view class="boxtittabs">
<div class="items" @tap="screenShow = true">{{ showTimeText }}</div>
<div class="items" @tap="showTemplate = true">{{ showBeText }}</div>
</view>

<!-- 接待量排名(TOP10) -->
@@ -237,6 +228,32 @@
</view>

<u-calendar v-model="totalTimeShow" mode="range" @change="totalTimeChange"></u-calendar>


<!-- 更多筛选 -->
<u-popup v-model="screenShow" mode="top">
<view class="screen">
<view class="boxtittab">
<view class="tabbox">
<view :class="{ activecllasscet: activeTotal == 4 }" @click="tabtimetap(4, '近七天')">近七天</view>
</view>
<view class="tabbox">
<view :class="{ activecllasscet: activeTotal == 5 }" @click="tabtimetap(5, '近15天')">近15天</view>
</view>
<view class="tabbox">
<view :class="{ activecllasscet: activeTotal == 6 }" @click="tabtimetap(6, '近30天')">近30天</view>
</view>
<view class="tabbox">
<view :class="{ activecllasscet: activeTotal == 3 }" @click="tabtimetap(3, '自定义')">自定义</view>
</view>
</view>
</view>
</u-popup>

<!-- 销讲业务 -->
<u-select :mask-close-able="false" label-name="templateName" value-name="id" v-model="showTemplate"
mode="single-column" :list="templateList" @cancel="templateCancel" @confirm="templateConfirm"></u-select>

</view>
</template>

@@ -290,6 +307,16 @@
total: '',
result: [],
},



screenShow: false, // 时间筛选弹窗
showTimeText: '近七天', // 展示文字
showBeText: '全部业务', //
templateList: [], // 销讲业务
showTemplate: false, // 展示选择销讲业务弹窗
marketingBusiness: '', // 选择的业务id

};
},
onLoad(option) {
@@ -297,16 +324,50 @@
this.houseId = uni.getStorageSync('buildingID').id;
this.init()
if (option.type == 1) {
this.totalTimeChange({startDate: option.staTime, endDate: option.endtime})
this.totalTimeChange({
startDate: option.staTime,
endDate: option.endtime
})
}
this.getMarketingBusiness()
},
onPullDownRefresh() {
this.init()
this.getMarketingBusiness()
setTimeout(function() {
uni.stopPullDownRefresh();
}, 1000);
},
methods: {


// 销讲业务方法
templateCancel() {
this.showTemplate = false;
},

// 确认选择销讲业务
templateConfirm(e) {
this.showTemplate = false;
this.marketingBusiness = e[0].value
this.showBeText = e[0].label
this.init()
},


// 获取销讲业务
getMarketingBusiness() {
this.$u.get('/customer/marketingBusiness', {
houseId: uni.getStorageSync('buildingID').id,
}).then(res => {
this.templateList = res
this.templateList.unshift({
templateName: '全部业务',
id: ''
})
})
},

init() {
this.newlisttabinfo1 = {
avg: '',
@@ -351,7 +412,8 @@
timeType: activeTotal,
lastStartDate: this.lastStartDate,
lastEndDate: this.lastEndDate,
houseId: this.houseId
houseId: this.houseId,
marketingBusiness: this.marketingBusiness,
}
this.staffStatisticsReceptionTop10(promse)
this.staffStatisticsRecordingTimTop10(promse)
@@ -431,16 +493,20 @@
//自定义时间
totalTimeChange(e) {
console.log(e.startDate, e.endDate)
this.screenShow = false
this.showTimeText = `${e.startDate}-${e.endDate}`
this.activeTotal = 3;
this.lastEndDate = e.endDate
this.lastStartDate = e.startDate
this.init()
},
//时间切换
tabtimetap(index) {
tabtimetap(index, text) {
if (index == 3) {
this.totalTimeShow = true;
} else {
this.screenShow = false
this.showTimeText = text
this.activeTotal = index;
this.lastEndDate = '';
this.lastStartDate = '';
@@ -479,15 +545,49 @@
};
</script>
<style lang="scss" scoped>
.boxtittabs {
width: 100%;
height: 92rpx;
background: #FFFFFF;
display: flex;
align-items: center;

.items {
padding: 0 24rpx;
width: 50%;
height: 100%;
display: flex;
align-items: center;
justify-content: center;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
}

.screen {
width: 100%;

.boxtittab {
width: 100%;
flex-direction: column;

.tabbox {
width: 100%;
}
}
}


.box {
width: 100%;
height: 100%;
background: #FAFAFA;
}
.single {
min-height: 500rpx;
.jindu {
height: auto;
min-height: 360rpx;
@@ -500,7 +600,8 @@
display: flex;
padding-top: 20rpx;
padding-bottom: 20rpx;
.sanbox1{

.sanbox1 {
text-align: center;
}



+ 120
- 30
pages/center/Piabodata/StaffAnalysis.vue Просмотреть файл

@@ -1,18 +1,9 @@
<template>
<view>
<view class="boxtittab">
<view class="tabbox">
<view :class="{ activecllasscet: activeTotal == 4 }" @click="tabtimetap(4)">近七天</view>
</view>
<view class="tabbox">
<view :class="{ activecllasscet: activeTotal == 5 }" @click="tabtimetap(5)">近15天</view>
</view>
<view class="tabbox">
<view :class="{ activecllasscet: activeTotal == 6 }" @click="tabtimetap(6)">近30天</view>
</view>
<view class="tabbox">
<view :class="{ activecllasscet: activeTotal == 3 }" @click="tabtimetap(3)">自定义</view>
</view>

<view class="boxtittabs">
<div class="items" @tap="screenShow = true">{{ showTimeText }}</div>
<div class="items" @tap="showTemplate = true">{{ showBeText }}</div>
</view>

<view class="timepick">
@@ -138,6 +129,33 @@
<u-select v-model="staffShow1" :list="staffList1" @confirm="staffSelectCallback" :default-value='selindex'>
</u-select>



<!-- 更多筛选 -->
<u-popup v-model="screenShow" mode="top">
<view class="screen">
<view class="boxtittab">
<view class="tabbox">
<view :class="{ activecllasscet: activeTotal == 4 }" @click="tabtimetap(4, '近七天')">近七天</view>
</view>
<view class="tabbox">
<view :class="{ activecllasscet: activeTotal == 5 }" @click="tabtimetap(5, '近15天')">近15天</view>
</view>
<view class="tabbox">
<view :class="{ activecllasscet: activeTotal == 6 }" @click="tabtimetap(6, '近30天')">近30天</view>
</view>
<view class="tabbox">
<view :class="{ activecllasscet: activeTotal == 3 }" @click="tabtimetap(3, '自定义')">自定义</view>
</view>
</view>
</view>
</u-popup>

<!-- 销讲业务 -->
<u-select :mask-close-able="false" label-name="templateName" value-name="id" v-model="showTemplate"
mode="single-column" :list="templateList" @cancel="templateCancel" @confirm="templateConfirm"></u-select>


<!-- 加载组件 -->
<loading v-model="LOADING"></loading>
</view>
@@ -238,6 +256,14 @@
"data": [90, 110, 165, 195, 187, 172]
}]
},


screenShow: false, // 时间筛选弹窗
showTimeText: '近七天', // 展示文字
showBeText: '全部业务', //
templateList: [], // 销讲业务
showTemplate: false, // 展示选择销讲业务弹窗
marketingBusiness: '', // 选择的业务id
};

},
@@ -248,24 +274,48 @@
this.houseId = uni.getStorageSync('buildingID').id;
// 请求接口获取所有置业顾问员工的列表
this.getStaffList(option)
this.getMarketingBusiness()

},
onPullDownRefresh() {
this.getMarketingBusiness()
this.getStaffList()
setTimeout(function() {
uni.stopPullDownRefresh();
}, 1000);
},
methods: {
// 销讲业务方法
templateCancel() {
this.showTemplate = false;
},

// 确认选择销讲业务
templateConfirm(e) {
this.showTemplate = false;
this.marketingBusiness = e[0].value
this.showBeText = e[0].label
this.getdata()
},


// 获取销讲业务
getMarketingBusiness() {
this.$u.get('/customer/marketingBusiness', {
houseId: uni.getStorageSync('buildingID').id,
}).then(res => {
this.templateList = res
this.templateList.unshift({
templateName: '全部业务',
id: ''
})
})
},
//是否对比
checkboxChange() {
this.timepickpickisshow = !this.timepickpickisshow;
this.staff2.value = ''
this.staff2.label = '平均'
// this.getreception()
// this.getRecordList()
// this.getAwardList()
// this.getAward()
this.getdata()
},
// 点击员工对比
@@ -331,7 +381,8 @@
houseId: this.houseId,
timeType: this.lastEndDate ? null : this.activeTotal + '',
lastEndDate: this.lastEndDate,
lastStartDate: this.lastStartDate
lastStartDate: this.lastStartDate,
marketingBusiness: this.marketingBusiness,
})
.then(res => {
this.newTeam1 = res.avg[0]
@@ -378,7 +429,8 @@
houseId: this.houseId,
timeType: this.lastEndDate ? null : this.activeTotal + '',
lastEndDate: this.lastEndDate,
lastStartDate: this.lastStartDate
lastStartDate: this.lastStartDate,
marketingBusiness: this.marketingBusiness,
})
.then(res => {
this.newTeam3 = res.avg[0]
@@ -429,7 +481,8 @@
houseId: this.houseId,
timeType: this.lastEndDate ? null : this.activeTotal + '',
lastEndDate: this.lastEndDate,
lastStartDate: this.lastStartDate
lastStartDate: this.lastStartDate,
marketingBusiness: this.marketingBusiness,
})
} else {
res = await this.$u.post('/cusLvStatistics/employeeAnalysisRecordingTime', {
@@ -438,7 +491,8 @@
houseId: this.houseId,
timeType: this.lastEndDate ? null : this.activeTotal + '',
lastEndDate: this.lastEndDate,
lastStartDate: this.lastStartDate
lastStartDate: this.lastStartDate,
marketingBusiness: this.marketingBusiness,
})
}
// console.log(res)
@@ -484,7 +538,8 @@
houseId: this.houseId,
timeType: this.lastEndDate ? null : this.activeTotal + '',
lastEndDate: this.lastEndDate,
lastStartDate: this.lastStartDate
lastStartDate: this.lastStartDate,
marketingBusiness: this.marketingBusiness,
})
.then(res => {
this.LOADING = false
@@ -544,14 +599,14 @@
this.chartData.series[1].data.push(0)
}
})
this.$forceUpdate()
}
}).catch(e => {
this.LOADING = false
})
},
// 检测范围
checkRange(num) {
if (num < 0) {
@@ -561,19 +616,18 @@
} else {
return num
}
},
tabtimetap(index) {
},
tabtimetap(index, text) {
if (index == 3) {
this.totalTimeShow = true;
} else {
this.screenShow = false
this.showTimeText = text
this.activeTotal = index;
this.lastEndDate = ''
this.lastStartDate = ''
// 获取数据
// this.getreception()
// this.getRecordList()
// this.getAwardList()
this.getdata()
}
},
@@ -585,6 +639,8 @@
//自定义时间
totalTimeChange(e) {
console.log(e.startDate, e.endDate)
this.screenShow = false
this.showTimeText = `${e.startDate}-${e.endDate}`
this.activeTotal = 3;
this.lastEndDate = e.endDate
this.lastStartDate = e.startDate
@@ -627,6 +683,40 @@
}
</script>
<style lang="scss" scoped>
.boxtittabs {
width: 100%;
height: 92rpx;
background: #FFFFFF;
display: flex;
align-items: center;

.items {
padding: 0 24rpx;
width: 50%;
height: 100%;
display: flex;
align-items: center;
justify-content: center;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
}

.screen {
width: 100%;

.boxtittab {
width: 100%;
flex-direction: column;

.tabbox {
width: 100%;
}
}
}


// 对比时间切换
.timepick {
width: 100%;


+ 112
- 91
pages/center/Piabodata/Theteamcompared.vue Просмотреть файл

@@ -1,24 +1,15 @@
<template>
<view class="box">
<view class="boxtittab">
<view class="tabbox">
<view :class="{ activecllasscet: activeTotal == 4 }" @click="tabtimetap(4)">近七天</view>
</view>
<view class="tabbox">
<view :class="{ activecllasscet: activeTotal == 5 }" @click="tabtimetap(5)">近15天</view>
</view>
<view class="tabbox">
<view :class="{ activecllasscet: activeTotal == 6 }" @click="tabtimetap(6)">近30天</view>
</view>
<view class="tabbox">
<view :class="{ activecllasscet: activeTotal == 3 }" @click="tabtimetap(3)">自定义</view>
</view>
<view class="boxtittabs">
<div class="items" @tap="screenShow = true">{{ showTimeText }}</div>
<div class="items" @tap="showTemplate = true">{{ showBeText }}</div>
</view>

<view class="timepick">
<view style="display: flex;" class="timepicktime" @click="chiocStaff(0)">
<view style="flex-grow: 1;overflow: hidden;text-overflow: ellipsis;white-space: nowrap;">
{{staff1.label}}</view>
{{staff1.label}}
</view>
<view style="flex-shrink: 0;">
<image class="Underimg" src="../../../static/images/Underimg.png" mode=""></image>
</view>
@@ -179,75 +170,6 @@


<view style="width: 100%;height: 20rpx;background: #FAFAFA;"></view>
<!-- <view class="single">
<view class="title">
<view class="title1" style="flex: 1;">禁忌执行率</view>
<view class="title3" style="flex: 1;">
<view class="title3-box" @click="tabtimetap4(0)">
<view style="height: 42rpx;" :class="{ activecltab: eharTab.active4 == 0 }">排名</view>
</view>
<view class="title3-box" @click="tabtimetap4(1)">
<view style="height: 42rpx;" :class="{ activecltab: eharTab.active4 == 1 }">趋势</view>
</view>
<view class="title3-box">
<view style="height: 42rpx;" :class="{ activecltab: activeTotal2 == 2 }">表格</view>
</view>
</view>
</view>
<view class="hejibox">
<view class="heji">{{!staff1.value?'团队':staff1.label}}:{{newTeam4||0}}</view>
<view class="heji">{{!staff2.value?'均值':staff2.label}}:{{newAvg4||0}}</view>
</view>
<view class="" v-if=" eharTab.active4 == 1 ">
<view class="danwei">来访(人)</view>
<view class="uchaserbox">
<qiun-data-charts
type="line"
:chartData="lineOptsect4"
background="none"
:ontouch="true"
canvasId="wangxiaohuaerlingeryilingwuyi"
:canvas2d="true"
/>
</view>
</view>
<view class="jindu" v-if=" eharTab.active4 == 0 ">
<view class="jindu-box" v-for="(item,index) in newlisttabinfo4" :key="index">
<view class="jindu-boxche">
<view class="jindu-name">{{item.name.substring(0, 4)}}</view>
<view style="width: 440rpx;margin-left: 10rpx;">
<u-line-progress height="24" :show-percent="false" active-color="#FBA448" :percent="item.zxl"></u-line-progress>
</view>
<view class="jindu-zxl">{{item.zxl==null?0:item.zxl}}</view>
</view>
</view>
</view>
</view> -->

<!-- <view style="width: 100%;height: 20rpx;background: #FAFAFA;"></view> -->
<!-- <view class="single">
<view class="title" style="padding-right: 30rpx;">
<view class="title1" style="flex: 1;">违禁能力(TOP10)</view>
<view class="title2" style="flex: 1;justify-content: flex-end;">
<view class="title2-che">项目
<image class="righttochoose" src="../../../static/images/righttochoose.png" mode=""></image>
</view>
</view>
</view>
<view class="hejibox">
<view class="heji">合计:50</view>
<view class="heji">均值:25</view>
</view>
<view class="uchaserbox">
<qiun-data-charts
type="radar"
:chartData="chartData"
:canvas2d="true"
canvasId="wangxiaohuaerlingeryilingwuyib89"
background="none"
/>
</view>
</view> -->

<u-calendar v-model="totalTimeShow" mode="range" @change="totalTimeChange"></u-calendar>

@@ -256,9 +178,32 @@
</u-select>
<u-select v-model="staffShow1" :list="staffList1" @confirm="staffSelectCallback" :default-value='selindex'>
</u-select>


<!-- 更多筛选 -->
<u-popup v-model="screenShow" mode="top">
<view class="screen">
<view class="boxtittab">
<view class="tabbox">
<view :class="{ activecllasscet: activeTotal == 4 }" @click="tabtimetap(4, '近七天')">近七天</view>
</view>
<view class="tabbox">
<view :class="{ activecllasscet: activeTotal == 5 }" @click="tabtimetap(5, '近15天')">近15天</view>
</view>
<view class="tabbox">
<view :class="{ activecllasscet: activeTotal == 6 }" @click="tabtimetap(6, '近30天')">近30天</view>
</view>
<view class="tabbox">
<view :class="{ activecllasscet: activeTotal == 3 }" @click="tabtimetap(3, '自定义')">自定义</view>
</view>
</view>
</view>
</u-popup>

<!-- 销讲业务 -->
<u-select :mask-close-able="false" label-name="templateName" value-name="id" v-model="showTemplate"
mode="single-column" :list="templateList" @cancel="templateCancel" @confirm="templateConfirm"></u-select>

<!-- 加载组件 -->
<loading v-model="LOADING"></loading>
</view>
@@ -445,6 +390,14 @@
}
},


screenShow: false, // 时间筛选弹窗
showTimeText: '近七天', // 展示文字
showBeText: '全部业务', //
templateList: [], // 销讲业务
showTemplate: false, // 展示选择销讲业务弹窗
marketingBusiness: '', // 选择的业务id

};
},

@@ -477,6 +430,7 @@
// this.buildingname = uni.getStorageSync('buildingID').name;
// 请求接口获取所有置业顾问员工的列表
this.getSectionList()
this.getMarketingBusiness()

},
onPullDownRefresh() {
@@ -492,11 +446,40 @@
// this.buildingname = uni.getStorageSync('buildingID').name;
// 请求接口获取所有置业顾问员工的列表
this.getSectionList()
this.getMarketingBusiness()
setTimeout(function() {
uni.stopPullDownRefresh();
}, 1000);
},
methods: {

// 销讲业务方法
templateCancel() {
this.showTemplate = false;
},

// 确认选择销讲业务
templateConfirm(e) {
this.showTemplate = false;
this.marketingBusiness = e[0].value
this.showBeText = e[0].label
this.getSectionList()
},
// 获取销讲业务
getMarketingBusiness() {
this.$u.get('/customer/marketingBusiness', {
houseId: uni.getStorageSync('buildingID').id,
}).then(res => {
this.templateList = res
this.templateList.unshift({
templateName: '全部业务',
id: ''
})
})
},

//是否对比
checkboxChange() {
this.timepickpickisshow = !this.timepickpickisshow;
@@ -514,7 +497,7 @@
// 获取部门列表
getSectionList() {
this.$u.post('/cusLvStatistics/findAllDeptIdByHouseId', {
houseId: this.houseId
houseId: this.houseId,
})
.then(res => {
this.staffList = []
@@ -559,10 +542,12 @@

},
//时间切换
tabtimetap(index) {
tabtimetap(index, text) {
if (index == 3) {
this.totalTimeShow = true;
} else {
this.screenShow = false
this.showTimeText = text
this.activeTotal = index;
this.lastEndDate = ''
this.lastStartDate = ''
@@ -601,7 +586,8 @@
},
//自定义时间
totalTimeChange(e) {
console.log(e.startDate, e.endDate)
this.screenShow = false
this.showTimeText = `${e.startDate}-${e.endDate}`
this.activeTotal = 3;
this.lastEndDate = e.endDate
this.lastStartDate = e.startDate
@@ -678,7 +664,8 @@
houseId: this.houseId,
timeType: this.lastEndDate ? null : this.activeTotal + '',
lastEndDate: this.lastEndDate,
lastStartDate: this.lastStartDate
lastStartDate: this.lastStartDate,
marketingBusiness: this.marketingBusiness,
})
.then(res => {
// console.log(res)
@@ -825,7 +812,8 @@
houseId: this.houseId,
timeType: this.lastEndDate ? null : this.activeTotal + '',
lastEndDate: this.lastEndDate,
lastStartDate: this.lastStartDate
lastStartDate: this.lastStartDate,
marketingBusiness: this.marketingBusiness,
})
.then(res => {
this.LOADING = false
@@ -941,6 +929,39 @@
};
</script>
<style lang="scss" scoped>
.boxtittabs {
width: 100%;
height: 92rpx;
background: #FFFFFF;
display: flex;
align-items: center;

.items {
padding: 0 24rpx;
width: 50%;
height: 100%;
display: flex;
align-items: center;
justify-content: center;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
}

.screen {
width: 100%;

.boxtittab {
width: 100%;
flex-direction: column;

.tabbox {
width: 100%;
}
}
}

.uchaserboxs {
width: 100%;
height: 70vh;


+ 222
- 111
pages/center/Piabodata/Userinsightinto.vue Просмотреть файл

@@ -1,19 +1,10 @@
<template>
<view class="box">
<view class="boxtittab">
<view class="tabbox">
<view :class="{ activecllasscet: activeTotal == 0 }" @click="tabtimetap(0)">今日</view>
</view>
<view class="tabbox">
<view :class="{ activecllasscet: activeTotal == 1 }" @click="tabtimetap(1)">昨日</view>
</view>
<view class="tabbox">
<view :class="{ activecllasscet: activeTotal == 2 }" @click="tabtimetap(2)">近一周</view>
</view>
<view class="tabbox">
<view :class="{ activecllasscet: activeTotal == 3 }" @click="tabtimetap(3)">自定义</view>
</view>
<view class="boxtittabs">
<div class="items" @tap="screenShow = true">{{ showTimeText }}</div>
<div class="items" @tap="showTemplate = true">{{ showBeText }}</div>
</view>

<view class="info">
<view class="item" @click="goTo(1)">
<text class="num">{{efficient}}</text>
@@ -36,13 +27,17 @@
<view class="num">{{item.num}}</view>
</view>
</view>
<view v-if="Afolding" class="anclack" @click="anclick(1)">展开 <u-icon style="margin-left: 8rpx;" label-color='#666666' name="arrow-down"></u-icon></view>
<view v-else class="anclack" @click="anclick(2)">收起 <u-icon style="margin-left: 8rpx;" label-color='#666666' name="arrow-up"></u-icon></view>
<view v-if="Afolding" class="anclack" @click="anclick(1)">展开 <u-icon style="margin-left: 8rpx;"
label-color='#666666' name="arrow-down"></u-icon>
</view>
<view v-else class="anclack" @click="anclick(2)">收起 <u-icon style="margin-left: 8rpx;" label-color='#666666'
name="arrow-up"></u-icon>
</view>
</view>
<view style="width: 100%;height: 20rpx;background: #FAFAFA;"></view>
<view class="centerfor" v-for="(item,index) in objlist" :key="index">
<view class="fortit">
<view class="left">
@@ -62,12 +57,16 @@
<view>触达占比</view>
<view>沟通记录</view>
</view>
<view v-if="item.total==0" style="color: #999999;width: 100%;height: 500rpx;line-height: 500rpx;text-align: center;" >暂无数据</view>
<view class="tabtd" v-if="item.total!=0" v-for="(chend,i) in item.matchKeywords" :key="i">
<view v-if="item.total==0"
style="color: #999999;width: 100%;height: 500rpx;line-height: 500rpx;text-align: center;">暂无数据
</view>
<view class="tabtd" v-if="item.total!=0" v-for="(chend,i) in item.matchKeywords" :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>
<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>{{chend.name}}({{chend.total}})</view>
@@ -76,21 +75,43 @@
</view>
</view>
<view v-if="item.activeTab==1" class="tabech">
<qiun-data-charts
:key="item.id"
type="ring"
:chartData="item.chartData"
:canvas2d="true"
:canvasId="'wangxiaohuahahahahaha'+item.id"
:opts='item.opts'
background="none" />
<qiun-data-charts :key="item.id" type="ring" :chartData="item.chartData" :canvas2d="true"
:canvasId="'wangxiaohuahahahahaha'+item.id" :opts='item.opts' background="none" />
</view>
</view>

<u-calendar v-model="totalTimeShow" mode="range" @change="totalTimeChange"></u-calendar>
<u-back-top :scroll-top="scrollTop"></u-back-top>



<!-- 更多筛选 -->
<u-popup v-model="screenShow" mode="top">
<view class="screen">
<view class="boxtittab">
<view class="tabbox">
<view :class="{ activecllasscet: activeTotal == 0 }" @click="tabtimetap(0, '今日')">今日</view>
</view>
<view class="tabbox">
<view :class="{ activecllasscet: activeTotal == 1 }" @click="tabtimetap(1, '昨日')">昨日</view>
</view>
<view class="tabbox">
<view :class="{ activecllasscet: activeTotal == 2 }" @click="tabtimetap(2, '近一周')">近一周
</view>
</view>
<view class="tabbox">
<view :class="{ activecllasscet: activeTotal == 3 }" @click="tabtimetap(3, '自定义')">自定义
</view>
</view>
</view>
</view>
</u-popup>

<!-- 销讲业务 -->
<u-select :mask-close-able="false" label-name="templateName" value-name="id" v-model="showTemplate"
mode="single-column" :list="templateList" @cancel="templateCancel" @confirm="templateConfirm"></u-select>


<!-- 加载组件 -->
<loading v-model="LOADING"></loading>
</view>
@@ -109,19 +130,27 @@
return {
scrollTop: 0,
activeTotal: 2,
timeobj:{
statDateStart:'',
statDateEnd:''
timeobj: {
statDateStart: '',
statDateEnd: ''
},
buildingID:'',
buildingID: '',
totalTimeShow: false,
activeTab: 0,
numlist:[],
objlist:[],
Afolding:true,
efficient:"",
markCount:"",
noMarkCount:""
numlist: [],
objlist: [],
Afolding: true,
efficient: "",
markCount: "",
noMarkCount: "",
screenShow: false, // 时间筛选弹窗
showTimeText: '近一周', // 展示文字
showBeText: '全部业务', //
templateList: [], // 销讲业务
showTemplate: false, // 展示选择销讲业务弹窗
marketingBusiness: '', // 选择的业务id
};
},
onPageScroll(e) {
@@ -129,11 +158,11 @@
},
onLoad(e) {
this.LOADING = true
this.buildingID=uni.getStorageSync('buildingID').id;
this.buildingID = uni.getStorageSync('buildingID').id;
if (e.activeTotal) {
this.activeTotal = e.activeTotal
}
if (e.staTime) {
this.timeobj = {
statDateStart: e.staTime,
@@ -141,57 +170,92 @@
}
}
this.gitinit()
this.getMarketingBusiness()
},
onPullDownRefresh() {
this.gitinit()
setTimeout(function () {
uni.stopPullDownRefresh();
this.getMarketingBusiness()
setTimeout(function() {
uni.stopPullDownRefresh();
}, 1000);
},
methods: {
goTo(i){
if(i==1){
// 销讲业务方法
templateCancel() {
this.showTemplate = false;
},

// 确认选择销讲业务
templateConfirm(e) {
this.showTemplate = false;
this.marketingBusiness = e[0].value
this.showBeText = e[0].label
this.gitinit()
},


// 获取销讲业务
getMarketingBusiness() {
this.$u.get('/customer/marketingBusiness', {
houseId: uni.getStorageSync('buildingID').id,
}).then(res => {
this.templateList = res
this.templateList.unshift({
templateName: '全部业务',
id: ''
})
})
},
goTo(i) {
if (i == 1) {
uni.navigateTo({
url: '/pages/center/records/index?refresh='+'refresh'+'&activeTotal='+this.activeTotal+'&validInvalid=0'+'&staTime='+this.timeobj.statDateStart+'&endtime='+this.timeobj.statDateEnd
url: '/pages/center/records/index?refresh=' + 'refresh' + '&activeTotal=' + this
.activeTotal + '&validInvalid=0' + '&staTime=' + this.timeobj.statDateStart +
'&endtime=' + this.timeobj.statDateEnd
});
}else if(i==2){
} else if (i == 2) {
uni.navigateTo({
url: '/pages/center/records/index?refresh='+'refresh'+'&activeTotal='+this.activeTotal+'&markAdvisor=1&validInvalid=0'+'&staTime='+this.timeobj.statDateStart+'&endtime='+this.timeobj.statDateEnd
url: '/pages/center/records/index?refresh=' + 'refresh' + '&activeTotal=' + this
.activeTotal + '&markAdvisor=1&validInvalid=0' + '&staTime=' + this.timeobj
.statDateStart + '&endtime=' + this.timeobj.statDateEnd
});
}else{
} else {
uni.navigateTo({
url: '/pages/center/records/index?refresh='+'refresh'+'&activeTotal='+this.activeTotal+'&markAdvisor=0&validInvalid=0'+'&staTime='+this.timeobj.statDateStart+'&endtime='+this.timeobj.statDateEnd
url: '/pages/center/records/index?refresh=' + 'refresh' + '&activeTotal=' + this
.activeTotal + '&markAdvisor=0&validInvalid=0' + '&staTime=' + this.timeobj
.statDateStart + '&endtime=' + this.timeobj.statDateEnd
});
}
},
anclick(i){
anclick(i) {
console.log(i)
this.Afolding=!this.Afolding;
this.numlist.forEach((citem,index)=>{
if(index<6){
citem.isshow=true;
}else{
citem.isshow=!citem.isshow;
this.Afolding = !this.Afolding;
this.numlist.forEach((citem, index) => {
if (index < 6) {
citem.isshow = true;
} else {
citem.isshow = !citem.isshow;
}
})
this.$forceUpdate()
},
//获取数据
gitinit(){
this.objlist=[];
this.numlist=[];
var dateType='';
if(this.activeTotal==3){
dateType=null;
}else{
dateType=this.activeTotal;
gitinit() {
this.objlist = [];
this.numlist = [];
var dateType = '';
if (this.activeTotal == 3) {
dateType = null;
} else {
dateType = this.activeTotal;
}
let parames={
dateType:dateType,
statDateStart:this.timeobj.statDateStart,
statDateEnd:this.timeobj.statDateEnd,
houseId:this.buildingID
let parames = {
dateType: dateType,
statDateStart: this.timeobj.statDateStart,
statDateEnd: this.timeobj.statDateEnd,
houseId: this.buildingID,
marketingBusiness: this.marketingBusiness,
}
this.$u.post("/matchKeywords/findmatchdata", parames).then(data => {
this.LOADING = false
@@ -202,14 +266,14 @@
this.efficient = data.total
this.markCount = data.markCount
this.noMarkCount = data.noMarkCount
data.list.forEach((item,index)=>{
data.list.forEach((item, index) => {
this.numlist.push({
name:item.name,
num:item.total
name: item.name,
num: item.total
})
item.activeTab=0;
item.opts={
item.activeTab = 0;
item.opts = {
"title": {
"name": item.total,
"color": '#666666',
@@ -219,38 +283,39 @@
"name": '总触达次数',
"color": '#32363D',
"fontSize": 12,
"offsetY": 4
"offsetY": 4
}
}
item.chartData={
item.chartData = {
"categories": [],
"series": [{
"data": []
}],
};
item.matchKeywords.forEach(chend=>{
item.matchKeywords.forEach(chend => {
item.chartData.series[0].data.push({
"name":chend.name,
"name": chend.name,
"value": chend.proportion
})
})
})
data.list.forEach(item=>{
item.matchKeywords.forEach(chend=>{
if(chend.isInterval==0){
chend.name=chend.name+chend.unit+'-'+chend.endName+chend.unit
}else{
chend.name=chend.name
data.list.forEach(item => {
item.matchKeywords.forEach(chend => {
if (chend.isInterval == 0) {
chend.name = chend.name + chend.unit + '-' + chend.endName + chend
.unit
} else {
chend.name = chend.name
}
})
})
this.objlist=data.list;
this.Afolding=true;
this.numlist.forEach((citem,index)=>{
if(index<6){
citem.isshow=true
}else{
citem.isshow=false
this.objlist = data.list;
this.Afolding = true;
this.numlist.forEach((citem, index) => {
if (index < 6) {
citem.isshow = true
} else {
citem.isshow = false
}
})
}).catch(e => {
@@ -258,7 +323,7 @@
})
},
//查看
Toview(item,i){
Toview(item, i) {
console.log(item)
let keywordsid = 0
if (item.matchKeywords[i].children && item.matchKeywords[i].children.length > 0) {
@@ -267,55 +332,99 @@
keywordsid = item.matchKeywords[i].keywordsId
}
uni.navigateTo({
url: '/pages/center/Piabodata/Customerportrait/Receivingrecords?datatype='+this.activeTotal+"&keywordsId="+keywordsid+"&starttime="+this.timeobj.statDateStart+"&endoftime="+this.timeobj.statDateEnd
url: '/pages/center/Piabodata/Customerportrait/Receivingrecords?datatype=' + this.activeTotal +
"&keywordsId=" + keywordsid + "&starttime=" + this.timeobj.statDateStart + "&endoftime=" +
this.timeobj.statDateEnd
})
},
//时间切换
tabtimetap(index) {
tabtimetap(index, text) {
if (index == 3) {
this.totalTimeShow = true;
} else {
this.screenShow = false
this.showTimeText = text
this.activeTotal = index;
this.gitinit()
}
},
//自定义时间
totalTimeChange(e) {
this.screenShow = false
this.showTimeText = `${e.startDate}-${e.endDate}`
this.timeobj.statDateStart = e.startDate;
this.timeobj.statDateEnd = e.endDate;
this.activeTotal=3;
this.activeTotal = 3;
this.gitinit()
},
charttoswitch(index,num) {
this.objlist[index].activeTab=num
charttoswitch(index, num) {
this.objlist[index].activeTab = num
}
}
};
</script>
<style lang="scss" scoped>
.info{
.boxtittabs {
width: 100%;
height: 92rpx;
background: #FFFFFF;
display: flex;
align-items: center;
.items {
padding: 0 24rpx;
width: 50%;
height: 100%;
display: flex;
align-items: center;
justify-content: center;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
}
.screen {
width: 100%;
.boxtittab {
width: 100%;
flex-direction: column;
.tabbox {
width: 100%;
}
}
}
.info {
display: flex;
justify-content: space-between;
background: #fff;
padding: 10px 20px;
.item{

.item {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
text{

text {
font-size: 32rpx;
}
.num{

.num {
font-weight: bold;
}
.tit{

.tit {
margin-top: 20rpx;
}
}
}
.anclack{
.anclack {
width: 100%;
height: 78rpx;
text-align: center;
@@ -325,6 +434,7 @@
font-weight: 400;
color: #666666;
}

.box {
width: 100%;
height: 100%;
@@ -540,10 +650,11 @@
width: 34rpx;
height: 34rpx;
}

.ranking1 {
width: 30rpx;
height: 30rpx;
background: #ECF1FF;
background: #ECF1FF;
color: #424D64;
font-size: 18rpx;
text-align: center;


+ 241
- 241
pages/center/consumer/consumerDetail.vue Просмотреть файл

@@ -29,7 +29,8 @@
</view>
<view class="content-sec-lab">
<view class="content-sec-lab1">挖掘执行:{{ customerInfo.wordFraction || 0 }}%</view>
<view class="content-sec-lab1" style="width: 44%">挖掘成功:{{ customerInfo.wordFinishFraction || 0 }}%</view>
<view class="content-sec-lab1" style="width: 44%">
挖掘成功:{{ customerInfo.wordFinishFraction || 0 }}%</view>
<!-- <view class="content-sec-lab1" @click.stop="tipupon" style="width: 44%">画像标签:<text
class="look">{{
customerInfo.demand.cusSemanticWordsList?customerInfo.demand.cusSemanticWordsList.length:0}}</text><text
@@ -134,6 +135,9 @@

<!-- 销讲执行率 -->
<view class="ratecenter" v-if="activeTotal==2">
<view class="boxtittabs">
<div class="items" @tap="showTemplate = true">销讲业务:{{ showBeText }}</div>
</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;">指标
@@ -212,215 +216,149 @@
<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">挖掘成功:{{percent||0}}%</view>
</view>
<view
style="
<!-- 需求挖掘执行率 -->
<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">挖掘成功:{{percent||0}}%</view>
</view>
<view style="
width: 100%;
height: 80rpx;
border-bottom: 1rpx solid #e0e0e0;
display: flex;
align-items: center;
background: #fff;
"
>
<view
style="
">
<view style="
flex: 1;
font-size: 28rpx;
color: #333333;
font-weight: 600;
text-indent: 50rpx;
"
>指标</view
>
<view
style="
">指标</view>
<view style="
flex: 1;
font-size: 28rpx;
color: #333333;
font-weight: 600;
text-indent: 70rpx;
"
>执行率</view
>
<view
style="
">执行率</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">
<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="
">匹配标签</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">
<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">已匹配({{
">暂无数据</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="
<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 }}.{{
">{{ 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 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>
@@ -440,6 +378,13 @@
</view>
</scroll-view>
</u-popup>

<!-- 销讲业务 -->
<u-select :mask-close-able="false" label-name="templateName" value-name="cusId" v-model="showTemplate"
mode="single-column" :list="templateList" @cancel="templateCancel" @confirm="templateConfirm"></u-select>



<!-- 加载组件 -->
<loading v-model="LOADING"></loading>
</view>
@@ -453,7 +398,7 @@
},
data() {
return {
percent: 0,
percent: 0,
tabactive: 0,
activeTotal: 0,
customerId: '',
@@ -469,7 +414,11 @@
fllowList: [],
KeyWordsfractionList: [], //需求挖掘话术list
userInfo: {},
buttonisshow: false
buttonisshow: false,
showBeText: '全部业务', //
templateList: [], // 销讲业务
showTemplate: false, // 展示选择销讲业务弹窗
}
},
computed: {
@@ -493,8 +442,39 @@
}
this.getCustomerInfo()
this.tabtimetap(0)
this.getMarketingBusiness()
},
methods: {

// 销讲业务方法
templateCancel() {
this.showTemplate = false;
},

// 确认选择销讲业务
templateConfirm(e) {
this.showTemplate = false;
this.customerId = e[0].value
this.showBeText = e[0].label
this.getCustomerInfo()
this.tabtimetap(2)
},


// 获取销讲业务
getMarketingBusiness() {
this.$u.get('/customer/marketingBusinessByCusId', {
id: this.customerId,
}).then(res => {
if (res) {
this.templateList = res
this.customerId = res[0].cusId
this.showBeText = res[0].templateName
}
})
},

clickWajue(item) {
if (item.isAskQuestions == 0) {
uni.navigateTo({
@@ -504,67 +484,67 @@
})
}
},
// 计算挖掘执行的完成率
getPercent(){
let countArr = this.KeyWordsfractionList.filter(item=> item.selected==0)
// 计算挖掘执行的完成率
getPercent() {
let countArr = this.KeyWordsfractionList.filter(item => item.selected == 0)
console.log(countArr)
this.percent = (countArr.length / this.KeyWordsfractionList.length)*100
console.log(this.percent.toFixed(0))
this.percent = this.percent.toFixed(0)
this.percent = (countArr.length / this.KeyWordsfractionList.length) * 100
console.log(this.percent.toFixed(0))
this.percent = this.percent.toFixed(0)

},
//挖掘率话术客户标签展示
getKeywordsList(list) {
let keywords = [];
if (list && list.length) {
keywords = list.map((item) => item.name);
} else {
return "--";
}
return keywords.join(",");
},
//挖掘率话术客户标签展示
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
},
max100(num) {
if (num > 100) {
return 100;
} else if (!num) {
return 0;
} else {
return num;
}
},
max100(num) {
if (num > 100) {
return 100;
} else if (!num) {
return 0;
} else {
return num;
}
},
// 客户详情需求挖掘话术
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;
this.getPercent()
} else {
this.KeyWordsfractionList = [];
}
});
},
// 获取到访记录
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;
this.getPercent()
} else {
this.KeyWordsfractionList = [];
}
});
},
// 获取到访记录
getVisitList() {
this.$u.get("/customer/findByPhoneAndProject?id=" + this.customerId, ).then(res => {
this.Thevisitingrecords = res
@@ -785,16 +765,34 @@
</script>

<style lang="scss" scoped>
.boxtittabs {
width: 100%;
height: 92rpx;
background: #FFFFFF;
display: flex;
align-items: center;

.items {
padding: 0 24rpx;
width: 100%;
height: 100%;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
}

.rotatearrow {
transform: rotate(270deg);
}
.top-box{
height: 80rpx;
line-height: 80rpx;
display: flex;
color: #2671E2;
border-bottom: 1rpx solid #ccc;
}

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

// 评分
.rate-box {
@@ -917,12 +915,13 @@
padding-right: 30rpx;
border-bottom: 1rpx solid #E0E0E0;
background: #FFFFFF;

.hsnrtest {
font-size: 28rpx;
font-weight: 400;
color: #666666;
line-height: 30rpx;
margin-bottom: 20rpx;
margin-bottom: 20rpx;
}

.Level3che {
@@ -1340,7 +1339,8 @@
}

.tabchange {
background:#fff;
background: #fff;

.tabactive1 {
padding-bottom: 100rpx;



+ 1
- 0
pages/mine/details2.vue Просмотреть файл

@@ -868,6 +868,7 @@
getMarketingBusiness() {
this.$u.get('/customer/marketingBusiness', {
houseId: this.buildingID,
status: 0,
}).then(res => {
this.templateList = res
})


+ 1
- 0
pages/mine/reception/addreception.vue Просмотреть файл

@@ -182,6 +182,7 @@
getMarketingBusiness() {
this.$u.get('/customer/marketingBusiness', {
houseId: this.parames.projectId,
status: 0,
}).then(res => {
this.templateList = res
if (res && res.length > 0) {


Загрузка…
Отмена
Сохранить