This commit is contained in:
cclu 2023-12-14 19:40:08 +08:00
parent 93251d869e
commit e96e4d3347
18 changed files with 2053 additions and 119 deletions

View File

@ -295,6 +295,12 @@
"navigationStyle": "custom", "navigationStyle": "custom",
"disableScroll": true "disableScroll": true
} }
},
{
"path": "detail",
"style": {
"navigationBarTitleText": ""
}
} }
] ]
}, },

View File

@ -43,7 +43,7 @@
<div class="detailBox"> <div class="detailBox">
<div class="detailTop"> <div class="detailTop">
<div class="topLeft">A类</div> <div class="topLeft">A类</div>
<div class="topRight"> <div class="topRight" @click="handleGoServiceMessage">
<span class="rightText">查看更多</span> <span class="rightText">查看更多</span>
<img class="moreIcon" src="https://eshangtech.com/ShopICO/ahyd-BID/commercial/rightArrow.svg"/> <img class="moreIcon" src="https://eshangtech.com/ShopICO/ahyd-BID/commercial/rightArrow.svg"/>
</div> </div>
@ -513,6 +513,10 @@ export default {
this.searchText='' this.searchText=''
}, },
methods:{ methods:{
//
handleGoServiceMessage(){
this.$util.toNextRoute('navigateTo', `/pages/map/detail`)
},
showScoreAnimation1(copyRightItems,id) { showScoreAnimation1(copyRightItems,id) {
/* /*
cxt_arc.arc(x, y, r, sAngle, eAngle, counterclockwise); cxt_arc.arc(x, y, r, sAngle, eAngle, counterclockwise);
@ -1211,6 +1215,7 @@ export default {
width:100%; width:100%;
background: #fff; background: #fff;
min-height: 100vh; min-height: 100vh;
overflow: hidden;
.header{ .header{
width: 100%; width: 100%;
height: 648rpx; height: 648rpx;
@ -1447,6 +1452,7 @@ export default {
.moreIcon{ .moreIcon{
width: 24rpx; width: 24rpx;
height: 24rpx; height: 24rpx;
margin-left: 4rpx;
} }
} }
} }

View File

@ -1,9 +1,29 @@
<template> <template>
<div class="typeBigList"> <div class="typeBigList">
<div class="item" v-for="(item,index) in showTypeList" :key="index" @click="handleGo(item.url)"> <view class="bigBox">
<image class="icon" :src="item.img"/> <view :class="expand?'ItemBox second':'ItemBox first'">
<text class="text">{{item.text}}</text> <view class="item" @click="handleChangeExpand">
</div> <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> </div>
</template> </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/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/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/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/newExamineIcon.svg',url:`/pages/examine/detail?type=${1}`,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/inspectionIcon.svg',url:`/pages/examine/detail?type=${2}`,text:'巡检'},
], ],
showTypeList:[], showTypeList:[],
selectIndex: 5, selectIndex: 7,
pageList : [],// pageList : [],//
expand: false,//
show:false,
} }
}, },
props:{ props:{
have:{ have:{
type:Number, type:Number,
default:5 default:7
}, },
time:{ time:{
type: String, type: String,
@ -48,7 +70,10 @@ export default {
} }
}) })
this.showTypeList = list this.showTypeList = list
setTimeout(()=>{
this.show = true
console.log('this.show',this.show)
},2000)
}, },
deep:true, deep:true,
immediate:true immediate:true
@ -61,17 +86,20 @@ export default {
}, },
methods:{ methods:{
handleChangeExpand(){
this.expand = !this.expand
},
handleGo(url){ handleGo(url){
let pageList = getCurrentPages() let pageList = getCurrentPages()
if (pageList.length>=2){ if (pageList.length>=2){
uni.redirectTo({ uni.redirectTo({
url:url url:url
}) })
} else{ } else{
uni.navigateTo({ uni.navigateTo({
url:url url:url
}) })
} }
} }
} }
} }
@ -82,29 +110,101 @@ export default {
position: fixed; position: fixed;
right: 0; right: 0;
top: 12%; top: 12%;
.item{ .bigBox{
width: 150rpx; width: 100%;
height: 80rpx; height: 100%;
border-radius: 20px 0 0 20px; position: relative;
box-sizing: border-box; .ItemBox,.ItemBox2{
padding: 14rpx; .item{
background: rgba(255,255,255,0.8); width: 150rpx;
display: flex; height: 80rpx;
align-items: center; border-radius: 20px 0 0 20px;
margin-bottom: 10px; box-sizing: border-box;
border: 1px solid #ccc; padding: 14rpx;
.icon{ background: rgba(255,255,255,0.8);
width: 52.5rpx; box-shadow: 0rpx 0rpx 40rpx 0rpx rgba(88,82,82,0.3);
height: 52.5rpx; display: flex;
border-radius: 50%; align-items: center;
margin-right: 10rpx; 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{ .first{
font-size: 24rpx; position: absolute;
font-family: PingFangSC, PingFang SC; top: 0;
font-weight: 400; animation: second 1.5s;
color: #786B6C; animation-fill-mode:forwards;
line-height: 36rpx; }
.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;
}
} }
} }
} }

View File

@ -11,7 +11,7 @@
<p class="price">{{ info.TicketCount?info.TicketCount:'-' }}</p> <p class="price">{{ info.TicketCount?info.TicketCount:'-' }}</p>
<view class="right" v-if="info.TicketCount"> <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> <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> </view>
</div> </div>
<p class="text">客单交易 <text class="unit">/</text></p> <p class="text">客单交易 <text class="unit">/</text></p>
@ -21,7 +21,7 @@
<p class="price">{{ info.AvgTicketPrice?info.AvgTicketPrice:'-' }}</p> <p class="price">{{ info.AvgTicketPrice?info.AvgTicketPrice:'-' }}</p>
<view class="right" v-if="info.AvgTicketPrice"> <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> <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> </view>
</div> </div>
<p class="text">客单均价 <text class="unit">/</text></p> <p class="text">客单均价 <text class="unit">/</text></p>
@ -110,6 +110,8 @@ export default {
genderList:[false,false,false], genderList:[false,false,false],
addAreaCarNumber:'',// addAreaCarNumber:'',//
oneCarPrice:'',// oneCarPrice:'',//
orderTransaction:'',
orderAveragePrice:''
} }
}, },
props: { props: {
@ -121,10 +123,12 @@ export default {
watch: { watch: {
data: { data: {
handler(value) { handler(value) {
console.log('value',value) console.log('value111',value)
this.info = value this.info = value
this.addAreaCarNumber = this.info.VehicleCount ? Math.abs((this.info.VehicleCount / this.info.MonthVehicleCount - 1)*100).toFixed(2):'' 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.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() this.$forceUpdate()
}, },
deep:true deep:true

View File

@ -28,7 +28,7 @@
<div class="detailBox" :style="{background: detailBoxBg}"> <div class="detailBox" :style="{background: detailBoxBg}">
<div class="detailTop"> <div class="detailTop">
<div class="topLeft" :style="{background:topLeftBg,color:topLeftColor}">A类</div> <div class="topLeft" :style="{background:topLeftBg,color:topLeftColor}">A类</div>
<div class="topRight"> <div class="topRight" @click="handleGoServiceMessage">
<span class="rightText">查看更多</span> <span class="rightText">查看更多</span>
<img class="moreIcon" src="https://eshangtech.com/ShopICO/ahyd-BID/commercial/rightArrow.svg"/> <img class="moreIcon" src="https://eshangtech.com/ShopICO/ahyd-BID/commercial/rightArrow.svg"/>
</div> </div>
@ -177,6 +177,10 @@ export default {
// this.getLabelDetail() // this.getLabelDetail()
// }, // },
methods:{ methods:{
//
handleGoServiceMessage(){
this.$util.toNextRoute('navigateTo', `/pages/map/detail`)
},
// //
async getLabelDetail(){ async getLabelDetail(){
let storeTime = uni.getStorageSync('lastDay') let storeTime = uni.getStorageSync('lastDay')
@ -377,6 +381,7 @@ export default {
.moreIcon{ .moreIcon{
width: 24rpx; width: 24rpx;
height: 24rpx; height: 24rpx;
margin-left: 4rpx;
} }
} }
} }

View File

@ -1,42 +1,86 @@
<template> <template>
<div class="revenueAnalysisMain"> <div class="revenueAnalysisMain">
<div class="revenueAnalysis"> <div class="revenueAnalysis">
<div class="item"> <div class="revenueTop">
<image class="icon" src="https://eshangtech.com/ShopICO/ahyd-BID/commercial/agreement.svg"></image> <div class="revenueTopLeft">
<div class="info" style="margin-bottom: 24px;"> <image class="revenueLogo" src="https://eshangtech.com/ShopICO/ahyd-BID/newCommercialBI/managerLogo.svg"/>
<p class="title">合同总金额<text class="unit">/万元</text></p> <div class="revenueTopMoney">
<p class="value">{{dataInfo.ContractProfitLoss}}</p> <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> </div>
<div class="item" style="margin-bottom: 24px;"> <div class="revenueDetailList">
<image class="icon" src="https://eshangtech.com/ShopICO/ahyd-BID/commercial/shopNumber.svg"></image> <div class="revenueDetailItem">
<div class="info"> <text class="itemValue">{{dataInfo.Different_Price_More}}</text>
<p class="title">店铺数量<text class="unit">/</text></p> <text class="itemLabel">长款金额<text class="itemUnit">/</text></text>
<p class="value">{{dataInfo.ShopCount}}</p> </div>
</div> <div class="revenueDetailItem">
</div> <text class="itemValue">{{dataInfo.Different_Price_Less}}</text>
<div class="item"> <text class="itemLabel">短款金额<text class="itemUnit">/</text></text>
<image class="icon" src="https://eshangtech.com/ShopICO/ahyd-BID/commercial/add.svg"></image> </div>
<div class="info"> <div class="revenueDetailItem">
<p class="title">欠款金额<text class="unit">/万元</text></p> <text class="itemValue">{{dataInfo.TotalOffAmount}}</text>
<p class="value">{{dataInfo.SalesPerSquareMeter}}</p> <text class="itemLabel">优惠金额<text class="itemUnit">/</text></text>
</div> </div>
</div> <div class="revenueDetailItem" style="margin-top: 32rpx">
<div class="item"> <text class="itemValue">{{dataInfo.TicketCount}}</text>
<image class="icon" src="https://eshangtech.com/ShopICO/ahyd-BID/commercial/overShop.svg"></image> <text class="itemLabel">客单数量<text class="itemUnit">/</text></text>
<div class="info"> </div>
<p class="title">半年到期合同<text class="unit">/</text></p> <div class="revenueDetailItem" style="margin-top: 32rpx">
<p class="value">{{dataInfo.ExpiredShopCount}}</p> <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> </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>
<div class="list" v-if="id"> <!-- <div class="list" v-if="id">-->
<!-- <p class="bigTitle" v-if="dataInfo.ContractList.length>0">即将到期合同列表: </p>--> <!--&lt;!&ndash; <p class="bigTitle" v-if="dataInfo.ContractList.length>0">即将到期合同列表: </p>&ndash;&gt;-->
<div class="item" v-for="(item,index) in dataInfo.ContractList" :key="index"> <!-- <div class="item" v-for="(item,index) in dataInfo.ContractList" :key="index">-->
<div class="title">{{item.name}}</div> <!-- <div class="title">{{item.name}}</div>-->
<div class="value">{{item.value}}到期</div> <!-- <div class="value">{{item.value}}到期</div>-->
</div> <!-- </div>-->
</div> <!-- </div>-->
</div> </div>
</template> </template>
@ -61,9 +105,16 @@ export default {
watch: { watch: {
data: { data: {
handler(value) { handler(value) {
this.dataInfo = value this.dataInfo = JSON.parse(JSON.stringify(value))
this.dataInfo.ContractProfitLoss = this.$util.fmoney(this.dataInfo.ContractProfitLoss) this.dataInfo.CashPay = this.$util.fmoney(this.dataInfo.CashPay,2)
this.dataInfo.SalesPerSquareMeter = this.$util.fmoney(this.dataInfo.SalesPerSquareMeter) 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) console.log('value',value)
} }
} }
@ -77,14 +128,117 @@ export default {
<style scoped lang="scss"> <style scoped lang="scss">
.revenueAnalysisMain{ .revenueAnalysisMain{
.revenueAnalysis{ .revenueAnalysis{
width: calc(100%); width: 100%;
background: #F7F7F7; background: #FAF9FC;
border-radius: 4px; border-radius: 16rpx;
padding: 12px; padding: 32rpx 24rpx;
box-sizing: border-box; box-sizing: border-box;
display: flex; display: flex;
flex-flow: wrap; flex-flow: wrap;
margin-top: 12px; 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{ .item{
width: 50%; width: 50%;
display: flex; display: flex;

View File

@ -1,6 +1,9 @@
<template> <template>
<div class="main"> <div class="main">
<div style="position: fixed;right: 0;top: 20%;z-index:99999999999"> <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"/>--> <!-- <commercial-type :have="4"/>-->
</div> </div>
<!-- <header-top :bgUrl="bgUrl" :menu="menu" :bgColor="bgColor" :title="title" :analyseInfo="analyseInfo" :topBg="topBg" :page="page" :backType="backType"--> <!-- <header-top :bgUrl="bgUrl" :menu="menu" :bgColor="bgColor" :title="title" :analyseInfo="analyseInfo" :topBg="topBg" :page="page" :backType="backType"-->

View File

@ -10,8 +10,8 @@
<div class="charts"> <div class="charts">
<div class="chartsItem"> <div class="chartsItem">
<p class="title">合同执行情况</p> <p class="title">营收分析</p>
<revenue-analysis :data="revenueList"/> <revenue-analysis :data="monthDetail"/>
</div> </div>
<div class="chartsItem" style="margin-top: 32px"> <div class="chartsItem" style="margin-top: 32px">
<p class="title">合同保底</p> <p class="title">合同保底</p>
@ -34,7 +34,7 @@
<p class="sumMoney">{{revenue.data?revenue.data:'-'}}</p> <p class="sumMoney">{{revenue.data?revenue.data:'-'}}</p>
</div> </div>
<div class="bottom"> <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="add">{{revenue.add?revenue.add+'%':'-'}}</p>
<p class="text">(相比去年同日)</p> <p class="text">(相比去年同日)</p>
</div> </div>
@ -246,7 +246,8 @@ export default {
yearNoticeText:'', yearNoticeText:'',
lastDay:'', lastDay:'',
month:'', month:'',
haveFun:{} haveFun:{},
monthDetail:{},//
} }
}, },
onLoad(option) { onLoad(option) {
@ -283,7 +284,6 @@ export default {
} }
// //
this.getRevenueList() this.getRevenueList()
// //
// this.getOrderTransaction() // this.getOrderTransaction()
// //
@ -299,6 +299,8 @@ export default {
this.handleNoticeYear() this.handleNoticeYear()
// //
this.getServiceInfo() this.getServiceInfo()
//
this.getSummaryMonth()
}, },
onUnload() { onUnload() {
this.$util.addUserBehavior() this.$util.addUserBehavior()
@ -439,6 +441,23 @@ export default {
handleNoShowNoticeYear(){ handleNoShowNoticeYear(){
this.showNoticeYear = false 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(){ async getRevenueList(){
let req = { let req = {
statisticsDate:this.time, statisticsDate:this.time,

View 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

File diff suppressed because it is too large Load Diff

View File

@ -1,7 +1,7 @@
<template> <template>
<view class="rateMain"> <view class="rateMain">
<image v-if="preferPath" style="width: 144rpx;height: 144rpx" :src="preferPath"></image> <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> </view>
</template> </template>
@ -23,6 +23,10 @@ export default {
colorList:{ colorList:{
type: Array, type: Array,
default:[] default:[]
},
name:{
type:String,
default:''
} }
}, },
watch:{ watch:{
@ -36,8 +40,7 @@ export default {
data:[{name:'驿站营收',value:0},{name:'未完成',value:0}] data:[{name:'驿站营收',value:0},{name:'未完成',value:0}]
}] }]
} }
console.log('res',res) this.drawCharts(this.name,res)
this.drawCharts('rate',res)
}else{ }else{
let firstRate = Number(((value[0] / sum)*100).toFixed(2)) let firstRate = Number(((value[0] / sum)*100).toFixed(2))
let secondRate = 100 - Number(firstRate) let secondRate = 100 - Number(firstRate)
@ -46,8 +49,7 @@ export default {
data:[{name:'驿站营收',value:firstRate},{name:'未完成',value:secondRate}] data:[{name:'驿站营收',value:firstRate},{name:'未完成',value:secondRate}]
}] }]
} }
console.log('res',res) this.drawCharts(this.name,res)
this.drawCharts('rate',res)
} }
}, },
} }
@ -95,7 +97,7 @@ export default {
} }
}); });
setTimeout( ()=>{ setTimeout( ()=>{
this.canvasToTempImage('rate') this.canvasToTempImage(this.name)
},500) },500)
}, },
canvasToTempImage(id){ canvasToTempImage(id){

View File

@ -3,6 +3,7 @@
<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="1<=selectMonth && selectMonth<=3?'header':4<=selectMonth && selectMonth<=6?'header secondHeader':7<=selectMonth && selectMonth<=9?'header thirdHeader':8<=selectMonth && selectMonth<=12?'header forthHeader':'header'" <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> </view>
<view class="moneyRate"> <view class="moneyRate">
<view class="leftBox"> <view class="leftBox" @click="handleShowYDModal">
<rateCharts :success="moneyRateList" :colorList="['#A66A37','#DCA858']"/> <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>
<view class="rightBox"> <view class="rightBox">
<view class="noticeItem"> <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="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>
<view class="noticeItem"> <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="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> </view>
</view> </view>
@ -362,7 +367,7 @@
<image class="typeImg" src="https://eshangtech.com/ShopICO/ahyd-BID/newIndex/1stTypeImg.svg"/> <image class="typeImg" src="https://eshangtech.com/ShopICO/ahyd-BID/newIndex/1stTypeImg.svg"/>
</view> </view>
<view class="report" > <view class="report" @click="handleGoServiceMessage">
<text class="reportTitle">服务区信息</text> <text class="reportTitle">服务区信息</text>
<image class="timeIcon" src="https://eshangtech.com/ShopICO/ahyd-BID/newIndex2/2stTypeImg.svg"/> <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"/> <image class="typeImg" src="https://eshangtech.com/ShopICO/ahyd-BID/newIndex2/serviceCar.svg"/>
@ -461,7 +466,7 @@
</div> </div>
</view> </view>
<!-- 人流预警--> <!-- 人流预警-->
<view class="peopleWarning" > <view class="peopleWarning" v-if="false">
<div class="carWarningTop"> <div class="carWarningTop">
<div class="warningBox"> <div class="warningBox">
<image class="warningIcon" src="https://eshangtech.com/ShopICO/ahyd-BID/newIndex/personIcon.svg"/> <image class="warningIcon" src="https://eshangtech.com/ShopICO/ahyd-BID/newIndex/personIcon.svg"/>
@ -920,7 +925,11 @@ export default {
trafficCurrentObj:{},// trafficCurrentObj:{},//
showMonthDetail:false,// showMonthDetail:false,//
yesObjCompared:'',// yesObjCompared:'',//
moneyRateList:[] moneyRateList:[],
currentPeriodData:{},//
ydModal: false,// 驿
ydRate:'',// 驿
shopRate:'',//
} }
}, },
watch:{ watch:{
@ -1015,9 +1024,9 @@ export default {
}, },
onLoad(option){ onLoad(option){
const _this = this const _this = this
setTimeout(()=>{ // setTimeout(()=>{
_this.moneyRateList = [0,0] // _this.moneyRateList = [0,0]
},3000) // },3000)
// //
this.single = timestampToTimeMonth((new Date(this.lastDay).getTime())) this.single = timestampToTimeMonth((new Date(this.lastDay).getTime()))
// //
@ -1129,6 +1138,39 @@ export default {
}, },
methods:{ methods:{
...mapActions(['memberLogin','getLoginCode']), ...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(){ async handleGetNationalData(){
let req = { let req = {
@ -1245,14 +1287,30 @@ export default {
} }
const data = await request.$webGet('CommercialApi/BaseInfo/GetServerpartList',req) const data = await request.$webGet('CommercialApi/BaseInfo/GetServerpartList',req)
console.log('datanearestService',data) console.log('datanearestService',data)
// let res = { let nearService = uni.getStorageSync('nearService')
// SERVERPART_NAME:data.Result_Data.List[0].SERVERPART_NAME,// if (!nearService){
// SPREGIONTYPE_NAME:data.Result_Data.List[0].SPREGIONTYPE_NAME,// let res = {
// SPRegionType_ID:data.Result_Data.List[0].SPREGIONTYPE_ID,//id SERVERPART_NAME:data.Result_Data.List[0].SERVERPART_NAME,//
// Serverpart_ID:data.Result_Data.List[0].SERVERPART_ID,//id SPREGIONTYPE_NAME:data.Result_Data.List[0].SPREGIONTYPE_NAME,//
// longitude:data.Result_Data.List[0].SERVERPART_X, SPRegionType_ID:data.Result_Data.List[0].SPREGIONTYPE_ID,//id
// latitude:data.Result_Data.List[0].SERVERPART_Y, 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 = { // let res = {
@ -1595,6 +1653,9 @@ export default {
this.handleGetAllCarTraffic() this.handleGetAllCarTraffic()
} }
}, },
handleShowYDModal(){
this.ydModal = !this.ydModal
},
getCarInfo(date){ getCarInfo(date){
const data = { const data = {
Statistics_Date:date?date:this.lastDay, Statistics_Date:date?date:this.lastDay,
@ -1714,6 +1775,16 @@ export default {
flag3 = true flag3 = true
let result = lastData.Result_Data let result = lastData.Result_Data
let progressAll = 0 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=>{ result.BusinessTypeList.forEach(item=>{
progressAll+=Number(item.value) progressAll+=Number(item.value)
@ -2003,7 +2074,6 @@ export default {
} }
let index1= (this.showTableData.CashPay / 10000).toString().indexOf('.') let index1= (this.showTableData.CashPay / 10000).toString().indexOf('.')
this.showTableData.CashPayChange = (this.showTableData.CashPay / 10000).toString().substring(0,index1+3) this.showTableData.CashPayChange = (this.showTableData.CashPay / 10000).toString().substring(0,index1+3)
// for (let key in this.showTableData){ // for (let key in this.showTableData){
// if (this.showTableData[key]){ // if (this.showTableData[key]){
// // // //
@ -2284,7 +2354,7 @@ $iphoneHeight: env(safe-area-inset-bottom);
width: 100%; width: 100%;
box-sizing: border-box; box-sizing: border-box;
padding: 32rpx 16rpx; 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; margin-top: 32rpx;
.progress{ .progress{
width: 100%; width: 100%;
@ -2311,6 +2381,7 @@ $iphoneHeight: env(safe-area-inset-bottom);
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:9; z-index:9;
} }
} }
.message{ .message{
@ -2402,6 +2473,21 @@ $iphoneHeight: env(safe-area-inset-bottom);
width: 144rpx; width: 144rpx;
height: 144rpx; height: 144rpx;
margin-right: 16rpx; 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{ .rightBox{
flex: 1; flex: 1;
@ -2434,7 +2520,7 @@ $iphoneHeight: env(safe-area-inset-bottom);
} }
.noticeMoney{ .noticeMoney{
font-size: 36rpx; font-size: 36rpx;
font-family: DINAlternate, DINAlternate; font-family: DINAlternate-Bold, DINAlternate;
font-weight: bold; font-weight: bold;
color: #160002; color: #160002;
line-height: 44rpx; line-height: 44rpx;

View 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>

View File

@ -1,5 +1,8 @@
<template> <template>
<div class="main"> <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'}" > <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> <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"> <div class="pickers" v-if="isShowPicker" @click="handleChangeService">
@ -160,8 +163,10 @@
<script> <script>
import request from '@/util/index.js' import request from '@/util/index.js'
import commercialType from "./commercialType.vue";
export default { export default {
name: "detail", name: "detail",
components: {commercialType},
data(){ data(){
return { return {
info:{}, info:{},
@ -255,6 +260,10 @@ export default {
uni.navigateBack({ uni.navigateBack({
delta: 1 delta: 1
}) })
}else{
uni.navigateTo({
url:`/pages/map/index?time=${lastDay}&serviceInfo=${JSON.stringify(currentService)}`
})
} }
}else{ }else{
uni.navigateTo({ uni.navigateTo({
@ -289,10 +298,14 @@ export default {
uni.switchTab({ uni.switchTab({
url: '/pages/index/index' url: '/pages/index/index'
}) })
}else{ }else if (this.come==='user'){
uni.switchTab({ uni.switchTab({
url: '/pages/userCenter/userCenter' url: '/pages/userCenter/userCenter'
}) })
}else{
uni.navigateBack({
delta: 1
});
} }
}, },

View File

@ -1363,9 +1363,12 @@ export default {
// swiper // swiper
handleChangeSwiper(e){ handleChangeSwiper(e){
this.selectMonth = e.target.current this.selectMonth = e.target.current
console.log('this.selectMonth',this.selectMonth)
this.thisMonth = this.monthList[this.selectMonth] this.thisMonth = this.monthList[this.selectMonth]
this.single = `${this.thisYear}-${this.thisMonth<10?'0'+this.thisMonth:this.thisMonth}` this.single = `${this.thisYear}-${this.thisMonth<10?'0'+this.thisMonth:this.thisMonth}`
console.log('this.single',this.single)
// this.currentResult = this.monthResult[this.selectMonth] // this.currentResult = this.monthResult[this.selectMonth]
console.log('11111')
this.handleGetPageData() this.handleGetPageData()
}, },
// //
@ -1377,13 +1380,16 @@ export default {
Month:this.thisMonth Month:this.thisMonth
} }
const data = await request.$webGetTest('EShangApiMain/Budget/GetbudgetProjectReport',req) const data = await request.$webGetTest('EShangApiMain/Budget/GetbudgetProjectReport',req)
console.log('data',data)
this.currentResult = data.Result_Data this.currentResult = data.Result_Data
let sum = 0 let sum = 0
console.log('this.currentResult',this.currentResult)
if (this.currentResult.outList && this.currentResult.outList.length>0){ if (this.currentResult.outList && this.currentResult.outList.length>0){
this.currentResult.outList.forEach(item=>{ this.currentResult.outList.forEach(item=>{
sum+=item.expenditureCostThisYearNumber sum+=item.expenditureCostThisYearNumber
}) })
this.outAll = sum this.outAll = sum
console.log('this.outAll',this.outAll)
this.outFirst = (this.currentResult.outList[0].expenditureCostThisYearNumber/sum)*100 this.outFirst = (this.currentResult.outList[0].expenditureCostThisYearNumber/sum)*100
this.outSecond = (this.currentResult.outList[1].expenditureCostThisYearNumber/sum)*100 this.outSecond = (this.currentResult.outList[1].expenditureCostThisYearNumber/sum)*100
this.outThird = (this.currentResult.outList[2].expenditureCostThisYearNumber/sum)*100 this.outThird = (this.currentResult.outList[2].expenditureCostThisYearNumber/sum)*100

View File

@ -228,12 +228,12 @@
<view class="revenueBox otherData" style="margin-top: 24rpx"> <view class="revenueBox otherData" style="margin-top: 24rpx">
<view class="revenueBoxHeader"> <view class="revenueBoxHeader">
<view class="headerTitle">其他数据</view> <view class="headerTitle" >其他数据</view>
<image class="revenueImg" src="https://eshangtech.com/ShopICO/ahyd-BID/revenueBox/expenditure.png"/> <image class="revenueImg" src="https://eshangtech.com/ShopICO/ahyd-BID/revenueBox/expenditure.png"/>
<view class="revenueContent"> <view class="revenueContent">
<view class="revenueAmount"> <view class="revenueAmount" style="margin-top: 48rpx">
<view class="amountItem"> <view class="amountItem">
<view class="itemTop"> <view class="itemTop">
<view class="itemTopLeft"> <view class="itemTopLeft">
@ -608,7 +608,7 @@ export default {
.ydRevenue{ .ydRevenue{
.revenueBoxHeader{ .revenueBoxHeader{
background: linear-gradient(#FCF3E5 0%, #FDF6EC 22%,#FFFFFF 30%, #FFFFFF 100%); background: linear-gradient(#FCF3E5 0%, #FDF6EC 22%,#FFFFFF 40%, #FFFFFF 100%);
.headerTitle{ .headerTitle{
color: #EC6C00; color: #EC6C00;
} }
@ -616,7 +616,7 @@ export default {
} }
.merchantRevenue{ .merchantRevenue{
.revenueBoxHeader{ .revenueBoxHeader{
background: linear-gradient(#E9F5F9 0%, #E9F5F9 22%,#FFFFFF 30%, #FFFFFF 100%); background: linear-gradient(#E9F5F9 0%, #E9F5F9 22%,#FFFFFF 40%, #FFFFFF 100%);
.headerTitle{ .headerTitle{
color: #018ABD; color: #018ABD;
} }
@ -626,6 +626,9 @@ export default {
.revenueBoxHeader{ .revenueBoxHeader{
height: 530px; height: 530px;
background: linear-gradient(#F1F7FF 0%, #FFFFFF 20% , #FFFFFF 100%); background: linear-gradient(#F1F7FF 0%, #FFFFFF 20% , #FFFFFF 100%);
.headerTitle{
color: #096EF7;
}
} }
} }
} }

View File

@ -236,7 +236,7 @@ import Tabbar from "../../components/tabbar/tabbar.vue";
{ {
id:'', id:'',
name: '基础信息', name: '基础信息',
homeUrl: '/pages/map/detail', homeUrl: '/pages/map/detail?come=user',
imagePath: 'https://eshangtech.com/ShopICO/ahyd-BID/user/basicInformation.svg', imagePath: 'https://eshangtech.com/ShopICO/ahyd-BID/user/basicInformation.svg',
isNotice:true, isNotice:true,
notice:0, notice:0,

View 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