门店数据

This commit is contained in:
老叶
2022-08-12 17:19:40 +08:00
parent b843c47ff7
commit 706cf3a087
12 changed files with 836 additions and 113 deletions
+2
View File
@@ -154,6 +154,8 @@ api = {
appBizStats:'app/biz/stats', //门店数据首页
appBizStats_customer:'app/biz/stats_customer', //客户数据
appBizStats_wxqy:'app/biz/stats_wxqy', //企微数据
appBizStats_order:'app/biz/stats_order', //订单数据
appBizStats_days:'app/biz/stats_days', //客户/订单走势图
+14
View File
@@ -917,4 +917,18 @@ apiQuery.getAppBizStats_wxqy = function (params) {
})
}
//订单数据
apiQuery.getAppBizStats_order = function (params) {
return new Promise(function (resolve, reject) {
HttpRequest(false, Config.api.appBizStats_order, 2, params, "GET", resolve, reject)
})
}
//客户/订单走势图
apiQuery.getAppBizStats_days = function (params) {
return new Promise(function (resolve, reject) {
HttpRequest(false, Config.api.appBizStats_days, 2, params, "GET", resolve, reject)
})
}
export default apiQuery;
+235 -25
View File
@@ -52,7 +52,6 @@ function Pie2Chart(canvas, width, height, dpr) {
Page({
data: {
imgUrl: _.config.imgUrl,//静态图片路径
isShowKefu:false,
showPie1Chart:false,//是否显示Pie1图表
ecPie1:{},
showPie2Chart:false,//是否显示Pie2图表
@@ -72,56 +71,275 @@ Page({
this.setData({
s_date:res[0],
e_date:res[1],
current_date:res[1],
})
})
this.getAppStatisticsHcust()
this.getAppBizStats_customer()
},
//选择开始日期
//选择日期
changeDate(e){
if(e.currentTarget.dataset.type=="s_date"){
this.setData({
s_date: e.detail.value,
})
let begin = new Date(e.detail.value).getTime();
let end = new Date(this.data.e_date).getTime();
let day = 0
if(end>=begin){
day = (end - begin)/(24*60*60*1000);
this.setData({
s_date: e.detail.value,
})
}
else{
day = (begin - end)/(24*60*60*1000);
let s_date = this.data.e_date
let e_date = e.detail.value
this.setData({
s_date,
e_date,
})
}
if (day > 365) {
wx.showToast({
title: '请选择一年时间内',
icon: 'none'
})
}
else{
this.getAppBizStats_customer()
}
}
if(e.currentTarget.dataset.type=="e_date"){
this.setData({
e_date: e.detail.value,
})
let begin = new Date(this.data.s_date).getTime();
let end = new Date(e.detail.value).getTime();
let day = 0
if(end>=begin){
day = (end - begin)/(24*60*60*1000);
this.setData({
e_date: e.detail.value,
})
}
else{
day = (begin - end)/(24*60*60*1000);
let e_date = this.data.s_date
let s_date = e.detail.value
this.setData({
s_date,
e_date,
})
}
if (day > 365) {
wx.showToast({
title: '请选择一年时间内',
icon: 'none'
})
}
else{
this.getAppBizStats_customer()
}
}
},
//数据分析-客户数据
getAppStatisticsHcust(){
//客户数据
getAppBizStats_customer(){
this.setData({
showPie1Chart:false,
showPie2Chart:false,
showBarChart:false,
})
Pie1ChartData = getPie1Option()
let params = {};
params['s_time'] = this.data.s_date;
params['e_time'] = this.data.e_date;
_.apiQuery.getAppBizStats_customer(params).then(res => {
wx.setNavigationBarTitle({
title: res.data.title
})
// Pie1ChartData = getPie1Option()
Pie1ChartData = {
tooltip: {
trigger: 'item',
formatter: '{b}: {c} ({d}%)'
},
series: [
{
name: 'Access From',
type: 'pie',
selectedMode: 'single',
radius: [0, '30%'],
label: {
position: 'inner',
fontSize: 10
},
labelBar: {
show: false
},
data: []
},
{
name: 'Access From',
type: 'pie',
radius: ['45%', '65%'],
labelLine: {
fontSize:5,
length:10
},
label: {
formatter: '{b| {b} }{abg|}\n{hr|}\n{c| {c}({d}%) }',
backgroundColor: '#F6F8FC',
borderColor: '#8C8D8E',
borderWidth: 1,
borderRadius: 4,
rich: {
hr: {
borderColor: '#8C8D8E',
width: '100%',
borderWidth: 1,
height: 0
},
b: {
color: '#4C5058',
fontSize:10,
lineHeight:20,
align: 'center',
},
c: {
color: '#4C5058',
fontSize:8,
lineHeight:20,
align: 'center',
},
}
},
data: []
},
]
};
Pie1ChartData.series[0].data = res.data.pie1.series_data_1
Pie1ChartData.series[1].data = res.data.pie1.series_data_2
this.setData({
Pie1title:res.data.pie1.title,
showPie1Chart:true,
['ecPie1.onInit']:Pie1Chart,
})
Pie2ChartData = getPie2Option()
// Pie2ChartData = getPie2Option()
Pie2ChartData = {
tooltip: {
trigger: 'item',
formatter: '{b}: {c} ({d}%)'
},
series: [
{
name: 'Access From',
type: 'pie',
selectedMode: 'single',
radius: [0, '30%'],
label: {
position: 'inner',
fontSize: 10
},
labelBar: {
show: false
},
data: []
},
{
name: 'Access From',
type: 'pie',
radius: ['45%', '65%'],
labelLine: {
fontSize:5,
length:10
},
label: {
formatter: '{b| {b} }{abg|}\n{hr|}\n{c| {c}({d}%) }',
backgroundColor: '#F6F8FC',
borderColor: '#8C8D8E',
borderWidth: 1,
borderRadius: 4,
rich: {
hr: {
borderColor: '#8C8D8E',
width: '100%',
borderWidth: 1,
height: 0
},
b: {
color: '#4C5058',
fontSize:10,
lineHeight:20,
align: 'center',
},
c: {
color: '#4C5058',
fontSize:8,
lineHeight:20,
align: 'center',
},
}
},
data: []
},
]
};
Pie2ChartData.series[0].data = res.data.pie2.series_data_1
Pie2ChartData.series[1].data = res.data.pie2.series_data_2
this.setData({
Pie2title:res.data.pie2.title,
showPie2Chart:true,
['ecPie2.onInit']:Pie2Chart,
})
BarChartData = getBarOption()
//BarChartData = getBarOption()
BarChartData = {
tooltip: {
trigger: 'axis',
axisPointer: {
type: 'shadow'
}
},
xAxis: {
type: 'category',
data: []
},
yAxis: {
type: 'value'
},
grid: {
top: '5%',
left: '2%',
right: '5%',
bottom: '3%',
containLabel: true
},
series: [
{
data: [],
type: 'bar',
top: 0,
bottom:'0',
}
]
};
BarChartData.xAxis.data = res.data.bar.xAxis_data
BarChartData.series[0].data = res.data.bar.series_data
this.setData({
Bartitle:res.data.bar.title,
showBarChart:true,
['ecBar.onInit']:BarChart,
})
wx.stopPullDownRefresh()
});
},
//推送链接
@@ -131,17 +349,10 @@ Page({
}
},
//联系客服
optShowKefu(e) {
this.setData({
isShowKefu:!this.data.isShowKefu,
})
},
//页面相关事件处理函数--监听用户下拉动作
onPullDownRefresh: function () {
//this.getDistributionHome()
this.getAppBizStats_customer()
},
})
@@ -180,7 +391,7 @@ function getPie1Option() {
length:10
},
label: {
formatter: '{b|{b}}{abg|}\n{hr|}\n{c| {c}({d}%) }',
formatter: '{b| {b} }{abg|}\n{hr|}\n{c| {c}({d}%) }',
backgroundColor: '#F6F8FC',
borderColor: '#8C8D8E',
borderWidth: 1,
@@ -312,7 +523,6 @@ function getBarOption() {
containLabel: true
},
series: [
{
data: [120, 200, 150, 80, 70, 110, 130, 10],
type: 'bar',
-1
View File
@@ -1,5 +1,4 @@
{
"navigationBarTitleText": "客户数据",
"navigationBarTextStyle": "white",
"navigationBarBackgroundColor": "#ff7052",
"backgroundColor": "#ffffff",
+5 -5
View File
@@ -1,14 +1,14 @@
<view class="container img-top-cover" style="background-image:url({{imgUrl}}storedata/theme.png);">
<view class="text-center pt30 pb30">
<view class="inline-block bg-fff-op20 pt5 pb5 pl20 pr20 font-22 color-fff ulib-r750">
<picker class="inline-block" mode="date" value="{{s_date}}" bindchange="changeDate" data-type="s_date">
<picker class="inline-block" mode="date" value="{{s_date}}" end="{{current_date}}" bindchange="changeDate" data-type="s_date">
<view>
<text>{{s_date}}</text>
<i class="iconfont ml5 icon-xuanze"></i>
</view>
</picker>
<text class="pl10 pr10">至</text>
<picker class="inline-block" mode="date" value="{{e_date}}" bindchange="changeDate" data-type="e_date">
<picker class="inline-block" mode="date" value="{{e_date}}" end="{{current_date}}" bindchange="changeDate" data-type="e_date">
<view>
<text>{{e_date}}</text>
<i class="iconfont ml5 icon-xuanze"></i>
@@ -20,7 +20,7 @@
<view class="mb30 pl30 pr30">
<view class="inner30 pt40 bg-fff box-shadow-000-10-10 ulib-r10">
<view class="relative">
<view class="font-36">客户来源(录入)</view>
<view class="font-36">{{Pie1title}}</view>
</view>
<view class="mt50 mb20 relative height-400 z-index-0">
<view class="absolute wp100 height-400" wx:if="{{showPie1Chart}}">
@@ -33,7 +33,7 @@
<view class="mb30 pl30 pr30">
<view class="inner30 pt40 bg-fff box-shadow-000-10-10 ulib-r10">
<view class="relative">
<view class="font-36">客户来源(进店)</view>
<view class="font-36">{{Pie2title}}</view>
</view>
<view class="mt50 mb20 relative height-400 z-index-0">
<view class="absolute wp100 height-400" wx:if="{{showPie2Chart}}">
@@ -46,7 +46,7 @@
<view class="mb30 pl30 pr30">
<view class="inner30 pt40 bg-fff box-shadow-000-10-10 ulib-r10">
<view class="relative">
<view class="font-36">顾问录入客户</view>
<view class="font-36">{{Bartitle}}</view>
</view>
<view class="mt50 mb20 relative height-500 z-index-0">
<view class="absolute wp100 height-500" wx:if="{{showBarChart}}">
+118 -11
View File
@@ -35,6 +35,8 @@ Page({
ecFunnel:{},
showLineChart:false,//是否显示Line图表
ecLine:{},
daysIndex:0,
daysArray:['近7日','近30日'],
},
onLoad: function (options) {
@@ -48,33 +50,82 @@ Page({
this.setData({
s_date:res[0],
e_date:res[1],
current_date:res[1],
})
})
this.getAppBizStats()
this.getAppBizStats_days()
},
//选择开始日期
//选择日期
changeDate(e){
if(e.currentTarget.dataset.type=="s_date"){
this.setData({
s_date: e.detail.value,
})
let begin = new Date(e.detail.value).getTime();
let end = new Date(this.data.e_date).getTime();
let day = 0
if(end>=begin){
day = (end - begin)/(24*60*60*1000);
this.setData({
s_date: e.detail.value,
})
}
else{
day = (begin - end)/(24*60*60*1000);
let s_date = this.data.e_date
let e_date = e.detail.value
this.setData({
s_date,
e_date,
})
}
if (day > 365) {
wx.showToast({
title: '请选择一年时间内',
icon: 'none'
})
}
else{
this.getAppBizStats()
}
}
if(e.currentTarget.dataset.type=="e_date"){
this.setData({
e_date: e.detail.value,
})
let begin = new Date(this.data.s_date).getTime();
let end = new Date(e.detail.value).getTime();
let day = 0
if(end>=begin){
day = (end - begin)/(24*60*60*1000);
this.setData({
e_date: e.detail.value,
})
}
else{
day = (begin - end)/(24*60*60*1000);
let e_date = this.data.s_date
let s_date = e.detail.value
this.setData({
s_date,
e_date,
})
}
if (day > 365) {
wx.showToast({
title: '请选择一年时间内',
icon: 'none'
})
}
else{
this.getAppBizStats()
}
}
},
//数据分析-客户数据
//门店数据-漏斗
getAppBizStats(){
this.setData({
showFunnelChart:false,
showLineChart:false,
})
let params = {};
@@ -135,10 +186,14 @@ Page({
}
]
};
if(res.data.funnel.actual_data[0].value==0&&res.data.funnel.actual_data[1].value==0&&res.data.funnel.actual_data[2].value==0){
FunnelChartData.series[1].itemStyle.opacity = 0
}
FunnelChartData.series[0].data = res.data.funnel.expected_data
FunnelChartData.series[1].data = res.data.funnel.actual_data
this.setData({
funneltitle:res.data.funnel.title,
showFunnelChart:true,
['ecFunnel.onInit']:FunnelChart,
})
@@ -146,15 +201,66 @@ Page({
wx.stopPullDownRefresh()
});
},
lineChartData = getLineOption()
//客户/订单走势图
getAppBizStats_days(){
this.setData({
showLineChart:false,
})
let params = {};
params['days'] = this.data.daysIndex == 0?'7':'30';
_.apiQuery.getAppBizStats_days(params).then(res => {
// lineChartData = getLineOption()
lineChartData = {
tooltip: {
trigger: 'axis'
},
legend: {
top: 'bottom',
data: []
},
grid: {
top: '3%',
left: '2%',
right: '5%',
bottom: '20%',
containLabel: true
},
xAxis: {
type: 'category',
boundaryGap: false,
data: []
},
yAxis: {
type: 'value'
},
series: []
};
lineChartData.legend.data = res.data.legend_data
lineChartData.xAxis.data = res.data.xAxis
lineChartData.series = res.data.series
this.setData({
linetitle:res.data.title,
showLineChart:true,
['ecLine.onInit']:lineChart,
})
wx.stopPullDownRefresh()
});
},
//选择天数
changeDays(e) {
this.setData({
daysIndex: e.detail.value
})
this.getAppBizStats_days()
},
//推送链接
@@ -167,6 +273,7 @@ Page({
//页面相关事件处理函数--监听用户下拉动作
onPullDownRefresh: function () {
this.getAppBizStats()
this.getAppBizStats_days()
},
})
+7 -7
View File
@@ -1,14 +1,14 @@
<view class="container img-top-cover" style="background-image:url({{imgUrl}}storedata/theme.png);">
<view class="text-center pt30 pb30">
<view class="inline-block bg-fff-op20 pt5 pb5 pl20 pr20 font-22 color-fff ulib-r750">
<picker class="inline-block" mode="date" value="{{s_date}}" bindchange="changeDate" data-type="s_date">
<picker class="inline-block" mode="date" value="{{s_date}}" end="{{current_date}}" bindchange="changeDate" data-type="s_date">
<view>
<text>{{s_date}}</text>
<i class="iconfont ml5 icon-xuanze"></i>
</view>
</picker>
<text class="pl10 pr10">至</text>
<picker class="inline-block" mode="date" value="{{e_date}}" bindchange="changeDate" data-type="e_date">
<picker class="inline-block" mode="date" value="{{e_date}}" end="{{current_date}}" bindchange="changeDate" data-type="e_date">
<view>
<text>{{e_date}}</text>
<i class="iconfont ml5 icon-xuanze"></i>
@@ -37,7 +37,7 @@
<view class="mb30 pl30 pr30">
<view class="relative inner30 pb60 pt40 bg-fff box-shadow-000-10-10 ulib-r10">
<view class="relative">
<view class="font-36">线索转化漏斗</view>
<view class="font-36">{{funneltitle}}</view>
<!-- <picker class="absolute right-0 box-middle" bindchange="changeCity" value="{{cityIndex}}" range="{{cityArray}}">
<view class="pt10 pb10 pl20 pr20 bg-f6 ulib-r10 font-22">
<text>厦门</text>
@@ -58,14 +58,14 @@
<view class="mb30 pl30 pr30">
<view class="inner30 pt40 bg-fff box-shadow-000-10-10 ulib-r10">
<view class="relative">
<view class="font-36">近一周走势图</view>
<!-- <picker class="absolute right-0 box-middle" bindchange="changeCity" value="{{cityIndex}}" range="{{cityArray}}">
<view class="font-36">{{linetitle}}</view>
<picker class="absolute right-0 box-middle" bindchange="changeDays" value="{{daysIndex}}" range="{{daysArray}}">
<view class="pt10 pb10 pl20 pr20 bg-f6 ulib-r10 font-22">
<text>厦门</text>
<text>{{cityArray[cityIndex]}}</text>
<text>{{daysArray[daysIndex]}}</text>
<i class="iconfont ml10 icon-xiala color-999"></i>
</view>
</picker> -->
</picker>
</view>
<view class="mt50 mb20 relative height-500 z-index-0">
<view class="absolute wp100 height-500" wx:if="{{showLineChart}}">
+303 -30
View File
@@ -44,7 +44,6 @@ function Pie2Chart(canvas, width, height, dpr) {
let option = Pie2ChartData
chart.setOption(option);
chart.on('click',function(e){
console.log(e.name)
_.eventBus.emit("pinpai",e.name)
});
return chart;
@@ -53,7 +52,6 @@ function Pie2Chart(canvas, width, height, dpr) {
Page({
data: {
imgUrl: _.config.imgUrl,//静态图片路径
isShowKefu:false,
showPie1Chart:false,//是否显示Pie1图表
ecPie1:{},
showPie2Chart:false,//是否显示Pie2图表
@@ -73,15 +71,91 @@ Page({
this.setData({
s_date:res[0],
e_date:res[1],
current_date:res[1],
})
})
this.getAppStatisticsHcust()
this.getAppBizStats_order()
//消息通讯 是否显示授权用户信息按钮
_.eventBus.on("pinpai", this, function(res){
console.log(111111)
console.log(res)
this.setData({
showPie2Chart:false,
})
Pie2ChartData = {
tooltip: {
fontSize:10,
trigger: 'item',
formatter: '{b}: {c} ({d}%)'
},
series: [
{
name: 'Access From',
type: 'pie',
selectedMode: 'single',
radius: [0, '30%'],
label: {
position: 'inner',
fontSize: 10
},
labelLine: {
show: false
},
data: []
},
{
name: 'Access From',
type: 'pie',
radius: ['45%', '65%'],
labelLine: {
fontSize:5,
length:10
},
label: {
formatter: '{b| {b} }{abg|}\n{hr|}\n{c| {c}({d}%) }',
backgroundColor: '#F6F8FC',
borderColor: '#8C8D8E',
borderWidth: 1,
borderRadius: 4,
rich: {
hr: {
borderColor: '#8C8D8E',
width: '100%',
borderWidth: 1,
height: 0
},
b: {
color: '#4C5058',
fontSize:10,
lineHeight:20,
align: 'center',
},
c: {
color: '#4C5058',
fontSize:8,
lineHeight:20,
align: 'center',
},
}
},
data: []
},
]
};
Pie2ChartData.series[0].data = this.data.pie2.series_data
if(res == '成交数'){
Pie2ChartData.series[1].data = this.data.pie2.series_data_1
}
else if(res == '退定数'){
Pie2ChartData.series[1].data = this.data.pie2.series_data_2
}
this.setData({
showPie2Chart:true,
['ecPie2.onInit']:Pie2Chart,
})
})
},
@@ -93,49 +167,256 @@ Page({
},
//选择开始日期
//选择日期
changeDate(e){
if(e.currentTarget.dataset.type=="s_date"){
this.setData({
s_date: e.detail.value,
})
let begin = new Date(e.detail.value).getTime();
let end = new Date(this.data.e_date).getTime();
let day = 0
if(end>=begin){
day = (end - begin)/(24*60*60*1000);
this.setData({
s_date: e.detail.value,
})
}
else{
day = (begin - end)/(24*60*60*1000);
let s_date = this.data.e_date
let e_date = e.detail.value
this.setData({
s_date,
e_date,
})
}
if (day > 365) {
wx.showToast({
title: '请选择一年时间内',
icon: 'none'
})
}
else{
this.getAppBizStats_order()
}
}
if(e.currentTarget.dataset.type=="e_date"){
this.setData({
e_date: e.detail.value,
})
let begin = new Date(this.data.s_date).getTime();
let end = new Date(e.detail.value).getTime();
let day = 0
if(end>=begin){
day = (end - begin)/(24*60*60*1000);
this.setData({
e_date: e.detail.value,
})
}
else{
day = (begin - end)/(24*60*60*1000);
let e_date = this.data.s_date
let s_date = e.detail.value
this.setData({
s_date,
e_date,
})
}
if (day > 365) {
wx.showToast({
title: '请选择一年时间内',
icon: 'none'
})
}
else{
this.getAppBizStats_order()
}
}
},
//数据分析-客户数据
getAppStatisticsHcust(){
//订单数据
getAppBizStats_order(){
this.setData({
showPie1Chart:false,
showPie2Chart:false,
showBarChart:false,
})
Pie1ChartData = getPie1Option()
let params = {};
params['s_time'] = this.data.s_date;
params['e_time'] = this.data.e_date;
_.apiQuery.getAppBizStats_order(params).then(res => {
wx.setNavigationBarTitle({
title: res.data.title
})
// Pie1ChartData = getPie1Option()
Pie1ChartData = {
series: [
{
name: 'Access From',
type: 'pie',
bottom:'10%',
radius: ['40%', '70%'],
avoidLabelOverlap: false,
itemStyle: {
borderRadius: 10,
borderColor: '#fff',
borderWidth: 2
},
label: {
show: false,
position: 'center'
},
labelLine: {
fontSize:5,
length:10
},
label: {
formatter: '{b| {b} }{abg|}\n{hr|}\n{c| {c}({d}%) }',
backgroundColor: '#F6F8FC',
borderColor: '#8C8D8E',
borderWidth: 1,
borderRadius: 4,
rich: {
hr: {
borderColor: '#8C8D8E',
width: '100%',
borderWidth: 1,
height: 0
},
b: {
color: '#4C5058',
fontSize:10,
lineHeight:20,
align: 'center',
},
c: {
color: '#4C5058',
fontSize:8,
lineHeight:20,
align: 'center',
},
}
},
data: []
}
]
};
Pie1ChartData.series[0].data = res.data.pie1.series_data
this.setData({
Pie1title:res.data.pie1.title,
showPie1Chart:true,
['ecPie1.onInit']:Pie1Chart,
})
Pie2ChartData = getPie2Option()
// Pie2ChartData = getPie2Option()
Pie2ChartData = {
tooltip: {
fontSize:10,
trigger: 'item',
formatter: '{b}: {c} ({d}%)'
},
series: [
{
name: 'Access From',
type: 'pie',
selectedMode: 'single',
radius: [0, '30%'],
label: {
position: 'inner',
fontSize: 10
},
labelLine: {
show: false
},
data: []
},
{
name: 'Access From',
type: 'pie',
radius: ['45%', '65%'],
labelLine: {
fontSize:5,
length:10
},
label: {
formatter: '{b| {b} }{abg|}\n{hr|}\n{c| {c}({d}%) }',
backgroundColor: '#F6F8FC',
borderColor: '#8C8D8E',
borderWidth: 1,
borderRadius: 4,
rich: {
hr: {
borderColor: '#8C8D8E',
width: '100%',
borderWidth: 1,
height: 0
},
b: {
color: '#4C5058',
fontSize:10,
lineHeight:20,
align: 'center',
},
c: {
color: '#4C5058',
fontSize:8,
lineHeight:20,
align: 'center',
},
}
},
data: []
},
]
};
Pie2ChartData.series[0].data = res.data.pie2.series_data
Pie2ChartData.series[1].data = res.data.pie2.series_data_1
this.setData({
Pie2title:res.data.pie2.title,
showPie2Chart:true,
['ecPie2.onInit']:Pie2Chart,
pie2:res.data.pie2,
})
BarChartData = getBarOption()
//BarChartData = getBarOption()
BarChartData = {
tooltip: {
trigger: 'axis'
},
grid: {
top: '8%',
left: '5%',
right: '5%',
bottom: '5%',
containLabel: true
},
calculable: true,
xAxis: [
{
type: 'category',
data: []
}
],
yAxis: [
{
type: 'value'
}
],
series: []
};
BarChartData.xAxis.data = res.data.bar.xAxis_data
BarChartData.series = res.data.bar.series
this.setData({
Bartitle:res.data.bar.title,
showBarChart:true,
['ecBar.onInit']:BarChart,
})
wx.stopPullDownRefresh()
});
},
//推送链接
@@ -145,17 +426,9 @@ Page({
}
},
//联系客服
optShowKefu(e) {
this.setData({
isShowKefu:!this.data.isShowKefu,
})
},
//页面相关事件处理函数--监听用户下拉动作
onPullDownRefresh: function () {
//this.getDistributionHome()
this.getAppBizStats_order()
},
})
@@ -187,7 +460,7 @@ function getPie1Option() {
length:10
},
label: {
formatter: '{b|{b}}{abg|}\n{hr|}\n{c| {c}({d}%) }',
formatter: '{b| {b} }{abg|}\n{hr|}\n{c| {c}({d}%) }',
backgroundColor: '#F6F8FC',
borderColor: '#8C8D8E',
borderWidth: 1,
@@ -245,7 +518,7 @@ function getPie2Option() {
show: false
},
data: [
{ value: 258, name: '成交数' },
{ value: 258, name:'成交数',selected:true},
{ value: 77, name: '退定数' },
]
},
@@ -258,7 +531,7 @@ function getPie2Option() {
length:10
},
label: {
formatter: '{b|{b}}{abg|}\n{hr|}\n{c| {c}({d}%) }',
formatter: '{b| {b} }{abg|}\n{hr|}\n{c| {c}({d}%) }',
backgroundColor: '#F6F8FC',
borderColor: '#8C8D8E',
borderWidth: 1,
+5 -5
View File
@@ -1,14 +1,14 @@
<view class="container img-top-cover" style="background-image:url({{imgUrl}}storedata/theme.png);">
<view class="text-center pt30 pb30">
<view class="inline-block bg-fff-op20 pt5 pb5 pl20 pr20 font-22 color-fff ulib-r750">
<picker class="inline-block" mode="date" value="{{s_date}}" bindchange="changeDate" data-type="s_date">
<picker class="inline-block" mode="date" value="{{s_date}}" end="{{current_date}}" bindchange="changeDate" data-type="s_date">
<view>
<text>{{s_date}}</text>
<i class="iconfont ml5 icon-xuanze"></i>
</view>
</picker>
<text class="pl10 pr10">至</text>
<picker class="inline-block" mode="date" value="{{e_date}}" bindchange="changeDate" data-type="e_date">
<picker class="inline-block" mode="date" value="{{e_date}}" end="{{current_date}}" bindchange="changeDate" data-type="e_date">
<view>
<text>{{e_date}}</text>
<i class="iconfont ml5 icon-xuanze"></i>
@@ -20,7 +20,7 @@
<view class="mb30 pl30 pr30">
<view class="inner30 pt40 bg-fff box-shadow-000-10-10 ulib-r10">
<view class="relative">
<view class="font-36">订单来源</view>
<view class="font-36">{{Pie1title}}</view>
</view>
<view class="mt50 mb20 relative height-400 z-index-0">
<view class="absolute wp100 height-400" wx:if="{{showPie1Chart}}">
@@ -33,7 +33,7 @@
<view class="mb30 pl30 pr30">
<view class="inner30 pt40 bg-fff box-shadow-000-10-10 ulib-r10">
<view class="relative">
<view class="font-36">品牌分布</view>
<view class="font-36">{{Pie2title}}</view>
</view>
<view class="mt50 mb20 relative height-400 z-index-0">
<view class="absolute wp100 height-400" wx:if="{{showPie2Chart}}">
@@ -46,7 +46,7 @@
<view class="mb30 pl30 pr30">
<view class="inner30 pt40 bg-fff box-shadow-000-10-10 ulib-r10">
<view class="relative">
<view class="font-36">顾问成交情况</view>
<view class="font-36">{{Bartitle}}</view>
</view>
<view class="mt50 mb20 relative height-500 z-index-0">
<view class="absolute wp100 height-500" wx:if="{{showBarChart}}">
+143 -24
View File
@@ -5,8 +5,6 @@ const app = getApp()
let Bar1ChartData;
let Bar2ChartData;
let Pie1ChartData;
let Pie2ChartData;
function Bar1Chart(canvas, width, height, dpr) {
const chart = echarts.init(canvas, null, {
width: width,
@@ -39,7 +37,6 @@ function Bar2Chart(canvas, width, height, dpr) {
Page({
data: {
imgUrl: _.config.imgUrl,//静态图片路径
isShowKefu:false,
showBar1Chart:false,//是否显示Bar图表
ecBar1:{},
showBar2Chart:false,//是否显示Bar图表
@@ -57,47 +54,177 @@ Page({
this.setData({
s_date:res[0],
e_date:res[1],
current_date:res[1],
})
})
this.getAppStatisticsHcust()
this.getAppBizStats_wxqy()
},
//选择开始日期
//选择日期
changeDate(e){
if(e.currentTarget.dataset.type=="s_date"){
this.setData({
s_date: e.detail.value,
})
let begin = new Date(e.detail.value).getTime();
let end = new Date(this.data.e_date).getTime();
let day = 0
if(end>=begin){
day = (end - begin)/(24*60*60*1000);
this.setData({
s_date: e.detail.value,
})
}
else{
day = (begin - end)/(24*60*60*1000);
let s_date = this.data.e_date
let e_date = e.detail.value
this.setData({
s_date,
e_date,
})
}
if (day > 365) {
wx.showToast({
title: '请选择一年时间内',
icon: 'none'
})
}
else{
this.getAppBizStats_wxqy()
}
}
if(e.currentTarget.dataset.type=="e_date"){
this.setData({
e_date: e.detail.value,
})
let begin = new Date(this.data.s_date).getTime();
let end = new Date(e.detail.value).getTime();
let day = 0
if(end>=begin){
day = (end - begin)/(24*60*60*1000);
this.setData({
e_date: e.detail.value,
})
}
else{
day = (begin - end)/(24*60*60*1000);
let e_date = this.data.s_date
let s_date = e.detail.value
this.setData({
s_date,
e_date,
})
}
if (day > 365) {
wx.showToast({
title: '请选择一年时间内',
icon: 'none'
})
}
else{
this.getAppBizStats_wxqy()
}
}
},
//数据分析-客户数据
getAppStatisticsHcust(){
//企微数据
getAppBizStats_wxqy(){
this.setData({
showBar1Chart:false,
showBar2Chart:false,
})
let params = {};
params['s_time'] = this.data.s_date;
params['e_time'] = this.data.e_date;
_.apiQuery.getAppBizStats_wxqy(params).then(res => {
Bar1ChartData = getBar1Option()
wx.setNavigationBarTitle({
title: res.data.title
})
//Bar1ChartData = getBar1Option()
Bar1ChartData = {
tooltip: {
trigger: 'axis',
axisPointer: {
type: 'shadow'
}
},
xAxis: {
type: 'category',
data: []
},
yAxis: {
type: 'value'
},
grid: {
top: '5%',
left: '2%',
right: '5%',
bottom: '3%',
containLabel: true
},
series: [
{
data: [],
type: 'bar',
top: 0,
bottom:'0',
}
]
};
Bar1ChartData.xAxis.data = res.data.bar1.xAxis_data
Bar1ChartData.series[0].data = res.data.bar1.series_data
this.setData({
Bar1title:res.data.bar1.title,
showBar1Chart:true,
['ecBar1.onInit']:Bar1Chart,
})
Bar2ChartData = getBar2Option()
//Bar2ChartData = getBar2Option()
Bar2ChartData = {
tooltip: {
trigger: 'axis',
axisPointer: {
type: 'shadow'
}
},
xAxis: {
type: 'category',
data: []
},
yAxis: {
type: 'value'
},
grid: {
top: '5%',
left: '2%',
right: '5%',
bottom: '3%',
containLabel: true
},
series: [
{
data: [],
type: 'bar',
top: 0,
bottom:'0',
}
]
};
Bar2ChartData.xAxis.data = res.data.bar2.xAxis_data
Bar2ChartData.series[0].data = res.data.bar2.series_data
this.setData({
Bar2title:res.data.bar2.title,
showBar2Chart:true,
['ecBar2.onInit']:Bar2Chart,
})
wx.stopPullDownRefresh()
});
},
//推送链接
@@ -107,17 +234,9 @@ Page({
}
},
//联系客服
optShowKefu(e) {
this.setData({
isShowKefu:!this.data.isShowKefu,
})
},
//页面相关事件处理函数--监听用户下拉动作
onPullDownRefresh: function () {
//this.getDistributionHome()
this.getAppBizStats_wxqy()
},
})
-1
View File
@@ -1,5 +1,4 @@
{
"navigationBarTitleText": "企微数据",
"navigationBarTextStyle": "white",
"navigationBarBackgroundColor": "#ff7052",
"backgroundColor": "#ffffff",
+4 -4
View File
@@ -1,14 +1,14 @@
<view class="container img-top-cover" style="background-image:url({{imgUrl}}storedata/theme.png);">
<view class="text-center pt30 pb30">
<view class="inline-block bg-fff-op20 pt5 pb5 pl20 pr20 font-22 color-fff ulib-r750">
<picker class="inline-block" mode="date" value="{{s_date}}" bindchange="changeDate" data-type="s_date">
<picker class="inline-block" mode="date" value="{{s_date}}" end="{{current_date}}" bindchange="changeDate" data-type="s_date">
<view>
<text>{{s_date}}</text>
<i class="iconfont ml5 icon-xuanze"></i>
</view>
</picker>
<text class="pl10 pr10">至</text>
<picker class="inline-block" mode="date" value="{{e_date}}" bindchange="changeDate" data-type="e_date">
<picker class="inline-block" mode="date" value="{{e_date}}" end="{{current_date}}" bindchange="changeDate" data-type="e_date">
<view>
<text>{{e_date}}</text>
<i class="iconfont ml5 icon-xuanze"></i>
@@ -20,7 +20,7 @@
<view class="mb30 pl30 pr30">
<view class="inner30 pt40 bg-fff box-shadow-000-10-10 ulib-r10">
<view class="relative">
<view class="font-36">企微添加好友</view>
<view class="font-36">{{Bar1title}}</view>
</view>
<view class="mt50 mb20 relative height-500 z-index-0">
<view class="absolute wp100 height-500" wx:if="{{showBar1Chart}}">
@@ -33,7 +33,7 @@
<view class="mb30 pl30 pr30">
<view class="inner30 pt40 bg-fff box-shadow-000-10-10 ulib-r10">
<view class="relative">
<view class="font-36">企微添加点亮</view>
<view class="font-36">{{Bar2title}}</view>
</view>
<view class="mt50 mb20 relative height-500 z-index-0">
<view class="absolute wp100 height-500" wx:if="{{showBar2Chart}}">