update
This commit is contained in:
parent
93251d869e
commit
e96e4d3347
@ -295,6 +295,12 @@
|
||||
"navigationStyle": "custom",
|
||||
"disableScroll": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "detail",
|
||||
"style": {
|
||||
"navigationBarTitleText": ""
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
@ -43,7 +43,7 @@
|
||||
<div class="detailBox">
|
||||
<div class="detailTop">
|
||||
<div class="topLeft">A类</div>
|
||||
<div class="topRight">
|
||||
<div class="topRight" @click="handleGoServiceMessage">
|
||||
<span class="rightText">查看更多</span>
|
||||
<img class="moreIcon" src="https://eshangtech.com/ShopICO/ahyd-BID/commercial/rightArrow.svg"/>
|
||||
</div>
|
||||
@ -513,6 +513,10 @@ export default {
|
||||
this.searchText=''
|
||||
},
|
||||
methods:{
|
||||
// 点击查看更多跳转
|
||||
handleGoServiceMessage(){
|
||||
this.$util.toNextRoute('navigateTo', `/pages/map/detail`)
|
||||
},
|
||||
showScoreAnimation1(copyRightItems,id) {
|
||||
/*
|
||||
cxt_arc.arc(x, y, r, sAngle, eAngle, counterclockwise);
|
||||
@ -1211,6 +1215,7 @@ export default {
|
||||
width:100%;
|
||||
background: #fff;
|
||||
min-height: 100vh;
|
||||
overflow: hidden;
|
||||
.header{
|
||||
width: 100%;
|
||||
height: 648rpx;
|
||||
@ -1447,6 +1452,7 @@ export default {
|
||||
.moreIcon{
|
||||
width: 24rpx;
|
||||
height: 24rpx;
|
||||
margin-left: 4rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,9 +1,29 @@
|
||||
<template>
|
||||
<div class="typeBigList">
|
||||
<div class="item" v-for="(item,index) in showTypeList" :key="index" @click="handleGo(item.url)">
|
||||
<image class="icon" :src="item.img"/>
|
||||
<text class="text">{{item.text}}</text>
|
||||
</div>
|
||||
<view class="bigBox">
|
||||
<view :class="expand?'ItemBox second':'ItemBox first'">
|
||||
<view class="item" @click="handleChangeExpand">
|
||||
<view class="iconBox">
|
||||
<image class="icon" src="/static/images/user/expand.svg"/>
|
||||
</view>
|
||||
<text class="text">展开</text>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view :class="expand?'ItemBox first':'ItemBox second'" :style="{opacity: show?1:0}">
|
||||
<div class="item" @click="handleChangeExpand">
|
||||
<view class="iconBox">
|
||||
<image style="transform: rotate(-180deg)" class="icon" src="/static/images/user/expand.svg"/>
|
||||
</view>
|
||||
<text class="text">隐藏</text>
|
||||
</div>
|
||||
<div class="item" v-for="(item,index) in showTypeList" :key="index" @click="handleGo(item.url)">
|
||||
<image class="icon" :src="item.img"/>
|
||||
<text class="text">{{item.text}}</text>
|
||||
</div>
|
||||
</view>
|
||||
|
||||
</view>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@ -19,18 +39,20 @@ export default {
|
||||
{img:'https://eshangtech.com/ShopICO/ahyd-BID/index/business_icon.svg',url:'/pages/commercialBI/managePortrait',text:'经营'},
|
||||
{img:'https://eshangtech.com/ShopICO/ahyd-BID/index/trade.svg',url:'/pages/commercialBI/businessPortrait',text:'交易'},
|
||||
{img:'https://eshangtech.com/ShopICO/ahyd-BID/index/brand.svg',url:'/pages/commercialBI/formatPortrait',text:'品牌'},
|
||||
{img:'https://eshangtech.com/ShopICO/ahyd-BID/newCommercialBI/newExamineIcon.svg',url:`/pages/newamine/index?come=index&type=${1}&time=${this.time}`,text:'考核'},
|
||||
{img:'https://eshangtech.com/ShopICO/ahyd-BID/newCommercialBI/inspectionIcon.svg',url:`/pages/newamine/index?come=index&type=${2}&time=${this.time}`,text:'巡检'},
|
||||
{img:'https://eshangtech.com/ShopICO/ahyd-BID/newCommercialBI/newExamineIcon.svg',url:`/pages/examine/detail?type=${1}`,text:'考核'},
|
||||
{img:'https://eshangtech.com/ShopICO/ahyd-BID/newCommercialBI/inspectionIcon.svg',url:`/pages/examine/detail?type=${2}`,text:'巡检'},
|
||||
],
|
||||
showTypeList:[],
|
||||
selectIndex: 5,
|
||||
selectIndex: 7,
|
||||
pageList : [],// 页面栈数组
|
||||
expand: false,// 是否展开
|
||||
show:false,
|
||||
}
|
||||
},
|
||||
props:{
|
||||
have:{
|
||||
type:Number,
|
||||
default:5
|
||||
default:7
|
||||
},
|
||||
time:{
|
||||
type: String,
|
||||
@ -48,7 +70,10 @@ export default {
|
||||
}
|
||||
})
|
||||
this.showTypeList = list
|
||||
|
||||
setTimeout(()=>{
|
||||
this.show = true
|
||||
console.log('this.show',this.show)
|
||||
},2000)
|
||||
},
|
||||
deep:true,
|
||||
immediate:true
|
||||
@ -61,17 +86,20 @@ export default {
|
||||
|
||||
},
|
||||
methods:{
|
||||
handleChangeExpand(){
|
||||
this.expand = !this.expand
|
||||
},
|
||||
handleGo(url){
|
||||
let pageList = getCurrentPages()
|
||||
if (pageList.length>=2){
|
||||
if (pageList.length>=2){
|
||||
uni.redirectTo({
|
||||
url:url
|
||||
url:url
|
||||
})
|
||||
} else{
|
||||
} else{
|
||||
uni.navigateTo({
|
||||
url:url
|
||||
url:url
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -82,29 +110,101 @@ export default {
|
||||
position: fixed;
|
||||
right: 0;
|
||||
top: 12%;
|
||||
.item{
|
||||
width: 150rpx;
|
||||
height: 80rpx;
|
||||
border-radius: 20px 0 0 20px;
|
||||
box-sizing: border-box;
|
||||
padding: 14rpx;
|
||||
background: rgba(255,255,255,0.8);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
margin-bottom: 10px;
|
||||
border: 1px solid #ccc;
|
||||
.icon{
|
||||
width: 52.5rpx;
|
||||
height: 52.5rpx;
|
||||
border-radius: 50%;
|
||||
margin-right: 10rpx;
|
||||
.bigBox{
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
position: relative;
|
||||
.ItemBox,.ItemBox2{
|
||||
.item{
|
||||
width: 150rpx;
|
||||
height: 80rpx;
|
||||
border-radius: 20px 0 0 20px;
|
||||
box-sizing: border-box;
|
||||
padding: 14rpx;
|
||||
background: rgba(255,255,255,0.8);
|
||||
box-shadow: 0rpx 0rpx 40rpx 0rpx rgba(88,82,82,0.3);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
margin-bottom: 10px;
|
||||
border: 1px solid #ccc;
|
||||
.icon{
|
||||
width: 52.5rpx;
|
||||
height: 52.5rpx;
|
||||
border-radius: 50%;
|
||||
}
|
||||
.iconBox{
|
||||
width: 52.5rpx;
|
||||
height: 52.5rpx;
|
||||
border-radius: 50%;
|
||||
margin-right: 10rpx;
|
||||
background: #fff;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
.icon{
|
||||
width: 30rpx;
|
||||
height: 30rpx;
|
||||
}
|
||||
}
|
||||
.text{
|
||||
font-size: 24rpx;
|
||||
font-family: PingFangSC, PingFang SC;
|
||||
font-weight: 400;
|
||||
color: #786B6C;
|
||||
line-height: 36rpx;
|
||||
}
|
||||
}
|
||||
|
||||
.firstItem{
|
||||
animation:toLeft 2s;
|
||||
}
|
||||
.secondItem{
|
||||
animation:toRight 2s;
|
||||
}
|
||||
@keyframes toLeft {
|
||||
0%{
|
||||
transform: translateX(0px);
|
||||
}
|
||||
100%{
|
||||
transform: translateX(150rpx);
|
||||
}
|
||||
}
|
||||
@keyframes toRight {
|
||||
0%{
|
||||
transform: translateX(0px);
|
||||
}
|
||||
100%{
|
||||
transform: translateX(150rpx);
|
||||
}
|
||||
}
|
||||
}
|
||||
.text{
|
||||
font-size: 24rpx;
|
||||
font-family: PingFangSC, PingFang SC;
|
||||
font-weight: 400;
|
||||
color: #786B6C;
|
||||
line-height: 36rpx;
|
||||
.first{
|
||||
position: absolute;
|
||||
top: 0;
|
||||
animation: second 1.5s;
|
||||
animation-fill-mode:forwards;
|
||||
}
|
||||
.second{
|
||||
position: absolute;
|
||||
top: 0;
|
||||
animation: first 1.5s;
|
||||
animation-fill-mode:forwards;
|
||||
}
|
||||
@keyframes first {
|
||||
0%{
|
||||
left: -150rpx;
|
||||
}
|
||||
100%{
|
||||
left: 0;
|
||||
}
|
||||
}
|
||||
@keyframes second {
|
||||
0%{
|
||||
left: 0;
|
||||
}
|
||||
100%{
|
||||
left: -150rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -11,7 +11,7 @@
|
||||
<p class="price">{{ info.TicketCount?info.TicketCount:'-' }}</p>
|
||||
<view class="right" v-if="info.TicketCount">
|
||||
<image class="arrowTop" :src="Number((info.TicketCount / info.TicketAvgCount)-1)>0?'https://eshangtech.com/ShopICO/ahyd-BID/index/addIcon.svg':'https://eshangtech.com/ShopICO/ahyd-BID/index/reduce.svg'"></image>
|
||||
<text class="text">{{info.TicketCount / info.TicketAvgCount?Math.abs((((info.TicketCount / info.TicketAvgCount) - 1) *100).toFixed(2)) + '%':'-' + '%'}}</text>
|
||||
<text class="text">{{orderTransaction+'%'}}</text>
|
||||
</view>
|
||||
</div>
|
||||
<p class="text">客单交易 <text class="unit">/笔</text></p>
|
||||
@ -21,7 +21,7 @@
|
||||
<p class="price">{{ info.AvgTicketPrice?info.AvgTicketPrice:'-' }}</p>
|
||||
<view class="right" v-if="info.AvgTicketPrice">
|
||||
<image class="arrowTop" :src="Number((info.AvgTicketPrice / info.MonthAvgTicketPrice)-1)>0?'https://eshangtech.com/ShopICO/ahyd-BID/index/addIcon.svg':'https://eshangtech.com/ShopICO/ahyd-BID/index/reduce.svg'"></image>
|
||||
<text class="text">{{info.AvgTicketPrice / info.MonthAvgTicketPrice?Math.abs((((info.AvgTicketPrice / info.MonthAvgTicketPrice) - 1) *100).toFixed(2)) + '%':'-' + '%'}}</text>
|
||||
<text class="text">{{orderAveragePrice+'%'}}</text>
|
||||
</view>
|
||||
</div>
|
||||
<p class="text">客单均价 <text class="unit">/元</text></p>
|
||||
@ -110,6 +110,8 @@ export default {
|
||||
genderList:[false,false,false],
|
||||
addAreaCarNumber:'',//入区车辆增长
|
||||
oneCarPrice:'',//单车价值
|
||||
orderTransaction:'',
|
||||
orderAveragePrice:''
|
||||
}
|
||||
},
|
||||
props: {
|
||||
@ -121,10 +123,12 @@ export default {
|
||||
watch: {
|
||||
data: {
|
||||
handler(value) {
|
||||
console.log('value',value)
|
||||
console.log('value111',value)
|
||||
this.info = value
|
||||
this.addAreaCarNumber = this.info.VehicleCount ? Math.abs((this.info.VehicleCount / this.info.MonthVehicleCount - 1)*100).toFixed(2):''
|
||||
this.oneCarPrice = this.info.MonthVehicleAmount?Math.abs(((this.info.AvgVehicleAmount / this.info.MonthVehicleAmount) - 1) *100).toFixed(2):''
|
||||
this.orderTransaction = this.info.TicketAvgCount? Math.abs((((this.info.TicketCount / this.info.TicketAvgCount) - 1) *100).toFixed(2)):'-'
|
||||
this.orderAveragePrice = this.info.MonthAvgTicketPrice? Math.abs((((this.info.AvgTicketPrice / this.info.MonthAvgTicketPrice) - 1) *100).toFixed(2)):'-'
|
||||
this.$forceUpdate()
|
||||
},
|
||||
deep:true
|
||||
|
||||
@ -28,7 +28,7 @@
|
||||
<div class="detailBox" :style="{background: detailBoxBg}">
|
||||
<div class="detailTop">
|
||||
<div class="topLeft" :style="{background:topLeftBg,color:topLeftColor}">A类</div>
|
||||
<div class="topRight">
|
||||
<div class="topRight" @click="handleGoServiceMessage">
|
||||
<span class="rightText">查看更多</span>
|
||||
<img class="moreIcon" src="https://eshangtech.com/ShopICO/ahyd-BID/commercial/rightArrow.svg"/>
|
||||
</div>
|
||||
@ -177,6 +177,10 @@ export default {
|
||||
// this.getLabelDetail()
|
||||
// },
|
||||
methods:{
|
||||
// 点击查看更多跳转
|
||||
handleGoServiceMessage(){
|
||||
this.$util.toNextRoute('navigateTo', `/pages/map/detail`)
|
||||
},
|
||||
//获得标签
|
||||
async getLabelDetail(){
|
||||
let storeTime = uni.getStorageSync('lastDay')
|
||||
@ -377,6 +381,7 @@ export default {
|
||||
.moreIcon{
|
||||
width: 24rpx;
|
||||
height: 24rpx;
|
||||
margin-left: 4rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,42 +1,86 @@
|
||||
<template>
|
||||
<div class="revenueAnalysisMain">
|
||||
<div class="revenueAnalysis">
|
||||
<div class="item">
|
||||
<image class="icon" src="https://eshangtech.com/ShopICO/ahyd-BID/commercial/agreement.svg"></image>
|
||||
<div class="info" style="margin-bottom: 24px;">
|
||||
<p class="title">合同总金额<text class="unit">/万元</text></p>
|
||||
<p class="value">{{dataInfo.ContractProfitLoss}}</p>
|
||||
<div class="revenueTop">
|
||||
<div class="revenueTopLeft">
|
||||
<image class="revenueLogo" src="https://eshangtech.com/ShopICO/ahyd-BID/newCommercialBI/managerLogo.svg"/>
|
||||
<div class="revenueTopMoney">
|
||||
<div class="moneyBox">
|
||||
<text class="text">{{dataInfo.CashPay}}</text>
|
||||
<image class="moneyIcon" src="https://eshangtech.com/ShopICO/ahyd-BID/newCommercialBI/managerGood.svg"/>
|
||||
</div>
|
||||
<text class="labelText">实收总额<text class="labelUnit">/元</text></text>
|
||||
</div>
|
||||
</div>
|
||||
<div class="revenueTopRight">
|
||||
<!-- <span class="addText">+8.24%</span>-->
|
||||
<!-- <span class="addType">比计划</span>-->
|
||||
</div>
|
||||
</div>
|
||||
<div class="item" style="margin-bottom: 24px;">
|
||||
<image class="icon" src="https://eshangtech.com/ShopICO/ahyd-BID/commercial/shopNumber.svg"></image>
|
||||
<div class="info">
|
||||
<p class="title">店铺数量<text class="unit">/个</text></p>
|
||||
<p class="value">{{dataInfo.ShopCount}}</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="item">
|
||||
<image class="icon" src="https://eshangtech.com/ShopICO/ahyd-BID/commercial/add.svg"></image>
|
||||
<div class="info">
|
||||
<p class="title">欠款金额<text class="unit">/万元</text></p>
|
||||
<p class="value">{{dataInfo.SalesPerSquareMeter}}</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="item">
|
||||
<image class="icon" src="https://eshangtech.com/ShopICO/ahyd-BID/commercial/overShop.svg"></image>
|
||||
<div class="info">
|
||||
<p class="title">半年到期合同<text class="unit">/个</text></p>
|
||||
<p class="value">{{dataInfo.ExpiredShopCount}}</p>
|
||||
<div class="revenueDetailList">
|
||||
<div class="revenueDetailItem">
|
||||
<text class="itemValue">{{dataInfo.Different_Price_More}}</text>
|
||||
<text class="itemLabel">长款金额<text class="itemUnit">/元</text></text>
|
||||
</div>
|
||||
<div class="revenueDetailItem">
|
||||
<text class="itemValue">{{dataInfo.Different_Price_Less}}</text>
|
||||
<text class="itemLabel">短款金额<text class="itemUnit">/元</text></text>
|
||||
</div>
|
||||
<div class="revenueDetailItem">
|
||||
<text class="itemValue">{{dataInfo.TotalOffAmount}}</text>
|
||||
<text class="itemLabel">优惠金额<text class="itemUnit">/元</text></text>
|
||||
</div>
|
||||
<div class="revenueDetailItem" style="margin-top: 32rpx">
|
||||
<text class="itemValue">{{dataInfo.TicketCount}}</text>
|
||||
<text class="itemLabel">客单数量<text class="itemUnit">/笔</text></text>
|
||||
</div>
|
||||
<div class="revenueDetailItem" style="margin-top: 32rpx">
|
||||
<text class="itemValue">{{dataInfo.TotalCount}}</text>
|
||||
<text class="itemLabel">商品出售<text class="itemUnit">/件</text></text>
|
||||
</div>
|
||||
<div class="revenueDetailItem" style="margin-top: 32rpx">
|
||||
<text class="itemValue">{{dataInfo.average}}</text>
|
||||
<text class="itemLabel">商品均价<text class="itemUnit">/元</text></text>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<!-- <div class="item">-->
|
||||
<!-- <image class="icon" src="https://eshangtech.com/ShopICO/ahyd-BID/commercial/agreement.svg"></image>-->
|
||||
<!-- <div class="info" style="margin-bottom: 24px;">-->
|
||||
<!-- <p class="title">合同总金额<text class="unit">/万元</text></p>-->
|
||||
<!-- <p class="value">{{dataInfo.ContractProfitLoss}}</p>-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
<!-- <div class="item" style="margin-bottom: 24px;">-->
|
||||
<!-- <image class="icon" src="https://eshangtech.com/ShopICO/ahyd-BID/commercial/shopNumber.svg"></image>-->
|
||||
<!-- <div class="info">-->
|
||||
<!-- <p class="title">店铺数量<text class="unit">/个</text></p>-->
|
||||
<!-- <p class="value">{{dataInfo.ShopCount}}</p>-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
<!-- <div class="item">-->
|
||||
<!-- <image class="icon" src="https://eshangtech.com/ShopICO/ahyd-BID/commercial/add.svg"></image>-->
|
||||
<!-- <div class="info">-->
|
||||
<!-- <p class="title">欠款金额<text class="unit">/万元</text></p>-->
|
||||
<!-- <p class="value">{{dataInfo.SalesPerSquareMeter}}</p>-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
<!-- <div class="item">-->
|
||||
<!-- <image class="icon" src="https://eshangtech.com/ShopICO/ahyd-BID/commercial/overShop.svg"></image>-->
|
||||
<!-- <div class="info">-->
|
||||
<!-- <p class="title">半年到期合同<text class="unit">/个</text></p>-->
|
||||
<!-- <p class="value">{{dataInfo.ExpiredShopCount}}</p>-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
</div>
|
||||
<div class="list" v-if="id">
|
||||
<!-- <p class="bigTitle" v-if="dataInfo.ContractList.length>0">即将到期合同列表: </p>-->
|
||||
<div class="item" v-for="(item,index) in dataInfo.ContractList" :key="index">
|
||||
<div class="title">{{item.name}}</div>
|
||||
<div class="value">{{item.value}}到期</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- <div class="list" v-if="id">-->
|
||||
<!--<!– <p class="bigTitle" v-if="dataInfo.ContractList.length>0">即将到期合同列表: </p>–>-->
|
||||
<!-- <div class="item" v-for="(item,index) in dataInfo.ContractList" :key="index">-->
|
||||
<!-- <div class="title">{{item.name}}</div>-->
|
||||
<!-- <div class="value">{{item.value}}到期</div>-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@ -61,9 +105,16 @@ export default {
|
||||
watch: {
|
||||
data: {
|
||||
handler(value) {
|
||||
this.dataInfo = value
|
||||
this.dataInfo.ContractProfitLoss = this.$util.fmoney(this.dataInfo.ContractProfitLoss)
|
||||
this.dataInfo.SalesPerSquareMeter = this.$util.fmoney(this.dataInfo.SalesPerSquareMeter)
|
||||
this.dataInfo = JSON.parse(JSON.stringify(value))
|
||||
this.dataInfo.CashPay = this.$util.fmoney(this.dataInfo.CashPay,2)
|
||||
this.dataInfo.Different_Price_More = this.$util.fmoney(this.dataInfo.Different_Price_More,2)
|
||||
this.dataInfo.Different_Price_Less = this.$util.fmoney(this.dataInfo.Different_Price_Less,2)
|
||||
this.dataInfo.TotalOffAmount = this.$util.fmoney(this.dataInfo.TotalOffAmount,2)
|
||||
this.dataInfo.TicketCount = this.$util.fmoney(this.dataInfo.TicketCount,2)
|
||||
this.dataInfo.TotalCount = this.$util.fmoney(this.dataInfo.TotalCount,2)
|
||||
this.dataInfo.average = this.$util.fmoney((value.CashPay / value.TicketCount),2)
|
||||
// this.dataInfo.ContractProfitLoss = this.$util.fmoney(this.dataInfo.ContractProfitLoss)
|
||||
// this.dataInfo.SalesPerSquareMeter = this.$util.fmoney(this.dataInfo.SalesPerSquareMeter)
|
||||
console.log('value',value)
|
||||
}
|
||||
}
|
||||
@ -77,14 +128,117 @@ export default {
|
||||
<style scoped lang="scss">
|
||||
.revenueAnalysisMain{
|
||||
.revenueAnalysis{
|
||||
width: calc(100%);
|
||||
background: #F7F7F7;
|
||||
border-radius: 4px;
|
||||
padding: 12px;
|
||||
width: 100%;
|
||||
background: #FAF9FC;
|
||||
border-radius: 16rpx;
|
||||
padding: 32rpx 24rpx;
|
||||
box-sizing: border-box;
|
||||
display: flex;
|
||||
flex-flow: wrap;
|
||||
margin-top: 12px;
|
||||
.revenueTop{
|
||||
width: 100%;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
.revenueTopLeft{
|
||||
display: flex;
|
||||
height: 88rpx;
|
||||
.revenueLogo{
|
||||
width: 88rpx;
|
||||
height: 88rpx;
|
||||
margin-right: 16rpx;
|
||||
}
|
||||
.revenueTopMoney{
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: space-between;
|
||||
height: 88rpx;
|
||||
.moneyBox{
|
||||
height: 48rpx;
|
||||
.text{
|
||||
font-size: 40rpx;
|
||||
font-family: DINAlternate, DINAlternate;
|
||||
font-weight: bold;
|
||||
color: #160002;
|
||||
line-height: 48rpx;
|
||||
}
|
||||
.moneyIcon{
|
||||
width: 32rpx;
|
||||
height: 32rpx;
|
||||
margin-left: 12rpx;
|
||||
}
|
||||
}
|
||||
.labelText{
|
||||
font-size: 28rpx;
|
||||
font-family: PingFangSC, PingFang SC;
|
||||
font-weight: 400;
|
||||
color: #786B6C;
|
||||
line-height: 40rpx;
|
||||
.labelUnit{
|
||||
font-size: 28rpx;
|
||||
font-family: PingFangSC, PingFang SC;
|
||||
font-weight: 400;
|
||||
color: #A69E9F;
|
||||
line-height: 40rpx;
|
||||
margin-left: 4rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.revenueTopRight{
|
||||
height: 88rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: flex-end;
|
||||
justify-content: space-between;
|
||||
.addText{
|
||||
font-size: 40rpx;
|
||||
font-family: DINAlternate, DINAlternate;
|
||||
font-weight: bold;
|
||||
color: #E83944;
|
||||
line-height: 48rpx;
|
||||
}
|
||||
.addType{
|
||||
font-size: 28rpx;
|
||||
font-family: PingFangSC, PingFang SC;
|
||||
font-weight: 400;
|
||||
color: #A69E9F;
|
||||
line-height: 40rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
.revenueDetailList{
|
||||
width: 100%;
|
||||
margin-top: 48rpx;
|
||||
.revenueDetailItem{
|
||||
display: inline-block;
|
||||
width: calc(100% / 3);
|
||||
.itemValue{
|
||||
font-size: 28rpx;
|
||||
font-family: DINAlternate, DINAlternate;
|
||||
font-weight: bold;
|
||||
color: #341D00;
|
||||
line-height: 40rpx;
|
||||
}
|
||||
.itemLabel{
|
||||
display: block;
|
||||
font-size: 28rpx;
|
||||
font-family: PingFangSC, PingFang SC;
|
||||
font-weight: 400;
|
||||
color: #786B6C;
|
||||
line-height: 40rpx;
|
||||
.itemUnit{
|
||||
font-size: 28rpx;
|
||||
font-family: PingFangSC, PingFang SC;
|
||||
font-weight: 400;
|
||||
color: #A69E9F;
|
||||
line-height: 40rpx;
|
||||
margin-left: 4rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.item{
|
||||
width: 50%;
|
||||
display: flex;
|
||||
|
||||
@ -1,6 +1,9 @@
|
||||
<template>
|
||||
<div class="main">
|
||||
<div style="position: fixed;right: 0;top: 20%;z-index:99999999999">
|
||||
<commercial-type :have="4"/>
|
||||
</div>
|
||||
<div style="position: fixed;right: 0;top: 20%;z-index:99999999999">
|
||||
<!-- <commercial-type :have="4"/>-->
|
||||
</div>
|
||||
<!-- <header-top :bgUrl="bgUrl" :menu="menu" :bgColor="bgColor" :title="title" :analyseInfo="analyseInfo" :topBg="topBg" :page="page" :backType="backType"-->
|
||||
|
||||
@ -10,8 +10,8 @@
|
||||
|
||||
<div class="charts">
|
||||
<div class="chartsItem">
|
||||
<p class="title">合同执行情况</p>
|
||||
<revenue-analysis :data="revenueList"/>
|
||||
<p class="title">营收分析</p>
|
||||
<revenue-analysis :data="monthDetail"/>
|
||||
</div>
|
||||
<div class="chartsItem" style="margin-top: 32px">
|
||||
<p class="title">合同保底</p>
|
||||
@ -34,7 +34,7 @@
|
||||
<p class="sumMoney">{{revenue.data?revenue.data:'-'}}</p>
|
||||
</div>
|
||||
<div class="bottom">
|
||||
<image class="icon" src="https://eshangtech.com/ShopICO/ahyd-BID/commercial/addArrow.svg"></image>
|
||||
<image class="icon" :src="revenue.add>0?'https://eshangtech.com/ShopICO/ahyd-BID/commercial/addArrow.svg':revenue.add<0?'https://eshangtech.com/ShopICO/ahyd-BID/commercial/decline.svg':''"></image>
|
||||
<p class="add">{{revenue.add?revenue.add+'%':'-'}}</p>
|
||||
<p class="text">(相比去年同日)</p>
|
||||
</div>
|
||||
@ -246,7 +246,8 @@ export default {
|
||||
yearNoticeText:'',
|
||||
lastDay:'',
|
||||
month:'',
|
||||
haveFun:{}
|
||||
haveFun:{},
|
||||
monthDetail:{},// 月度汇总信息 头部的内容
|
||||
}
|
||||
},
|
||||
onLoad(option) {
|
||||
@ -283,7 +284,6 @@ export default {
|
||||
}
|
||||
//营收分析
|
||||
this.getRevenueList()
|
||||
|
||||
//客流客单交易
|
||||
// this.getOrderTransaction()
|
||||
//营收对比
|
||||
@ -299,6 +299,8 @@ export default {
|
||||
this.handleNoticeYear()
|
||||
// 服务区基本信息
|
||||
this.getServiceInfo()
|
||||
// 月度汇总信息
|
||||
this.getSummaryMonth()
|
||||
},
|
||||
onUnload() {
|
||||
this.$util.addUserBehavior()
|
||||
@ -439,6 +441,23 @@ export default {
|
||||
handleNoShowNoticeYear(){
|
||||
this.showNoticeYear = false
|
||||
},
|
||||
async getSummaryMonth(){
|
||||
console.log('this.time',this.time)
|
||||
const date = new Date(this.time)
|
||||
let y = date.getFullYear()
|
||||
let m = date.getMonth() + 1
|
||||
if (m<10){
|
||||
m = '0'+m
|
||||
}
|
||||
const req= {
|
||||
pushProvinceCode:'340000',
|
||||
StatisticsMonth:`${y}${m}`,
|
||||
}
|
||||
const data = await request.$webGet('CommercialApi/Revenue/GetSummaryRevenueMonth',req)
|
||||
console.log('data22222',data)
|
||||
this.monthDetail = data.Result_Data.MonthRevenueModel
|
||||
},
|
||||
|
||||
async getRevenueList(){
|
||||
let req = {
|
||||
statisticsDate:this.time,
|
||||
|
||||
211
pages/examine/commercialType.vue
Normal file
211
pages/examine/commercialType.vue
Normal file
@ -0,0 +1,211 @@
|
||||
<template>
|
||||
<div class="typeBigList">
|
||||
<view class="bigBox">
|
||||
<view :class="expand?'ItemBox second':'ItemBox first'">
|
||||
<view class="item" @click="handleChangeExpand">
|
||||
<view class="iconBox">
|
||||
<image class="icon" src="/static/images/user/expand.svg"/>
|
||||
</view>
|
||||
<text class="text">展开</text>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view :class="expand?'ItemBox first':'ItemBox second'" :style="{opacity: show?1:0}">
|
||||
<div class="item" @click="handleChangeExpand">
|
||||
<view class="iconBox">
|
||||
<image style="transform: rotate(-180deg)" class="icon" src="/static/images/user/expand.svg"/>
|
||||
</view>
|
||||
<text class="text">隐藏</text>
|
||||
</div>
|
||||
<div class="item" v-for="(item,index) in showTypeList" :key="index" @click="handleGo(item.url)">
|
||||
<image class="icon" :src="item.img"/>
|
||||
<text class="text">{{item.text}}</text>
|
||||
</div>
|
||||
</view>
|
||||
|
||||
</view>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
||||
export default {
|
||||
name: "commercialType",
|
||||
data(){
|
||||
return {
|
||||
typeList:[
|
||||
{img:'https://eshangtech.com/ShopICO/ahyd-BID/index/car.svg',url:'/pages/commercialBI/carPortrait',text:'车流'},
|
||||
{img:'https://eshangtech.com/ShopICO/ahyd-BID/index/guest.svg',url:'/pages/commercialBI/guestPortrait',text:'客群'},
|
||||
{img:'https://eshangtech.com/ShopICO/ahyd-BID/index/business_icon.svg',url:'/pages/commercialBI/managePortrait',text:'经营'},
|
||||
{img:'https://eshangtech.com/ShopICO/ahyd-BID/index/trade.svg',url:'/pages/commercialBI/businessPortrait',text:'交易'},
|
||||
{img:'https://eshangtech.com/ShopICO/ahyd-BID/index/brand.svg',url:'/pages/commercialBI/formatPortrait',text:'品牌'},
|
||||
{img:'https://eshangtech.com/ShopICO/ahyd-BID/newCommercialBI/newExamineIcon.svg',url:`/pages/examine/detail?type=${1}`,text:'考核'},
|
||||
{img:'https://eshangtech.com/ShopICO/ahyd-BID/newCommercialBI/inspectionIcon.svg',url:`/pages/examine/detail?type=${2}`,text:'巡检'},
|
||||
],
|
||||
showTypeList:[],
|
||||
selectIndex: 7,
|
||||
pageList : [],// 页面栈数组
|
||||
expand: false,// 是否展开
|
||||
show:false,
|
||||
}
|
||||
},
|
||||
props:{
|
||||
have:{
|
||||
type:Number,
|
||||
default:7
|
||||
},
|
||||
time:{
|
||||
type: String,
|
||||
default: ''
|
||||
}
|
||||
},
|
||||
watch:{
|
||||
have:{
|
||||
handler(value){
|
||||
this.selectIndex = value
|
||||
let list = []
|
||||
this.typeList.forEach((item,index)=>{
|
||||
if (index !== this.selectIndex){
|
||||
list.push(item)
|
||||
}
|
||||
})
|
||||
this.showTypeList = list
|
||||
setTimeout(()=>{
|
||||
this.show = true
|
||||
console.log('this.show',this.show)
|
||||
},2000)
|
||||
},
|
||||
deep:true,
|
||||
immediate:true
|
||||
}
|
||||
},
|
||||
onLoad(){
|
||||
|
||||
},
|
||||
onShow(){
|
||||
|
||||
},
|
||||
methods:{
|
||||
handleChangeExpand(){
|
||||
this.expand = !this.expand
|
||||
},
|
||||
handleGo(url){
|
||||
let pageList = getCurrentPages()
|
||||
if (pageList.length>=2){
|
||||
uni.redirectTo({
|
||||
url:url
|
||||
})
|
||||
} else{
|
||||
uni.navigateTo({
|
||||
url:url
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
.typeBigList{
|
||||
position: fixed;
|
||||
right: 0;
|
||||
top: 12%;
|
||||
.bigBox{
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
position: relative;
|
||||
.ItemBox,.ItemBox2{
|
||||
.item{
|
||||
width: 150rpx;
|
||||
height: 80rpx;
|
||||
border-radius: 20px 0 0 20px;
|
||||
box-sizing: border-box;
|
||||
padding: 14rpx;
|
||||
background: rgba(255,255,255,0.8);
|
||||
box-shadow: 0rpx 0rpx 40rpx 0rpx rgba(88,82,82,0.3);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
margin-bottom: 10px;
|
||||
border: 1px solid #ccc;
|
||||
.icon{
|
||||
width: 52.5rpx;
|
||||
height: 52.5rpx;
|
||||
border-radius: 50%;
|
||||
}
|
||||
.iconBox{
|
||||
width: 52.5rpx;
|
||||
height: 52.5rpx;
|
||||
border-radius: 50%;
|
||||
margin-right: 10rpx;
|
||||
background: #fff;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
.icon{
|
||||
width: 30rpx;
|
||||
height: 30rpx;
|
||||
}
|
||||
}
|
||||
.text{
|
||||
font-size: 24rpx;
|
||||
font-family: PingFangSC, PingFang SC;
|
||||
font-weight: 400;
|
||||
color: #786B6C;
|
||||
line-height: 36rpx;
|
||||
}
|
||||
}
|
||||
|
||||
.firstItem{
|
||||
animation:toLeft 2s;
|
||||
}
|
||||
.secondItem{
|
||||
animation:toRight 2s;
|
||||
}
|
||||
@keyframes toLeft {
|
||||
0%{
|
||||
transform: translateX(0px);
|
||||
}
|
||||
100%{
|
||||
transform: translateX(150rpx);
|
||||
}
|
||||
}
|
||||
@keyframes toRight {
|
||||
0%{
|
||||
transform: translateX(0px);
|
||||
}
|
||||
100%{
|
||||
transform: translateX(150rpx);
|
||||
}
|
||||
}
|
||||
}
|
||||
.first{
|
||||
position: absolute;
|
||||
top: 0;
|
||||
animation: second 1.5s;
|
||||
animation-fill-mode:forwards;
|
||||
}
|
||||
.second{
|
||||
position: absolute;
|
||||
top: 0;
|
||||
animation: first 1.5s;
|
||||
animation-fill-mode:forwards;
|
||||
}
|
||||
@keyframes first {
|
||||
0%{
|
||||
left: -150rpx;
|
||||
}
|
||||
100%{
|
||||
left: 0;
|
||||
}
|
||||
}
|
||||
@keyframes second {
|
||||
0%{
|
||||
left: 0;
|
||||
}
|
||||
100%{
|
||||
left: -150rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
1104
pages/examine/detail.vue
Normal file
1104
pages/examine/detail.vue
Normal file
File diff suppressed because it is too large
Load Diff
@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<view class="rateMain">
|
||||
<image v-if="preferPath" style="width: 144rpx;height: 144rpx" :src="preferPath"></image>
|
||||
<canvas style="width: 144rpx;height: 144rpx;position:fixed;left: 100%" canvas-id="rate" id="rate"/>
|
||||
<canvas v-if="name" style="width: 144rpx;height: 144rpx;position:fixed;left: 100%" :canvas-id="name" :id="name"/>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
@ -23,6 +23,10 @@ export default {
|
||||
colorList:{
|
||||
type: Array,
|
||||
default:[]
|
||||
},
|
||||
name:{
|
||||
type:String,
|
||||
default:''
|
||||
}
|
||||
},
|
||||
watch:{
|
||||
@ -36,8 +40,7 @@ export default {
|
||||
data:[{name:'驿站营收',value:0},{name:'未完成',value:0}]
|
||||
}]
|
||||
}
|
||||
console.log('res',res)
|
||||
this.drawCharts('rate',res)
|
||||
this.drawCharts(this.name,res)
|
||||
}else{
|
||||
let firstRate = Number(((value[0] / sum)*100).toFixed(2))
|
||||
let secondRate = 100 - Number(firstRate)
|
||||
@ -46,8 +49,7 @@ export default {
|
||||
data:[{name:'驿站营收',value:firstRate},{name:'未完成',value:secondRate}]
|
||||
}]
|
||||
}
|
||||
console.log('res',res)
|
||||
this.drawCharts('rate',res)
|
||||
this.drawCharts(this.name,res)
|
||||
}
|
||||
},
|
||||
}
|
||||
@ -95,7 +97,7 @@ export default {
|
||||
}
|
||||
});
|
||||
setTimeout( ()=>{
|
||||
this.canvasToTempImage('rate')
|
||||
this.canvasToTempImage(this.name)
|
||||
},500)
|
||||
},
|
||||
canvasToTempImage(id){
|
||||
|
||||
@ -3,6 +3,7 @@
|
||||
<view class="meng" v-if="showRealBox" @click="changeShowRealBox"></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="ydModal" @click.stop="handleShowYDModal"></view>
|
||||
<!-- 根据要显示的内容 切换高度 -->
|
||||
<view :class="1<=selectMonth && selectMonth<=3?'header':4<=selectMonth && selectMonth<=6?'header secondHeader':7<=selectMonth && selectMonth<=9?'header thirdHeader':8<=selectMonth && selectMonth<=12?'header forthHeader':'header'"
|
||||
>
|
||||
@ -102,19 +103,23 @@
|
||||
</view>
|
||||
</view>
|
||||
<view class="moneyRate">
|
||||
<view class="leftBox">
|
||||
<rateCharts :success="moneyRateList" :colorList="['#A66A37','#DCA858']"/>
|
||||
<view class="leftBox" @click="handleShowYDModal">
|
||||
<rateCharts :success="moneyRateList" :colorList="['#A66A37','#DCA858']" :name="`${selectMonth}rate`"/>
|
||||
<view class="haveNoticeBox" v-if="ydModal" @click.stop="handleShowYDModal">
|
||||
<text class="label">驿达入账:<text class="value">{{ydRate}}%</text></text>
|
||||
<text class="label">商家入账:<text class="value">{{shopRate}}%</text></text>
|
||||
</view>
|
||||
</view>
|
||||
<view class="rightBox">
|
||||
<view class="noticeItem">
|
||||
<view class="noticeTop"></view>
|
||||
<view class="noticeTop" :style="{background:1<=selectMonth && selectMonth<=3?'#DB573B':4<=selectMonth && selectMonth<=6?'#137BBD':7<=selectMonth && selectMonth<=9?'#3663CB':'#A66A37'}"></view>
|
||||
<view class="noticeText">驿达入账<span class="noticeSmallText">/万元</span></view>
|
||||
<view class="noticeMoney">-</view>
|
||||
<text class="noticeMoney">{{currentPeriodData.Royalty_Theory?$util.fmoney(currentPeriodData.Royalty_Theory / 10000,2):'-'}}</text>
|
||||
</view>
|
||||
<view class="noticeItem">
|
||||
<view class="noticeTop" style="background: #DCA858"></view>
|
||||
<view class="noticeTop" :style="{background:1<=selectMonth && selectMonth<=3?'#FFAB30':4<=selectMonth && selectMonth<=6?'#5DC1E0':7<=selectMonth && selectMonth<=9?'#7CADF8':'#DCA858'}"></view>
|
||||
<view class="noticeText">商家入账<span class="noticeSmallText">/万元</span></view>
|
||||
<view class="noticeMoney">-</view>
|
||||
<text class="noticeMoney">{{ currentPeriodData.SubRoyalty_Theory?$util.fmoney(currentPeriodData.SubRoyalty_Theory / 10000,2):'-' }}</text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
@ -362,7 +367,7 @@
|
||||
<image class="typeImg" src="https://eshangtech.com/ShopICO/ahyd-BID/newIndex/1stTypeImg.svg"/>
|
||||
</view>
|
||||
|
||||
<view class="report" >
|
||||
<view class="report" @click="handleGoServiceMessage">
|
||||
<text class="reportTitle">服务区信息</text>
|
||||
<image class="timeIcon" src="https://eshangtech.com/ShopICO/ahyd-BID/newIndex2/2stTypeImg.svg"/>
|
||||
<image class="typeImg" src="https://eshangtech.com/ShopICO/ahyd-BID/newIndex2/serviceCar.svg"/>
|
||||
@ -461,7 +466,7 @@
|
||||
</div>
|
||||
</view>
|
||||
<!-- 人流预警-->
|
||||
<view class="peopleWarning" >
|
||||
<view class="peopleWarning" v-if="false">
|
||||
<div class="carWarningTop">
|
||||
<div class="warningBox">
|
||||
<image class="warningIcon" src="https://eshangtech.com/ShopICO/ahyd-BID/newIndex/personIcon.svg"/>
|
||||
@ -920,7 +925,11 @@ export default {
|
||||
trafficCurrentObj:{},// 当前月
|
||||
showMonthDetail:false,//月度车流的显示框
|
||||
yesObjCompared:'',//昨日营收的比较值
|
||||
moneyRateList:[]
|
||||
moneyRateList:[],
|
||||
currentPeriodData:{},// 本期数据
|
||||
ydModal: false,// 显示驿达百分比的具体值
|
||||
ydRate:'',// 驿达百分比
|
||||
shopRate:'',// 商家百分比
|
||||
}
|
||||
},
|
||||
watch:{
|
||||
@ -1015,9 +1024,9 @@ export default {
|
||||
},
|
||||
onLoad(option){
|
||||
const _this = this
|
||||
setTimeout(()=>{
|
||||
_this.moneyRateList = [0,0]
|
||||
},3000)
|
||||
// setTimeout(()=>{
|
||||
// _this.moneyRateList = [0,0]
|
||||
// },3000)
|
||||
// 顶部显示的时间
|
||||
this.single = timestampToTimeMonth((new Date(this.lastDay).getTime()))
|
||||
// 获取手机参数对页面进行适配 主要是用于拿到胶囊的位置
|
||||
@ -1129,6 +1138,39 @@ export default {
|
||||
},
|
||||
methods:{
|
||||
...mapActions(['memberLogin','getLoginCode']),
|
||||
// 点击服务区信息跳转
|
||||
handleGoServiceMessage(){
|
||||
this.$util.toNextRoute('navigateTo', `/pages/map/detail?isPicker=${true}&come=index`)
|
||||
|
||||
// let _this = this
|
||||
// let currentService = uni.getStorageSync('currentService')
|
||||
// let nearService = uni.getStorageSync('nearService')
|
||||
// if (currentService){
|
||||
// }else if (nearService){
|
||||
// uni.setStorageSync('currentService',nearService)
|
||||
// }else{
|
||||
// wx.getPrivacySetting({
|
||||
// success: res=>{
|
||||
// if (res.needAuthorization){
|
||||
// this.$util.toNextRoute('redirectTo', '/pages/register/register')
|
||||
// }else{
|
||||
// wx.getFuzzyLocation({
|
||||
// type:'gcj02',
|
||||
// altitude:true,
|
||||
// success: (res) =>{
|
||||
// let seatInfo = {
|
||||
// latitude:res.latitude,
|
||||
// longitude:res.longitude
|
||||
// }
|
||||
// uni.setStorageSync('seatInfo', seatInfo);
|
||||
// this.seat = seatInfo
|
||||
// }
|
||||
// })
|
||||
// }
|
||||
// }
|
||||
// })
|
||||
// }
|
||||
},
|
||||
// 拿到国庆数据
|
||||
async handleGetNationalData(){
|
||||
let req = {
|
||||
@ -1245,14 +1287,30 @@ export default {
|
||||
}
|
||||
const data = await request.$webGet('CommercialApi/BaseInfo/GetServerpartList',req)
|
||||
console.log('datanearestService',data)
|
||||
// let res = {
|
||||
// SERVERPART_NAME:data.Result_Data.List[0].SERVERPART_NAME,//服务区
|
||||
// SPREGIONTYPE_NAME:data.Result_Data.List[0].SPREGIONTYPE_NAME,//片区
|
||||
// SPRegionType_ID:data.Result_Data.List[0].SPREGIONTYPE_ID,//片区id
|
||||
// Serverpart_ID:data.Result_Data.List[0].SERVERPART_ID,//服务区id
|
||||
// longitude:data.Result_Data.List[0].SERVERPART_X,
|
||||
// latitude:data.Result_Data.List[0].SERVERPART_Y,
|
||||
// }
|
||||
let nearService = uni.getStorageSync('nearService')
|
||||
if (!nearService){
|
||||
let res = {
|
||||
SERVERPART_NAME:data.Result_Data.List[0].SERVERPART_NAME,//服务区
|
||||
SPREGIONTYPE_NAME:data.Result_Data.List[0].SPREGIONTYPE_NAME,//片区
|
||||
SPRegionType_ID:data.Result_Data.List[0].SPREGIONTYPE_ID,//片区id
|
||||
Serverpart_ID:data.Result_Data.List[0].SERVERPART_ID,//服务区id
|
||||
longitude:data.Result_Data.List[0].SERVERPART_X,
|
||||
latitude:data.Result_Data.List[0].SERVERPART_Y,
|
||||
}
|
||||
uni.setStorageSync('nearService',res)
|
||||
}
|
||||
let currentService = uni.getStorageSync('currentService')
|
||||
if (!currentService){
|
||||
let res = {
|
||||
SERVERPART_NAME:data.Result_Data.List[0].SERVERPART_NAME,//服务区
|
||||
SPREGIONTYPE_NAME:data.Result_Data.List[0].SPREGIONTYPE_NAME,//片区
|
||||
SPRegionType_ID:data.Result_Data.List[0].SPREGIONTYPE_ID,//片区id
|
||||
Serverpart_ID:data.Result_Data.List[0].SERVERPART_ID,//服务区id
|
||||
longitude:data.Result_Data.List[0].SERVERPART_X,
|
||||
latitude:data.Result_Data.List[0].SERVERPART_Y,
|
||||
}
|
||||
uni.setStorageSync('currentService',res)
|
||||
}
|
||||
|
||||
|
||||
// let res = {
|
||||
@ -1595,6 +1653,9 @@ export default {
|
||||
this.handleGetAllCarTraffic()
|
||||
}
|
||||
},
|
||||
handleShowYDModal(){
|
||||
this.ydModal = !this.ydModal
|
||||
},
|
||||
getCarInfo(date){
|
||||
const data = {
|
||||
Statistics_Date:date?date:this.lastDay,
|
||||
@ -1714,6 +1775,16 @@ export default {
|
||||
flag3 = true
|
||||
let result = lastData.Result_Data
|
||||
let progressAll = 0
|
||||
this.currentPeriodData = result.MonthRevenueModel.CurAccountRoyalty
|
||||
this.moneyRateList = [this.currentPeriodData.Royalty_Theory,this.currentPeriodData.SubRoyalty_Theory]
|
||||
let sum = this.currentPeriodData.Royalty_Theory+this.currentPeriodData.SubRoyalty_Theory
|
||||
if(sum===0){
|
||||
this.ydRate = '-'
|
||||
this.shopRate = '-'
|
||||
}else{
|
||||
this.ydRate = ((this.currentPeriodData.Royalty_Theory / sum)*100).toFixed(2)
|
||||
this.shopRate = ((this.currentPeriodData.SubRoyalty_Theory / sum)*100).toFixed(2)
|
||||
}
|
||||
|
||||
result.BusinessTypeList.forEach(item=>{
|
||||
progressAll+=Number(item.value)
|
||||
@ -2003,7 +2074,6 @@ export default {
|
||||
}
|
||||
let index1= (this.showTableData.CashPay / 10000).toString().indexOf('.')
|
||||
this.showTableData.CashPayChange = (this.showTableData.CashPay / 10000).toString().substring(0,index1+3)
|
||||
|
||||
// for (let key in this.showTableData){
|
||||
// if (this.showTableData[key]){
|
||||
// // 在有值的前提下
|
||||
@ -2284,7 +2354,7 @@ $iphoneHeight: env(safe-area-inset-bottom);
|
||||
width: 100%;
|
||||
box-sizing: border-box;
|
||||
padding: 32rpx 16rpx;
|
||||
background: linear-gradient(135deg, #FFE3BA 0%, #FFF5E5 40%, #FFF1DB 78%, #FFDABC 100%); border-radius: 16rpx;
|
||||
//background: linear-gradient(135deg, #FFE3BA 0%, #FFF5E5 40%, #FFF1DB 78%, #FFDABC 100%); border-radius: 16rpx;
|
||||
margin-top: 32rpx;
|
||||
.progress{
|
||||
width: 100%;
|
||||
@ -2311,6 +2381,7 @@ $iphoneHeight: env(safe-area-inset-bottom);
|
||||
border-radius: 10rpx;
|
||||
box-shadow: 0rpx 0rpx 40rpx 0rpx rgba(244, 138, 143, 0.21);
|
||||
z-index:9;
|
||||
|
||||
}
|
||||
}
|
||||
.message{
|
||||
@ -2402,6 +2473,21 @@ $iphoneHeight: env(safe-area-inset-bottom);
|
||||
width: 144rpx;
|
||||
height: 144rpx;
|
||||
margin-right: 16rpx;
|
||||
position: relative;
|
||||
.haveNoticeBox{
|
||||
position: absolute;
|
||||
bottom: 0;left: 0;
|
||||
transform: translateY(80%);
|
||||
display: inline-block;
|
||||
padding: 5px 10px;
|
||||
background: #fff;
|
||||
border-radius: 10rpx;
|
||||
box-shadow: 0rpx 0rpx 40rpx 0rpx rgba(244, 138, 143, 0.21);
|
||||
z-index:9;
|
||||
.label{
|
||||
display: block;
|
||||
}
|
||||
}
|
||||
}
|
||||
.rightBox{
|
||||
flex: 1;
|
||||
@ -2434,7 +2520,7 @@ $iphoneHeight: env(safe-area-inset-bottom);
|
||||
}
|
||||
.noticeMoney{
|
||||
font-size: 36rpx;
|
||||
font-family: DINAlternate, DINAlternate;
|
||||
font-family: DINAlternate-Bold, DINAlternate;
|
||||
font-weight: bold;
|
||||
color: #160002;
|
||||
line-height: 44rpx;
|
||||
|
||||
211
pages/map/commercialType.vue
Normal file
211
pages/map/commercialType.vue
Normal file
@ -0,0 +1,211 @@
|
||||
<template>
|
||||
<div class="typeBigList">
|
||||
<view class="bigBox">
|
||||
<view :class="expand?'ItemBox second':'ItemBox first'">
|
||||
<view class="item" @click="handleChangeExpand">
|
||||
<view class="iconBox">
|
||||
<image class="icon" src="/static/images/user/expand.svg"/>
|
||||
</view>
|
||||
<text class="text">展开</text>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view :class="expand?'ItemBox first':'ItemBox second'" :style="{opacity: show?1:0}">
|
||||
<div class="item" @click="handleChangeExpand">
|
||||
<view class="iconBox">
|
||||
<image style="transform: rotate(-180deg)" class="icon" src="/static/images/user/expand.svg"/>
|
||||
</view>
|
||||
<text class="text">隐藏</text>
|
||||
</div>
|
||||
<div class="item" v-for="(item,index) in showTypeList" :key="index" @click="handleGo(item.url)">
|
||||
<image class="icon" :src="item.img"/>
|
||||
<text class="text">{{item.text}}</text>
|
||||
</div>
|
||||
</view>
|
||||
|
||||
</view>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
||||
export default {
|
||||
name: "commercialType",
|
||||
data(){
|
||||
return {
|
||||
typeList:[
|
||||
{img:'https://eshangtech.com/ShopICO/ahyd-BID/index/car.svg',url:'/pages/commercialBI/carPortrait',text:'车流'},
|
||||
{img:'https://eshangtech.com/ShopICO/ahyd-BID/index/guest.svg',url:'/pages/commercialBI/guestPortrait',text:'客群'},
|
||||
{img:'https://eshangtech.com/ShopICO/ahyd-BID/index/business_icon.svg',url:'/pages/commercialBI/managePortrait',text:'经营'},
|
||||
{img:'https://eshangtech.com/ShopICO/ahyd-BID/index/trade.svg',url:'/pages/commercialBI/businessPortrait',text:'交易'},
|
||||
{img:'https://eshangtech.com/ShopICO/ahyd-BID/index/brand.svg',url:'/pages/commercialBI/formatPortrait',text:'品牌'},
|
||||
{img:'https://eshangtech.com/ShopICO/ahyd-BID/newCommercialBI/newExamineIcon.svg',url:`/pages/examine/detail?type=${1}`,text:'考核'},
|
||||
{img:'https://eshangtech.com/ShopICO/ahyd-BID/newCommercialBI/inspectionIcon.svg',url:`/pages/examine/detail?type=${2}`,text:'巡检'},
|
||||
],
|
||||
showTypeList:[],
|
||||
selectIndex: 7,
|
||||
pageList : [],// 页面栈数组
|
||||
expand: false,// 是否展开
|
||||
show:false,
|
||||
}
|
||||
},
|
||||
props:{
|
||||
have:{
|
||||
type:Number,
|
||||
default:7
|
||||
},
|
||||
time:{
|
||||
type: String,
|
||||
default: ''
|
||||
}
|
||||
},
|
||||
watch:{
|
||||
have:{
|
||||
handler(value){
|
||||
this.selectIndex = value
|
||||
let list = []
|
||||
this.typeList.forEach((item,index)=>{
|
||||
if (index !== this.selectIndex){
|
||||
list.push(item)
|
||||
}
|
||||
})
|
||||
this.showTypeList = list
|
||||
setTimeout(()=>{
|
||||
this.show = true
|
||||
console.log('this.show',this.show)
|
||||
},2000)
|
||||
},
|
||||
deep:true,
|
||||
immediate:true
|
||||
}
|
||||
},
|
||||
onLoad(){
|
||||
|
||||
},
|
||||
onShow(){
|
||||
|
||||
},
|
||||
methods:{
|
||||
handleChangeExpand(){
|
||||
this.expand = !this.expand
|
||||
},
|
||||
handleGo(url){
|
||||
let pageList = getCurrentPages()
|
||||
if (pageList.length>=2){
|
||||
uni.redirectTo({
|
||||
url:url
|
||||
})
|
||||
} else{
|
||||
uni.navigateTo({
|
||||
url:url
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
.typeBigList{
|
||||
position: fixed;
|
||||
right: 0;
|
||||
top: 12%;
|
||||
.bigBox{
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
position: relative;
|
||||
.ItemBox,.ItemBox2{
|
||||
.item{
|
||||
width: 150rpx;
|
||||
height: 80rpx;
|
||||
border-radius: 20px 0 0 20px;
|
||||
box-sizing: border-box;
|
||||
padding: 14rpx;
|
||||
background: rgba(255,255,255,0.8);
|
||||
box-shadow: 0rpx 0rpx 40rpx 0rpx rgba(88,82,82,0.3);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
margin-bottom: 10px;
|
||||
border: 1px solid #ccc;
|
||||
.icon{
|
||||
width: 52.5rpx;
|
||||
height: 52.5rpx;
|
||||
border-radius: 50%;
|
||||
}
|
||||
.iconBox{
|
||||
width: 52.5rpx;
|
||||
height: 52.5rpx;
|
||||
border-radius: 50%;
|
||||
margin-right: 10rpx;
|
||||
background: #fff;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
.icon{
|
||||
width: 30rpx;
|
||||
height: 30rpx;
|
||||
}
|
||||
}
|
||||
.text{
|
||||
font-size: 24rpx;
|
||||
font-family: PingFangSC, PingFang SC;
|
||||
font-weight: 400;
|
||||
color: #786B6C;
|
||||
line-height: 36rpx;
|
||||
}
|
||||
}
|
||||
|
||||
.firstItem{
|
||||
animation:toLeft 2s;
|
||||
}
|
||||
.secondItem{
|
||||
animation:toRight 2s;
|
||||
}
|
||||
@keyframes toLeft {
|
||||
0%{
|
||||
transform: translateX(0px);
|
||||
}
|
||||
100%{
|
||||
transform: translateX(150rpx);
|
||||
}
|
||||
}
|
||||
@keyframes toRight {
|
||||
0%{
|
||||
transform: translateX(0px);
|
||||
}
|
||||
100%{
|
||||
transform: translateX(150rpx);
|
||||
}
|
||||
}
|
||||
}
|
||||
.first{
|
||||
position: absolute;
|
||||
top: 0;
|
||||
animation: second 1.5s;
|
||||
animation-fill-mode:forwards;
|
||||
}
|
||||
.second{
|
||||
position: absolute;
|
||||
top: 0;
|
||||
animation: first 1.5s;
|
||||
animation-fill-mode:forwards;
|
||||
}
|
||||
@keyframes first {
|
||||
0%{
|
||||
left: -150rpx;
|
||||
}
|
||||
100%{
|
||||
left: 0;
|
||||
}
|
||||
}
|
||||
@keyframes second {
|
||||
0%{
|
||||
left: 0;
|
||||
}
|
||||
100%{
|
||||
left: -150rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@ -1,5 +1,8 @@
|
||||
<template>
|
||||
<div class="main">
|
||||
<div style="position: fixed;right: 0;top: 20%;z-index:99999999999">
|
||||
<commercial-type :have="7"/>
|
||||
</div>
|
||||
<div class="leftArrow" :style="{top:(menu.top + ((menu.height - 24)/2) )+ 'px'}" >
|
||||
<image class="img" src="https://eshangtech.com/ShopICO/ahyd-BID/commercial/navigation-left.svg" @click="handleBack"></image>
|
||||
<div class="pickers" v-if="isShowPicker" @click="handleChangeService">
|
||||
@ -160,8 +163,10 @@
|
||||
|
||||
<script>
|
||||
import request from '@/util/index.js'
|
||||
import commercialType from "./commercialType.vue";
|
||||
export default {
|
||||
name: "detail",
|
||||
components: {commercialType},
|
||||
data(){
|
||||
return {
|
||||
info:{},
|
||||
@ -255,6 +260,10 @@ export default {
|
||||
uni.navigateBack({
|
||||
delta: 1
|
||||
})
|
||||
}else{
|
||||
uni.navigateTo({
|
||||
url:`/pages/map/index?time=${lastDay}&serviceInfo=${JSON.stringify(currentService)}`
|
||||
})
|
||||
}
|
||||
}else{
|
||||
uni.navigateTo({
|
||||
@ -289,10 +298,14 @@ export default {
|
||||
uni.switchTab({
|
||||
url: '/pages/index/index'
|
||||
})
|
||||
}else{
|
||||
}else if (this.come==='user'){
|
||||
uni.switchTab({
|
||||
url: '/pages/userCenter/userCenter'
|
||||
})
|
||||
}else{
|
||||
uni.navigateBack({
|
||||
delta: 1
|
||||
});
|
||||
}
|
||||
|
||||
},
|
||||
|
||||
@ -1363,9 +1363,12 @@ export default {
|
||||
// 滑动swiper的方法
|
||||
handleChangeSwiper(e){
|
||||
this.selectMonth = e.target.current
|
||||
console.log('this.selectMonth',this.selectMonth)
|
||||
this.thisMonth = this.monthList[this.selectMonth]
|
||||
this.single = `${this.thisYear}-${this.thisMonth<10?'0'+this.thisMonth:this.thisMonth}`
|
||||
console.log('this.single',this.single)
|
||||
// this.currentResult = this.monthResult[this.selectMonth]
|
||||
console.log('11111')
|
||||
this.handleGetPageData()
|
||||
},
|
||||
// 拿到数据的方法
|
||||
@ -1377,13 +1380,16 @@ export default {
|
||||
Month:this.thisMonth
|
||||
}
|
||||
const data = await request.$webGetTest('EShangApiMain/Budget/GetbudgetProjectReport',req)
|
||||
console.log('data',data)
|
||||
this.currentResult = data.Result_Data
|
||||
let sum = 0
|
||||
console.log('this.currentResult',this.currentResult)
|
||||
if (this.currentResult.outList && this.currentResult.outList.length>0){
|
||||
this.currentResult.outList.forEach(item=>{
|
||||
sum+=item.expenditureCostThisYearNumber
|
||||
})
|
||||
this.outAll = sum
|
||||
console.log('this.outAll',this.outAll)
|
||||
this.outFirst = (this.currentResult.outList[0].expenditureCostThisYearNumber/sum)*100
|
||||
this.outSecond = (this.currentResult.outList[1].expenditureCostThisYearNumber/sum)*100
|
||||
this.outThird = (this.currentResult.outList[2].expenditureCostThisYearNumber/sum)*100
|
||||
|
||||
@ -228,12 +228,12 @@
|
||||
|
||||
<view class="revenueBox otherData" style="margin-top: 24rpx">
|
||||
<view class="revenueBoxHeader">
|
||||
<view class="headerTitle">其他数据</view>
|
||||
<view class="headerTitle" >其他数据</view>
|
||||
<image class="revenueImg" src="https://eshangtech.com/ShopICO/ahyd-BID/revenueBox/expenditure.png"/>
|
||||
<view class="revenueContent">
|
||||
|
||||
|
||||
<view class="revenueAmount">
|
||||
<view class="revenueAmount" style="margin-top: 48rpx">
|
||||
<view class="amountItem">
|
||||
<view class="itemTop">
|
||||
<view class="itemTopLeft">
|
||||
@ -608,7 +608,7 @@ export default {
|
||||
|
||||
.ydRevenue{
|
||||
.revenueBoxHeader{
|
||||
background: linear-gradient(#FCF3E5 0%, #FDF6EC 22%,#FFFFFF 30%, #FFFFFF 100%);
|
||||
background: linear-gradient(#FCF3E5 0%, #FDF6EC 22%,#FFFFFF 40%, #FFFFFF 100%);
|
||||
.headerTitle{
|
||||
color: #EC6C00;
|
||||
}
|
||||
@ -616,7 +616,7 @@ export default {
|
||||
}
|
||||
.merchantRevenue{
|
||||
.revenueBoxHeader{
|
||||
background: linear-gradient(#E9F5F9 0%, #E9F5F9 22%,#FFFFFF 30%, #FFFFFF 100%);
|
||||
background: linear-gradient(#E9F5F9 0%, #E9F5F9 22%,#FFFFFF 40%, #FFFFFF 100%);
|
||||
.headerTitle{
|
||||
color: #018ABD;
|
||||
}
|
||||
@ -626,6 +626,9 @@ export default {
|
||||
.revenueBoxHeader{
|
||||
height: 530px;
|
||||
background: linear-gradient(#F1F7FF 0%, #FFFFFF 20% , #FFFFFF 100%);
|
||||
.headerTitle{
|
||||
color: #096EF7;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -236,7 +236,7 @@ import Tabbar from "../../components/tabbar/tabbar.vue";
|
||||
{
|
||||
id:'',
|
||||
name: '基础信息',
|
||||
homeUrl: '/pages/map/detail',
|
||||
homeUrl: '/pages/map/detail?come=user',
|
||||
imagePath: 'https://eshangtech.com/ShopICO/ahyd-BID/user/basicInformation.svg',
|
||||
isNotice:true,
|
||||
notice:0,
|
||||
|
||||
1
static/images/user/expand.svg
Normal file
1
static/images/user/expand.svg
Normal file
@ -0,0 +1 @@
|
||||
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1702525217291" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="16726" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M511.12 880c-12.28 0-24.57-4.69-33.94-14.06l-320-320c-18.74-18.75-18.74-49.14 0-67.88l320-320c18.75-18.74 49.14-18.74 67.88 0 18.74 18.75 18.74 49.14 0 67.88L259 512l286.06 286.06c18.74 18.75 18.74 49.14 0 67.88-9.37 9.37-21.65 14.06-33.94 14.06z" fill="#8a8a8a" p-id="16727"></path><path d="M831.12 880c-12.28 0-24.57-4.69-33.94-14.06l-320-320c-18.74-18.75-18.74-49.14 0-67.88l320-320c18.75-18.74 49.14-18.74 67.88 0 18.74 18.75 18.74 49.14 0 67.88L579 512l286.06 286.06c18.74 18.75 18.74 49.14 0 67.88-9.37 9.37-21.65 14.06-33.94 14.06z" fill="#8a8a8a" p-id="16728"></path></svg>
|
||||
|
After Width: | Height: | Size: 915 B |
Loading…
x
Reference in New Issue
Block a user