update
This commit is contained in:
parent
99ce5e8233
commit
09817ee2a0
@ -5,14 +5,35 @@
|
|||||||
|
|
||||||
<div class="charts">
|
<div class="charts">
|
||||||
<div class="chartsItem">
|
<div class="chartsItem">
|
||||||
<p class="title">交易分析</p>
|
<div style="display: flex;justify-content: space-between;align-items: center">
|
||||||
|
<p class="title">{{month}}月交易分析</p>
|
||||||
|
<div class="time">
|
||||||
|
<div class="select">
|
||||||
|
<picker mode="date" fields="month" :value="single" :end="endData" @change="bindDateChange" >
|
||||||
|
<view class="time">
|
||||||
|
<view class="uni-input" style="background: transparent;padding: 0;height:100%">{{ single }}</view>
|
||||||
|
<image class="icon" src="/static/images/index/arrow_bottom.svg"></image>
|
||||||
|
</view>
|
||||||
|
</picker>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<div v-if="transactionList">
|
<div v-if="transactionList">
|
||||||
<transaction-analysis :data="transactionList" />
|
<transaction-analysis :data="transactionList" />
|
||||||
</div>
|
</div>
|
||||||
<no-data v-else />
|
<no-data v-else />
|
||||||
</div>
|
</div>
|
||||||
<div class="chartsItem" style="margin-top: 32px">
|
<div class="chartsItem" style="margin-top: 32px">
|
||||||
<p class="title">消费时段分析</p>
|
<p class="title">{{month}}月消费转化对比图</p>
|
||||||
|
<div v-if="compareList.series[0].data.length>0">
|
||||||
|
<consumption-compare :data="compareList"/>
|
||||||
|
<analyse :analyseInfo="{analysisins_type: 1406,analysisins_format: 2000}" />
|
||||||
|
</div>
|
||||||
|
<no-data v-else />
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="chartsItem" style="margin-top: 32px">
|
||||||
|
<p class="title">{{month}}月消费时段分析</p>
|
||||||
<div v-if="timePeriodList.series.length>0">
|
<div v-if="timePeriodList.series.length>0">
|
||||||
<time-period-analysis :data="timePeriodList"/>
|
<time-period-analysis :data="timePeriodList"/>
|
||||||
<analyse :analyseInfo="{analysisins_type: 1403,analysisins_format: 2000}" />
|
<analyse :analyseInfo="{analysisins_type: 1403,analysisins_format: 2000}" />
|
||||||
@ -20,7 +41,7 @@
|
|||||||
<no-data v-else />
|
<no-data v-else />
|
||||||
</div>
|
</div>
|
||||||
<div class="chartsItem" style="margin-top: 32px">
|
<div class="chartsItem" style="margin-top: 32px">
|
||||||
<p class="title">消费水平<text class="unit">(Top 5)</text></p>
|
<p class="title">{{month}}月消费水平<text class="unit"></text></p>
|
||||||
<div v-if="levelTopList.series.length>0">
|
<div v-if="levelTopList.series.length>0">
|
||||||
<level-top :data="levelTopList"></level-top>
|
<level-top :data="levelTopList"></level-top>
|
||||||
<analyse :analyseInfo="{analysisins_type: 1404,analysisins_format: 2000}" />
|
<analyse :analyseInfo="{analysisins_type: 1404,analysisins_format: 2000}" />
|
||||||
@ -28,7 +49,15 @@
|
|||||||
<no-data v-else />
|
<no-data v-else />
|
||||||
</div>
|
</div>
|
||||||
<div class="chartsItem" style="margin-top: 32px">
|
<div class="chartsItem" style="margin-top: 32px">
|
||||||
<p class="title">业态交易值占比</p>
|
<p class="title">{{month}}月品牌消费水平<text class="unit"></text></p>
|
||||||
|
<div v-if="bandLevelList.length>0">
|
||||||
|
<band-level :data="bandLevelList"/>
|
||||||
|
<analyse :analyseInfo="{analysisins_type: 1503,analysisins_format: 2000}" />
|
||||||
|
</div>
|
||||||
|
<no-data v-else/>
|
||||||
|
</div>
|
||||||
|
<div class="chartsItem" style="margin-top: 32px">
|
||||||
|
<p class="title">{{month}}月业态交易值占比</p>
|
||||||
<div v-if="businessTypeList.series[0].data.length>0">
|
<div v-if="businessTypeList.series[0].data.length>0">
|
||||||
<business-format :data="businessTypeList"/>
|
<business-format :data="businessTypeList"/>
|
||||||
<analyse :analyseInfo="{analysisins_type: 1405,analysisins_format: 2000}" />
|
<analyse :analyseInfo="{analysisins_type: 1405,analysisins_format: 2000}" />
|
||||||
@ -36,15 +65,7 @@
|
|||||||
<no-data v-else />
|
<no-data v-else />
|
||||||
</div>
|
</div>
|
||||||
<div class="chartsItem" style="margin-top: 32px">
|
<div class="chartsItem" style="margin-top: 32px">
|
||||||
<p class="title">消费转化对比图</p>
|
<p class="title">{{month}}月商超畅销品</p>
|
||||||
<div v-if="compareList.series[0].data.length>0">
|
|
||||||
<consumption-compare :data="compareList"/>
|
|
||||||
<analyse :analyseInfo="{analysisins_type: 1406,analysisins_format: 2000}" />
|
|
||||||
</div>
|
|
||||||
<no-data v-else />
|
|
||||||
</div>
|
|
||||||
<div class="chartsItem" style="margin-top: 32px">
|
|
||||||
<p class="title">商超畅销品</p>
|
|
||||||
<bestseller-shop :data="bestsellerList"/>
|
<bestseller-shop :data="bestsellerList"/>
|
||||||
<analyse :analyseInfo="{analysisins_type: 1407,analysisins_format: 2000}" />
|
<analyse :analyseInfo="{analysisins_type: 1407,analysisins_format: 2000}" />
|
||||||
</div>
|
</div>
|
||||||
@ -63,10 +84,12 @@ import BusinessFormat from "./components/bussiness/businessFormat.vue";
|
|||||||
import ConsumptionCompare from "./components/bussiness/consumptionCompare.vue";
|
import ConsumptionCompare from "./components/bussiness/consumptionCompare.vue";
|
||||||
import BestsellerShop from "./components/bussiness/bestsellerShop.vue";
|
import BestsellerShop from "./components/bussiness/bestsellerShop.vue";
|
||||||
import NoData from "./components/noData.vue";
|
import NoData from "./components/noData.vue";
|
||||||
|
import BandLevel from "./components/format/bandLevel.vue";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "businessPortrait",
|
name: "businessPortrait",
|
||||||
components: {
|
components: {
|
||||||
|
BandLevel,
|
||||||
NoData,
|
NoData,
|
||||||
BestsellerShop,
|
BestsellerShop,
|
||||||
ConsumptionCompare,
|
ConsumptionCompare,
|
||||||
@ -84,14 +107,17 @@ export default {
|
|||||||
transactionList:[],//交易分析数据
|
transactionList:[],//交易分析数据
|
||||||
timePeriodList:[],//消费时段分析
|
timePeriodList:[],//消费时段分析
|
||||||
levelTopList:[],//消费水平排行
|
levelTopList:[],//消费水平排行
|
||||||
|
bandLevelList:[],//品牌消费水平
|
||||||
businessTypeList:[],//业态适配型
|
businessTypeList:[],//业态适配型
|
||||||
compareList:[],//消费转化对比图
|
compareList:[],//消费转化对比图
|
||||||
bestsellerList:[],//商超畅销品
|
bestsellerList:[],//商超畅销品
|
||||||
serviceInfo:{} ,//当前服务区信息
|
serviceInfo:{} ,//当前服务区信息
|
||||||
backType:'',//返回的页面类型
|
backType:'',//返回的页面类型
|
||||||
analyseInfo:{
|
analyseInfo:{},
|
||||||
analysisins_type: 1401
|
analysisins_type: 1401,
|
||||||
},
|
single:'',//显示时间
|
||||||
|
endData:'', // 结束时间
|
||||||
|
month:'',//显示月份
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
onLoad(option) {
|
onLoad(option) {
|
||||||
@ -100,12 +126,19 @@ export default {
|
|||||||
this.serviceInfo = serviceInfo
|
this.serviceInfo = serviceInfo
|
||||||
//跳转的时候带上时间
|
//跳转的时候带上时间
|
||||||
this.time = option.time
|
this.time = option.time
|
||||||
|
this.endData = new Date()
|
||||||
},
|
},
|
||||||
onShow(){
|
onShow(){
|
||||||
let storeTime = uni.getStorageSync('lastDay')
|
let storeTime = uni.getStorageSync('lastDay')
|
||||||
if (storeTime){
|
if (storeTime){
|
||||||
this.time = storeTime
|
this.time = storeTime
|
||||||
}
|
}
|
||||||
|
this.single = this.$util.getThisMonthHave(this.time)
|
||||||
|
const date = new Date(this.time)
|
||||||
|
let month = date.getMonth() + 1
|
||||||
|
this.month = month<10?'0' + month:month
|
||||||
|
console.log('this.time',this.time)
|
||||||
|
|
||||||
let storeServiceInfo = uni.getStorageSync('currentService')
|
let storeServiceInfo = uni.getStorageSync('currentService')
|
||||||
if (storeServiceInfo){
|
if (storeServiceInfo){
|
||||||
this.serviceInfo = storeServiceInfo
|
this.serviceInfo = storeServiceInfo
|
||||||
@ -125,7 +158,9 @@ export default {
|
|||||||
this.getTimePeriodList()
|
this.getTimePeriodList()
|
||||||
//消费水平排行
|
//消费水平排行
|
||||||
this.getLevelTopList()
|
this.getLevelTopList()
|
||||||
//业态适配型
|
//品牌消费水平
|
||||||
|
this.getBandLevelList()
|
||||||
|
//业态交易值占比
|
||||||
this.getBusinessTypeList()
|
this.getBusinessTypeList()
|
||||||
//消费转化对比图
|
//消费转化对比图
|
||||||
this.getCompareList()
|
this.getCompareList()
|
||||||
@ -133,6 +168,36 @@ export default {
|
|||||||
this.getBestsellerList()
|
this.getBestsellerList()
|
||||||
},
|
},
|
||||||
methods:{
|
methods:{
|
||||||
|
onRefresh(){
|
||||||
|
//交易分析
|
||||||
|
this.getTransactionList()
|
||||||
|
//消费时段分析
|
||||||
|
this.getTimePeriodList()
|
||||||
|
//消费水平排行
|
||||||
|
this.getLevelTopList()
|
||||||
|
//品牌消费水平
|
||||||
|
this.getBandLevelList()
|
||||||
|
//业态交易值占比
|
||||||
|
this.getBusinessTypeList()
|
||||||
|
//消费转化对比图
|
||||||
|
this.getCompareList()
|
||||||
|
//商超畅销品
|
||||||
|
this.getBestsellerList()
|
||||||
|
this.$forceUpdate()
|
||||||
|
},
|
||||||
|
bindDateChange(e){
|
||||||
|
const date = new Date(e.detail.value)
|
||||||
|
let m = date.getMonth() + 1
|
||||||
|
if (m<10){
|
||||||
|
m = '0' + m
|
||||||
|
}
|
||||||
|
this.month = m
|
||||||
|
this.single = e.detail.value
|
||||||
|
let d = this.$util.getThisMonthDay(e.detail.value)
|
||||||
|
this.endTime = e.detail.value + '-' + d
|
||||||
|
this.time = e.detail.value
|
||||||
|
this.onRefresh()
|
||||||
|
},
|
||||||
async nearestService(){
|
async nearestService(){
|
||||||
let seat = uni.getStorageSync('seatInfo');
|
let seat = uni.getStorageSync('seatInfo');
|
||||||
let req = {
|
let req = {
|
||||||
@ -171,23 +236,28 @@ export default {
|
|||||||
Serverpart_ID:this.serviceInfo.Serverpart_ID
|
Serverpart_ID:this.serviceInfo.Serverpart_ID
|
||||||
}
|
}
|
||||||
let totalData = await request.$webGet('CommercialApi/Revenue/GetTransactionTimeAnalysis',req)
|
let totalData = await request.$webGet('CommercialApi/Revenue/GetTransactionTimeAnalysis',req)
|
||||||
|
console.log('totalData123213',totalData)
|
||||||
let res = {
|
let res = {
|
||||||
series: [
|
categories: ["0:00","2:00","4:00","6:00","8:00","10:00","12:00","14:00","16:00","18:00","20:00","22:00","23:00"],
|
||||||
{
|
series:[{}]
|
||||||
name: "",
|
|
||||||
data: totalData.Result_Data.data
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
// let res = {
|
// let res = {
|
||||||
|
// categories: ["2018","2019","2020","2021","2022","2023"],
|
||||||
// series: [
|
// series: [
|
||||||
// {
|
// {
|
||||||
// name: "气泡一",
|
// name: "成交量A",
|
||||||
// data: [[2,35,17],[6,18,9],[10,5,5],[14,8,8],[18,9,9],[22,18,9]]
|
// data: [35,8,25,37,4,20]
|
||||||
|
// },
|
||||||
|
// {
|
||||||
|
// name: "成交量B",
|
||||||
|
// data: [70,40,65,100,44,68]
|
||||||
|
// },
|
||||||
|
// {
|
||||||
|
// name: "成交量C",
|
||||||
|
// data: [100,80,95,150,112,132]
|
||||||
// }
|
// }
|
||||||
// ]
|
// ]
|
||||||
// }
|
// };
|
||||||
this.timePeriodList = res
|
this.timePeriodList = res
|
||||||
},
|
},
|
||||||
async getLevelTopList(){
|
async getLevelTopList(){
|
||||||
@ -195,7 +265,7 @@ export default {
|
|||||||
ProvinceCode:'340000',
|
ProvinceCode:'340000',
|
||||||
StatisticsDate:this.time,
|
StatisticsDate:this.time,
|
||||||
ServerpartId:this.serviceInfo.Serverpart_ID,
|
ServerpartId:this.serviceInfo.Serverpart_ID,
|
||||||
ShowWholeTrade:true
|
ShowWholeTrade:false
|
||||||
}
|
}
|
||||||
let res = {
|
let res = {
|
||||||
categories:[],
|
categories:[],
|
||||||
@ -229,6 +299,36 @@ export default {
|
|||||||
console.log('res',res)
|
console.log('res',res)
|
||||||
this.levelTopList = res
|
this.levelTopList = res
|
||||||
},
|
},
|
||||||
|
async getBandLevelList(){
|
||||||
|
let req = {
|
||||||
|
ProvinceCode:'340000',
|
||||||
|
StatisticsDate:this.time,
|
||||||
|
ServerpartId:this.serviceInfo.Serverpart_ID,
|
||||||
|
ShowWholeBrand:false
|
||||||
|
}
|
||||||
|
let res =[]
|
||||||
|
let totalData = await request.$webGet('CommercialApi/Revenue/GetBusinessBrandLevel',req)
|
||||||
|
console.log('品牌消费水平',totalData)
|
||||||
|
totalData.Result_Data.legend.forEach(item=>{
|
||||||
|
res.push({name:item,small:0,normal:0,big:0})
|
||||||
|
})
|
||||||
|
res.forEach((item,index)=>{
|
||||||
|
totalData.Result_Data.ColumnList.forEach((subItem,subIndex)=>{
|
||||||
|
if (subItem.name==='低消费'){
|
||||||
|
item.small = subItem.data[index]
|
||||||
|
}else if(subItem.name==='普通消费'){
|
||||||
|
item.normal = subItem.data[index]
|
||||||
|
}else if(subItem.name==='高消费'){
|
||||||
|
item.big = subItem.data[index]
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
// let res=[{name:'五芳斋',big:'14.8',normal:'41.7',small:'43.5'},
|
||||||
|
// {name:'驿佰购',big:'44.1',normal:'31.7',small:'24.2'},
|
||||||
|
// {name:'老娘舅',big:'15.2',normal:'70.1',small:'14.5'},
|
||||||
|
// {name:'吉祥馄饨',big:'25.2',normal:'39.9',small:'34.7'}]
|
||||||
|
this.bandLevelList = res
|
||||||
|
},
|
||||||
async getBusinessTypeList(){
|
async getBusinessTypeList(){
|
||||||
const req = {
|
const req = {
|
||||||
ProvinceCode:'340000',
|
ProvinceCode:'340000',
|
||||||
@ -244,8 +344,10 @@ export default {
|
|||||||
res.push({name:`${item.name} ${item.value}%`,value:Number(item.value),number:Number(item.data)})
|
res.push({name:`${item.name} ${item.value}%`,value:Number(item.value),number:Number(item.data)})
|
||||||
all+=Number(item.value)
|
all+=Number(item.value)
|
||||||
}else if(index===11){
|
}else if(index===11){
|
||||||
|
if (all<100){
|
||||||
res.push({name:`其他${(100-all).toFixed(2)}%`,value:Number((100 - all).toFixed(2)),number:Number(item.data)})
|
res.push({name:`其他${(100-all).toFixed(2)}%`,value:Number((100 - all).toFixed(2)),number:Number(item.data)})
|
||||||
}
|
}
|
||||||
|
}
|
||||||
})
|
})
|
||||||
let result= {
|
let result= {
|
||||||
series: [
|
series: [
|
||||||
@ -333,35 +435,75 @@ export default {
|
|||||||
// }
|
// }
|
||||||
this.compareList = res
|
this.compareList = res
|
||||||
},
|
},
|
||||||
getBestsellerList(){
|
async getBestsellerList(){
|
||||||
|
let req = {
|
||||||
|
statisticsDate:this.time,
|
||||||
|
provinceCode:'340000',
|
||||||
|
Serverpart_ID:this.serviceInfo.Serverpart_ID,
|
||||||
|
SPRegionType_ID:this.serviceInfo.SPRegionType_ID
|
||||||
|
}
|
||||||
|
const data = await request.$webGet('CommercialApi/Revenue/GetSalableCommodity',req)
|
||||||
|
console.log('data222222222222',data)
|
||||||
|
let dataFirst = [{"name":"热销商品","value":data.Result_Data.SalableCommodity },
|
||||||
|
{"name":"","value":100 - data.Result_Data.SalableCommodity}]
|
||||||
|
let listFirst = []
|
||||||
|
let dataSecond = [{"name":"滞销商品","value":data.Result_Data.UnSalableCommodity},
|
||||||
|
{"name":"","value":100 - data.Result_Data.UnSalableCommodity}]
|
||||||
|
let listSecond = []
|
||||||
|
data.Result_Data.SalableCommodityList.forEach(item=>{
|
||||||
|
listFirst.push({name:item.Commodity_name ,value:item.Proportion })
|
||||||
|
})
|
||||||
|
data.Result_Data.UnSalableCommodityList .forEach(item=>{
|
||||||
|
listSecond.push({name:item.Commodity_name ,value:item.Proportion })
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
let res = [
|
let res = [
|
||||||
{
|
{
|
||||||
series:[
|
series:[
|
||||||
{
|
{
|
||||||
data: [{"name":"热销商品","value":39.8},
|
data:dataFirst,
|
||||||
{"name":"","value":60.2}],
|
list:listFirst
|
||||||
list:[{name:'红牛',value:29.3},
|
|
||||||
{name:'农夫山泉',value:25.6},
|
|
||||||
{name:'康师傅红烧牛肉面桶装牛肉面桶装',value:16.5},
|
|
||||||
{name:'方便面',value:15.2},
|
|
||||||
{name:'其他',value:13.4}]
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
series:[
|
series:[
|
||||||
{
|
{
|
||||||
data: [{"name":"滞销商品","value":21.6},
|
data:dataSecond,
|
||||||
{"name":"","value":78.4}],
|
list:listSecond
|
||||||
list:[{name:'水杯',value:29.3},
|
|
||||||
{name:'吸油纸',value:25.6},
|
|
||||||
{name:'康师傅红烧牛肉面桶装牛肉面桶装',value:16.5},
|
|
||||||
{name:'纸巾',value:15.2},
|
|
||||||
{name:'其他',value:13.4}]
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
// let res = [
|
||||||
|
// {
|
||||||
|
// series: [
|
||||||
|
// {
|
||||||
|
// data: [{"name":"热销商品","value":39.8},
|
||||||
|
// {"name":"","value":60.2}],
|
||||||
|
// list:[{name:'红牛',value:29.3},
|
||||||
|
// {name:'农夫山泉',value:25.6},
|
||||||
|
// {name:'康师傅红烧牛肉面桶装牛肉面桶装',value:16.5},
|
||||||
|
// {name:'方便面',value:15.2},
|
||||||
|
// {name:'其他',value:13.4}]
|
||||||
|
// }
|
||||||
|
// ]
|
||||||
|
// },
|
||||||
|
// {
|
||||||
|
// series: [
|
||||||
|
// {
|
||||||
|
// data: [{"name":"滞销商品","value":21.6},
|
||||||
|
// {"name":"","value":78.4}],
|
||||||
|
// list:[{name:'水杯',value:29.3},
|
||||||
|
// {name:'吸油纸',value:25.6},
|
||||||
|
// {name:'康师傅红烧牛肉面桶装牛肉面桶装',value:16.5},
|
||||||
|
// {name:'纸巾',value:15.2},
|
||||||
|
// {name:'其他',value:13.4}]
|
||||||
|
// }
|
||||||
|
// ]
|
||||||
|
// }
|
||||||
|
// ]
|
||||||
this.bestsellerList = res
|
this.bestsellerList = res
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -393,6 +535,43 @@ export default {
|
|||||||
margin-left: 4px;
|
margin-left: 4px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
.time{
|
||||||
|
margin-bottom: 4px;
|
||||||
|
.thisTime{
|
||||||
|
font-size: 14px;
|
||||||
|
font-family: PingFangSC-Semibold, PingFang SC;
|
||||||
|
font-weight: 500;
|
||||||
|
color: #160002;
|
||||||
|
}
|
||||||
|
.select{
|
||||||
|
margin-left: 8px;
|
||||||
|
display: inline-block;
|
||||||
|
.time {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
margin-right: 4px;
|
||||||
|
.day {
|
||||||
|
font-size: 32rpx;
|
||||||
|
font-family: PingFangSC-Regular, PingFang SC;
|
||||||
|
font-weight: 400;
|
||||||
|
color: #782717;
|
||||||
|
line-height: 44rpx;
|
||||||
|
margin-right: 4px;
|
||||||
|
}
|
||||||
|
.uni-input {
|
||||||
|
font-size: 14px;
|
||||||
|
font-family: PingFangSC-Regular, PingFang SC;
|
||||||
|
font-weight: 400;
|
||||||
|
color: #ae664e;
|
||||||
|
line-height: 36rpx;
|
||||||
|
}
|
||||||
|
.icon {
|
||||||
|
width: 24px;
|
||||||
|
height: 16px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -58,7 +58,7 @@
|
|||||||
<p class="title">月度车流累计</p>
|
<p class="title">月度车流累计</p>
|
||||||
<div>
|
<div>
|
||||||
<month-total :data="monthTotalList"/>
|
<month-total :data="monthTotalList"/>
|
||||||
<analyse :analyseInfo="{analysisins_type: 1103,analysisins_format: 2000}" />
|
<analyse :analyseInfo="{analysisins_type: 1107,analysisins_format: 2000}" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@ -108,7 +108,7 @@
|
|||||||
<p class="title">{{thisMonth?thisMonth:'-'}}月入区车型占比</p>
|
<p class="title">{{thisMonth?thisMonth:'-'}}月入区车型占比</p>
|
||||||
<div class="box" v-if="allEntry">
|
<div class="box" v-if="allEntry">
|
||||||
<text class="value">{{allEntry?allEntry:'-'}}%</text>
|
<text class="value">{{allEntry?allEntry:'-'}}%</text>
|
||||||
<view class="right">
|
<view class="right" v-if="addAllEntry">
|
||||||
<text class="compare">(较上月)</text>
|
<text class="compare">(较上月)</text>
|
||||||
<image class="arrowTop" :src="Number(addAllEntry)>0?'https://eshangtech.com/ShopICO/ahyd-BID/index/addIcon.svg':'https://eshangtech.com/ShopICO/ahyd-BID/index/reduce.svg'"></image>
|
<image class="arrowTop" :src="Number(addAllEntry)>0?'https://eshangtech.com/ShopICO/ahyd-BID/index/addIcon.svg':'https://eshangtech.com/ShopICO/ahyd-BID/index/reduce.svg'"></image>
|
||||||
<text class="text">{{addAllEntry?Math.abs(addAllEntry) + '%':'-' + '%'}}</text>
|
<text class="text">{{addAllEntry?Math.abs(addAllEntry) + '%':'-' + '%'}}</text>
|
||||||
@ -327,7 +327,7 @@ export default {
|
|||||||
this.labelList = list
|
this.labelList = list
|
||||||
//分析的文字
|
//分析的文字
|
||||||
const total = await request.$webPost('CommercialApi/Analysis/GetANALYSISINSList',reqText)
|
const total = await request.$webPost('CommercialApi/Analysis/GetANALYSISINSList',reqText)
|
||||||
this.analyseText = total.Result_Data.List[0].ANALYSIS_CONTENT
|
this.analyseText = total.Result_Data.List[0]?total.Result_Data.List[0].ANALYSIS_CONTENT:''
|
||||||
},
|
},
|
||||||
//当前最近的服务区数据
|
//当前最近的服务区数据
|
||||||
async nearestService(){
|
async nearestService(){
|
||||||
@ -400,7 +400,11 @@ export default {
|
|||||||
if (monetCountMax<item.RevenueAmount){
|
if (monetCountMax<item.RevenueAmount){
|
||||||
monetCountMax = item.RevenueAmount
|
monetCountMax = item.RevenueAmount
|
||||||
}
|
}
|
||||||
|
if (item.Vehicle_Count === 0){
|
||||||
|
carCount.push(0)
|
||||||
|
}else{
|
||||||
carCount.push(Number((item.Vehicle_Count / 10000)))
|
carCount.push(Number((item.Vehicle_Count / 10000)))
|
||||||
|
}
|
||||||
moneyCount.push(Number((item.RevenueAmount / 10000)))
|
moneyCount.push(Number((item.RevenueAmount / 10000)))
|
||||||
// showTip要展示的信息
|
// showTip要展示的信息
|
||||||
info.push({
|
info.push({
|
||||||
|
|||||||
@ -49,7 +49,7 @@ export default {
|
|||||||
PageSize:10
|
PageSize:10
|
||||||
}
|
}
|
||||||
const data = await request.$webPost('CommercialApi/Analysis/GetANALYSISINSList',req)
|
const data = await request.$webPost('CommercialApi/Analysis/GetANALYSISINSList',req)
|
||||||
this.analyseText = data.Result_Data.List[0].ANALYSIS_CONTENT
|
this.analyseText = data.Result_Data.List[0]?data.Result_Data.List[0].ANALYSIS_CONTENT:''
|
||||||
console.log('getLabelDetail',data)
|
console.log('getLabelDetail',data)
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|||||||
@ -36,7 +36,7 @@ export default {
|
|||||||
formatter: (item, category, index, opts) => {
|
formatter: (item, category, index, opts) => {
|
||||||
console.log('opts',opts)
|
console.log('opts',opts)
|
||||||
console.log('index',index)
|
console.log('index',index)
|
||||||
return item.name + ',客单数量 ' + opts.series[index].number + '笔'
|
return item.name + ',客单数量 ' + opts.series[index].number + '笔,' + '客单均价 '
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
uChartsInstance[e.target.id].touchLegend(e);
|
uChartsInstance[e.target.id].touchLegend(e);
|
||||||
|
|||||||
@ -35,7 +35,7 @@ export default {
|
|||||||
uChartsInstance[e.target.id].showToolTip(e, {
|
uChartsInstance[e.target.id].showToolTip(e, {
|
||||||
formatter: (item, category, index, opts) => {
|
formatter: (item, category, index, opts) => {
|
||||||
console.log('item',item)
|
console.log('item',item)
|
||||||
if (item.name === 'name'){
|
if (item.name === '客单数'){
|
||||||
return item.name + ':'+ item.data + '笔'
|
return item.name + ':'+ item.data + '笔'
|
||||||
}else{
|
}else{
|
||||||
return item.name + ':'+ item.data + '辆'
|
return item.name + ':'+ item.data + '辆'
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="levelTop">
|
<div class="levelTop">
|
||||||
<canvas v-if="!levelTopPath" class="level" canvas-id="levelTop" id="levelTop"/>
|
<canvas class="level" canvas-id="levelTop" id="levelTop" @tap="tap"/>
|
||||||
<image v-if="levelTopPath" class="level" :src="levelTopPath"></image>
|
<!-- <image v-if="levelTopPath" class="level" :src="levelTopPath"></image>-->
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@ -31,6 +31,14 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
tap(e){
|
||||||
|
uChartsInstance[e.target.id].showToolTip(e,{
|
||||||
|
formatter: (item, category, index, opts) =>{
|
||||||
|
return item.name + ' '+ item.data + '%';
|
||||||
|
}
|
||||||
|
});
|
||||||
|
uChartsInstance[e.target.id].touchLegend(e);
|
||||||
|
},
|
||||||
// 处理传入的数据
|
// 处理传入的数据
|
||||||
handleCarData(value) {
|
handleCarData(value) {
|
||||||
let res = value
|
let res = value
|
||||||
@ -93,7 +101,7 @@ export default {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
setTimeout( ()=>{
|
setTimeout( ()=>{
|
||||||
this.canvasToTempImage('levelTop')
|
// this.canvasToTempImage('levelTop')
|
||||||
},2000)
|
},2000)
|
||||||
},
|
},
|
||||||
canvasToTempImage(id){
|
canvasToTempImage(id){
|
||||||
|
|||||||
@ -43,7 +43,7 @@ export default {
|
|||||||
let phoneInfo = uni.getStorageSync('phoneInfo')
|
let phoneInfo = uni.getStorageSync('phoneInfo')
|
||||||
this.width = phoneInfo.screenWidth - 32
|
this.width = phoneInfo.screenWidth - 32
|
||||||
uChartsInstance[id] = new uCharts({
|
uChartsInstance[id] = new uCharts({
|
||||||
type: "bubble",
|
type: "area",
|
||||||
context: ctx,
|
context: ctx,
|
||||||
width: _this.width,
|
width: _this.width,
|
||||||
height: 200,
|
height: 200,
|
||||||
@ -85,9 +85,13 @@ export default {
|
|||||||
float: 'center',
|
float: 'center',
|
||||||
},
|
},
|
||||||
extra: {
|
extra: {
|
||||||
bubble: {
|
area: {
|
||||||
border: 1,
|
type: "curve",
|
||||||
opacity: 0.25
|
opacity: 0.2,
|
||||||
|
addLine: true,
|
||||||
|
width: 2,
|
||||||
|
gradient: true,
|
||||||
|
activeType: "hollow"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
@ -7,7 +7,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="bottom">
|
<div class="bottom">
|
||||||
<div class="item">
|
<div class="item">
|
||||||
<p class="price">{{ info.AvgTicketPrice?info.AvgTicketPrice:'-' }}</p>
|
<p class="price">{{ info.MonthAvgTicketPrice?info.MonthAvgTicketPrice:'-' }}</p>
|
||||||
<p class="text">该服务区</p>
|
<p class="text">该服务区</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="item">
|
<div class="item">
|
||||||
|
|||||||
@ -37,6 +37,7 @@ export default {
|
|||||||
watch: {
|
watch: {
|
||||||
data: {
|
data: {
|
||||||
handler(value) {
|
handler(value) {
|
||||||
|
console.log('value',value)
|
||||||
this.info = value
|
this.info = value
|
||||||
this.carTypeTimePath=''
|
this.carTypeTimePath=''
|
||||||
this.handleCarData(value)
|
this.handleCarData(value)
|
||||||
@ -52,7 +53,7 @@ export default {
|
|||||||
formatter: (item, category, index, opts) =>{
|
formatter: (item, category, index, opts) =>{
|
||||||
if (this.num===0){
|
if (this.num===0){
|
||||||
this.num++
|
this.num++
|
||||||
return '日均车辆' + ":" + opts.series[0].valueList[index] + '辆';
|
return '日均车辆' + ":" + opts.series[0].valueList[index] + '辆,占比' + item.data + '%';
|
||||||
}else{
|
}else{
|
||||||
this.num=0
|
this.num=0
|
||||||
return '平均停留' + ":" + item.data + '分钟';
|
return '平均停留' + ":" + item.data + '分钟';
|
||||||
|
|||||||
@ -101,6 +101,7 @@ export default {
|
|||||||
return item.name + ":" + item.data + '辆';
|
return item.name + ":" + item.data + '辆';
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
uChartsInstance[e.target.id].touchLegend(e);
|
||||||
},
|
},
|
||||||
// 处理传入的数据
|
// 处理传入的数据
|
||||||
handleCarData(value) {
|
handleCarData(value) {
|
||||||
|
|||||||
@ -63,8 +63,13 @@ export default {
|
|||||||
return 5
|
return 5
|
||||||
}else{
|
}else{
|
||||||
let sum = value + value *0.2
|
let sum = value + value *0.2
|
||||||
|
if (sum>0 && sum<5){
|
||||||
|
return 5
|
||||||
|
}else{
|
||||||
|
console.log('sum',sum)
|
||||||
return Number((sum / 5).toFixed(0)) * 5
|
return Number((sum / 5).toFixed(0)) * 5
|
||||||
}
|
}
|
||||||
|
}
|
||||||
},
|
},
|
||||||
drawCharts(id, data,config) {
|
drawCharts(id, data,config) {
|
||||||
const ctx = uni.createCanvasContext(id, this);
|
const ctx = uni.createCanvasContext(id, this);
|
||||||
@ -101,7 +106,7 @@ export default {
|
|||||||
disabled: false,
|
disabled: false,
|
||||||
axisLine: false,
|
axisLine: false,
|
||||||
titleOffsetY: -5,
|
titleOffsetY: -5,
|
||||||
titleOffsetX: 15,
|
titleOffsetX: 25,
|
||||||
min: 0,
|
min: 0,
|
||||||
max:config.carMax
|
max:config.carMax
|
||||||
},
|
},
|
||||||
|
|||||||
@ -37,7 +37,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div style="display: flex;align-items: center">
|
<div style="display: flex;align-items: center">
|
||||||
<p class="smallRate">{{item.value + '%'}}</p>
|
<p class="smallRate">{{item.value + '%'}}</p>
|
||||||
<view class="right">
|
<view class="right" v-if="item.addValue">
|
||||||
<image class="arrowTop" :src="Number(item.addValue)>0?'https://eshangtech.com/ShopICO/ahyd-BID/index/addIcon.svg':'https://eshangtech.com/ShopICO/ahyd-BID/index/reduce.svg'"></image>
|
<image class="arrowTop" :src="Number(item.addValue)>0?'https://eshangtech.com/ShopICO/ahyd-BID/index/addIcon.svg':'https://eshangtech.com/ShopICO/ahyd-BID/index/reduce.svg'"></image>
|
||||||
<text class="text">{{item.addValue?Math.abs(item.addValue) + '%':'-' + '%'}}</text>
|
<text class="text">{{item.addValue?Math.abs(item.addValue) + '%':'-' + '%'}}</text>
|
||||||
</view>
|
</view>
|
||||||
@ -98,6 +98,7 @@ export default {
|
|||||||
},
|
},
|
||||||
// 处理传入的数据
|
// 处理传入的数据
|
||||||
handleCarData(value) {
|
handleCarData(value) {
|
||||||
|
console.log('valuePer',value)
|
||||||
let Vehicle_CountAll=0
|
let Vehicle_CountAll=0
|
||||||
let SectionFlow_CountAll=0
|
let SectionFlow_CountAll=0
|
||||||
let minAll = 0
|
let minAll = 0
|
||||||
@ -118,8 +119,8 @@ export default {
|
|||||||
this.dataList[0].value = (minAll / Vehicle_CountAll*100).toFixed(2)
|
this.dataList[0].value = (minAll / Vehicle_CountAll*100).toFixed(2)
|
||||||
this.dataList[1].value = (middleAll / Vehicle_CountAll*100).toFixed(2)
|
this.dataList[1].value = (middleAll / Vehicle_CountAll*100).toFixed(2)
|
||||||
this.dataList[2].value = (bigAll / Vehicle_CountAll*100).toFixed(2)
|
this.dataList[2].value = (bigAll / Vehicle_CountAll*100).toFixed(2)
|
||||||
this.dataList[0].addValue = value[0].MinVehicleEntry_Rate
|
this.dataList[0].addValue = value[0].MinVehicleEntry_GrowthRate
|
||||||
this.dataList[1].addValue = value[0].MediumVehicleEntry_Rate
|
this.dataList[1].addValue = value[0].MediumVehicleEntry_GrowthRate
|
||||||
this.dataList[2].addValue = value[0].LargeVehicleEntry_GrowthRate
|
this.dataList[2].addValue = value[0].LargeVehicleEntry_GrowthRate
|
||||||
let list = []
|
let list = []
|
||||||
this.dataList.forEach(item=>{
|
this.dataList.forEach(item=>{
|
||||||
|
|||||||
@ -44,7 +44,11 @@ export default {
|
|||||||
//点击事件
|
//点击事件
|
||||||
handleTap(e){
|
handleTap(e){
|
||||||
uChartsInstance[e.target.id].touchLegend(e);
|
uChartsInstance[e.target.id].touchLegend(e);
|
||||||
uChartsInstance[e.target.id].showToolTip(e);
|
uChartsInstance[e.target.id].showToolTip(e,{
|
||||||
|
formatter: (item, category, index, opts) =>{
|
||||||
|
return item.name + ":" + item.data + '分钟'
|
||||||
|
}
|
||||||
|
});
|
||||||
},
|
},
|
||||||
// 处理传入的数据
|
// 处理传入的数据
|
||||||
handleCarData(value) {
|
handleCarData(value) {
|
||||||
|
|||||||
@ -3,10 +3,11 @@
|
|||||||
<div class="bandItem" v-for="(item,index) in dataList" :key="index">
|
<div class="bandItem" v-for="(item,index) in dataList" :key="index">
|
||||||
<p class="title">{{item.name}}</p>
|
<p class="title">{{item.name}}</p>
|
||||||
<div class="progress">
|
<div class="progress">
|
||||||
<div v-if="Number(item.small)!==0" class="small" :style="{width:`calc(${item.small}% - 2px)`}">{{item.small<16?'':item.small+'%'}}</div>
|
<div v-if="Number(item.small)!==0" class="small" :style="{width:`calc(${item.small}% - 2px)`}" @click="handleClick($event,'small',item)">{{item.small<16?'':item.small+'%'}}</div>
|
||||||
<div v-if="Number(item.normal)!==0" class="normal" :style="{width:`calc(${item.normal}% - 2px)`,left:`calc(${item.small}% - 2px)`}">{{item.normal<16?'':item.normal + '%'}}</div>
|
<div v-if="Number(item.normal)!==0" class="normal" :style="{width:`calc(${item.normal}% - 2px)`,left:`calc(${item.small}% - 2px)`}" @click="handleClick($event,'normal',item)">{{item.normal<16?'':item.normal + '%'}}</div>
|
||||||
<div v-if="Number(item.big)!==0" class="big" :style="{width:item.big+'%',left:`calc(${item.normal + item.small}% - 4px)`}">{{item.big<16?'':item.big + '%'}}</div>
|
<div v-if="Number(item.big)!==0" class="big" :style="{width:item.big+'%',left:`calc(${item.normal + item.small}% - 4px)`}" @click="handleClick($event,'big',item)">{{item.big<16?'':item.big + '%'}}</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="meng" :style="position==='left'?`left:${positionWidth}`:`right:${positionWidth}`" v-if="selectName===item.name">{{typeText}}{{typeValue}}</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="key">
|
<div class="key">
|
||||||
<div class="box">
|
<div class="box">
|
||||||
@ -33,7 +34,13 @@ export default {
|
|||||||
name: "bandLevel",
|
name: "bandLevel",
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
dataList: []
|
dataList: [],
|
||||||
|
isShow: false,
|
||||||
|
typeText:'',
|
||||||
|
typeValue:'',
|
||||||
|
selectName:'',
|
||||||
|
position:'',//left 或者 right
|
||||||
|
positionWidth:'',// 定位百分比
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
props: {
|
props: {
|
||||||
@ -52,7 +59,39 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
handleClick(e,type,item){
|
||||||
|
console.log('index',item)
|
||||||
|
this.selectName = item.name
|
||||||
|
let phoneInfo = uni.getStorageSync('phoneInfo')
|
||||||
|
let width = phoneInfo.screenWidth
|
||||||
|
let startWidth = width * 0.2
|
||||||
|
let endWidth = width * 0.6
|
||||||
|
let now = e.detail.x
|
||||||
|
console.log('now',now)
|
||||||
|
this.isShow = true
|
||||||
|
if (now<startWidth){
|
||||||
|
this.position = 'left'
|
||||||
|
this.positionWidth = 0
|
||||||
|
}else if(now>startWidth && now<endWidth){
|
||||||
|
this.position = 'left'
|
||||||
|
this.positionWidth = `calc(${now}px - 16px)`
|
||||||
|
}else if(now>endWidth){
|
||||||
|
this.position = 'right'
|
||||||
|
this.positionWidth = 0
|
||||||
|
}
|
||||||
|
if (type==='small'){
|
||||||
|
this.typeText = '低消费'
|
||||||
|
this.typeValue = item.small + '%'
|
||||||
|
}else if(type === 'normal'){
|
||||||
|
this.typeText = '普通消费'
|
||||||
|
this.typeValue = item.normal + '%'
|
||||||
|
}else if(type === 'big'){
|
||||||
|
this.typeText = '高消费'
|
||||||
|
this.typeValue = item.big + '%'
|
||||||
|
}
|
||||||
|
console.log('e',e)
|
||||||
|
console.log('type',type)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
@ -62,6 +101,8 @@ export default {
|
|||||||
width: 100%;
|
width: 100%;
|
||||||
margin-top: 12px;
|
margin-top: 12px;
|
||||||
.bandItem{
|
.bandItem{
|
||||||
|
width: 100%;
|
||||||
|
position: relative;
|
||||||
margin-bottom: 12px;
|
margin-bottom: 12px;
|
||||||
.title{
|
.title{
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
@ -70,6 +111,16 @@ export default {
|
|||||||
color: #160002;
|
color: #160002;
|
||||||
line-height: 20px;
|
line-height: 20px;
|
||||||
}
|
}
|
||||||
|
.meng{
|
||||||
|
position: absolute;
|
||||||
|
display: inline-block;
|
||||||
|
padding: 0 5px;
|
||||||
|
z-index: 9;
|
||||||
|
top: 0;
|
||||||
|
background: rgba(0,0,0,0.6);
|
||||||
|
color:#fff;
|
||||||
|
border-radius: 2px;
|
||||||
|
}
|
||||||
.progress{
|
.progress{
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 20px;
|
height: 20px;
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="consumLevel">
|
<div class="consumLevel">
|
||||||
<canvas v-if="!levelPath" class="level" canvas-id="level" id="level"/>
|
<canvas class="level" canvas-id="level" id="level" @tap="tap"/>
|
||||||
<image v-if="levelPath" class="level" :src="levelPath"></image>
|
<!-- <image v-if="levelPath" class="level" :src="levelPath"></image>-->
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@ -32,6 +32,14 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
tap(e){
|
||||||
|
uChartsInstance[e.target.id].showToolTip(e,{
|
||||||
|
formatter: (item, category, index, opts) =>{
|
||||||
|
return item.name + item.data + '%';
|
||||||
|
}
|
||||||
|
});
|
||||||
|
uChartsInstance[e.target.id].touchLegend(e);
|
||||||
|
},
|
||||||
// 处理传入的数据
|
// 处理传入的数据
|
||||||
handleCarData(value) {
|
handleCarData(value) {
|
||||||
let res = value
|
let res = value
|
||||||
@ -96,7 +104,7 @@ export default {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
setTimeout( ()=>{
|
setTimeout( ()=>{
|
||||||
this.canvasToTempImage('level')
|
// this.canvasToTempImage('level')
|
||||||
},2000)
|
},2000)
|
||||||
},
|
},
|
||||||
canvasToTempImage(id){
|
canvasToTempImage(id){
|
||||||
|
|||||||
@ -1,8 +1,8 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="fillingDegree">
|
<div class="fillingDegree">
|
||||||
<div class="item">
|
<div class="item">
|
||||||
<canvas v-if="!fillDegreePath" class="fillDegree" canvas-id="fillDegree" id="fillDegree"/>
|
<canvas class="fillDegree" canvas-id="fillDegree" id="fillDegree" @tap="tap" @click="handleChange"/>
|
||||||
<image v-if="fillDegreePath" class="fillDegree" :src="fillDegreePath"></image>
|
<!-- <image v-if="fillDegreePath" class="fillDegree" :src="fillDegreePath"></image>-->
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
@ -15,7 +15,9 @@ export default {
|
|||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
width:0,
|
width:0,
|
||||||
fillDegreePath:''
|
fillDegreePath:'',
|
||||||
|
selectIndex: 0,
|
||||||
|
dataList : []
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
props: {
|
props: {
|
||||||
@ -34,6 +36,26 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
handleChange(type){
|
||||||
|
if (type==='canvas'){
|
||||||
|
this.$emit('handleChangeBandLevel',this.selectIndex)
|
||||||
|
}else{
|
||||||
|
this.$emit('handleChangeBandLevel',false)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
tap(e){
|
||||||
|
uChartsInstance[e.target.id].showToolTip(e,{
|
||||||
|
formatter: (item, category, index, opts) =>{
|
||||||
|
this.selectIndex = opts.series[index].key
|
||||||
|
this.handleChange('canvas')
|
||||||
|
console.log('item',item)
|
||||||
|
console.log('opts',opts)
|
||||||
|
console.log('index',index)
|
||||||
|
return item.name;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
uChartsInstance[e.target.id].touchLegend(e);
|
||||||
|
},
|
||||||
// 处理传入的数据
|
// 处理传入的数据
|
||||||
handleCarData(value) {
|
handleCarData(value) {
|
||||||
let res = value.result
|
let res = value.result
|
||||||
@ -59,7 +81,7 @@ export default {
|
|||||||
background: "#FFFFFF",
|
background: "#FFFFFF",
|
||||||
color: ["#1E80FF", "#00C2FF","#6B6FFF","#38C275","#F3BC1B","#ED6B5A","#FF9845","#74839D","#ACB9CD","#CAD0DA"],
|
color: ["#1E80FF", "#00C2FF","#6B6FFF","#38C275","#F3BC1B","#ED6B5A","#FF9845","#74839D","#ACB9CD","#CAD0DA"],
|
||||||
padding: [5, 5, 5, 5],
|
padding: [5, 5, 5, 5],
|
||||||
dataLabel: true,
|
dataLabel: false,
|
||||||
enableScroll: false,
|
enableScroll: false,
|
||||||
title: {
|
title: {
|
||||||
name:config.Abundant?'盈足':'不盈足',
|
name:config.Abundant?'盈足':'不盈足',
|
||||||
@ -68,9 +90,9 @@ export default {
|
|||||||
},
|
},
|
||||||
legend: {
|
legend: {
|
||||||
show: true,
|
show: true,
|
||||||
position: "bottom",
|
position: "right",
|
||||||
lineHeight: 25,
|
lineHeight: 25,
|
||||||
float: 'left'
|
float: 'center'
|
||||||
|
|
||||||
},
|
},
|
||||||
extra: {
|
extra: {
|
||||||
@ -87,7 +109,7 @@ export default {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
setTimeout( ()=>{
|
setTimeout( ()=>{
|
||||||
this.canvasToTempImage('fillDegree')
|
// this.canvasToTempImage('fillDegree')
|
||||||
},2000)
|
},2000)
|
||||||
},
|
},
|
||||||
canvasToTempImage(id){
|
canvasToTempImage(id){
|
||||||
|
|||||||
@ -8,10 +8,18 @@
|
|||||||
<div class="bottom">
|
<div class="bottom">
|
||||||
<div class="item">
|
<div class="item">
|
||||||
<p class="price">{{ info.TicketCount?info.TicketCount:'-' }}</p>
|
<p class="price">{{ info.TicketCount?info.TicketCount:'-' }}</p>
|
||||||
<p class="text">入区车辆 <text class="unit">/笔</text></p>
|
<p class="text">客单交易 <text class="unit">/笔</text></p>
|
||||||
</div>
|
</div>
|
||||||
<div class="item">
|
<div class="item">
|
||||||
<p class="price">{{ info.AvgTicketPrice?info.AvgTicketPrice:'-' }}</p>
|
<p class="price">{{ info.AvgTicketPrice?info.AvgTicketPrice:'-' }}</p>
|
||||||
|
<p class="text">客单均价 <text class="unit">/元</text></p>
|
||||||
|
</div>
|
||||||
|
<div class="item">
|
||||||
|
<p class="price">{{ info.VehicleCount?info.VehicleCount:'-' }}</p>
|
||||||
|
<p class="text">入区车辆 <text class="unit">/辆</text></p>
|
||||||
|
</div>
|
||||||
|
<div class="item">
|
||||||
|
<p class="price">{{ info.AvgVehicleAmount ?info.AvgVehicleAmount :'-' }}</p>
|
||||||
<p class="text">单车价值 <text class="unit">/元</text></p>
|
<p class="text">单车价值 <text class="unit">/元</text></p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -31,11 +39,11 @@
|
|||||||
<p class="text">客单均价 <text class="unit">/元</text></p>
|
<p class="text">客单均价 <text class="unit">/元</text></p>
|
||||||
</div>
|
</div>
|
||||||
<div class="item">
|
<div class="item">
|
||||||
<p class="price">{{ info.TicketAvgCount?info.TicketAvgCount:'-' }}</p>
|
<p class="price">{{ info.MonthVehicleCount?info.MonthVehicleCount:'-' }}</p>
|
||||||
<p class="text">入区车辆 <text class="unit">/笔</text></p>
|
<p class="text">入区车辆 <text class="unit">/辆</text></p>
|
||||||
</div>
|
</div>
|
||||||
<div class="item">
|
<div class="item">
|
||||||
<p class="price">{{ info.MonthAvgTicketPrice?info.MonthAvgTicketPrice:'-' }}</p>
|
<p class="price">{{ info.MonthVehicleAmount?info.MonthVehicleAmount:'-' }}</p>
|
||||||
<p class="text">单车价值 <text class="unit">/元</text></p>
|
<p class="text">单车价值 <text class="unit">/元</text></p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -43,13 +51,13 @@
|
|||||||
<div class="box">
|
<div class="box">
|
||||||
<div class="pro">
|
<div class="pro">
|
||||||
<div class="big" :style="{width:info.transactionLevel.HighConsumption_Rate +'%'}" @click="handleShow(0)">
|
<div class="big" :style="{width:info.transactionLevel.HighConsumption_Rate +'%'}" @click="handleShow(0)">
|
||||||
<view class="meng" v-if="genderList[0]">{{'高消费'}}</view>
|
<view class="meng" :style="Number(info.transactionLevel.HighConsumption_Rate)<10?'right: 0':'left:0'" v-if="genderList[0]">高消费: {{info.transactionLevel.HighConsumption_Count }}笔</view>
|
||||||
</div>
|
</div>
|
||||||
<div class="normal" :style="{width:info.transactionLevel.NormalConsumption_Rate +'%',left:info.transactionLevel.HighConsumption_Rate+'%'}" @click="handleShow(1)">
|
<div class="normal" :style="{width:info.transactionLevel.NormalConsumption_Rate +'%',left:info.transactionLevel.HighConsumption_Rate+'%'}" @click="handleShow(1)">
|
||||||
<view class="meng" v-if="genderList[1]">{{'普通消费'}}</view>
|
<view class="meng" :style="Number(info.transactionLevel.HighConsumption_Rate)<10?'left: 0':'right:0'" v-if="genderList[1]">普通消费: {{info.transactionLevel.NormalConsumption_Count }}笔</view>
|
||||||
</div>
|
</div>
|
||||||
<div class="small" @click="handleShow(2)" :style="{width:info.transactionLevel.LowConsumption_Rate +'%',left:(Number(info.transactionLevel.HighConsumption_Rate) + Number(info.transactionLevel.NormalConsumption_Rate))+'%'}">
|
<div class="small" @click="handleShow(2)" :style="{width:info.transactionLevel.LowConsumption_Rate +'%',left:(Number(info.transactionLevel.HighConsumption_Rate) + Number(info.transactionLevel.NormalConsumption_Rate))+'%'}">
|
||||||
<view class="meng" v-if="genderList[2]">{{'低消费'}}</view>
|
<view class="meng" :style="Number(info.transactionLevel.LowConsumption_Rate)<10?'right: 0':'left:0'" v-if="genderList[2]">低消费: {{info.transactionLevel.LowConsumption_Count }}笔</view>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="type">
|
<div class="type">
|
||||||
@ -184,9 +192,8 @@ export default {
|
|||||||
background: #1E80FF;
|
background: #1E80FF;
|
||||||
border-radius: 2px 0 0 2px;
|
border-radius: 2px 0 0 2px;
|
||||||
.meng{
|
.meng{
|
||||||
width: 70px;
|
width: 110px;
|
||||||
height: 20px;
|
height: 20px;
|
||||||
box-sizing: border-box;
|
|
||||||
line-height: 20px;
|
line-height: 20px;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
@ -196,6 +203,7 @@ export default {
|
|||||||
background: rgba(0,0,0,0.6);
|
background: rgba(0,0,0,0.6);
|
||||||
color:#fff;
|
color:#fff;
|
||||||
border-radius: 2px;
|
border-radius: 2px;
|
||||||
|
text-align: center;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.normal{
|
.normal{
|
||||||
@ -204,9 +212,8 @@ export default {
|
|||||||
background: #ACB9CD;
|
background: #ACB9CD;
|
||||||
border-radius: 2px 0 0 2px;
|
border-radius: 2px 0 0 2px;
|
||||||
.meng{
|
.meng{
|
||||||
width: 70px;
|
width: 110px;
|
||||||
height: 20px;
|
height: 20px;
|
||||||
box-sizing: border-box;
|
|
||||||
line-height: 20px;
|
line-height: 20px;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
@ -216,6 +223,7 @@ export default {
|
|||||||
background: rgba(0,0,0,0.6);
|
background: rgba(0,0,0,0.6);
|
||||||
color:#fff;
|
color:#fff;
|
||||||
border-radius: 2px;
|
border-radius: 2px;
|
||||||
|
text-align: center;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.small{
|
.small{
|
||||||
@ -224,9 +232,8 @@ export default {
|
|||||||
background: #CAD0DA;
|
background: #CAD0DA;
|
||||||
border-radius: 2px 0 0 2px;
|
border-radius: 2px 0 0 2px;
|
||||||
.meng{
|
.meng{
|
||||||
width: 70px;
|
width: 110px;
|
||||||
height: 20px;
|
height: 20px;
|
||||||
box-sizing: border-box;
|
|
||||||
line-height: 20px;
|
line-height: 20px;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
@ -236,6 +243,7 @@ export default {
|
|||||||
background: rgba(0,0,0,0.6);
|
background: rgba(0,0,0,0.6);
|
||||||
color:#fff;
|
color:#fff;
|
||||||
border-radius: 2px;
|
border-radius: 2px;
|
||||||
|
text-align: center;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -228,11 +228,15 @@ export default {
|
|||||||
margin-right: 2px;
|
margin-right: 2px;
|
||||||
border-radius: 2px 0 0 2px;
|
border-radius: 2px 0 0 2px;
|
||||||
.meng{
|
.meng{
|
||||||
|
width: 90px;
|
||||||
|
line-height: 24px;
|
||||||
|
text-align: center;
|
||||||
|
height: 24px;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
padding: 0 5px;
|
padding: 0 5px;
|
||||||
z-index: 9;
|
z-index: 9;
|
||||||
left: 0;top: -10px;
|
left: 0;top: -20px;
|
||||||
background: rgba(0,0,0,0.6);
|
background: rgba(0,0,0,0.6);
|
||||||
color:#fff;
|
color:#fff;
|
||||||
border-radius: 2px;
|
border-radius: 2px;
|
||||||
@ -255,11 +259,15 @@ export default {
|
|||||||
background: #00C2FF;
|
background: #00C2FF;
|
||||||
border-radius: 0 2px 2px 0 ;
|
border-radius: 0 2px 2px 0 ;
|
||||||
.meng{
|
.meng{
|
||||||
|
width: 90px;
|
||||||
|
line-height: 24px;
|
||||||
|
text-align: center;
|
||||||
|
height: 24px;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
padding: 0 5px;
|
padding: 0 5px;
|
||||||
z-index: 9;
|
z-index: 9;
|
||||||
right: 0;top: -10px;
|
left: 0;top: -20px;
|
||||||
background: rgba(0,0,0,0.6);
|
background: rgba(0,0,0,0.6);
|
||||||
color:#fff;
|
color:#fff;
|
||||||
border-radius: 2px;
|
border-radius: 2px;
|
||||||
|
|||||||
@ -147,7 +147,7 @@ export default {
|
|||||||
this.labelList = list
|
this.labelList = list
|
||||||
//分析的文字
|
//分析的文字
|
||||||
const total = await request.$webPost('CommercialApi/Analysis/GetANALYSISINSList',reqText)
|
const total = await request.$webPost('CommercialApi/Analysis/GetANALYSISINSList',reqText)
|
||||||
this.analyseText = total.Result_Data.List[0].ANALYSIS_CONTENT
|
this.analyseText = total.Result_Data.List[0]?total.Result_Data.List[0].ANALYSIS_CONTENT:''
|
||||||
},
|
},
|
||||||
bindPickerChange(){
|
bindPickerChange(){
|
||||||
|
|
||||||
|
|||||||
@ -42,7 +42,16 @@ export default {
|
|||||||
console.log('dataList',this.dataList)
|
console.log('dataList',this.dataList)
|
||||||
uChartsInstance[e.target.id].showToolTip(e, {
|
uChartsInstance[e.target.id].showToolTip(e, {
|
||||||
formatter: (item, category, index, opts) => {
|
formatter: (item, category, index, opts) => {
|
||||||
return item.name + ":" + item.data + '万元'
|
console.log('item',item)
|
||||||
|
console.log('opts',opts)
|
||||||
|
console.log('index',index)
|
||||||
|
if (this.selectIndex === 0){
|
||||||
|
return item.name + ":" + item.data + '万元,' + '环比: '
|
||||||
|
}else if(this.selectIndex === 1){
|
||||||
|
return item.name + ":" + item.data + '笔'
|
||||||
|
}else {
|
||||||
|
return item.name + ":" + item.data + '元'
|
||||||
|
}
|
||||||
// if (this.selectIndex===0){
|
// if (this.selectIndex===0){
|
||||||
// if (item.name === '平日平均'){
|
// if (item.name === '平日平均'){
|
||||||
// return item.name + ":" + this.dataList.normal[0].data[index] + '元';
|
// return item.name + ":" + this.dataList.normal[0].data[index] + '元';
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
<div class="main">
|
<div class="main">
|
||||||
<image class="img" src="https://eshangtech.com/ShopICO/ahyd-BID/commercial/noData.svg"></image>
|
<image class="img" src="https://eshangtech.com/ShopICO/ahyd-BID/commercial/noData.svg"></image>
|
||||||
<p class="text" v-if="type!=='car'">抱歉,服务区采集样本过小,无法分析</p>
|
<p class="text" v-if="type!=='car'">抱歉,服务区采集样本过小,无法分析</p>
|
||||||
<p class="text" v-else>抱歉,第三方数据未传,无法分析</p>
|
<p class="text" v-else>抱歉,数据为第三方接口传输,无法进行画像分析</p>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|||||||
@ -7,13 +7,13 @@
|
|||||||
<div class="chartsItem">
|
<div class="chartsItem">
|
||||||
<p class="title">业态充盈度</p>
|
<p class="title">业态充盈度</p>
|
||||||
<div v-if="fillDegreeList.result.series[0].data.length>0">
|
<div v-if="fillDegreeList.result.series[0].data.length>0">
|
||||||
<filling-degree :data="fillDegreeList" />
|
<filling-degree :data="fillDegreeList" @handleChangeBandLevel="handleChangeBandLevel"/>
|
||||||
<analyse :analyseInfo="{analysisins_type: 1502,analysisins_format: 2000}" />
|
<analyse :analyseInfo="{analysisins_type: 1502,analysisins_format: 2000}" />
|
||||||
</div>
|
</div>
|
||||||
<no-data v-else/>
|
<no-data v-else/>
|
||||||
</div>
|
</div>
|
||||||
<div class="chartsItem" style="margin-top: 32px">
|
<div class="chartsItem" style="margin-top: 32px">
|
||||||
<p class="title">品牌消费水平<text class="unit">(Top 5)</text></p>
|
<p class="title">品牌消费水平<text class="unit"></text></p>
|
||||||
<div v-if="bandLevelList.length>0">
|
<div v-if="bandLevelList.length>0">
|
||||||
<band-level :data="bandLevelList"/>
|
<band-level :data="bandLevelList"/>
|
||||||
<analyse :analyseInfo="{analysisins_type: 1503,analysisins_format: 2000}" />
|
<analyse :analyseInfo="{analysisins_type: 1503,analysisins_format: 2000}" />
|
||||||
@ -21,7 +21,7 @@
|
|||||||
<no-data v-else/>
|
<no-data v-else/>
|
||||||
</div>
|
</div>
|
||||||
<div class="chartsItem" style="margin-top: 32px">
|
<div class="chartsItem" style="margin-top: 32px">
|
||||||
<p class="title">业态消费水平<text class="unit">(Top 5)</text></p>
|
<p class="title">业态消费水平<text class="unit"></text></p>
|
||||||
<div v-if="consumLevelList.series.length>0">
|
<div v-if="consumLevelList.series.length>0">
|
||||||
<consumption-level :data="consumLevelList" />
|
<consumption-level :data="consumLevelList" />
|
||||||
<analyse :analyseInfo="{analysisins_type: 1504,analysisins_format: 2000}" />
|
<analyse :analyseInfo="{analysisins_type: 1504,analysisins_format: 2000}" />
|
||||||
@ -119,6 +119,47 @@ export default {
|
|||||||
this.getBrandInfoList()
|
this.getBrandInfoList()
|
||||||
},
|
},
|
||||||
methods:{
|
methods:{
|
||||||
|
// 业态充盈的改变事件
|
||||||
|
async handleChangeBandLevel(key){
|
||||||
|
console.log('key',key)
|
||||||
|
let req
|
||||||
|
if (key===false){
|
||||||
|
req = {
|
||||||
|
ProvinceCode:'340000',
|
||||||
|
StatisticsDate:this.time,
|
||||||
|
ServerpartId:this.serviceInfo.Serverpart_ID,
|
||||||
|
ShowWholeBrand:false
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
req = {
|
||||||
|
ProvinceCode:'340000',
|
||||||
|
StatisticsDate:this.time,
|
||||||
|
ServerpartId:this.serviceInfo.Serverpart_ID,
|
||||||
|
BusinessTradeIds: key,
|
||||||
|
ShowWholeBrand:false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
let res =[]
|
||||||
|
let totalData = await request.$webGet('CommercialApi/Revenue/GetBusinessBrandLevel',req)
|
||||||
|
if (totalData.Result_Data){
|
||||||
|
console.log('品牌消费水平',totalData)
|
||||||
|
totalData.Result_Data.legend.forEach(item=>{
|
||||||
|
res.push({name:item,small:0,normal:0,big:0})
|
||||||
|
})
|
||||||
|
res.forEach((item,index)=>{
|
||||||
|
totalData.Result_Data.ColumnList.forEach((subItem,subIndex)=>{
|
||||||
|
if (subItem.name==='低消费'){
|
||||||
|
item.small = subItem.data[index]
|
||||||
|
}else if(subItem.name==='普通消费'){
|
||||||
|
item.normal = subItem.data[index]
|
||||||
|
}else if(subItem.name==='高消费'){
|
||||||
|
item.big = subItem.data[index]
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
}
|
||||||
|
this.bandLevelList = res
|
||||||
|
},
|
||||||
async nearestService(){
|
async nearestService(){
|
||||||
let seat = uni.getStorageSync('seatInfo');
|
let seat = uni.getStorageSync('seatInfo');
|
||||||
let req = {
|
let req = {
|
||||||
@ -142,17 +183,19 @@ export default {
|
|||||||
const req = {
|
const req = {
|
||||||
ProvinceCode:'340000',
|
ProvinceCode:'340000',
|
||||||
StatisticsDate:this.time,
|
StatisticsDate:this.time,
|
||||||
serverpartId:this.serviceInfo.Serverpart_ID
|
serverpartId:this.serviceInfo.Serverpart_ID,
|
||||||
|
BusinessTradeIds:-1
|
||||||
}
|
}
|
||||||
const data = await request.$webGet('CommercialApi/Revenue/GetBusinessTradeRevenue',req)
|
const data = await request.$webGet('CommercialApi/Revenue/GetBusinessTradeRevenue',req)
|
||||||
|
console.log('data21312312',data)
|
||||||
let res = []
|
let res = []
|
||||||
let all = 0
|
let all = 0
|
||||||
data.Result_Data.BusinessTradeRank.forEach((item,index)=>{
|
data.Result_Data.BusinessTradeRank.forEach((item,index)=>{
|
||||||
if (index<=10){
|
if (index<=10){
|
||||||
res.push({name:`${item.name} ${item.value}%`,value:Number(item.value)})
|
res.push({name:`${item.name} ${item.value}%`,value:Number(item.value),key:item.key})
|
||||||
all+=Number(item.value)
|
all+=Number(item.value)
|
||||||
}else if(index===11){
|
}else if(index===11){
|
||||||
res.push({name:`其他${(100-all).toFixed(2)}%`,value:Number((100 - all).toFixed(2))})
|
res.push({name:`其他${(100-all).toFixed(2)}%`,value:Number((100 - all).toFixed(2)),key:item.key})
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
console.log('res21312312',res)
|
console.log('res21312312',res)
|
||||||
@ -193,6 +236,7 @@ export default {
|
|||||||
}
|
}
|
||||||
let res =[]
|
let res =[]
|
||||||
let totalData = await request.$webGet('CommercialApi/Revenue/GetBusinessBrandLevel',req)
|
let totalData = await request.$webGet('CommercialApi/Revenue/GetBusinessBrandLevel',req)
|
||||||
|
console.log('品牌消费水平',totalData)
|
||||||
totalData.Result_Data.legend.forEach(item=>{
|
totalData.Result_Data.legend.forEach(item=>{
|
||||||
res.push({name:item,small:0,normal:0,big:0})
|
res.push({name:item,small:0,normal:0,big:0})
|
||||||
})
|
})
|
||||||
|
|||||||
@ -26,6 +26,7 @@
|
|||||||
</view>
|
</view>
|
||||||
</picker>
|
</picker>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
<p class="title">{{thisMonth?thisMonth:'-'}}月客群特征分析</p>
|
<p class="title">{{thisMonth?thisMonth:'-'}}月客群特征分析</p>
|
||||||
<div v-if="genderBubbleList.res.length>0">
|
<div v-if="genderBubbleList.res.length>0">
|
||||||
<customer-second :data="genderBubbleList" />
|
<customer-second :data="genderBubbleList" />
|
||||||
@ -78,7 +79,6 @@ export default {
|
|||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
topBg:'linear-gradient(180deg, #A1D0C1 0%, #B1D9CD 100%);',//顶部组件的悬浮背景色
|
topBg:'linear-gradient(180deg, #A1D0C1 0%, #B1D9CD 100%);',//顶部组件的悬浮背景色
|
||||||
labelList:['女性','高消费','喜爱奶茶','浙江','20-30岁','江苏'],//标签
|
|
||||||
title:'客群画像',//页面标题
|
title:'客群画像',//页面标题
|
||||||
bgColor:'180deg, #30C8ED 0%, #0B9353 100%',//标签背景颜色
|
bgColor:'180deg, #30C8ED 0%, #0B9353 100%',//标签背景颜色
|
||||||
bgUrl:'https://eshangtech.com/ShopICO/ahyd-BID/commercial/guestPortraitBg.svg',//背景图片路径
|
bgUrl:'https://eshangtech.com/ShopICO/ahyd-BID/commercial/guestPortraitBg.svg',//背景图片路径
|
||||||
@ -239,7 +239,7 @@ export default {
|
|||||||
res:[]
|
res:[]
|
||||||
}
|
}
|
||||||
const req = {
|
const req = {
|
||||||
statisticsType:2,
|
statisticsType:1,
|
||||||
provinceCode:'340000',
|
provinceCode:'340000',
|
||||||
serverpartId:this.serviceInfo.Serverpart_ID,
|
serverpartId:this.serviceInfo.Serverpart_ID,
|
||||||
statisticsMonth:this.$util.getThisMonth(time)
|
statisticsMonth:this.$util.getThisMonth(time)
|
||||||
@ -377,8 +377,11 @@ export default {
|
|||||||
res.push({name:`${item.name} ${item.value}%`,value:Number(item.value)})
|
res.push({name:`${item.name} ${item.value}%`,value:Number(item.value)})
|
||||||
all+=Number(item.value)
|
all+=Number(item.value)
|
||||||
}else if(index===5){
|
}else if(index===5){
|
||||||
|
console.log('all',all)
|
||||||
|
if (all<100){
|
||||||
res.push({name:`其他${(100-all).toFixed(2)}%`,value:Number((100 - all).toFixed(2))})
|
res.push({name:`其他${(100-all).toFixed(2)}%`,value:Number((100 - all).toFixed(2))})
|
||||||
}
|
}
|
||||||
|
}
|
||||||
})
|
})
|
||||||
let result = [
|
let result = [
|
||||||
{
|
{
|
||||||
|
|||||||
@ -596,9 +596,15 @@ export default {
|
|||||||
this.trendsList = res
|
this.trendsList = res
|
||||||
},
|
},
|
||||||
async getRevenueType(){
|
async getRevenueType(){
|
||||||
|
const date = new Date(this.time)
|
||||||
|
let y = date.getFullYear()
|
||||||
|
let m = date.getMonth() + 1
|
||||||
|
if (m<10){
|
||||||
|
m = '0'+ m
|
||||||
|
}
|
||||||
const req = {
|
const req = {
|
||||||
pushProvinceCode:'340000',
|
pushProvinceCode:'340000',
|
||||||
Statistics_StartDate:this.time,
|
Statistics_StartDate:`${y}-${m}-01`,
|
||||||
Statistics_Date:this.time,
|
Statistics_Date:this.time,
|
||||||
Serverpart_ID:this.serviceInfo.Serverpart_ID
|
Serverpart_ID:this.serviceInfo.Serverpart_ID
|
||||||
}
|
}
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
<div class="top">
|
<div class="top">
|
||||||
<p class="title" v-if="type==='month'">{{serviceInfo.name}}服务区自营计划</p>
|
<p class="title" v-if="type==='month'">{{serviceInfo.name}}服务区自营计划</p>
|
||||||
<p class="title" v-if="type==='year'">{{serviceInfo.name}}服务区年度自营计划</p>
|
<p class="title" v-if="type==='year'">{{serviceInfo.name}}服务区年度自营计划</p>
|
||||||
<div class="select" v-if="isSelect && optionTime===''">
|
<div class="select">
|
||||||
<picker mode="date" fields="month" :value="single" :end="endData" @change="bindDateChange" >
|
<picker mode="date" fields="month" :value="single" :end="endData" @change="bindDateChange" >
|
||||||
<view class="time">
|
<view class="time">
|
||||||
<view class="uni-input" style="background: transparent;padding: 0;height:100%">{{ single }}</view>
|
<view class="uni-input" style="background: transparent;padding: 0;height:100%">{{ single }}</view>
|
||||||
@ -89,8 +89,23 @@
|
|||||||
<div class="list" v-if="type==='month'" >
|
<div class="list" v-if="type==='month'" >
|
||||||
<div class="item" >
|
<div class="item" >
|
||||||
<div class="firstBox" v-for="(item,index) in dataList" :key="index" >
|
<div class="firstBox" v-for="(item,index) in dataList" :key="index" >
|
||||||
<text class="firstTitle">{{item.node.ACCOUNT_CODE}}</text>
|
|
||||||
<div class="valueBox" v-if="item.node.BUDGETDETAIL_AMOUNT ">
|
<div class="valueBox" v-if="item.node.ShowRevenue_Amount" style="display: flex;justify-content: space-between">
|
||||||
|
<p class="firstTitle">{{item.node.ACCOUNT_CODE}}</p>
|
||||||
|
<div>
|
||||||
|
<p v-if="item.node.BUDGETDETAIL_AMOUNT" class="value" style="color:#a69e9f">{{item.node.BUDGETDETAIL_AMOUNT?item.node.BUDGETDETAIL_AMOUNT:''}}<text v-if="item.node.BUDGETDETAIL_AMOUNT!=='-'" style="margin-left: 4px;color:#a69e9f">{{item.node.ACCOUNT_CODE==='毛利率'?'%':'元'}}</text><text v-if="item.node.BUDGETDETAIL_AMOUNT!=='-'" class="type" style="margin-left: 4px">(计划)</text></p>
|
||||||
|
<p class="value">{{item.node.REVENUE_AMOUNT?item.node.REVENUE_AMOUNT:'-' }}<text v-if="item.node.REVENUE_AMOUNT" style="margin-left: 4px">{{item.node.ACCOUNT_CODE==='毛利率'?'%':'元'}}</text><text v-if="item.node.REVENUE_AMOUNT" class="type" style="margin-left: 4px">(实际)</text></p>
|
||||||
|
<view class="addBox" v-if="item.node.ShowGrowth_Rate">
|
||||||
|
<image class="addIcon" :src="item.node.Growth_Rate>0?'https://eshangtech.com/ShopICO/ahyd-BID/index/addIcon.svg':item.node.Growth_Rate<0?'https://eshangtech.com/ShopICO/ahyd-BID/index/reduce.svg':''"></image>
|
||||||
|
<p class="text" style="margin-left: 4px">{{item.node.Growth_Rate?Math.abs(item.node.Growth_Rate) + '%':'-'}}</p>
|
||||||
|
<text class="type" style="margin-left: 4px">{{item.node.Growth_Rate>0?'(提升)':item.node.Growth_Rate<0?'(降低)':''}}</text>
|
||||||
|
</view>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<text class="firstTitle" v-if="!item.node.ShowRevenue_Amount ">{{item.node.ACCOUNT_CODE}}</text>
|
||||||
|
|
||||||
|
<div class="valueBox" v-if="item.node.BUDGETDETAIL_AMOUNT && !item.node.ShowRevenue_Amount">
|
||||||
<p class="value" style="color:#a69e9f">{{item.node.BUDGETDETAIL_AMOUNT }}<text style="margin-left: 4px;color:#a69e9f">{{item.node.ACCOUNT_CODE==='毛利率'?'%':'元'}}</text><text class="type" style="margin-left: 4px">(计划)</text></p>
|
<p class="value" style="color:#a69e9f">{{item.node.BUDGETDETAIL_AMOUNT }}<text style="margin-left: 4px;color:#a69e9f">{{item.node.ACCOUNT_CODE==='毛利率'?'%':'元'}}</text><text class="type" style="margin-left: 4px">(计划)</text></p>
|
||||||
<p class="value" v-if="item.node.ShowGrowth_Rate">{{item.node.REVENUE_AMOUNT?item.node.REVENUE_AMOUNT:'-' }}<text v-if="item.node.REVENUE_AMOUNT!=='-'" style="margin-left: 4px">{{item.node.ACCOUNT_CODE==='毛利率'?'%':'元'}}</text><text v-if="item.node.REVENUE_AMOUNT!=='-'" class="type" style="margin-left: 4px">(实际)</text></p>
|
<p class="value" v-if="item.node.ShowGrowth_Rate">{{item.node.REVENUE_AMOUNT?item.node.REVENUE_AMOUNT:'-' }}<text v-if="item.node.REVENUE_AMOUNT!=='-'" style="margin-left: 4px">{{item.node.ACCOUNT_CODE==='毛利率'?'%':'元'}}</text><text v-if="item.node.REVENUE_AMOUNT!=='-'" class="type" style="margin-left: 4px">(实际)</text></p>
|
||||||
<view class="addBox" v-if="item.node.ShowGrowth_Rate">
|
<view class="addBox" v-if="item.node.ShowGrowth_Rate">
|
||||||
@ -101,11 +116,25 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div v-if="item.children.length>0" class="subBox" v-for="(subItem,subIndex) in item.children" :key="subIndex"
|
<div v-if="item.children.length>0" class="subBox" v-for="(subItem,subIndex) in item.children" :key="subIndex"
|
||||||
:style="subItem.children.length>0?'':'display:flex;justify-content: space-between'">
|
:style="subItem.children?'':'display:flex;justify-content: space-between'">
|
||||||
<p class="subTitle">{{subItem.node.ACCOUNT_CODE}}</p>
|
|
||||||
|
|
||||||
<div class="valueBox" v-if="subItem.node.BUDGETDETAIL_AMOUNT ">
|
<div class="valueBox" v-if="subItem.node.ShowRevenue_Amount" style="display: flex;justify-content: space-between">
|
||||||
<p class="value" style="color:#a69e9f">{{subItem.node.BUDGETDETAIL_AMOUNT}}<text v-if="subItem.node.BUDGETDETAIL_AMOUNT!=='-'" style="margin-left: 4px;color:#a69e9f">{{item.node.ACCOUNT_CODE==='毛利率'?'%':'元'}}</text><text v-if="subItem.node.BUDGETDETAIL_AMOUNT!=='-'" class="type" style="margin-left: 4px">(计划)</text></p>
|
<p class="subTitle">{{subItem.node.ACCOUNT_CODE}}</p>
|
||||||
|
<div >
|
||||||
|
<p v-if="subItem.node.BUDGETDETAIL_AMOUNT" class="value" style="color:#a69e9f">{{subItem.node.BUDGETDETAIL_AMOUNT?subItem.node.BUDGETDETAIL_AMOUNT:''}}<text v-if="subItem.node.BUDGETDETAIL_AMOUNT!=='-'" style="margin-left: 4px;color:#a69e9f">{{item.node.ACCOUNT_CODE==='毛利率'?'%':'元'}}</text><text v-if="subItem.node.BUDGETDETAIL_AMOUNT!=='-'" class="type" style="margin-left: 4px">(计划)</text></p>
|
||||||
|
<p class="value">{{subItem.node.REVENUE_AMOUNT?subItem.node.REVENUE_AMOUNT:'-' }}<text v-if="subItem.node.REVENUE_AMOUNT" style="margin-left: 4px">{{item.node.ACCOUNT_CODE==='毛利率'?'%':'元'}}</text><text v-if="subItem.node.REVENUE_AMOUNT" class="type" style="margin-left: 4px">(实际)</text></p>
|
||||||
|
<view class="addBox" v-if="subItem.node.ShowGrowth_Rate">
|
||||||
|
<image class="addIcon" :src="subItem.node.Growth_Rate>0?'https://eshangtech.com/ShopICO/ahyd-BID/index/addIcon.svg':subItem.node.Growth_Rate<0?'https://eshangtech.com/ShopICO/ahyd-BID/index/reduce.svg':''"></image>
|
||||||
|
<p class="text" style="margin-left: 4px">{{subItem.node.Growth_Rate?Math.abs(subItem.node.Growth_Rate) + '%':'-'}}</p>
|
||||||
|
<text class="type" style="margin-left: 4px">{{subItem.node.Growth_Rate>0?'(提升)':subItem.node.Growth_Rate<0?'(降低)':''}}</text>
|
||||||
|
</view>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<p class="subTitle" v-if="!subItem.node.ShowRevenue_Amount ">{{subItem.node.ACCOUNT_CODE}}</p>
|
||||||
|
|
||||||
|
<div class="valueBox" v-if="subItem.node.BUDGETDETAIL_AMOUNT && !subItem.node.ShowRevenue_Amount">
|
||||||
|
<p class="value" style="color:#a69e9f">{{subItem.node.BUDGETDETAIL_AMOUNT?subItem.node.BUDGETDETAIL_AMOUNT:''}}<text v-if="subItem.node.BUDGETDETAIL_AMOUNT!=='-'" style="margin-left: 4px;color:#a69e9f">{{item.node.ACCOUNT_CODE==='毛利率'?'%':'元'}}</text><text v-if="subItem.node.BUDGETDETAIL_AMOUNT!=='-'" class="type" style="margin-left: 4px">(计划)</text></p>
|
||||||
<p v-if="subItem.node.ShowGrowth_Rate" class="value">{{subItem.node.REVENUE_AMOUNT?subItem.node.REVENUE_AMOUNT:'-' }}<text v-if="subItem.node.REVENUE_AMOUNT" style="margin-left: 4px">{{item.node.ACCOUNT_CODE==='毛利率'?'%':'元'}}</text><text v-if="subItem.node.REVENUE_AMOUNT" class="type" style="margin-left: 4px">(实际)</text></p>
|
<p v-if="subItem.node.ShowGrowth_Rate" class="value">{{subItem.node.REVENUE_AMOUNT?subItem.node.REVENUE_AMOUNT:'-' }}<text v-if="subItem.node.REVENUE_AMOUNT" style="margin-left: 4px">{{item.node.ACCOUNT_CODE==='毛利率'?'%':'元'}}</text><text v-if="subItem.node.REVENUE_AMOUNT" class="type" style="margin-left: 4px">(实际)</text></p>
|
||||||
|
|
||||||
<view class="addBox" v-if="subItem.node.ShowGrowth_Rate">
|
<view class="addBox" v-if="subItem.node.ShowGrowth_Rate">
|
||||||
@ -249,6 +278,7 @@ export default {
|
|||||||
this.month = '0' + this.month
|
this.month = '0' + this.month
|
||||||
}
|
}
|
||||||
this.serviceInfo = JSON.parse(option.serviceInfo)
|
this.serviceInfo = JSON.parse(option.serviceInfo)
|
||||||
|
console.log('this.serviceInfo',this.serviceInfo)
|
||||||
this.serviceInfo.Budget_Degree =this.$util.fmoney(this.serviceInfo.Budget_Degree)
|
this.serviceInfo.Budget_Degree =this.$util.fmoney(this.serviceInfo.Budget_Degree)
|
||||||
this.getData()
|
this.getData()
|
||||||
}else {
|
}else {
|
||||||
@ -268,12 +298,19 @@ export default {
|
|||||||
title: `${this.serviceInfo.SERVERPART_NAME || this.serviceInfo.Serverpart_Name}年度计划`,
|
title: `${this.serviceInfo.SERVERPART_NAME || this.serviceInfo.Serverpart_Name}年度计划`,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
if (this.month){
|
||||||
|
const date = new Date()
|
||||||
|
let y = date.getFullYear()
|
||||||
|
let time = `${y}-${this.month}`
|
||||||
|
this.single = this.$util.getThisMonthHave(time)
|
||||||
|
}else{
|
||||||
let storeTime = uni.getStorageSync('lastDay')
|
let storeTime = uni.getStorageSync('lastDay')
|
||||||
if (storeTime){
|
if (storeTime){
|
||||||
this.time = storeTime
|
this.time = storeTime
|
||||||
}
|
}
|
||||||
this.single = this.$util.getThisMonthHave(this.time)
|
this.single = this.$util.getThisMonthHave(this.time)
|
||||||
|
}
|
||||||
|
|
||||||
let nowTime = new Date()
|
let nowTime = new Date()
|
||||||
let y = nowTime.getFullYear()
|
let y = nowTime.getFullYear()
|
||||||
let month = nowTime.getMonth() + 1
|
let month = nowTime.getMonth() + 1
|
||||||
@ -319,6 +356,68 @@ export default {
|
|||||||
this.endTime = e.detail.value + '-' + d
|
this.endTime = e.detail.value + '-' + d
|
||||||
console.log('e',e)
|
console.log('e',e)
|
||||||
this.getData(e.detail.value)
|
this.getData(e.detail.value)
|
||||||
|
//修改顶部服务区数据的方法
|
||||||
|
this.getServiceDate(e.detail.value)
|
||||||
|
if (this.type === 'month'){
|
||||||
|
uni.setNavigationBarTitle({
|
||||||
|
title: `${this.month}月${this.serviceInfo.SERVERPART_NAME || this.serviceInfo.Serverpart_Name}计划`,
|
||||||
|
})
|
||||||
|
}else{
|
||||||
|
uni.setNavigationBarTitle({
|
||||||
|
title: `${this.serviceInfo.SERVERPART_NAME || this.serviceInfo.Serverpart_Name}年度计划`,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
async getServiceDate(time){
|
||||||
|
let reqTime
|
||||||
|
let date = new Date(time)
|
||||||
|
let currentDate = new Date()
|
||||||
|
let nowMonth = currentDate.getMonth() + 1
|
||||||
|
let y = date.getFullYear()
|
||||||
|
let m = date.getMonth() + 1
|
||||||
|
if (m === nowMonth){
|
||||||
|
let nowYear = currentDate.getFullYear()
|
||||||
|
let nodDay = currentDate.getDate()
|
||||||
|
if (nowMonth<10){
|
||||||
|
nowMonth = '0' + nowMonth
|
||||||
|
}
|
||||||
|
if (nodDay<10){
|
||||||
|
nodDay = '0' + nodDay
|
||||||
|
}
|
||||||
|
reqTime = `${nowYear}-${nowMonth}-${nodDay}`
|
||||||
|
}else{
|
||||||
|
let howDay = this.$util.getThisMonthDay(time)
|
||||||
|
if (m<10){
|
||||||
|
m = '0' + m
|
||||||
|
}
|
||||||
|
reqTime = `${y}-${m}-${howDay}`
|
||||||
|
}
|
||||||
|
let req = {
|
||||||
|
Province_Code:'340000',
|
||||||
|
Statistics_Date:reqTime,
|
||||||
|
Serverpart_ID:this.serviceInfo.Serverpart_ID,
|
||||||
|
SPRegionType_ID:this.serviceInfo.SPRegionType_ID
|
||||||
|
}
|
||||||
|
const data = await request.$webGet('CommercialApi/Revenue/GetRevenueBudget',req)
|
||||||
|
|
||||||
|
let service = {
|
||||||
|
Budget_Amount:this.$util.fmoney(data.Result_Data.BudgetMonth_Amount),
|
||||||
|
Budget_Degree:data.Result_Data.MonthBudget_Degree,
|
||||||
|
Growth_Rate:data.Result_Data.MonthGrowth_Rate,
|
||||||
|
Revenue_Amount:this.$util.fmoney(data.Result_Data.RevenueMonth_Amount),
|
||||||
|
Serverpart_ID:this.serviceInfo.Serverpart_ID,
|
||||||
|
Serverpart_Name:this.serviceInfo.Serverpart_Name
|
||||||
|
}
|
||||||
|
let num = service.Serverpart_Name.indexOf('服务区')
|
||||||
|
console.log(num)
|
||||||
|
if (num!==-1){
|
||||||
|
service.name = service.Serverpart_Name.slice(0,num)
|
||||||
|
service.unit = service.Serverpart_Name.slice(num,100)
|
||||||
|
}else{
|
||||||
|
service.name = service.Serverpart_Name
|
||||||
|
}
|
||||||
|
this.serviceInfo = service
|
||||||
|
console.log('service',service)
|
||||||
},
|
},
|
||||||
async getYearData(){
|
async getYearData(){
|
||||||
let storeServiceInfo = uni.getStorageSync('currentService')
|
let storeServiceInfo = uni.getStorageSync('currentService')
|
||||||
@ -347,7 +446,9 @@ export default {
|
|||||||
let y = date.getFullYear()
|
let y = date.getFullYear()
|
||||||
let m = this.month
|
let m = this.month
|
||||||
let req = {}
|
let req = {}
|
||||||
if (nowMonth === m ){
|
console.log('nowMonth',nowMonth)
|
||||||
|
console.log('m',m)
|
||||||
|
if (nowMonth === Number(m) ){
|
||||||
req = {
|
req = {
|
||||||
BUDGETPROJECT_YEAR: y,
|
BUDGETPROJECT_YEAR: y,
|
||||||
STATISTICS_MONTH:`${y}${m}`,
|
STATISTICS_MONTH:`${y}${m}`,
|
||||||
@ -355,13 +456,21 @@ export default {
|
|||||||
ACCOUNT_CODE:'6001,6401,6402',
|
ACCOUNT_CODE:'6001,6401,6402',
|
||||||
STATISTICS_DATE: time
|
STATISTICS_DATE: time
|
||||||
}
|
}
|
||||||
|
console.log('req',req)
|
||||||
}else{
|
}else{
|
||||||
let reqDate = new Date(changeTime)
|
let reqDate
|
||||||
let y = reqDate.getFullYear()
|
let m
|
||||||
let m = reqDate.getMonth() + 1
|
if (changeTime){
|
||||||
|
reqDate = new Date(changeTime)
|
||||||
|
m = reqDate.getMonth() + 1
|
||||||
if (m<10){
|
if (m<10){
|
||||||
m = '0' + m
|
m = '0' + m
|
||||||
}
|
}
|
||||||
|
}else{
|
||||||
|
reqDate = new Date()
|
||||||
|
m = this.month
|
||||||
|
}
|
||||||
|
let y = reqDate.getFullYear()
|
||||||
req = {
|
req = {
|
||||||
BUDGETPROJECT_YEAR: y,
|
BUDGETPROJECT_YEAR: y,
|
||||||
STATISTICS_MONTH: `${y}${m}`,
|
STATISTICS_MONTH: `${y}${m}`,
|
||||||
@ -375,9 +484,13 @@ export default {
|
|||||||
this.dataList.forEach(item=>{
|
this.dataList.forEach(item=>{
|
||||||
if (item.children){
|
if (item.children){
|
||||||
item.children = this.editData(item.children)
|
item.children = this.editData(item.children)
|
||||||
|
if (item.node.ShowRevenue_Amount){
|
||||||
|
item.node.BUDGETDETAIL_AMOUNT = item.node.BUDGETDETAIL_AMOUNT ? this.$util.fmoney(item.node.BUDGETDETAIL_AMOUNT):''
|
||||||
|
item.node.REVENUE_AMOUNT = this.$util.fmoney(item.node.REVENUE_AMOUNT)
|
||||||
|
}
|
||||||
}else{
|
}else{
|
||||||
if (item.node.BUDGETDETAIL_AMOUNT){
|
if (item.node.BUDGETDETAIL_AMOUNT){
|
||||||
item.node.BUDGETDETAIL_AMOUNT = this.$util.fmoney(item.node.BUDGETDETAIL_AMOUNT)
|
item.node.BUDGETDETAIL_AMOUNT = item.node.BUDGETDETAIL_AMOUNT ? this.$util.fmoney(item.node.BUDGETDETAIL_AMOUNT):''
|
||||||
item.node.REVENUE_AMOUNT = this.$util.fmoney(item.node.REVENUE_AMOUNT)
|
item.node.REVENUE_AMOUNT = this.$util.fmoney(item.node.REVENUE_AMOUNT)
|
||||||
}else{
|
}else{
|
||||||
item.node.BUDGETDETAIL_AMOUNT = '-'
|
item.node.BUDGETDETAIL_AMOUNT = '-'
|
||||||
@ -391,9 +504,13 @@ export default {
|
|||||||
value.forEach(item=>{
|
value.forEach(item=>{
|
||||||
if (item.children){
|
if (item.children){
|
||||||
item.children = this.editData(item.children)
|
item.children = this.editData(item.children)
|
||||||
|
if (item.node.ShowRevenue_Amount){
|
||||||
|
item.node.BUDGETDETAIL_AMOUNT = item.node.BUDGETDETAIL_AMOUNT ? this.$util.fmoney(item.node.BUDGETDETAIL_AMOUNT) :''
|
||||||
|
item.node.REVENUE_AMOUNT = this.$util.fmoney(item.node.REVENUE_AMOUNT)
|
||||||
|
}
|
||||||
}else{
|
}else{
|
||||||
if (item.node.BUDGETDETAIL_AMOUNT){
|
if (item.node.BUDGETDETAIL_AMOUNT){
|
||||||
item.node.BUDGETDETAIL_AMOUNT = this.$util.fmoney(item.node.BUDGETDETAIL_AMOUNT)
|
item.node.BUDGETDETAIL_AMOUNT = item.node.BUDGETDETAIL_AMOUNT ? this.$util.fmoney(item.node.BUDGETDETAIL_AMOUNT) :''
|
||||||
item.node.REVENUE_AMOUNT = this.$util.fmoney(item.node.REVENUE_AMOUNT)
|
item.node.REVENUE_AMOUNT = this.$util.fmoney(item.node.REVENUE_AMOUNT)
|
||||||
}else{
|
}else{
|
||||||
item.node.BUDGETDETAIL_AMOUNT = '-'
|
item.node.BUDGETDETAIL_AMOUNT = '-'
|
||||||
@ -645,6 +762,53 @@ export default {
|
|||||||
}
|
}
|
||||||
.firstBox{
|
.firstBox{
|
||||||
margin-top: 8px;
|
margin-top: 8px;
|
||||||
|
.valueBox{
|
||||||
|
display: inline-block;
|
||||||
|
text-align: right;
|
||||||
|
.firstTitle{
|
||||||
|
display: inline-block;
|
||||||
|
width: 180px;
|
||||||
|
font-size: 16px;
|
||||||
|
font-family: PingFangSC-Semibold, PingFang SC;
|
||||||
|
font-weight: 600;
|
||||||
|
color: #160002;
|
||||||
|
line-height: 22px;
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
.addBox{
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: flex-end;
|
||||||
|
.addIcon {
|
||||||
|
width: 16px;
|
||||||
|
height: 16px;
|
||||||
|
margin-right: 2px;
|
||||||
|
}
|
||||||
|
.type{
|
||||||
|
font-size: 12px;
|
||||||
|
font-family: PingFangSC-Regular, PingFang SC;
|
||||||
|
font-weight: 400;
|
||||||
|
color: #a69e9f;
|
||||||
|
line-height: 18px;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.value{
|
||||||
|
font-size: 14px;
|
||||||
|
font-family: PingFangSC-Semibold, PingFang SC;
|
||||||
|
color: #160002;
|
||||||
|
line-height: 22px;
|
||||||
|
padding-left: 10px;
|
||||||
|
.type{
|
||||||
|
font-size: 12px;
|
||||||
|
font-family: PingFangSC-Regular, PingFang SC;
|
||||||
|
font-weight: 400;
|
||||||
|
color: #a69e9f;
|
||||||
|
line-height: 18px;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
.firstTitle{
|
.firstTitle{
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
width: 180px;
|
width: 180px;
|
||||||
@ -654,6 +818,57 @@ export default {
|
|||||||
color: #160002;
|
color: #160002;
|
||||||
line-height: 22px;
|
line-height: 22px;
|
||||||
}
|
}
|
||||||
|
.boxTop{
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
.firstTitle{
|
||||||
|
display: inline-block;
|
||||||
|
width: 180px;
|
||||||
|
font-size: 16px;
|
||||||
|
font-family: PingFangSC-Semibold, PingFang SC;
|
||||||
|
font-weight: 600;
|
||||||
|
color: #160002;
|
||||||
|
line-height: 22px;
|
||||||
|
}
|
||||||
|
.amount{
|
||||||
|
display: inline-block;
|
||||||
|
text-align: right;
|
||||||
|
.addBox{
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: flex-end;
|
||||||
|
.addIcon {
|
||||||
|
width: 16px;
|
||||||
|
height: 16px;
|
||||||
|
margin-right: 2px;
|
||||||
|
}
|
||||||
|
.type{
|
||||||
|
font-size: 12px;
|
||||||
|
font-family: PingFangSC-Regular, PingFang SC;
|
||||||
|
font-weight: 400;
|
||||||
|
color: #a69e9f;
|
||||||
|
line-height: 18px;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.value{
|
||||||
|
font-size: 14px;
|
||||||
|
font-family: PingFangSC-Semibold, PingFang SC;
|
||||||
|
color: #160002;
|
||||||
|
line-height: 22px;
|
||||||
|
padding-left: 10px;
|
||||||
|
.type{
|
||||||
|
font-size: 12px;
|
||||||
|
font-family: PingFangSC-Regular, PingFang SC;
|
||||||
|
font-weight: 400;
|
||||||
|
color: #a69e9f;
|
||||||
|
line-height: 18px;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.valueBox{
|
.valueBox{
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
text-align: right;
|
text-align: right;
|
||||||
@ -693,6 +908,54 @@ export default {
|
|||||||
}
|
}
|
||||||
.subBox{
|
.subBox{
|
||||||
margin-top: 4px;
|
margin-top: 4px;
|
||||||
|
.valueBox{
|
||||||
|
display: inline-block;
|
||||||
|
text-align: right;
|
||||||
|
.subTitle{
|
||||||
|
font-size: 14px;
|
||||||
|
font-family: PingFangSC-Semibold, PingFang SC;
|
||||||
|
font-weight: 600;
|
||||||
|
color: #160002;
|
||||||
|
line-height: 22px;
|
||||||
|
padding-left: 10px;
|
||||||
|
display: inline-block;
|
||||||
|
width: 120px;
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
.addBox{
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: flex-end;
|
||||||
|
.addIcon {
|
||||||
|
width: 16px;
|
||||||
|
height: 16px;
|
||||||
|
margin-right: 2px;
|
||||||
|
}
|
||||||
|
.type{
|
||||||
|
font-size: 12px;
|
||||||
|
font-family: PingFangSC-Regular, PingFang SC;
|
||||||
|
font-weight: 400;
|
||||||
|
color: #a69e9f;
|
||||||
|
line-height: 18px;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.value{
|
||||||
|
font-size: 14px;
|
||||||
|
font-family: PingFangSC-Semibold, PingFang SC;
|
||||||
|
color: #160002;
|
||||||
|
line-height: 22px;
|
||||||
|
padding-left: 10px;
|
||||||
|
.type{
|
||||||
|
font-size: 12px;
|
||||||
|
font-family: PingFangSC-Regular, PingFang SC;
|
||||||
|
font-weight: 400;
|
||||||
|
color: #a69e9f;
|
||||||
|
line-height: 18px;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
.subTitle{
|
.subTitle{
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
font-family: PingFangSC-Semibold, PingFang SC;
|
font-family: PingFangSC-Semibold, PingFang SC;
|
||||||
@ -703,6 +966,22 @@ export default {
|
|||||||
display: inline-block;
|
display: inline-block;
|
||||||
width: 120px;
|
width: 120px;
|
||||||
}
|
}
|
||||||
|
.boxTop{
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
.subTitle{
|
||||||
|
font-size: 14px;
|
||||||
|
font-family: PingFangSC-Semibold, PingFang SC;
|
||||||
|
font-weight: 600;
|
||||||
|
color: #160002;
|
||||||
|
line-height: 22px;
|
||||||
|
padding-left: 10px;
|
||||||
|
display: inline-block;
|
||||||
|
width: 120px;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
.thirdBox{
|
.thirdBox{
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
@ -717,6 +996,58 @@ export default {
|
|||||||
display: inline-block;
|
display: inline-block;
|
||||||
width: 130px;
|
width: 130px;
|
||||||
}
|
}
|
||||||
|
.boxTop{
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
.thirdTitle{
|
||||||
|
font-size: 12px;
|
||||||
|
font-family: PingFangSC-Semibold, PingFang SC;
|
||||||
|
font-weight: 600;
|
||||||
|
color: #160002;
|
||||||
|
line-height: 22px;
|
||||||
|
padding-left: 30px;
|
||||||
|
display: inline-block;
|
||||||
|
width: 130px;
|
||||||
|
}
|
||||||
|
.amount{
|
||||||
|
display: inline-block;
|
||||||
|
text-align: right;
|
||||||
|
.addBox{
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: flex-end;
|
||||||
|
.addIcon {
|
||||||
|
width: 16px;
|
||||||
|
height: 16px;
|
||||||
|
margin-right: 2px;
|
||||||
|
}
|
||||||
|
.type{
|
||||||
|
font-size: 12px;
|
||||||
|
font-family: PingFangSC-Regular, PingFang SC;
|
||||||
|
font-weight: 400;
|
||||||
|
color: #a69e9f;
|
||||||
|
line-height: 18px;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.value{
|
||||||
|
font-size: 14px;
|
||||||
|
font-family: PingFangSC-Semibold, PingFang SC;
|
||||||
|
color: #160002;
|
||||||
|
line-height: 22px;
|
||||||
|
padding-left: 10px;
|
||||||
|
.type{
|
||||||
|
font-size: 12px;
|
||||||
|
font-family: PingFangSC-Regular, PingFang SC;
|
||||||
|
font-weight: 400;
|
||||||
|
color: #a69e9f;
|
||||||
|
line-height: 18px;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.valueBox{
|
.valueBox{
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
text-align: right;
|
text-align: right;
|
||||||
|
|||||||
@ -19,7 +19,7 @@
|
|||||||
<view v-if="user.Membership_Id" >
|
<view v-if="user.Membership_Id" >
|
||||||
<view class="topTitle">
|
<view class="topTitle">
|
||||||
<p class="title">对客营收</p>
|
<p class="title">对客营收</p>
|
||||||
<text class="smallTitle">{{plan.RevenueMonth_Amount?plan.RevenueMonth_Amount:'-'}}<text class="month">({{thisMonth?thisMonth:'-'}}月累计)</text></text>
|
<text class="smallTitle">{{monthAmountAdd?monthAmountAdd:'-'}}<text class="month">({{thisMonth?thisMonth:'-'}}月累计)</text></text>
|
||||||
<!-- <span class="text">门店上传: <text style="margin-left: 4px" :style="{color:isBig?'red':''}">{{showTableData.Revenue_Upload?showTableData.Revenue_Upload:'-'}}/{{allShopCount?allShopCount:'-'}}</text></span>-->
|
<!-- <span class="text">门店上传: <text style="margin-left: 4px" :style="{color:isBig?'red':''}">{{showTableData.Revenue_Upload?showTableData.Revenue_Upload:'-'}}/{{allShopCount?allShopCount:'-'}}</text></span>-->
|
||||||
</view>
|
</view>
|
||||||
<view class="box" @click="handlePage">
|
<view class="box" @click="handlePage">
|
||||||
@ -403,6 +403,7 @@ export default {
|
|||||||
{ name: '经营业态', value: 2 },
|
{ name: '经营业态', value: 2 },
|
||||||
{ name: '区域经营', value: 3 }],
|
{ name: '区域经营', value: 3 }],
|
||||||
selectTab:1, // 选项卡的指针
|
selectTab:1, // 选项卡的指针
|
||||||
|
monthAmountAdd:'',//月累计
|
||||||
mobileData :{}, // 移动支付分账接口返回的数据
|
mobileData :{}, // 移动支付分账接口返回的数据
|
||||||
single:'', // 时间选择器选择的时间
|
single:'', // 时间选择器选择的时间
|
||||||
monthAdd:'',//月每天的相对增加
|
monthAdd:'',//月每天的相对增加
|
||||||
@ -432,9 +433,11 @@ export default {
|
|||||||
option:{},//onLoad里面的option
|
option:{},//onLoad里面的option
|
||||||
isShow:false, //投诉建议是否显示
|
isShow:false, //投诉建议是否显示
|
||||||
isShowTitle:0,//投诉建议条数
|
isShowTitle:0,//投诉建议条数
|
||||||
|
isShowId:0,//投诉id
|
||||||
plan:{},//月度和年度接口的返回参数 一起的
|
plan:{},//月度和年度接口的返回参数 一起的
|
||||||
ShareShopCountYes:0,//昨日的店铺数
|
ShareShopCountYes:0,//昨日的店铺数
|
||||||
yesterdayAllPay:0,//前一天的营收总额
|
yesterdayAllPay:0,//前一天的营收总额
|
||||||
|
noChangeLastDay: lastDay,
|
||||||
wechatPushSalesList: null, // 甘肃单品排行数据
|
wechatPushSalesList: null, // 甘肃单品排行数据
|
||||||
seat:{},//用户经纬度信息
|
seat:{},//用户经纬度信息
|
||||||
nearServiceInfo:{
|
nearServiceInfo:{
|
||||||
@ -446,7 +449,8 @@ export default {
|
|||||||
yearNoticeText:'',
|
yearNoticeText:'',
|
||||||
thisMonth:0,//拿到当前月份
|
thisMonth:0,//拿到当前月份
|
||||||
isSuccess:false,//首页这些接口是否全部调用成功
|
isSuccess:false,//首页这些接口是否全部调用成功
|
||||||
isReturn : true
|
isReturn : true,
|
||||||
|
isSuggestion:false,//可不可以看意见
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
watch:{
|
watch:{
|
||||||
@ -458,8 +462,33 @@ export default {
|
|||||||
if (userInfo.userData.AuthorityInfo['89a1f248-2113-4d57-84b1-c2e6edb9e8ee']===1){
|
if (userInfo.userData.AuthorityInfo['89a1f248-2113-4d57-84b1-c2e6edb9e8ee']===1){
|
||||||
this.isReturn = false
|
this.isReturn = false
|
||||||
}
|
}
|
||||||
|
if (userInfo.userData.AuthorityInfo['e2fb458b-d1bd-48fa-805e-fc93dc71efb7'] === 1 || userInfo.userData.AuthorityInfo['ea2fc404-d924-4c88-98de-1f4d96137745'] === 1){
|
||||||
|
this.getSuggestion()
|
||||||
|
}
|
||||||
|
this.seat = uni.getStorageSync('seatInfo')
|
||||||
|
if (!this.seat){
|
||||||
|
//获取用户的经纬度位置存在stroge里面
|
||||||
|
wx.getFuzzyLocation({
|
||||||
|
type:'gcj02',
|
||||||
|
altitude:true,
|
||||||
|
success: (res) =>{
|
||||||
|
let seatInfo = {
|
||||||
|
latitude:res.latitude,
|
||||||
|
longitude:res.longitude
|
||||||
|
}
|
||||||
|
uni.setStorageSync('seatInfo', seatInfo);
|
||||||
|
this.seat = seatInfo
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}else{
|
||||||
|
//拿到最近服务区的数据
|
||||||
|
this.nearestService()
|
||||||
|
}
|
||||||
if (!this.isReturn){
|
if (!this.isReturn){
|
||||||
|
console.log('watch')
|
||||||
this.getData(this.option)
|
this.getData(this.option)
|
||||||
|
this.handleNoticeMonth()
|
||||||
|
this.handleNoticeYear()
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
deep:true
|
deep:true
|
||||||
@ -536,17 +565,18 @@ export default {
|
|||||||
this.isReturn = false
|
this.isReturn = false
|
||||||
}
|
}
|
||||||
if (!this.isReturn){
|
if (!this.isReturn){
|
||||||
|
let userInfo = uni.getStorageSync('vuex')
|
||||||
|
userInfo = JSON.parse(userInfo)
|
||||||
|
console.log('userInfo',userInfo.userData.AuthorityInfo)
|
||||||
// 判断是否有投诉建议的悬浮框弹出
|
// 判断是否有投诉建议的悬浮框弹出
|
||||||
for(let key in this.toDoMsg){
|
if (userInfo.userData.AuthorityInfo['e2fb458b-d1bd-48fa-805e-fc93dc71efb7'] === 1 || userInfo.userData.AuthorityInfo['ea2fc404-d924-4c88-98de-1f4d96137745'] === 1){
|
||||||
if (key === 'd405ae13-3388-41c0-a5f6-d11194d0a943' && this.toDoMsg['d405ae13-3388-41c0-a5f6-d11194d0a943']){
|
this.getSuggestion()
|
||||||
this.isShow = true
|
|
||||||
this.isShowTitle = this.toDoMsg['d405ae13-3388-41c0-a5f6-d11194d0a943']
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
//拿到option的值
|
//拿到option的值
|
||||||
this.option = option
|
this.option = option
|
||||||
// 获取数据的方法
|
// 获取数据的方法
|
||||||
if (this.user.Membership_Id){
|
if (this.user.Membership_Id){
|
||||||
|
console.log('onLoad')
|
||||||
this.getData(option)
|
this.getData(option)
|
||||||
}
|
}
|
||||||
// 判断缓存中是否有位置信息 没有的话 向用户请求 拿到用户当前位置
|
// 判断缓存中是否有位置信息 没有的话 向用户请求 拿到用户当前位置
|
||||||
@ -601,6 +631,21 @@ export default {
|
|||||||
},
|
},
|
||||||
methods:{
|
methods:{
|
||||||
...mapActions(['memberLogin','getLoginCode']),
|
...mapActions(['memberLogin','getLoginCode']),
|
||||||
|
async getSuggestion(){
|
||||||
|
let req = {
|
||||||
|
ModuleGuids:'e2fb458b-d1bd-48fa-805e-fc93dc71efb7,ea2fc404-d924-4c88-98de-1f4d96137745',
|
||||||
|
ProvinceCode:'340000'
|
||||||
|
}
|
||||||
|
const data = await request.$webGet('CommercialApi/Suggestion/GetMemberUnreadData',req)
|
||||||
|
if (data.Result_Data.data){
|
||||||
|
if (data.Result_Data.data!=='0'){
|
||||||
|
this.isShow = true
|
||||||
|
this.isShowTitle = data.Result_Data.data
|
||||||
|
this.isShowId = data.Result_Data.key
|
||||||
|
}
|
||||||
|
}
|
||||||
|
console.log('data111111111111',data)
|
||||||
|
},
|
||||||
//
|
//
|
||||||
async handleNoticeMonth(){
|
async handleNoticeMonth(){
|
||||||
let date = new Date(this.lastDay)
|
let date = new Date(this.lastDay)
|
||||||
@ -620,10 +665,12 @@ export default {
|
|||||||
PageSize:10
|
PageSize:10
|
||||||
}
|
}
|
||||||
const data = await request.$webPost('CommercialApi/Analysis/GetANALYSISINSList',req)
|
const data = await request.$webPost('CommercialApi/Analysis/GetANALYSISINSList',req)
|
||||||
this.monthNoticeText = data.Result_Data.List[0].ANALYSIS_CONTENT
|
this.monthNoticeText = data.Result_Data.List[0]?data.Result_Data.List[0].ANALYSIS_CONTENT:''
|
||||||
},
|
},
|
||||||
async handleNoticeYear(){
|
async handleNoticeYear(){
|
||||||
|
console.log('handleNoticeYear',this.lastDay)
|
||||||
let date = new Date(this.lastDay)
|
let date = new Date(this.lastDay)
|
||||||
|
console.log(2222)
|
||||||
let y = date.getFullYear()
|
let y = date.getFullYear()
|
||||||
let m = date.getMonth() + 1
|
let m = date.getMonth() + 1
|
||||||
if(m<10){
|
if(m<10){
|
||||||
@ -640,7 +687,9 @@ export default {
|
|||||||
PageSize:10
|
PageSize:10
|
||||||
}
|
}
|
||||||
const totalData = await request.$webPost('CommercialApi/Analysis/GetANALYSISINSList',reqYear)
|
const totalData = await request.$webPost('CommercialApi/Analysis/GetANALYSISINSList',reqYear)
|
||||||
|
if (totalData.Result_Data.List[0]){
|
||||||
this.yearNoticeText = totalData.Result_Data.List[0].ANALYSIS_CONTENT
|
this.yearNoticeText = totalData.Result_Data.List[0].ANALYSIS_CONTENT
|
||||||
|
}
|
||||||
console.log('this.yearNoticeText ',this.yearNoticeText )
|
console.log('this.yearNoticeText ',this.yearNoticeText )
|
||||||
},
|
},
|
||||||
async nearestService(){
|
async nearestService(){
|
||||||
@ -651,7 +700,7 @@ export default {
|
|||||||
latitude:seat.latitude,
|
latitude:seat.latitude,
|
||||||
}
|
}
|
||||||
const data = await request.$webGet('CommercialApi/BaseInfo/GetServerpartList',req)
|
const data = await request.$webGet('CommercialApi/BaseInfo/GetServerpartList',req)
|
||||||
console.log('data',data)
|
console.log('data1',data)
|
||||||
let res = {
|
let res = {
|
||||||
SERVERPART_NAME:data.Result_Data.List[0].SERVERPART_NAME,//服务区
|
SERVERPART_NAME:data.Result_Data.List[0].SERVERPART_NAME,//服务区
|
||||||
SPREGIONTYPE_NAME:data.Result_Data.List[0].SPREGIONTYPE_NAME,//片区
|
SPREGIONTYPE_NAME:data.Result_Data.List[0].SPREGIONTYPE_NAME,//片区
|
||||||
@ -765,7 +814,12 @@ export default {
|
|||||||
this.$util.toNextRoute('redirectTo', '/pages/register/register')
|
this.$util.toNextRoute('redirectTo', '/pages/register/register')
|
||||||
},
|
},
|
||||||
handleSearch(){
|
handleSearch(){
|
||||||
|
let req = {
|
||||||
|
SuggestionIds:this.isShowId
|
||||||
|
}
|
||||||
|
request.$webGet('CommercialApi/Suggestion/RecordReadingLog',req).then(()=>{
|
||||||
this.$util.toNextRoute('navigateTo', '/pages/suggestion/suggestion')
|
this.$util.toNextRoute('navigateTo', '/pages/suggestion/suggestion')
|
||||||
|
})
|
||||||
},
|
},
|
||||||
// 改变时间触发的方法 ,改变页面的内容数据
|
// 改变时间触发的方法 ,改变页面的内容数据
|
||||||
onRefresh(){
|
onRefresh(){
|
||||||
@ -911,11 +965,12 @@ export default {
|
|||||||
ShowCompareRate: true
|
ShowCompareRate: true
|
||||||
}
|
}
|
||||||
request.$webGet('CommercialApi/Revenue/GetSummaryRevenue',allPriceData).then(res=>{
|
request.$webGet('CommercialApi/Revenue/GetSummaryRevenue',allPriceData).then(res=>{
|
||||||
|
console.log('res222222',res)
|
||||||
flag3 = true
|
flag3 = true
|
||||||
// 赋值给data中的这个对象 在请求完之后会进行统一的数据处理
|
// 赋值给data中的这个对象 在请求完之后会进行统一的数据处理
|
||||||
let result = res.Result_Data
|
let result = res.Result_Data
|
||||||
for(let key in result){
|
for(let key in result){
|
||||||
if (key!=='RevenuePushModel' && key!=='GrowthRate'){
|
if (key!=='RevenuePushModel' && key!=='GrowthRate' && key!=='MonthRevenueAmount'){
|
||||||
let all = 0
|
let all = 0
|
||||||
// 先算出全部的总额数量 用来计算百分比
|
// 先算出全部的总额数量 用来计算百分比
|
||||||
result[key].forEach(item=>{
|
result[key].forEach(item=>{
|
||||||
@ -931,7 +986,7 @@ export default {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
this.monthAmountAdd = this.$util.fmoney(result.MonthRevenueAmount)
|
||||||
this.modelProgress = result.BusinessTypeList
|
this.modelProgress = result.BusinessTypeList
|
||||||
this.regionProgress = result.BusinessTradeList
|
this.regionProgress = result.BusinessTradeList
|
||||||
this.areaProgress = result.SPRegionList
|
this.areaProgress = result.SPRegionList
|
||||||
@ -967,12 +1022,12 @@ export default {
|
|||||||
bindDateChange(e){
|
bindDateChange(e){
|
||||||
let isOnRefresh = false
|
let isOnRefresh = false
|
||||||
let startTime = new Date(this.startDate).getTime()
|
let startTime = new Date(this.startDate).getTime()
|
||||||
let endTime = new Date(this.lastDay).getTime() - 8 * 3600 * 1000 //结束时间戳
|
let endTime = new Date(this.noChangeLastDay).getTime() - 8 * 3600 * 1000 //结束时间戳
|
||||||
const date = new Date(e.detail.value).getTime() - 8 * 3600 * 1000
|
const date = new Date(e.detail.value).getTime() - 8 * 3600 * 1000
|
||||||
let startDate = new Date(this.startDate)
|
let startDate = new Date(this.startDate)
|
||||||
let startMonth = startDate.getMonth() + 1
|
let startMonth = startDate.getMonth() + 1
|
||||||
let startDay = startDate.getDate()
|
let startDay = startDate.getDate()
|
||||||
let endDate = new Date(this.lastDay)
|
let endDate = new Date(this.noChangeLastDay)
|
||||||
let endMonth = endDate.getMonth() + 1
|
let endMonth = endDate.getMonth() + 1
|
||||||
let endDay = endDate.getDate()
|
let endDay = endDate.getDate()
|
||||||
console.log('this.startDate',this.startDate)
|
console.log('this.startDate',this.startDate)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user