Browse Source

init3

yun
wangxiaohua 3 years ago
parent
commit
ca7ea865e2
8 changed files with 530 additions and 3 deletions
  1. +26
    -0
      pages.json
  2. +8
    -0
      pages/center/Piabodata/StaffAnalysis.vue
  3. +8
    -0
      pages/center/Piabodata/TrendAnalysis.vue
  4. +467
    -0
      pages/center/Piabodata/Userinsightinto.vue
  5. +21
    -3
      pages/center/Piabodata/index.vue
  6. BIN
      static/images/ranking1.png
  7. BIN
      static/images/ranking2.png
  8. BIN
      static/images/ranking3.png

+ 26
- 0
pages.json View File

@@ -177,10 +177,36 @@
"navigationBarBackgroundColor": "#FFFFFF",
"navigationBarTextStyle": "black"
}
},
{
"path": "Piabodata/Userinsightinto",
"style": {
"navigationBarTitleText": "客户画像",
"navigationBarBackgroundColor": "#FFFFFF",
"navigationBarTextStyle": "black"
}
},
{
"path": "Piabodata/TrendAnalysis",
"style": {
"navigationBarTitleText": "趋势分析",
"navigationBarBackgroundColor": "#FFFFFF",
"navigationBarTextStyle": "black"
}
},
{
"path": "Piabodata/StaffAnalysis",
"style": {
"navigationBarTitleText": "员工分析",
"navigationBarBackgroundColor": "#FFFFFF",
"navigationBarTextStyle": "black"
}
}
]
}
],


+ 8
- 0
pages/center/Piabodata/StaffAnalysis.vue View File

@@ -0,0 +1,8 @@
<template>
</template>

<script>
</script>

<style>
</style>

+ 8
- 0
pages/center/Piabodata/TrendAnalysis.vue View File

@@ -0,0 +1,8 @@
<template>
</template>

<script>
</script>

<style>
</style>

+ 467
- 0
pages/center/Piabodata/Userinsightinto.vue View File

@@ -0,0 +1,467 @@
<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>
<view class="boxzonglan">
<view class="zonglantit">客群特征总览</view>
<view class="zonglanbox">
<view class="grid" v-for="(item,index) in numlist" :key="index" v-if="item.isshow">
<view class="audonum">{{item.name}}<text v-if="index!=0">触达次数</text></view>
<view class="num">{{item.num}}</view>
</view>
</view>
<view v-if="Afolding==true" class="anclack" @click="anclick(1)">展开 <u-icon style="margin-left: 8rpx;" label-color='#666666' name="arrow-down"></u-icon></view>
<view v-if="Afolding==false" 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">
<view class="lefti"></view>
<view class="lefttext">{{item.name}}触达排名</view>
</view>
<view class="right">
<view :class="{ activeclass: item.activeTab == 0 }" @click="charttoswitch(index,0)">表格</view>
<view style="margin-left: 16rpx;" :class="{ activeclass: item.activeTab == 1 }"
@click="charttoswitch(index,1)">饼状图</view>
</view>
</view>
<view v-if="item.activeTab==0" class="tabdada">
<view class="tabth">
<view>排名</view>
<view>画像语意词/触达客户</view>
<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>
<image v-if="i==0" class="ranking" src="../../../static/images/ranking1.png" mode=""></image>
<image v-else-if="i==1" class="ranking" src="../../../static/images/ranking2.png" mode=""></image>
<image v-else-if="i==2" class="ranking" src="../../../static/images/ranking3.png" mode=""></image>
<view class="ranking1" v-else>{{i+1}}</view>
</view>
<view>{{chend.name}}({{chend.total}})</view>
<view>{{chend.proportion}}%</view>
<view @click="Toview(item,i)">查看</view>
</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" />
</view>
</view>

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

<script>
var app = getApp();
var util = require("../../../utils/util.js");
var config = require("../../../config");
export default {
data() {
return {
scrollTop: 0,
activeTotal: 2,
timeobj:{
statDateStart:'',
statDateEnd:''
},
buildingID:'',
totalTimeShow: false,
activeTab: 0,
numlist:[],
objlist:[],
Afolding:true
};
},
onPageScroll(e) {
this.scrollTop = e.scrollTop;
},
onLoad() {
this.buildingID=uni.getStorageSync('buildingID').id;
this.gitinit()
},
methods: {
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.$forceUpdate()
},
//获取数据
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
}
this.$u.post("/matchKeywords/findmatchdata", parames).then(data => {
this.numlist.push({
name:"客户数量",
num:data.total
})
data.list.forEach((item,index)=>{
this.numlist.push({
name:item.name,
num:item.total
})
item.activeTab=0;
item.opts={
"title": {
"name": item.total,
"color": '#666666',
"fontSize": 20
},
"subtitle": {
"name": '总触达次数',
"color": '#32363D',
"fontSize": 12,
"offsetY": 4
}
}
item.chartData={
"categories": [],
"series": [{
"data": []
}],
};
item.matchKeywords.forEach(chend=>{
item.chartData.series[0].data.push({
"name":chend.name,
"value": chend.proportion
})
})
})
data.list.forEach(item=>{
item.matchKeywords.forEach(chend=>{
if(item.name=="意向面积"){
chend.name=chend.name+'m²-'+chend.endName+'m²'
}
if(item.name=="购房预算"){
chend.name=chend.name+'万-'+chend.endName+'万'
}
})
})
this.objlist=data.list;
this.Afolding=true;
this.numlist.forEach((citem,index)=>{
if(index<6){
citem.isshow=true
}else{
citem.isshow=false
}
})
})
},
//查看
Toview(item,i){
// uni.navigateTo({
// url: '/pages/main/Customerportrait/Receivingrecords?datatype='+this.activeTotal+"&keywordsId="+item.matchKeywords[i].keywordsId+"&starttime="+this.timeobj.statDateStart+"&endoftime="+this.timeobj.statDateEnd
// })
},
//时间切换
tabtimetap(index) {
if (index == 3) {
this.totalTimeShow = true;
} else {
this.activeTotal = index;
this.gitinit()
}
},
//自定义时间
totalTimeChange(e) {
this.timeobj.statDateStart = e.startDate;
this.timeobj.statDateEnd = e.endDate;
this.activeTotal=3;
this.gitinit()
},
charttoswitch(index,num) {
this.objlist[index].activeTab=num
}
}
};
</script>
<style lang="scss" scoped>
.anclack{
width: 100%;
height: 78rpx;
text-align: center;
line-height: 78rpx;
font-size: 30rpx;
border: 1rpx solid #E0E0E0;
font-weight: 400;
color: #666666;
}
.box {
width: 100%;
height: 100%;
background: #FAFAFA;
padding-bottom: 60rpx;
}

.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;
display: flex;
justify-content: center;

.activecllasscet {
width: 96rpx;
border-bottom: 2px solid #2671E2;
}
}
}

.tabtime {
width: 100%;
height: 50rpx;
text-align: center;
line-height: 50rpx;
font-size: 24rpx;
color: #666666;
}

.boxzonglan {
width: 100%;
min-height: 496rpx;
background: #FFFFFF;
padding: 30rpx 30rpx 30rpx 30rpx;

.zonglantit {
font-size: 30rpx;
color: #333333;
font-family: PingFangSC-Semibold, PingFang SC;
font-weight: 600;
}

.zonglanbox {
width: 100%;
display: flex;
flex-wrap: wrap;
margin-top: 24rpx;

.grid {
width: 50%;
height: 128rpx;
border: 1px solid #E0E0E0;

.audonum {
color: #666666;
text-indent: 40rpx;
font-size: 26rpx;
margin-top: 20rpx;
}

.num {
color: #333333;
text-indent: 40rpx;
font-size: 32rpx;
font-weight: 600;
margin-top: 10rpx;
}
}
}
}

.centerfor {
width: 100%;
height: 686rpx;
background: #FFFFFF;
padding-left: 30rpx;
padding-right: 30rpx;
margin-top: 20rpx;

.fortit {
width: 100%;
height: 86rpx;
display: flex;
border-bottom: 1px solid #E0E0E0;

.left {
width: 70%;
height: 100%;
display: flex;
align-items: center;

.lefti {
width: 6rpx;
height: 30rpx;
background: #2671E2;
}

.lefttext {
font-size: 30rpx;
font-family: PingFangSC-Semibold, PingFang SC;
font-weight: 600;
color: #333333;
margin-left: 10rpx;
}
}

.right {
width: 30%;
height: 70rpx;
display: flex;
font-size: 28rpx;
align-items: center;
margin-top: 16rpx;

}

.right view {
width: 92rpx;
height: 50rpx;
text-align: center;
}
}
}

.activeclass {
color: #2671E2;
border-bottom: 2px solid #2671E2;
}

.tabdada {
width: 100%;
height: 580rpx;
overflow-y: auto;
padding-bottom: 20rpx;
}

.tabth {
width: 100%;
height: 28rpx;
display: flex;
font-size: 28rpx;
line-height: 28rpx;
color: #666666;
margin-top: 28rpx;
}

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

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

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

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

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

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

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

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

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

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

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

+ 21
- 3
pages/center/Piabodata/index.vue View File

@@ -16,19 +16,19 @@
</view>
<view style="width: 100%;height: 20rpx;background: #FAFAFA;"></view>
<view class="Piabodata-box">
<view class="Piabodata">
<view class="Piabodata" @click="toTrendAnalysis()">
<view class="Piabodata-img">
<image class="Piabodata-img1" src="../../../static/images/qushi.png" mode=""></image>
</view>
<view class="Piabodata-text">趋势分析</view>
</view>
<view class="Piabodata">
<view class="Piabodata" @click="toStaffAnalysis()">
<view class="Piabodata-img">
<image class="Piabodata-img1" src="../../../static/images/yuangong.png" mode=""></image>
</view>
<view class="Piabodata-text">员工分析</view>
</view>
<view class="Piabodata">
<view class="Piabodata" @click="toUserinsightinto()">
<view class="Piabodata-img">
<image class="Piabodata-img1" src="../../../static/images/yinghu.png" mode=""></image>
</view>
@@ -246,6 +246,24 @@
uni.navigateTo({
url: '/pages/center/Piabodata/Theteamcompared'
});
},
//用户洞察
toUserinsightinto(){
uni.navigateTo({
url: '/pages/center/Piabodata/Userinsightinto'
});
},
//趋势分析
toTrendAnalysis(){
uni.navigateTo({
url: '/pages/center/Piabodata/TrendAnalysis'
});
},
//员工分析
toStaffAnalysis(){
uni.navigateTo({
url: '/pages/center/Piabodata/StaffAnalysis'
});
}
}
};


BIN
static/images/ranking1.png View File

Before After
Width: 76  |  Height: 76  |  Size: 6.0 KiB

BIN
static/images/ranking2.png View File

Before After
Width: 76  |  Height: 76  |  Size: 6.2 KiB

BIN
static/images/ranking3.png View File

Before After
Width: 80  |  Height: 80  |  Size: 7.2 KiB

Loading…
Cancel
Save