This commit is contained in:
cclu 2024-10-12 21:51:37 +08:00
parent eccadb25fb
commit b3d2593da4
9 changed files with 264 additions and 103 deletions

View File

@ -1,6 +1,6 @@
<template> <template>
<view class="main"> <view class="main">
<view class="meng" v-if="showRealBox" @click="changeShowRealBox"></view> <!-- <view class="meng" v-if="showRealBox" @click="changeShowRealBox"></view>-->
<view class="meng" v-if="showHaveNotice" @click.stop="handleShowHaveNoticeBox"></view> <view class="meng" v-if="showHaveNotice" @click.stop="handleShowHaveNoticeBox"></view>
<view class="meng" v-if="showMonthDetail" @click.stop="handleShowTrafficDetail"></view> <view class="meng" v-if="showMonthDetail" @click.stop="handleShowTrafficDetail"></view>
<view class="meng" v-if="ydModal" @click.stop="handleShowYDModal"></view> <view class="meng" v-if="ydModal" @click.stop="handleShowYDModal"></view>
@ -146,30 +146,45 @@
<view class="moreIcon" @click.stop="changeShowRealBox"> <view class="moreIcon" @click.stop="changeShowRealBox">
<image class="noticeIcon" src="https://eshangtech.com/ShopICO/ahyd-BID/newIndex3/noticeIcon.svg"/> <image class="noticeIcon" src="https://eshangtech.com/ShopICO/ahyd-BID/newIndex3/noticeIcon.svg"/>
<view v-if="showRealBox" class="realBox" @click.stop="changeShowRealBox"> <view v-if="showRealBox" class="realBox" @click.stop="changeShowRealBox">
<view class="field"> <span class="noticeText">注解词说明</span>
<view class="label">对客销售</view> <span class="noticeText">对客销售对客营收营业额 ----服务区所有经营实体与客户发生的交易金额一般统计消费总量多用于外部口径</span>
<view class="value">{{showTableData.CashPay?$util.fmoney($util.getMoney(showTableData.CashPay),2):'-'}}</view> <span class="noticeText">同期服务区的对客销售额与入区车流量和服务区营效变化会呈现较强关联性属于显性短周指标</span>
</view> <span class="noticeText">自营销售自营经营额 ----驿达自主经营的实体与客户发生的真实交易金额</span>
<view class="field"> <span class="noticeText">外租销售 (商铺经营额 ----合作商户经营的实体与客户发生的真实交易金额</span>
<view class="label">自营销售</view> <span class="noticeText">应用场景口径多用与服务区同行或行业相关部门交流体现服务区商业服务能力也是考核旗下服务区商业管理水平提升的重要指标</span>
<view class="value">{{typeList && typeList.length>0?$util.fmoney($util.getMoney(typeList[0].value),2) : '-'}}</view> <span class="noticeText">营业收入经营收入---驿达通过服务区场景获得的真实收入包括自主经营项目外租经营项目油站充电桩等租赁收入等多用于内部口径</span>
</view> <span class="noticeText">因商户租赁收入和其他固定项目收入存在财务确认时间滞后情况数字变化一般晚于对客销售额属于长周期指标</span>
<view class="field"> <span class="noticeText">自营营业收入 ---指的是驿达自有经营门店的实际交易金额</span>
<view class="label" style="padding-left: 20rpx">便利店</view> <span class="noticeText">租赁营业收入 ---指的是驿达通过租赁商铺通过商铺交易金额按比例来获取租金的收入</span>
<view class="value">{{typeList && typeList.length>0?$util.fmoney($util.getMoney(typeList[2].value),2) : '-'}}</view> <span class="noticeText">一般情况下收入单纯代表交易金额如果对内财务口径一般需要后面除税来表达</span>
</view> <span class="noticeText">应用场景口径多用与内部分子公司任务拆解考核和集团的任务指标完成汇报是整个管理团队的长期阶段性指标结果</span>
<view class="field"> <span class="noticeText">同比指的是一段时间内与全年同期的数据比较一般用于反映长线经营趋势的波动</span>
<view class="label" style="padding-left: 20rpx">餐饮客房</view> <span class="noticeText">环比指的是一段时间内与上月同期的数值比较一般用于反映短期经营趋势的比较</span>
<view class="value">{{typeList && typeList.length>0?$util.fmoney($util.getMoney(typeList[3].value),2) : '-'}}</view> <span class="noticeText">因为服务区的特殊性有节假日条件约束较多会用同比来形容指标波动</span>
</view> <!-- <view class="field">-->
<view class="field"> <!-- <view class="label">对客销售</view>-->
<view class="label">外租收入</view> <!-- <view class="value">{{showTableData.CashPay?$util.fmoney($util.getMoney(showTableData.CashPay),2):'-'}}</view>-->
<view class="value">{{typeList && typeList.length>0?$util.fmoney($util.getMoney(typeList[1].value),2) : '-'}}</view> <!-- </view>-->
</view> <!-- <view class="field">-->
<view class="field"> <!-- <view class="label">自营销售</view>-->
<view class="label" style="padding-left: 20rpx">商铺租赁</view> <!-- <view class="value">{{typeList && typeList.length>0?$util.fmoney($util.getMoney(typeList[0].value),2) : '-'}}</view>-->
<view class="value">{{typeList && typeList.length>0?$util.fmoney($util.getMoney(typeList[4].value),2) : '-'}}</view> <!-- </view>-->
</view> <!-- <view class="field">-->
<!-- <view class="label" style="padding-left: 20rpx">便利店</view>-->
<!-- <view class="value">{{typeList && typeList.length>0?$util.fmoney($util.getMoney(typeList[2].value),2) : '-'}}</view>-->
<!-- </view>-->
<!-- <view class="field">-->
<!-- <view class="label" style="padding-left: 20rpx">餐饮客房</view>-->
<!-- <view class="value">{{typeList && typeList.length>0?$util.fmoney($util.getMoney(typeList[3].value),2) : '-'}}</view>-->
<!-- </view>-->
<!-- <view class="field">-->
<!-- <view class="label">外租收入</view>-->
<!-- <view class="value">{{typeList && typeList.length>0?$util.fmoney($util.getMoney(typeList[1].value),2) : '-'}}</view>-->
<!-- </view>-->
<!-- <view class="field">-->
<!-- <view class="label" style="padding-left: 20rpx">商铺租赁</view>-->
<!-- <view class="value">{{typeList && typeList.length>0?$util.fmoney($util.getMoney(typeList[4].value),2) : '-'}}</view>-->
<!-- </view>-->
</view> </view>
</view> </view>
</view> </view>
@ -321,8 +336,8 @@
<view class="accountRevenue"> <view class="accountRevenue">
<view class="accountItem" style="margin-bottom: 24rpx"> <view class="accountItem" style="margin-bottom: 24rpx">
<view class="itemTop"> <view class="itemTop">
<view class="itemName">对客销售<span class="unit">/亿元</span></view> <view class="itemName">24年累计对客销售<span class="unit">/亿元</span></view>
<view class="itemType">累计</view> <!-- <view class="itemType">累计</view>-->
</view> </view>
<view class="itemBottom"> <view class="itemBottom">
<span class="revenueNum">{{showTableData.YearRevenueAmount?$util.getMoney(showTableData.YearRevenueAmount/100000000):''}}</span> <span class="revenueNum">{{showTableData.YearRevenueAmount?$util.getMoney(showTableData.YearRevenueAmount/100000000):''}}</span>
@ -333,8 +348,8 @@
<view class="accountItem"> <view class="accountItem">
<view class="itemTop"> <view class="itemTop">
<view class="itemName">营业收入<span class="unit">/亿元</span></view> <view class="itemName">24年累计营业收入<span class="unit">/亿元</span></view>
<view class="itemType">除税累计</view> <!-- <view class="itemType">除税累计</view>-->
</view> </view>
<view class="itemBottom"> <view class="itemBottom">
<span class="revenueNum">{{showTableData.YearAccountRoyalty?$util.getMoney(showTableData.YearAccountRoyalty/100000000):''}}</span> <span class="revenueNum">{{showTableData.YearAccountRoyalty?$util.getMoney(showTableData.YearAccountRoyalty/100000000):''}}</span>
@ -996,6 +1011,47 @@
</view> </view>
</view> </view>
<!-- 车流预警-->
<view class="bigCarBox" style="margin-top: 24rpx" v-if="special">
<view class="carWarning" @click="handleGoWarning">
<div class="carWarningTop">
<!-- @click="handleGoWarning" -->
<div class="warningBox" >
<image class="warningIcon" src="https://eshangtech.com/ShopICO/ahyd-BID/newIndex3/carIcon.svg"/>
<div class="trafficBox">
<text class="trafficCar">车流预警</text>
<text class="trafficUnit"> /Top3</text>
<!-- <image class="moreIcon" src="https://eshangtech.com/ShopICO/ahyd-BID/newIndex/carMoreIcon.svg"/>-->
</div>
</div>
<div class="moreStoreBox" >
<!-- <span class="moreText">更多记录</span>-->
<image class="moreIcon" src="https://eshangtech.com/ShopICO/ahyd-BID/newIndex3/goMore.svg"/>
</div>
</div>
<div class="contentList" >
<div class="contentItem" v-for="(item,index) in warningList" :key="index">
<div class="index">
<div class="boxBg" v-if="index<=2"></div>
<span class="indexText" :style="{fontWeight:index<=2?'bold':'normal',color:index<=2?'#160002':'#786B6C'}">{{index + 1}}</span>
</div>
<div class="serviceBox">
<span class="name">{{item.name}}</span>
<span class="position">{{item.SERVERPART_REGION}}</span>
</div>
<div class="numberBox">
<span class="number">{{item.VEHICLE_COUNT}}</span>
<span class="unit">/</span>
</div>
<div class="addBox">
<image class="addIcon" :src="Number(item.VEHICLE_RATE)>100?'https://eshangtech.com/ShopICO/ahyd-BID/examine/add.svg':Number(item.VEHICLE_RATE)===100?'':'https://eshangtech.com/ShopICO/ahyd-BID/examine/reduce.svg'"/>
<span class="add">{{item.VEHICLE_RATE}}%</span>
</div>
</div>
</div>
</view>
</view>
<!-- 八个有背景的导航栏--> <!-- 八个有背景的导航栏-->
<view class="funBox"> <view class="funBox">
@ -1112,46 +1168,7 @@
</view> </view>
<!-- 车流预警-->
<view class="bigCarBox" style="margin-top: 24rpx" v-if="special">
<view class="carWarning" @click="handleGoWarning">
<div class="carWarningTop">
<!-- @click="handleGoWarning" -->
<div class="warningBox" >
<image class="warningIcon" src="https://eshangtech.com/ShopICO/ahyd-BID/newIndex3/carIcon.svg"/>
<div class="trafficBox">
<text class="trafficCar">车流预警</text>
<text class="trafficUnit"> /Top3</text>
<!-- <image class="moreIcon" src="https://eshangtech.com/ShopICO/ahyd-BID/newIndex/carMoreIcon.svg"/>-->
</div>
</div>
<div class="moreStoreBox" >
<!-- <span class="moreText">更多记录</span>-->
<image class="moreIcon" src="https://eshangtech.com/ShopICO/ahyd-BID/newIndex3/goMore.svg"/>
</div>
</div>
<div class="contentList" >
<div class="contentItem" v-for="(item,index) in warningList" :key="index">
<div class="index">
<div class="boxBg" v-if="index<=2"></div>
<span class="indexText" :style="{fontWeight:index<=2?'bold':'normal',color:index<=2?'#160002':'#786B6C'}">{{index + 1}}</span>
</div>
<div class="serviceBox">
<span class="name">{{item.name}}</span>
<span class="position">{{item.SERVERPART_REGION}}</span>
</div>
<div class="numberBox">
<span class="number">{{item.VEHICLE_COUNT}}</span>
<span class="unit">/</span>
</div>
<div class="addBox">
<image class="addIcon" :src="Number(item.VEHICLE_RATE)>100?'https://eshangtech.com/ShopICO/ahyd-BID/examine/add.svg':Number(item.VEHICLE_RATE)===100?'':'https://eshangtech.com/ShopICO/ahyd-BID/examine/reduce.svg'"/>
<span class="add">{{item.VEHICLE_RATE}}%</span>
</div>
</div>
</div>
</view>
</view>
<!-- <span @click="handleGoProject">111</span>--> <!-- <span @click="handleGoProject">111</span>-->
<!-- 四个画像--> <!-- 四个画像-->
@ -2027,7 +2044,7 @@ export default {
SERVERPART_NAME: "安徽驿达", SERVERPART_NAME: "安徽驿达",
SPREGIONTYPE_NAME: "", SPREGIONTYPE_NAME: "",
SPRegionType_ID: null, SPRegionType_ID: null,
Serverpart_ID: 424, Serverpart_ID: null,
latitude: 32, latitude: 32,
longitude: 117, longitude: 117,
} }
@ -2398,6 +2415,7 @@ export default {
} }
console.log('12312312req',req) console.log('12312312req',req)
request.$webGet('CommercialApi/BigData/GetBayonetWarning',req).then(res=>{ request.$webGet('CommercialApi/BigData/GetBayonetWarning',req).then(res=>{
console.log('车流预警',res)
if (res.Result_Data.List && res.Result_Data.List.length>0){ if (res.Result_Data.List && res.Result_Data.List.length>0){
this.special = true this.special = true
} }
@ -3593,7 +3611,7 @@ $iphoneHeight: env(safe-area-inset-bottom);
} }
.realBox{ .realBox{
position: absolute; position: absolute;
left: 0;top: 10px; left: 5%;top: 10px;
transform: translateX(-50%); transform: translateX(-50%);
//right: 0;bottom: 0; //right: 0;bottom: 0;
display: inline-block; display: inline-block;
@ -3601,8 +3619,16 @@ $iphoneHeight: env(safe-area-inset-bottom);
background: #fff; background: #fff;
border-radius: 10rpx; border-radius: 10rpx;
box-shadow: 0rpx 0rpx 40rpx 0rpx rgba(244, 138, 143, 0.21); box-shadow: 0rpx 0rpx 40rpx 0rpx rgba(244, 138, 143, 0.21);
z-index:21; z-index: 22;
width: 360rpx; width: 75vw;
height: 250px;
overflow-y: scroll;
white-space: pre-wrap;
.noticeText{
font-size: 12px;
color:#000;
display: block;
}
.field{ .field{
text-align: right; text-align: right;
display: flex; display: flex;

View File

@ -535,7 +535,7 @@
<div class="funList" v-if="showPortrait"> <div class="funList" v-if="showPortrait">
<view class="san"></view> <view class="san"></view>
<div class="funItem" v-for="(item,index) in tabTypeList" :key="index" @click="handleGoTab(item)"> <div class="funItem" v-for="(item,index) in tabTypeList" :key="index" @click="handleGoTab(item,index)">
<view class="iconBox"> <view class="iconBox">
<image class="funItemIcon" :src="item.imgUrl"/> <image class="funItemIcon" :src="item.imgUrl"/>
</view> </view>
@ -920,10 +920,10 @@ export default {
{title:'车流增幅Top1',unit:'',value:'',bg:'https://eshangtech.com/ShopICO/ahyd-BID/nationalDay/add.png'}, {title:'车流增幅Top1',unit:'',value:'',bg:'https://eshangtech.com/ShopICO/ahyd-BID/nationalDay/add.png'},
], ],
tabTypeList:[ tabTypeList:[
{ imgUrl: 'https://eshangtech.com/ShopICO/ahyd-BID/index/car.svg', path: '/pages/commercialBINew/carPortrait', name: '车流'}, { imgUrl: 'https://eshangtech.com/ShopICO/ahyd-BID/index/car.svg', path: '/pages/summaryOfPortraits/index?index=1&isPicker=${true}&come=index', name: '车流'},
{ imgUrl: 'https://eshangtech.com/ShopICO/ahyd-BID/index/guest.svg', path: '/pages/commercialBI/guestPortrait', name: '客群' }, { imgUrl: 'https://eshangtech.com/ShopICO/ahyd-BID/index/guest.svg', path: '/pages/summaryOfPortraits/index?index=2&isPicker=${true}&come=index', name: '客群' },
{ imgUrl: 'https://eshangtech.com/ShopICO/ahyd-BID/index/business_icon.svg', path: '/pages/commercialBI/managePortrait', name: '经营' }, { imgUrl: 'https://eshangtech.com/ShopICO/ahyd-BID/index/business_icon.svg', path: '/pages/summaryOfPortraits/index?index=3&isPicker=${true}&come=index', name: '经营' },
{ imgUrl: 'https://eshangtech.com/ShopICO/ahyd-BID/index/trade.svg', path: '/pages/commercialBI/businessPortrait', name: '交易' } { imgUrl: 'https://eshangtech.com/ShopICO/ahyd-BID/index/trade.svg', path: '/pages/summaryOfPortraits/index?index=4&isPicker=${true}&come=index', name: '交易' }
], ],
// { imgUrl: 'https://eshangtech.com/ShopICO/ahyd-BID/index/brand.svg', path: '/pages/commercialBI/formatPortrait', name: '' } // { imgUrl: 'https://eshangtech.com/ShopICO/ahyd-BID/index/brand.svg', path: '/pages/commercialBI/formatPortrait', name: '' }
detailTypeList:[{ name: '分润门店', unit: '/个', value: '-',yesterValue:'-', add: '', imgIcon: 'https://eshangtech.com/ShopICO/ahyd-BID/index/store.svg' }, detailTypeList:[{ name: '分润门店', unit: '/个', value: '-',yesterValue:'-', add: '', imgIcon: 'https://eshangtech.com/ShopICO/ahyd-BID/index/store.svg' },
@ -1289,7 +1289,7 @@ export default {
longitude: 117, longitude: 117,
} }
uni.setStorageSync('currentService',YD) uni.setStorageSync('currentService',YD)
this.$util.toNextRoute('navigateTo', `/pages/map/detail?isPicker=${true}&come=index`) this.$util.toNextRoute('navigateTo', `/pages/summaryOfPortraits/index?isPicker=${true}&come=index`)
// let _this = this // let _this = this
// let currentService = uni.getStorageSync('currentService') // let currentService = uni.getStorageSync('currentService')
@ -1336,10 +1336,12 @@ export default {
this.$util.toNextRoute('navigateTo', `/pages/revenueStatistics/index?time=${this.lastDay}&month=${this.single}`) this.$util.toNextRoute('navigateTo', `/pages/revenueStatistics/index?time=${this.lastDay}&month=${this.single}`)
}, },
goToNational(){ goToNational(){
this.$util.toNextRoute('navigateTo', `/pages/nationalPage/index?time=${this.lastDay}`) // this.$util.toNextRoute('navigateTo', `/pages/nationalPage/index?time=${this.lastDay}`)
this.$util.toNextRoute('navigateTo', `/pages/nationalPage/springTravel?selectType=2`)
}, },
handleShowTrafficDetail(){ handleShowTrafficDetail(){
// this.showMonthDetail = !this.showMonthDetail // this.showMonthDetail = !this.showMonthDetail
this.$util.toNextRoute('navigateTo', `/pages/summaryOfPortraits/index?isPicker=${true}&come=index`)
}, },
// //
handleShowHaveNoticeBox(){ handleShowHaveNoticeBox(){
@ -1522,7 +1524,8 @@ export default {
} }
uni.setStorageSync('currentService',YD) uni.setStorageSync('currentService',YD)
if (!this.isReturn){ if (!this.isReturn){
this.$util.toNextRoute('navigateTo', `${item.path}?time=${this.lastDay}&serviceInfo=${JSON.stringify(this.nearServiceInfo)}`) this.$util.toNextRoute('navigateTo', item.path)
// this.$util.toNextRoute('navigateTo', `${item.path}?time=${this.lastDay}&serviceInfo=${JSON.stringify(this.nearServiceInfo)}`)
} else{ } else{
uni.showToast({ uni.showToast({
title: '暂无权限请联系管理员', title: '暂无权限请联系管理员',
@ -1661,7 +1664,8 @@ export default {
this.$util.toNextRoute('navigateTo', `/pages/operatingStatements/index?time=${this.single}`) this.$util.toNextRoute('navigateTo', `/pages/operatingStatements/index?time=${this.single}`)
}, },
changeShowPortrait(){ changeShowPortrait(){
this.showPortrait = !this.showPortrait this.$util.toNextRoute('navigateTo', `/pages/summaryOfPortraits/index?isPicker=${true}&come=index`)
// this.showPortrait = !this.showPortrait
}, },
handleFestival(){ handleFestival(){
this.$util.toNextRoute('navigateTo', `/pages/commercialBI/formatPortrait?time=${this.lastDay}&serviceInfo=${JSON.stringify(this.nearServiceInfo)}`) this.$util.toNextRoute('navigateTo', `/pages/commercialBI/formatPortrait?time=${this.lastDay}&serviceInfo=${JSON.stringify(this.nearServiceInfo)}`)

View File

@ -104,7 +104,7 @@ export default {
wx.getFuzzyLocation({ wx.getFuzzyLocation({
type:'gcj02', type:'gcj02',
altitude:true, altitude:true,
success: (res) =>{ success: async (res) =>{
let seatInfo = { let seatInfo = {
latitude:res.latitude, latitude:res.latitude,
longitude:res.longitude longitude:res.longitude
@ -114,7 +114,7 @@ export default {
let userSeat = uni.getStorageSync('seatInfo') let userSeat = uni.getStorageSync('seatInfo')
this.userLatitude = userSeat.latitude this.userLatitude = userSeat.latitude
this.userLongitude = userSeat.longitude this.userLongitude = userSeat.longitude
this.getServiceList() await this.getServiceList()
} }
}) })
if (option.serviceInfo){ if (option.serviceInfo){
@ -133,7 +133,9 @@ export default {
if (seat && !seat.latitude){ if (seat && !seat.latitude){
JSON.parse(seat) JSON.parse(seat)
} }
if (seat){ if(seat.SERVERPART_NAME==='安徽驿达'){
this.getServiceList()
}else if (seat){
this.longitude = seat.longitude this.longitude = seat.longitude
this.latitude = seat.latitude this.latitude = seat.latitude
this.area = seat.SPREGIONTYPE_NAME this.area = seat.SPREGIONTYPE_NAME
@ -164,15 +166,16 @@ export default {
}, },
watch:{ watch:{
// //
latitude:{ // latitude:{
handler(value){ // handler(value){
if (value){ // if (value){
this.getListData() // console.log('value',value)
} // this.getListData()
}, // }
deep:true, // },
immediate:true // deep:true,
} // immediate:true
// }
}, },
methods:{ methods:{
// 驿 驿 // 驿 驿
@ -252,11 +255,12 @@ export default {
// list.push({name:item.name,value:item.value}) // list.push({name:item.name,value:item.value})
// }) // })
let seat = uni.getStorageSync('currentService') let seat = uni.getStorageSync('currentService')
this.array = list
if (seat && seat.SERVERPART_NAME==='安徽驿达'){ if (seat && seat.SERVERPART_NAME==='安徽驿达'){
this.selectIndex = 0 this.selectIndex = 0
this.serviceMessage = seat this.serviceMessage = seat
} }
this.array = list await this.getListData()
if (this.area){ if (this.area){
this.array.forEach((item,index)=>{ this.array.forEach((item,index)=>{
if (item.name === this.area){ if (item.name === this.area){
@ -348,6 +352,7 @@ export default {
let user = uni.getStorageSync('seatInfo') let user = uni.getStorageSync('seatInfo')
let current = uni.getStorageSync('currentService') let current = uni.getStorageSync('currentService')
let nearService = uni.getStorageSync('nearService') let nearService = uni.getStorageSync('nearService')
console.log('this.array',this.array)
if (!this.selectIndex && this.selectIndex!==0){ if (!this.selectIndex && this.selectIndex!==0){
if (!current){ if (!current){
id = nearService.SPRegionType_ID id = nearService.SPRegionType_ID
@ -371,14 +376,27 @@ export default {
let req = { let req = {
Province_Code: '340000', Province_Code: '340000',
SPRegionType_ID: id, SPRegionType_ID: id,
Serverpart_ID:current.Serverpart_ID, Serverpart_ID:current.SERVERPART_NAME==='安徽驿达'?'': current.Serverpart_ID,
longitude:user.longitude, longitude:user.longitude,
latitude:user.latitude latitude:user.latitude
} }
console.log('req',req)
const data = await request.$webGet('CommercialApi/BaseInfo/GetServerpartList',req) const data = await request.$webGet('CommercialApi/BaseInfo/GetServerpartList',req)
this.serviceList = data.Result_Data.List this.serviceList = data.Result_Data.List
console.log(' this.serviceList', this.serviceList) console.log(' this.serviceList', this.serviceList)
console.log(' this.serviceMessage', this.serviceMessage)
if (this.serviceMessage && this.serviceMessage.SERVERPART_NAME){ if (this.serviceMessage && this.serviceMessage.SERVERPART_NAME){
if(this.serviceMessage.SERVERPART_NAME === '安徽驿达'){
let seat = {
SERVERPART_NAME: this.serviceList[0].SERVERPART_NAME,
SPREGIONTYPE_NAME: this.serviceList[0].SPREGIONTYPE_NAME,
SPRegionType_ID: this.serviceList[0].SPRegionType_ID,
Serverpart_ID: this.serviceList[0].Serverpart_ID,
latitude: this.serviceList[0].SERVERPART_Y,
longitude: this.serviceList[0].SERVERPART_X,
}
this.addMarkers(seat)
}
if (this.serviceList && this.serviceList.length>0){ if (this.serviceList && this.serviceList.length>0){
this.longitude = this.serviceList[0].SERVERPART_X this.longitude = this.serviceList[0].SERVERPART_X
this.latitude = this.serviceList[0].SERVERPART_Y this.latitude = this.serviceList[0].SERVERPART_Y

View File

@ -191,7 +191,7 @@
<uni-popup ref="popup" type="bottom" style="background: #fff" > <uni-popup ref="popup" type="bottom" style="background: #fff" >
<div class="popupBox" style="box-sizing:border-box;height: 430px"> <div class="popupBox" style="box-sizing:border-box;height: 550px">
<!-- <div style="display: flex;align-items: center;justify-content: space-between">--> <!-- <div style="display: flex;align-items: center;justify-content: space-between">-->
<!-- <text class="title">查询配置</text>--> <!-- <text class="title">查询配置</text>-->
<!-- <img src="/static/images/recons/delete.svg" alt="" class="delete" @click="handleClosePopup">--> <!-- <img src="/static/images/recons/delete.svg" alt="" class="delete" @click="handleClosePopup">-->
@ -209,6 +209,15 @@
<view class="timeList"> <view class="timeList">
<view :class="selectTimeOther?'timeItem timeSelectItem':'timeItem'" @click="handleTimeOther">自定义</view> <view :class="selectTimeOther?'timeItem timeSelectItem':'timeItem'" @click="handleTimeOther">自定义</view>
</view> </view>
<view class="popupTitle">业态类型</view>
<view class="timeList">
<view :class="BusinessTrade===item.value?'timeItem timeSelectItem':'timeItem'" v-for="(item,index) in tradeList" :key="index" @click="handleChangeTrade(item.value,index)">{{item.label}}</view>
</view>
<view class="timeList" v-if="bigTradeIndex>=0 && tradeList[bigTradeIndex] && tradeList[bigTradeIndex].children && tradeList[bigTradeIndex].children.length>0">
<view :class="BusinessSmallTrade.indexOf(item.value)!==-1 ?'timeItem timeSelectItem':'timeItem'" v-for="(item,index) in tradeList[bigTradeIndex].children" :key="index" @click="handleChangeSmallTrade(item.value)">{{item.label}}</view>
</view>
<view class="popupTitle">经营模式</view> <view class="popupTitle">经营模式</view>
<view class="timeList"> <view class="timeList">
<view :class="BusinessTypeValue===item.value?'timeItem timeSelectItem':'timeItem'" v-for="(item,index) in BusinessTypeList" :key="index" @click="handleChangeBusiness(item.value)">{{item.label}}</view> <view :class="BusinessTypeValue===item.value?'timeItem timeSelectItem':'timeItem'" v-for="(item,index) in BusinessTypeList" :key="index" @click="handleChangeBusiness(item.value)">{{item.label}}</view>
@ -286,6 +295,10 @@
checkChange:['MerchantName','Brand','Shop','Serverpart'],// checkBox checkChange:['MerchantName','Brand','Shop','Serverpart'],// checkBox
BusinessTypeList:[],// BusinessTypeList:[],//
BusinessTypeValue:0,// BusinessTypeValue:0,//
BusinessTrade:0,//
BusinessSmallTrade: [],//
bigTradeIndex:null,//
tradeList: [],//
SettlementModeList:[],// SettlementModeList:[],//
SettlementModeValue:0,// SettlementModeValue:0,//
timeTypeList:[{label:'近1周',value:1},{label:'近1月',value:2},{label:'近3月',value:3},{label:'近半年',value:4}], timeTypeList:[{label:'近1周',value:1},{label:'近1月',value:2},{label:'近3月',value:3},{label:'近半年',value:4}],
@ -330,6 +343,35 @@
} }
this.BusinessTypeValue = value this.BusinessTypeValue = value
}, },
//
handleChangeSmallTrade(value){
if(this.BusinessSmallTrade.indexOf(Number(value))=== -1){
this.BusinessSmallTrade.push(Number(value))
}else{
let list = []
this.BusinessSmallTrade.forEach(item=>{
if(Number(value) === item){
}else{
list.push(item)
}
})
this.BusinessSmallTrade = list
}
},
//
handleChangeTrade(value,index){
if(this.BusinessTrade === value){
this.BusinessTrade = 0
this.BusinessSmallTrade = []
this.bigTradeIndex = null
}else{
this.BusinessTrade = value
this.BusinessSmallTrade = []
this.bigTradeIndex = index
}
},
// //
// //
handleTimeOther(){ handleTimeOther(){
@ -439,6 +481,7 @@
}, },
// //
getList(){ getList(){
console.log('this.BusinessSmallTrade',this.BusinessSmallTrade)
// copySearchText searchText // copySearchText searchText
this.copySearchText= '' this.copySearchText= ''
uni.showLoading({ uni.showLoading({
@ -457,11 +500,36 @@
} }
}) })
let req; let req;
console.log('BusinessSmallTrade',this.BusinessSmallTrade)
console.log('BusinessTrade',this.BusinessTrade)
console.log('tradeList',this.tradeList)
let tradeId = ''
if(this.BusinessSmallTrade && this.BusinessSmallTrade.length>0){
tradeId = this.BusinessSmallTrade.toString()
}else if(this.BusinessTrade){
let list = []
this.tradeList.forEach(item=>{
if(Number(item.value) === Number(this.BusinessTrade)){
if(item.children && item.children.length>0){
item.children.forEach(subItem=>{
list.push(Number(subItem.value))
})
}
}
})
if(list && list.length>0){
tradeId = list.toString()
}
}
console.log('tradeId',tradeId)
req = { req = {
startTime: searchTime[0], startTime: searchTime[0],
endTime: searchTime[1], endTime: searchTime[1],
SearchKeyName:searchName, SearchKeyName:searchName,
SearchKeyValue:this.searchText, SearchKeyValue:this.searchText,
BusinessTrade: tradeId,
BusinessType:this.searchText?'':this.BusinessTypeValue?this.BusinessTypeValue:'', BusinessType:this.searchText?'':this.BusinessTypeValue?this.BusinessTypeValue:'',
SettlementMode:this.searchText?'':this.SettlementModeValue?this.SettlementModeValue:'', SettlementMode:this.searchText?'':this.SettlementModeValue?this.SettlementModeValue:'',
} }
@ -515,7 +583,34 @@
_this.pageData.isLoading =false _this.pageData.isLoading =false
_this.$forceUpdate() _this.$forceUpdate()
}) })
} },
//
async handleGetTradeList(){
const data = await request.$webGet('EShangApiMain/BaseInfo/GetBusinessTradeTree',{})
const treeTable = wrapTreeNode(data.Result_Data.List);
console.log('treeTable',treeTable)
let list = []
if(treeTable && treeTable.length>0){
treeTable.forEach(item=>{
let children = []
if(item.children && item.children.length>0){
item.children.forEach(subItem=>{
children.push({
label: subItem.AUTOSTATISTICS_NAME,
value: subItem.AUTOSTATISTICS_ID
})
})
}
list.push({
label: item.AUTOSTATISTICS_NAME,
value: item.AUTOSTATISTICS_ID,
children: children
})
})
}
this.tradeList = list
}
}, },
async onLoad(query) { async onLoad(query) {
// //
@ -549,6 +644,8 @@
// //
this.BusinessTypeList = await this.handleEnumeration('BUSINESS_TYPE') this.BusinessTypeList = await this.handleEnumeration('BUSINESS_TYPE')
this.SettlementModeList = await this.handleEnumeration('SETTLEMENT_MODES') this.SettlementModeList = await this.handleEnumeration('SETTLEMENT_MODES')
await this.handleGetTradeList()
// //
this.getList() this.getList()
} }

View File

@ -46,6 +46,9 @@
</div> </div>
<div class="chartsItem" style="height:300px;margin-top: 32px"> <div class="chartsItem" style="height:300px;margin-top: 32px">
<p class="title">消费水平<text class="unit"></text></p> <p class="title">消费水平<text class="unit"></text></p>
<span class="notice">
{{ '注:低消费 < 30, 30 <= 普通消费 <= 60, 高消费 > 60' }}
</span>
<div> <div>
<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}" />
@ -61,7 +64,7 @@
</div> </div>
<div class="chartsItem" style="height:280px;margin-top: 32px"> <div class="chartsItem" style="height:280px;margin-top: 32px">
<p class="title">业态交易值占比</p> <p class="title">业态交易值占比</p>
<div v-if="businessTypeList && businessTypeList.length>0"> <div v-if="businessTypeList.series && businessTypeList.series.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}" />
</div> </div>
@ -610,6 +613,7 @@ export default {
const data = await request.$webGet('CommercialApi/Revenue/GetBusinessTradeRevenue',req) const data = await request.$webGet('CommercialApi/Revenue/GetBusinessTradeRevenue',req)
let res = [] let res = []
let all = 0 let all = 0
console.log('data323232',data)
if (data.Result_Data){ if (data.Result_Data){
data.Result_Data.BusinessTradeRank.forEach((item,index)=>{ data.Result_Data.BusinessTradeRank.forEach((item,index)=>{
if (index<=10){ if (index<=10){
@ -628,6 +632,7 @@ export default {
} }
] ]
}; };
console.log('result',result)
this.businessTypeList = result this.businessTypeList = result
}else{ }else{
this.businessTypeList = [] this.businessTypeList = []
@ -817,6 +822,10 @@ export default {
margin-left: 4px; margin-left: 4px;
} }
} }
.notice{
font-size: 12px;
color: #786B6C;
}
.time{ .time{
margin-bottom: 4px; margin-bottom: 4px;
.thisTime{ .thisTime{

View File

@ -1,6 +1,6 @@
<template> <template>
<div> <div>
<div class="businessFormat" v-if="isShow"> <div class="businessFormat" >
<QiunDataCharts <QiunDataCharts
type="ring" type="ring"
:opts="opts" :opts="opts"

View File

@ -248,7 +248,8 @@ const cfu = {
if (item.name === '客单数'){ if (item.name === '客单数'){
return item.name + ':'+ item.data + '笔' return item.name + ':'+ item.data + '笔'
}else{ }else{
return item.name + ':'+ item.data + '辆,交易概率: ' + ((opts.series[0].data[index] / opts.series[1].data[index])*100).toFixed(2) + '%' return item.name + ':'+ item.data + '辆'
// ,交易概率: ' + ((opts.series[0].data[index] / opts.series[1].data[index])*100).toFixed(2) + '%'
} }
}, },
consumptionCompareFormat:function (val){ consumptionCompareFormat:function (val){

View File

@ -55,7 +55,11 @@ export default {
}, },
}, },
onLoad() { onLoad() {
let seat = uni.getStorageSync('currentService')
if(seat.SERVERPART_NAME==='安徽驿达'){
this.pageList = [ "","车流统计", "客群统计", "经营统计", "交易统计", "业态品牌", "考核考评", "日常巡检"]
console.log('this.pageList ',this.pageList )
}
}, },
methods: { methods: {
handleToDetail(i) { handleToDetail(i) {

View File

@ -84,7 +84,7 @@ export default {
components:{mapDetail,carPortrait,guestPortrait,managePortrait,businessPortrait,formatPortraitBI,newAmine,sliderPage,formatPortrait}, components:{mapDetail,carPortrait,guestPortrait,managePortrait,businessPortrait,formatPortraitBI,newAmine,sliderPage,formatPortrait},
data(){ data(){
return { return {
selectPortrait:0,// selectPortrait: 0,//
query:'',// query:'',//
isShowSwiper:false,// isShowSwiper:false,//
menu:{}, menu:{},
@ -97,6 +97,7 @@ export default {
if (query.index){ if (query.index){
this.selectPortrait = Number(query.index) this.selectPortrait = Number(query.index)
} }
this.query = query
console.log('onLoad') console.log('onLoad')
this.menu = uni.getMenuButtonBoundingClientRect() this.menu = uni.getMenuButtonBoundingClientRect()
@ -107,6 +108,7 @@ export default {
let seat = uni.getStorageSync('currentService') let seat = uni.getStorageSync('currentService')
console.log('seat',seat) console.log('seat',seat)
this.serviceInfo = seat this.serviceInfo = seat
this.selectPortrait = this.query.index ? this.query.index: seat.SERVERPART_NAME==='安徽驿达' ? 1:0
}, },
onHide(){ onHide(){
this.isShowSwiper = false this.isShowSwiper = false