ahyd_DIB/pages/index/index.vue
ylj20011123 06c85a31bc update
2026-02-09 19:34:32 +08:00

11457 lines
472 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<view class="main">
<!-- <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="advertisement" v-if="showAdvertisement">
<view :class="isShowCloseAnimal
? 'advertisementNormalContent advertisementContent'
: 'advertisementNormalContent'
">
<!-- <span class="text">2024年五一假期预测</span>-->
<img class="topImg" src="https://eshangtech.com/ShopICO/ahyd-BID/newIndex3/advertisementTitle.png" />
<div style="
display: inline-block;
width: 200px;
height: 400px;
overflow: hidden;
">
<image @click="handlePreview" class="adverImg"
src="https://eshangtech.com/ShopICO/ahyd-BID/newIndex3/advertisement.jpg" />
</div>
</view>
<view class="closeBox">
<image @click="handleClose" class="closeIcon"
src="https://eshangtech.com/ShopICO/ahyd-BID/newIndex3/closeIcon.svg" />
</view>
</view>
<view class="showMoreFixedBox" v-if="showMoreFixed" @click="handleShowMore">
<view class="fixedBox" :style="{ top: `${menu.bottom + 10}px` }">
<view class="otherDetailBottom">
<view class="bottomItem" style="margin-bottom: 40rpx">
<view class="bottomSmallItem">
<view class="itemLeft">
<view class="itemMonth">{{
`${selectMonth < 10 ? "0" + selectMonth : selectMonth}月` }}</view>
<view class="itemTitle">入区车流
<span class="unit">/百万辆</span>
</view>
</view>
<view class="itemRight">
<text class="itemValue">{{
trafficCurrentObj.Vehicle_AddUpCount
? trafficCurrentObj.AddUpCount
: ""
}}</text>
</view>
</view>
<view class="itemData">
<text class="itemValue">{{
trafficYOYObj.Vehicle_GrowthRate
? trafficYOYObj.Vehicle_GrowthRate > 0
? "+" + trafficYOYObj.Vehicle_GrowthRate + "%"
: trafficYOYObj.Vehicle_GrowthRate + "%"
: "-"
}}</text>
<text class="itemText">同比</text>
</view>
<view class="itemData">
<text class="itemValue" style="color: #0e9976">{{
trafficQOQObj.Vehicle_GrowthRate
? trafficQOQObj.Vehicle_GrowthRate > 0
? "+" + trafficQOQObj.Vehicle_GrowthRate + "%"
: trafficQOQObj.Vehicle_GrowthRate + "%"
: "-"
}}</text>
<text class="itemText">环比</text>
</view>
</view>
<view class="bottomItem" style="margin-bottom: 40rpx">
<view class="bottomSmallItem">
<view class="itemLeft">
<view class="itemMonth">{{
`${selectMonth < 10 ? "0" + selectMonth : selectMonth}月` }}</view>
<view class="itemTitle">入区率 <span class="unit">/%</span></view>
</view>
<view class="itemRight">
<text class="itemValue">{{
trafficCurrentObj.Entry_Rate
? trafficCurrentObj.Entry_Rate
: ""
}}</text>
</view>
</view>
<view class="itemData">
<text class="itemValue">{{
trafficYOYObj.Entry_GrowthRate
? trafficYOYObj.Entry_GrowthRate > 0
? "+" + trafficYOYObj.Entry_GrowthRate + "%"
: trafficYOYObj.Entry_GrowthRate + "%"
: "-"
}}</text>
<text class="itemText">同比</text>
</view>
<view class="itemData">
<text class="itemValue" style="color: #0e9976">{{
trafficQOQObj.Entry_GrowthRate
? trafficQOQObj.Entry_GrowthRate > 0
? "+" + trafficQOQObj.Entry_GrowthRate + "%"
: trafficQOQObj.Entry_GrowthRate + "%"
: "-"
}}</text>
<text class="itemText">环比</text>
</view>
</view>
<view class="bottomItem">
<view class="bottomSmallItem">
<view class="itemLeft">
<view class="itemMonth">{{
`${selectMonth < 10 ? "0" + selectMonth : selectMonth}月` }}</view>
<view class="itemTitle">停留时长 <span class="unit">/分钟</span></view>
</view>
<view class="itemRight">
<text class="itemValue">{{
trafficCurrentObj.Stay_Times
? trafficCurrentObj.Stay_Times
: ""
}}</text>
</view>
</view>
<view class="itemData">
<text class="itemValue">{{
trafficYOYObj.StayTimes_GrowthRate
? trafficYOYObj.StayTimes_GrowthRate > 0
? "+" + trafficYOYObj.StayTimes_GrowthRate + "%"
: trafficYOYObj.StayTimes_GrowthRate + "%"
: "-"
}}</text>
<text class="itemText">同比</text>
</view>
<view class="itemData">
<text class="itemValue" style="color: #0e9976">{{
trafficQOQObj.StayTimes_GrowthRate
? trafficQOQObj.StayTimes_GrowthRate > 0
? "+" + trafficQOQObj.StayTimes_GrowthRate + "%"
: trafficQOQObj.StayTimes_GrowthRate + "%"
: "-"
}}</text>
<text class="itemText">环比</text>
</view>
</view>
</view>
</view>
</view>
<!-- 根据要显示的内容 切换高度 -->
<view class="header">
<!-- :style="{height:loadMore?`calc(${(776/750)*phoneWidth + 260}px)`:`calc(${(776/750)*phoneWidth - 10}px)`}"-->
<!-- 时间选择 -->
<div class="headerTop" v-if="!guideInfo.visible" :style="{ height: menu.bottom + 5 + 'px' }">
<!-- <view class="selectTime" :style="{ top: menu.top + (menu.height - 22) / 2 + 'px' }">-->
<!-- <image class="dateIcon" :src="1<=selectMonth && selectMonth<=3?'https://eshangtech.com/ShopICO/ahyd-BID/newIndex/1stDateTime.svg':4<=selectMonth && selectMonth<=6?'https://eshangtech.com/ShopICO/ahyd-BID/newIndex/2stDateTime.svg':7<=selectMonth && selectMonth<=9?'https://eshangtech.com/ShopICO/ahyd-BID/newIndex/3stDateTime.svg':'https://eshangtech.com/ShopICO/ahyd-BID/newIndex/4stDateTime.svg'"></image>-->
<!--&lt;!&ndash; <picker mode="date" :value="single" @change="bindDateChange" >&ndash;&gt;-->
<!-- <picker mode="date" fields="month" :value="single" :start="startDate" :end="endData" @change="bindDateChange" >-->
<!-- <view class="time">-->
<!--&lt;!&ndash; <text class="day" >{{ thisDay }}</text>&ndash;&gt;-->
<!-- <view class="uni-input" :style="{color: 1<=selectMonth && selectMonth<=3?'#B33115':4<=selectMonth && selectMonth<=6?'#025B93':7<=selectMonth && selectMonth<=9?'#2249A2':10<=selectMonth && selectMonth<=12?'#783F0F':''}" style="background: transparent;padding: 0;height:100%">{{ single }}</view>-->
<!-- <image class="icon" :src="1<=selectMonth && selectMonth<=3?'https://eshangtech.com/ShopICO/ahyd-BID/newIndex/1stDownArrow.svg':4<=selectMonth && selectMonth<=6?'https://eshangtech.com/ShopICO/ahyd-BID/newIndex/2stDownArrow.svg':7<=selectMonth && selectMonth<=9?'https://eshangtech.com/ShopICO/ahyd-BID/newIndex/3stDownArrow.svg':'https://eshangtech.com/ShopICO/ahyd-BID/newIndex/4stDownArrow.svg'"></image>-->
<!-- </view>-->
<!-- </picker>-->
<!-- </view>-->
<view class="selectTime" :style="{
top: menu.top + (menu.height - 32) / 2 + 'px',
height: menu.height + 'px',
marginLeft: '10rpx',
}">
<!-- <UniDataSelect :localdata="localdata" :value="selectVersion" :clear="false"
@change="handleChangeVersion">
<template v-slot:content> -->
<!-- @click="goOldIndexPage"-->
<view class="searchIconBox">
<image class="dateIcon" src="https://eshangtech.com/ShopICO/ahyd-BID/newIndex3/pageLogo.png" />
<!-- <text class="searchIconText">数智驿达</text>-->
</view>
<!-- </template> -->
<!-- </UniDataSelect> -->
<view class="seachBox" :style="{ height: menu.height + 'px' }" @click="handleGoMap">
<image class="searchIcon"
src="https://eshangtech.com/ShopICO/ahyd-BID/newIndex3/searchIconService.svg" />
<text class="searchText">请输入想看的服务区</text>
</view>
</view>
</div>
<div :style="{ height: menu.bottom + 5 + 'px', width: '100%' }"></div>
<!-- ,height:loadMore?'200px':'38px'-->
<div class="storeDetail" :style="{ top: menu.bottom + 13 + 'px', left: 0 + 'px' }">
<swiper class="detailBox" previous-margin="40rpx" next-margin="20rpx" :style="{
height:
selectVersion === 3
? loadMore
? smallTab === 1
? '1430px'
: smallTab === 2
? '1070px'
: smallTab === 3
? '1090px'
: smallTab === 4
? '920px'
: ''
: '520px'
: loadMore
? `1400rpx`
: `720rpx`,
}" @change="handleChangeSelect" :current="selectDetail">
<block>
<block v-for="(item, index) in swiperList" :key="index">
<swiper-item :item-id="index" :data-item-id="index" :class="selectMonth === index + 1 ||
selectMonth ===
((index + 1) % 12 === 0 ? 12 : (index + 1) % 12)
? 'detailItemBox'
: 'noSelectItemBox'
">
<view class="bigBox" v-if="
selectMonth === index + 1 ||
selectMonth ===
((index + 1) % 12 === 0 ? 12 : (index + 1) % 12)
">
<view class="box" v-if="selectVersion !== 3">
<view class="top" style="height: 640rpx">
<view class="topTop">
<view class="statistics" @click="goToRevenueStatic">
<image class="staticImg"
src="https://eshangtech.com/ShopICO/ahyd-BID/newIndex/3stStaticIcon.svg" />
<text class="staticTitle">{{
`${selectMonth || "-"}月对客销售`
}}</text>
<span class="staticUnit">/万元</span>
<view class="moreIcon" @click.stop="changeShowRealBox">
<image class="noticeIcon"
src="https://eshangtech.com/ShopICO/ahyd-BID/newIndex3/noticeIcon.svg" />
</view>
</view>
<view class="haveMore" @click="goToRevenueStatic">
<text class="haveMoreText">查看更多</text>
<image class="haveMoreICon"
src="https://eshangtech.com/ShopICO/ahyd-BID/newIndex3/haveMoreICon.svg" />
</view>
</view>
<view class="revenueBox" v-show="selectMonth === index + 1 ||
selectMonth ===
((index + 1) % 12 === 0 ? 12 : (index + 1) % 12)
">
<view class="revenueTop">
<view class="revenueTopLeft">
<text class="revenueNumber">{{
showTableData.CashPayChange
? showTableData.CashPayChange
: "0.00"
}}</text>
<!-- <view class="moreIcon" @click="changeShowRealBox">?-->
<!-- <view v-if="showRealBox" class="realBox" @click.stop="changeShowRealBox">-->
<!-- <view><text class="label">对客营收:</text>{{showTableData.CashPay?$util.fmoney($util.getMoney(showTableData.CashPay),2):'-'}}</view>-->
<!-- <view><text class="label">自营收入:</text>{{typeList && typeList.length>0?$util.fmoney($util.getMoney(typeList[0].value),2) : '-'}}</view>-->
<!-- <view><text class="label">外租收入:</text>{{typeList && typeList.length>0?$util.fmoney($util.getMoney(typeList[1].value),2) : '-'}}</view>-->
<!-- </view>-->
<!-- </view>-->
</view>
<view class="revenueTopRight" v-if="showTableData.add">
<!--https://eshangtech.com/ShopICO/ahyd-BID/examine/reduce.svg-->
<!-- <image class="addReduce" :src="Number(showTableData.add)>0?'https://eshangtech.com/ShopICO/ahyd-BID/examine/add.svg':Number(showTableData.add)<0?'https://eshangtech.com/ShopICO/ahyd-BID/examine/reduce.svg':''"/>-->
<text class="addValue" :style="{
color:
showTableData.add > 0
? '#E83944'
: showTableData.add < 0
? '#0E9976'
: '',
}">{{
showTableData.add ? showTableData.add : "-"
}}%</text>
<text class="rightNav">同比</text>
</view>
</view>
<view class="revenueNav">
<!-- <text class="leftNav">{{selectMonth}}月对客营收<text class="unit">/万元</text></text>-->
<!-- <text class="leftNav">对客营收</text>-->
<!-- <text class="rightNav">同比</text>-->
</view>
<view class="newBox">
<!-- <view class="progress" @click="handleShowHaveNoticeBox" :style="{background:1<=selectMonth && selectMonth<=3?'#FFAB30':4<=selectMonth && selectMonth<=6?'#5DC1E0':7<=selectMonth && selectMonth<=9?'#7CADF8':'#DCA858'}">-->
<!-- <view class="have" :style="{width:progressObj.owner+'%',background:1<=selectMonth && selectMonth<=3?'#DB573B':4<=selectMonth && selectMonth<=6?'#137BBD':7<=selectMonth && selectMonth<=9?'#3663CB':'#A66A37'}"></view>-->
<!-- <view class="haveNoticeBox" v-if="showHaveNotice" @click.stop="handleShowHaveNoticeBox">-->
<!-- <text class="label">自营:<text class="value">{{progressObj.owner}}%</text></text>-->
<!-- <text class="label">外租:<text class="value">{{progressObj.other}}%</text></text>-->
<!-- </view>-->
<!-- </view>-->
<!-- <view class="message" >-->
<!-- <view class="smallDetailItem" style="margin-right: 14px">-->
<!-- <view class="messageTop">-->
<!-- <view class="type" :style="{background:1<=selectMonth && selectMonth<=3?'#DB573B':4<=selectMonth && selectMonth<=6?'#137BBD':7<=selectMonth && selectMonth<=9?'#3663CB':'#A66A37'}"></view>-->
<!-- <text class="typeTitle">驿达自营</text>-->
<!-- &lt;!&ndash; <text class="unit">/万元</text>&ndash;&gt;-->
<!-- </view>-->
<!-- <view class="middle" v-if="typeList && typeList.length>0">-->
<!-- <text class="money">{{revenueMoney?$util.fmoney(revenueMoney || 0,2):''}}</text>-->
<!-- <view class="addItem" v-if="monthAdd">{{monthAdd || ''}}%</view>-->
<!-- </view>-->
<!-- <view class="messageBottom" v-if="typeList && typeList[0].add">-->
<!-- <text class="addText">{{typeList[0].add?typeList[0].add:''}}</text>-->
<!-- <text class="addType">同比</text>-->
<!-- </view>-->
<!-- </view>-->
<!-- <view class="smallDetailItem">-->
<!-- <view class="messageTop">-->
<!-- <view class="type" :style="{background:1<=selectMonth && selectMonth<=3?'#FFAB30':4<=selectMonth && selectMonth<=6?'#5DC1E0':7<=selectMonth && selectMonth<=9?'#7CADF8':'#DCA858'}"></view>-->
<!-- <text class="typeTitle">商铺租赁</text>-->
<!-- &lt;!&ndash; <text class="unit">/万元</text>&ndash;&gt;-->
<!-- </view>-->
<!-- <view class="middle">-->
<!-- <text class="money">{{externalMoney?$util.fmoney(externalMoney || 0,2):''}}</text>-->
<!-- &lt;!&ndash; <view class="addItem">+13.18%</view>&ndash;&gt;-->
<!-- </view>-->
<!-- <view class="messageBottom" v-if="typeList && typeList[1].add">-->
<!-- <text class="addText">{{typeList[1].add?typeList[1].add:''}}</text>-->
<!-- <text class="addType">同比</text>-->
<!-- </view>-->
<!-- </view>-->
<!-- </view>-->
<view class="moneyRate">
<view class="leftBox" @click="handleShowYDModal" v-if="showRateChart">
<view class="rateChartsBox">
<rateCharts :success="moneyRateList" :colorList="1 <= selectMonth && selectMonth <= 3
? ['#1677FE', '#456497', '#97A9C6']
: 4 <= selectMonth && selectMonth <= 6
? ['#1677FE', '#456497', '#97A9C6']
: 7 <= selectMonth && selectMonth <= 9
? ['#1677FE', '#456497', '#97A9C6']
: ['#1677FE', '#456497', '#97A9C6']
" :name="`${selectMonth}rate`" />
</view>
<view class="haveNoticeBox" v-if="ydModal" @click.stop="handleShowYDModal">
<view class="field">
<view class="label">便利店:</view>
<view class="value">{{ ydRate }}%</view>
</view>
<view class="field">
<view class="label">餐饮客房:</view>
<view class="value">{{ shopRate }}%</view>
</view>
<view class="field">
<view class="label">商铺租赁:</view>
<view class="value">{{ shopOutRate }}%</view>
</view>
</view>
</view>
<view class="newRightBox">
<view class="newRightItem" v-for="(subItem, subIndex) in profitSharingList"
:key="subIndex">
<view class="itemLeft">
<view class="itemIcon" :style="{
background:
subIndex === 0
? '#1677FE'
: subIndex === 1
? '#456497'
: subIndex === 2
? '#97A9C6'
: '',
}"></view>
<span class="itemName">{{
subItem.name
}}</span>
</view>
<view class="itemCenter">
{{
subItem.value
? $util.getMoney(subItem.value / 10000)
: ""
}}
</view>
<view class="itemRight" :style="{
color:
subItem.add > 0
? '#E83944'
: subItem.add < 0
? '#0E9976'
: '',
}">{{
subItem.add ? `${subItem.add}%` : ""
}}</view>
</view>
<!-- <view class="newRightItem">-->
<!-- <view class="itemLeft">-->
<!-- <view class="itemIcon" style="background: #1677FE"></view>-->
<!-- <span class="itemName">便利店</span>-->
<!-- <span class="itemValue">3,100.65</span>-->
<!-- </view>-->
<!-- <view class="itemRight">+9.65%</view>-->
<!-- </view>-->
<!-- <view class="newRightItem">-->
<!-- <view class="itemLeft">-->
<!-- <view class="itemIcon" style="background: #456497"></view>-->
<!-- <span class="itemName">餐饮客房</span>-->
<!-- <span class="itemValue">1,875.23</span>-->
<!-- </view>-->
<!-- <view class="itemRight">+23.87%</view>-->
<!-- </view>-->
<!-- <view class="newRightItem">-->
<!-- <view class="itemLeft">-->
<!-- <view class="itemIcon" style="background: #97A9C6"></view>-->
<!-- <span class="itemName">商铺租赁</span>-->
<!-- <span class="itemValue">4,921.86</span>-->
<!-- </view>-->
<!-- <view class="itemRight">+15.02%</view>-->
<!-- </view>-->
</view>
<!-- <view class="rightBox">-->
<!-- <view class="noticeItem">-->
<!-- <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">营业收入</view>-->
<!-- &lt;!&ndash; <span class="noticeSmallText">/万元</span>&ndash;&gt;-->
<!-- <text class="noticeMoney">{{currentPeriodData.Royalty_Theory?$util.fmoney($util.getMoney(currentPeriodData.Royalty_Theory / 10000),2):'-'}}</text>-->
<!-- </view>-->
<!-- <view class="noticeItem">-->
<!-- <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">商家入账</view>-->
<!-- &lt;!&ndash; <span class="noticeSmallText">/万元</span>&ndash;&gt;-->
<!-- <text class="noticeMoney">{{ currentPeriodData.SubRoyalty_Theory?$util.fmoney($util.getMoney(currentPeriodData.SubRoyalty_Theory / 10000),2):'-' }}</text>-->
<!-- </view>-->
<!-- </view>-->
</view>
</view>
<view class="accountRevenue">
<view class="accountItem" style="margin-bottom: 24rpx">
<view class="itemTop">
<!-- 确保计算出之后显示实际年份 而不会先显示null -->
<view class="itemName">{{
index && (Math.floor(index / 12) + 2023)
.toString()
.slice(2, 4) ? (Math.floor(index / 12) + 2023)
.toString()
.slice(2, 4) : ""
}}年累计对客销售<span class="unit">/亿元</span></view>
<!-- <view class="itemType">累计</view>-->
</view>
<view class="itemBottom">
<span class="revenueNum">{{
showTableData.YearRevenueAmount
? $util.getMoney(
showTableData.YearRevenueAmount /
100000000
)
: ""
}}</span>
<span class="revenueAdd" :style="{
color:
showTableData.YearRevenueAddNumber > 0
? '#E83944'
: showTableData.YearRevenueAddNumber < 0
? '#0E9976'
: '',
}"><span class="revenueAddNotice">{{
showTableData.YearRevenueAddNumber > 0
? "增长"
: showTableData.YearRevenueAddNumber < 0 ? "下降" : "" }}</span>
{{
showTableData.YearRevenueAddNumber
? $util.getMoney(
showTableData.YearRevenueAddNumber /
100000000
)
: ""
}}</span>
<span class="revenueAdd" :style="{
color:
showTableData.YearRevenueAdd > 0
? '#E83944'
: showTableData.YearRevenueAdd < 0
? '#0E9976'
: '',
}"><span class="revenueAddNotice">{{
showTableData.YearRevenueAdd > 0
? "增幅"
: showTableData.YearRevenueAdd < 0 ? "降幅" : "" }}</span>{{
showTableData.YearRevenueAdd
? `${showTableData.YearRevenueAdd > 0
? "+"
: ""
}${showTableData.YearRevenueAdd}%`
: "-"
}}</span>
</view>
</view>
<view class="accountItem">
<view class="itemTop">
<!-- 确保计算出之后显示实际年份 而不会先显示null -->
<view class="itemName">{{
index && (Math.floor(index / 12) + 2023)
.toString()
.slice(2, 4) ? (Math.floor(index / 12) + 2023)
.toString()
.slice(2, 4) : ""
}}年累计营业收入<span class="unit">/亿元</span></view>
<!-- <view class="itemType">除税累计</view>-->
</view>
<view class="itemBottom">
<span class="revenueNum">{{
showTableData.YearAccountRoyalty
? $util.getMoney(
showTableData.YearAccountRoyalty /
100000000
)
: ""
}}</span>
<span class="revenueAdd" :style="{
color:
showTableData.YearAccountAddNumber > 0
? '#E83944'
: showTableData.YearAccountAddNumber < 0
? '#0E9976'
: '',
}"><span class="revenueAddNotice">{{
showTableData.YearAccountAddNumber > 0
? "增长"
: showTableData.YearAccountAddNumber < 0 ? "下降" : "" }}</span>{{
showTableData.YearAccountAddNumber
? $util.getMoney(
showTableData.YearAccountAddNumber /
100000000
)
: ""
}}</span>
<span class="revenueAdd" :style="{
color:
showTableData.YearAccountAdd > 0
? '#E83944'
: showTableData.YearAccountAdd < 0
? '#0E9976'
: '',
}"><span class="revenueAddNotice">{{
showTableData.YearAccountAdd > 0
? "增幅"
: showTableData.YearAccountAdd < 0 ? "降幅" : "" }}</span>{{
showTableData.YearAccountAdd
? `${showTableData.YearAccountAdd > 0
? "+"
: ""
}${showTableData.YearAccountAdd}%`
: "-"
}}</span>
</view>
</view>
</view>
<!-- 3.18-->
<!-- <view class="showMoreLoading" v-if="!loadMore">-->
<!--&lt;!&ndash; <image @click="handleShowMore" class="showMorenDown" src="https://eshangtech.com/ShopICO/ahyd-BID/newIndex3/downIconMore.png"/>&ndash;&gt;-->
<!-- <image @click="handleChangeLoadMore" class="showMorenDown" src="https://eshangtech.com/ShopICO/ahyd-BID/newIndex3/downIconMore.png"/>-->
<!-- </view>-->
<!-- <view class="goBusiness">-->
<!-- &lt;!&ndash; @click="handleGoProject"&ndash;&gt;-->
<!-- <view class="bussinessRight" >-->
<!-- <span class="bussinessText">单位:万元</span>-->
<!-- <view class="moreIcon" @click="changeShowRealBox">?-->
<!-- <view v-if="showRealBox" class="realBox" @click.stop="changeShowRealBox">-->
<!-- <view><text class="label">对客营收:</text>{{showTableData.CashPay?$util.fmoney($util.getMoney(showTableData.CashPay),2):'-'}}</view>-->
<!-- <view><text class="label">自营收入:</text>{{typeList && typeList.length>0?$util.fmoney($util.getMoney(typeList[0].value),2) : '-'}}</view>-->
<!-- <view><text class="label">外租收入:</text>{{typeList && typeList.length>0?$util.fmoney($util.getMoney(typeList[1].value),2) : '-'}}</view>-->
<!-- </view>-->
<!-- </view>-->
<!-- &lt;!&ndash; <span class="bussinessText">商家欠款</span>&ndash;&gt;-->
<!-- &lt;!&ndash; <image class="staticIcon" :src="1<=selectMonth && selectMonth<=3?'https://eshangtech.com/ShopICO/ahyd-BID/newIndex/1stStaticMore.svg':4<=selectMonth && selectMonth<=6?'https://eshangtech.com/ShopICO/ahyd-BID/newIndex/2stStaticMore.svg':7<=selectMonth && selectMonth<=9?'https://eshangtech.com/ShopICO/ahyd-BID/newIndex/3stStaticMore.svg':'https://eshangtech.com/ShopICO/ahyd-BID/newIndex/4stStaticMore.svg'"/>&ndash;&gt;-->
<!-- </view>-->
<!-- </view>-->
</view>
<view class="revenueBox" v-show="selectMonth !== index + 1 &&
selectMonth !==
((index + 1) % 12 === 0 ? 12 : (index + 1) % 12)
">
<view class="revenueTop">
<view class="revenueTopLeft">
<text class="revenueNumber">-</text>
<view class="moreIcon" @click="changeShowRealBox">?
<view v-if="showRealBox" class="realBox" @click.stop="changeShowRealBox">
<view><text class="label">对客营收:</text>-</view>
<view><text class="label">自营收入:</text>-</view>
<view><text class="label">外租收入:</text>-</view>
</view>
</view>
</view>
<view class="revenueTopRight">
<!--https://eshangtech.com/ShopICO/ahyd-BID/examine/reduce.svg-->
<!-- <image class="addReduce" :src="showTableData.add>0?'https://eshangtech.com/ShopICO/ahyd-BID/examine/add.svg':showTableData.add>0?'https://eshangtech.com/ShopICO/ahyd-BID/examine/reduce.svg':''"/>-->
<!-- <text class="addValue">-</text>-->
</view>
</view>
<view class="revenueNav">
<text class="leftNav">-月对客营收<text class="unit">/万元</text></text>
<text class="rightNav">同比</text>
</view>
<view class="progress" :style="{
background:
1 <= selectMonth && selectMonth <= 3
? '#FFAB30'
: 4 <= selectMonth && selectMonth <= 6
? '#5DC1E0'
: 7 <= selectMonth && selectMonth <= 9
? '#7CADF8'
: '#DCA858',
}">
<view class="have" :style="{
background:
1 <= selectMonth && selectMonth <= 3
? '#DB573B'
: 4 <= selectMonth && selectMonth <= 6
? '#137BBD'
: 7 <= selectMonth && selectMonth <= 9
? '#3663CB'
: '#A66A37',
}"></view>
</view>
<view class="message">
<view class="smallDetailItem" style="margin-right: 14px">
<view class="messageTop">
<view class="type" :style="{
background:
1 <= selectMonth && selectMonth <= 3
? '#DB573B'
: 4 <= selectMonth && selectMonth <= 6
? '#137BBD'
: 7 <= selectMonth && selectMonth <= 9
? '#3663CB'
: '#A66A37',
}"></view>
<text class="typeTitle">自营收入<text class="unit">/万元</text></text>
</view>
<view class="middle">
<text class="money">-</text>
<view class="addItem">-</view>
</view>
<view class="messageBottom">
<text class="addText">-</text>
<text class="addType">同比</text>
</view>
</view>
<view class="smallDetailItem">
<view class="messageTop">
<view class="type" :style="{
background:
1 <= selectMonth && selectMonth <= 3
? '#FFAB30'
: 4 <= selectMonth && selectMonth <= 6
? '#5DC1E0'
: 7 <= selectMonth && selectMonth <= 9
? '#7CADF8'
: '#DCA858',
}"></view>
<text class="typeTitle">外租收入<text class="unit">/万元</text></text>
</view>
<view class="middle">
<text class="money">-</text>
<!-- <view class="addItem">+13.18%</view>-->
</view>
<view class="messageBottom">
<text class="addText">-</text>
<text class="addType">同比</text>
</view>
</view>
</view>
</view>
</view>
</view>
<div class="demonstrate" :style="{ height: loadMore ? '' : '460px' }"
v-if="selectVersion === 3">
<view class="topTop" style="margin-bottom: 18rpx">
<view class="statistics" @click="goToRevenueStatic">
<image class="staticImg"
src="https://eshangtech.com/ShopICO/ahyd-BID/newIndex/3stStaticIcon.svg" />
<text class="staticTitle">{{
smallTab === 4
? `2024年累计`
: `${selectMonth || "-"}月数据`
}}</text>
<span class="staticUnit">{{
smallTab === 4 ? "/亿元" : "/万元"
}}</span>
<view class="moreIcon" @click.stop="changeShowRealBox">
<image class="noticeIcon"
src="https://eshangtech.com/ShopICO/ahyd-BID/newIndex3/noticeIcon.svg" />
</view>
</view>
<view class="haveMore" @click="goToRevenueStatic">
<text class="haveMoreText">查看更多</text>
<image class="haveMoreICon"
src="https://eshangtech.com/ShopICO/ahyd-BID/newIndex3/haveMoreICon.svg" />
</view>
</view>
<template v-if="smallTab !== 4">
<div class="overAllDataBottom">
<div class="contentTitleBox" style="margin-bottom: 16rpx">
<text class="contentTitle">对客销售</text>
<div style="display: flex; align-items: center">
<div class="YOYNumber">
<text class="YOYNumberText">{{
selectVersion3Obj["累计"].RevenueINC
.increaseData > 0
? "增长"
: selectVersion3Obj["累计"].RevenueINC
.increaseData < 0 ? "下降" : "" }}</text>
<div class="YOYNumberValue">
<span style="color: #a69e9f">{{
selectVersion3Obj["累计"].RevenueINC
.increaseData > 0
? "+"
: selectVersion3Obj["累计"].RevenueINC
.increaseData < 0 ? "" : "" }}</span>
<span style="color: #a69e9f">{{
selectVersion3Obj["累计"].RevenueINC
.increaseData
}}</span>
</div>
</div>
<div class="YOYBox">
<text class="YOYBoxText">增幅</text>
<div class="YOYBoxValue">
<span :style="{
color:
selectVersion3Obj['累计'].RevenueINC
.increaseRate > 0
? '#E83944'
: selectVersion3Obj['累计'].RevenueINC
.increaseRate < 0
? '#0E9976'
: '',
}">{{
selectVersion3Obj["累计"].RevenueINC
.increaseRate > 0
? "+"
: selectVersion3Obj["累计"].RevenueINC
.increaseRate < 0 ? "-" : "" }}</span>
<span :style="{
color:
selectVersion3Obj['累计'].RevenueINC
.increaseRate > 0
? '#E83944'
: selectVersion3Obj['累计'].RevenueINC
.increaseRate < 0
? '#0E9976'
: '',
}">{{
`${selectVersion3Obj["累计"].RevenueINC
.increaseRate || "-"
}%`
}}</span>
</div>
</div>
</div>
</div>
<div class="pkBox">
<div class="leftBox carLeft">
<text class="value">{{
selectVersion3Obj["累计"].RevenueINC
.curYearData || "-"
}}</text>
<text class="label">{{ Math.floor(index / 12) + 2023 }}年/万元</text>
</div>
<div class="rightBox carRight">
<text class="value">{{
selectVersion3Obj["累计"].RevenueINC.lYearData ||
"-"
}}</text>
<text class="label">{{ Math.floor(index / 12) + 2022 }}年/万元</text>
</div>
<img class="pkLogo"
src="https://eshangtech.com/ShopICO/ahyd-BID/newIndex3/overAllDataBottomPK1.png" />
</div>
</div>
<div class="overAllDataBottom">
<div class="contentTitleBox" style="margin-bottom: 16rpx">
<text class="contentTitle">营业收入</text>
<div style="display: flex; align-items: center">
<div class="YOYNumber">
<text class="YOYNumberText">{{
selectVersion3Obj["累计"].AccountINC
.increaseData > 0
? "增长"
: selectVersion3Obj["累计"].AccountINC
.increaseData < 0 ? "下降" : "" }}</text>
<div class="YOYNumberValue">
<span style="color: #a69e9f">{{
selectVersion3Obj["累计"].AccountINC
.increaseData > 0
? "+"
: selectVersion3Obj["累计"].AccountINC
.increaseData < 0 ? "" : "" }}</span>
<span style="color: #a69e9f">{{
selectVersion3Obj["累计"].AccountINC
.increaseData
}}</span>
</div>
</div>
<div class="YOYBox">
<text class="YOYBoxText">增幅</text>
<div class="YOYBoxValue">
<span :style="{
color:
selectVersion3Obj['累计'].AccountINC
.increaseRate > 0
? '#E83944'
: selectVersion3Obj['累计'].AccountINC
.increaseRate < 0
? '#0E9976'
: '',
}">{{
selectVersion3Obj["累计"].AccountINC
.increaseRate > 0
? "+"
: selectVersion3Obj["累计"].AccountINC
.increaseRate < 0 ? "" : "" }}</span>
<span :style="{
color:
selectVersion3Obj['累计'].AccountINC
.increaseRate > 0
? '#E83944'
: selectVersion3Obj['累计'].AccountINC
.increaseRate < 0
? '#0E9976'
: '',
}">{{
`${selectVersion3Obj["累计"].AccountINC
.increaseRate || "-"
}%`
}}</span>
</div>
</div>
</div>
</div>
<div class="pkBox">
<div class="leftBox qmCarLeft">
<text class="value">{{
selectVersion3Obj["累计"].AccountINC
.curYearData || "-"
}}</text>
<text class="label">{{ Math.floor(index / 12) + 2023 }}年/万元</text>
</div>
<div class="rightBox qmCarRight">
<text class="value">{{
selectVersion3Obj["累计"].AccountINC.lYearData ||
"-"
}}</text>
<text class="label">{{ Math.floor(index / 12) + 2022 }}年/万元</text>
</div>
<img class="pkLogo"
src="https://eshangtech.com/ShopICO/ahyd-BID/newIndex3/overAllDataBottomPK2.png" />
</div>
</div>
<div class="overAllDataBottom">
<div class="contentTitleBox" style="margin-bottom: 16rpx">
<text class="contentTitle">入区车流</text>
<div style="display: flex; align-items: center">
<div class="YOYNumber">
<text class="YOYNumberText">{{
selectVersion3Obj["累计"].BayonetINC
.increaseData > 0
? "增长"
: selectVersion3Obj["累计"].BayonetINC
.increaseData < 0 ? "下降" : "" }}</text>
<div class="YOYNumberValue">
<span style="color: #a69e9f">{{
selectVersion3Obj["累计"].BayonetINC
.increaseData > 0
? "+"
: selectVersion3Obj["累计"].BayonetINC
.increaseData < 0 ? "" : "" }}</span>
<span style="color: #a69e9f">{{
selectVersion3Obj["累计"].BayonetINC
.increaseData
}}</span>
</div>
</div>
<div class="YOYBox">
<text class="YOYBoxText">增幅</text>
<div class="YOYBoxValue">
<span :style="{
color:
selectVersion3Obj['累计'].BayonetINC
.increaseRate > 0
? '#E83944'
: selectVersion3Obj['累计'].BayonetINC
.increaseRate < 0
? '#0E9976'
: '',
}">{{
selectVersion3Obj["累计"].BayonetINC
.increaseRate > 0
? "+"
: selectVersion3Obj["累计"].BayonetINC
.increaseRate < 0 ? "" : "" }}</span>
<span :style="{
color:
selectVersion3Obj['累计'].BayonetINC
.increaseRate > 0
? '#E83944'
: selectVersion3Obj['累计'].BayonetINC
.increaseRate < 0
? '#0E9976'
: '',
}">{{
`${selectVersion3Obj["累计"].BayonetINC
.increaseRate || "-"
}%`
}}</span>
</div>
</div>
</div>
</div>
<div class="pkBox">
<div class="leftBox summerHolidayLeftBox">
<text class="value">{{
selectVersion3Obj["累计"].BayonetINC
.curYearData || "-"
}}</text>
<text class="label">{{ Math.floor(index / 12) + 2023 }}年/万元</text>
</div>
<div class="rightBox summerHolidayRightBox">
<text class="value">{{
selectVersion3Obj["累计"].BayonetINC.lYearData ||
"-"
}}</text>
<text class="label">{{ Math.floor(index / 12) + 2022 }}年/万元</text>
</div>
<img class="pkLogo"
src="https://eshangtech.com/ShopICO/ahyd-BID/newIndex3/overAllDataBottomPK3.png" />
</div>
</div>
</template>
<template v-if="smallTab === 4">
<div class="overAllDataBottom">
<div class="contentTitleBox" style="margin-bottom: 16rpx">
<text class="contentTitle">对客销售</text>
<div style="display: flex; align-items: center">
<div class="YOYNumber">
<text class="YOYNumberText">{{
allselectVersion3Obj["累计"].RevenueINC
.increaseData > 0
? "增长"
: allselectVersion3Obj["累计"].RevenueINC
.increaseData < 0 ? "下降" : "" }}</text>
<div class="YOYNumberValue">
<span style="color: #a69e9f">{{
allselectVersion3Obj["累计"].RevenueINC
.increaseData > 0
? "+"
: allselectVersion3Obj["累计"].RevenueINC
.increaseData < 0 ? "" : "" }}</span>
<span style="color: #a69e9f">{{
allselectVersion3Obj["累计"].RevenueINC
.increaseData
}}</span>
</div>
</div>
<div class="YOYBox">
<text class="YOYBoxText">增幅</text>
<div class="YOYBoxValue">
<span :style="{
color:
allselectVersion3Obj['累计'].RevenueINC
.increaseRate > 0
? '#E83944'
: allselectVersion3Obj['累计']
.RevenueINC.increaseRate < 0
? '#0E9976'
: '',
}">{{
allselectVersion3Obj["累计"].RevenueINC
.increaseRate > 0
? "+"
: allselectVersion3Obj["累计"].RevenueINC
.increaseRate < 0 ? "" : "" }}</span>
<span :style="{
color:
allselectVersion3Obj['累计'].RevenueINC
.increaseRate > 0
? '#E83944'
: allselectVersion3Obj['累计']
.RevenueINC.increaseRate < 0
? '#0E9976'
: '',
}">{{
`${allselectVersion3Obj["累计"].RevenueINC
.increaseRate || "-"
}%`
}}</span>
</div>
</div>
</div>
</div>
<div class="pkBox">
<div class="leftBox carLeft">
<text class="value">{{
allselectVersion3Obj["累计"].RevenueINC
.curYearData || "-"
}}</text>
<text class="label">2024年/亿元</text>
</div>
<div class="rightBox carRight">
<text class="value">{{
allselectVersion3Obj["累计"].RevenueINC
.lYearData || "-"
}}</text>
<text class="label">2023年/亿元</text>
</div>
<img class="pkLogo"
src="https://eshangtech.com/ShopICO/ahyd-BID/newIndex3/overAllDataBottomPK1.png" />
</div>
</div>
<div class="overAllDataBottom">
<div class="contentTitleBox" style="margin-bottom: 16rpx">
<text class="contentTitle">营业收入</text>
<div style="display: flex; align-items: center">
<div class="YOYNumber">
<text class="YOYNumberText">{{
allselectVersion3Obj["累计"].AccountINC
.increaseData > 0
? "增长"
: allselectVersion3Obj["累计"].AccountINC
.increaseData < 0 ? "下降" : "" }}</text>
<div class="YOYNumberValue">
<span style="color: #a69e9f">{{
allselectVersion3Obj["累计"].AccountINC
.increaseData > 0
? "+"
: allselectVersion3Obj["累计"].AccountINC
.increaseData < 0 ? "" : "" }}</span>
<span style="color: #a69e9f">{{
allselectVersion3Obj["累计"].AccountINC
.increaseData
}}</span>
</div>
</div>
<div class="YOYBox">
<text class="YOYBoxText">增幅</text>
<div class="YOYBoxValue">
<span :style="{
color:
allselectVersion3Obj['累计'].AccountINC
.increaseRate > 0
? '#E83944'
: allselectVersion3Obj['累计']
.AccountINC.increaseRate < 0
? '#0E9976'
: '',
}">{{
allselectVersion3Obj["累计"].AccountINC
.increaseRate > 0
? "+"
: allselectVersion3Obj["累计"].AccountINC
.increaseRate < 0 ? "-" : "" }}</span>
<span :style="{
color:
allselectVersion3Obj['累计'].AccountINC
.increaseRate > 0
? '#E83944'
: allselectVersion3Obj['累计']
.AccountINC.increaseRate < 0
? '#0E9976'
: '',
}">{{
`${allselectVersion3Obj["累计"].AccountINC
.increaseRate || "-"
}%`
}}</span>
</div>
</div>
</div>
</div>
<div class="pkBox">
<div class="leftBox qmCarLeft">
<text class="value">{{
allselectVersion3Obj["累计"].AccountINC
.curYearData || "-"
}}</text>
<text class="label">2024年/亿元</text>
</div>
<div class="rightBox qmCarRight">
<text class="value">{{
allselectVersion3Obj["累计"].AccountINC
.lYearData || "-"
}}</text>
<text class="label">2023年/亿元</text>
</div>
<img class="pkLogo"
src="https://eshangtech.com/ShopICO/ahyd-BID/newIndex3/overAllDataBottomPK2.png" />
</div>
</div>
<div class="overAllDataBottom">
<div class="contentTitleBox" style="margin-bottom: 16rpx">
<text class="contentTitle">入区车流</text>
<div style="display: flex; align-items: center">
<div class="YOYNumber">
<text class="YOYNumberText">{{
allselectVersion3Obj["累计"].BayonetINC
.increaseData > 0
? "增长"
: allselectVersion3Obj["累计"].BayonetINC
.increaseData < 0 ? "下降" : "" }}</text>
<div class="YOYNumberValue">
<span style="color: #a69e9f">{{
allselectVersion3Obj["累计"].BayonetINC
.increaseData > 0
? "+"
: allselectVersion3Obj["累计"].BayonetINC
.increaseData < 0 ? "" : "" }}</span>
<span style="color: #a69e9f">{{
allselectVersion3Obj["累计"].BayonetINC
.increaseData
}}</span>
</div>
</div>
<div class="YOYBox">
<text class="YOYBoxText">增幅</text>
<div class="YOYBoxValue">
<span :style="{
color:
allselectVersion3Obj['累计'].BayonetINC
.increaseRate > 0
? '#E83944'
: allselectVersion3Obj['累计']
.BayonetINC.increaseRate < 0
? '#0E9976'
: '',
}">{{
allselectVersion3Obj["累计"].BayonetINC
.increaseRate > 0
? "+"
: allselectVersion3Obj["累计"].BayonetINC
.increaseRate < 0 ? "-" : "" }}</span>
<span :style="{
color:
allselectVersion3Obj['累计'].BayonetINC
.increaseRate > 0
? '#E83944'
: allselectVersion3Obj['累计']
.BayonetINC.increaseRate < 0
? '#0E9976'
: '',
}">{{
`${allselectVersion3Obj["累计"].BayonetINC
.increaseRate || "-"
}%`
}}</span>
</div>
</div>
</div>
</div>
<div class="pkBox">
<div class="leftBox summerHolidayLeftBox">
<text class="value">{{
allselectVersion3Obj["累计"].BayonetINC
.curYearData || "-"
}}</text>
<text class="label">2024年/亿元</text>
</div>
<div class="rightBox summerHolidayRightBox">
<text class="value">{{
allselectVersion3Obj["累计"].BayonetINC
.lYearData || "-"
}}</text>
<text class="label">2023年/亿元</text>
</div>
<img class="pkLogo"
src="https://eshangtech.com/ShopICO/ahyd-BID/newIndex3/overAllDataBottomPK3.png" />
</div>
</div>
</template>
</div>
<div class="demonstrateMore" v-if="selectVersion === 3" @click="handleChangeLoadMore">
<image class="searchIcon" :style="{
height: '16px',
transform: loadMore
? 'rotate(-90deg)'
: 'rotate(90deg)',
}" src="https://eshangtech.com/ShopICO/ahyd-BID/newIndex3/goMore.svg" />
</div>
<view class="bottom" style="height: 60rpx" v-if="!loadMore && selectVersion !== 3"
@click="handleChangeLoadMore">
<!-- <view class="bottom" v-if="false" @click="handleChangeLoadMore">-->
<text class="searchText">查看更多</text>
<image class="searchIcon" :style="{
height: '16px',
transform: loadMore ? 'rotate(180deg)' : '',
}" src="https://eshangtech.com/ShopICO/ahyd-BID/newIndex3/goMore.svg" />
</view>
<div class="otherDetail sss" v-if="loadMore && selectVersion !== 3">
<view class="detail" v-show="selectMonth === index + 1 ||
selectMonth ===
((index + 1) % 12 === 0 ? 12 : (index + 1) % 12)
">
<view class="detailMessage">
<view class="otherDetailTop">
<view class="otherDetailTopLeft">
<view class="yearAll">{{
showTableData.allRevenueYear
? showTableData.allRevenueYear
: ""
}}</view>
<view class="yearLabel">年度累计<text class="unit">/亿元</text></view>
</view>
<view class="otherDetailRight">
<view class="otherDetailAddBox">
<image class="otherDetailAddIcon" :src="Number(showTableData.yearYoY) > 0
? 'https://eshangtech.com/ShopICO/ahyd-BID/examine/add.svg'
: Number(yesObj.yearYOY) < 0
? 'https://eshangtech.com/ShopICO/ahyd-BID/examine/reduce.svg'
: ''
" />
<text class="otherDetailAddValue"
:style="{ color: showTableData.yearYoY > 0 ? '#e83944' : showTableData.yearYoY < 0 ? '#0E9976' : '' }">{{
showTableData.yearYoY
? showTableData.yearYoY + "%"
: ""
}}</text>
</view>
<view class="otherDetailAddLabel">同比</view>
</view>
</view>
<view class="otherDetailMiddle">
<view class="middleItem" style="margin-bottom: 16rpx">
<text class="itemLabel">对客营收<text class="itemText">/环比</text></text>
<text class="itemValue">{{
showTableData.customerQoQ
? showTableData.customerQoQ
: ""
}}</text>
</view>
<view class="middleItem" style="margin-bottom: 16rpx">
<text class="itemLabel">自营收入<text class="itemText">/环比</text></text>
<text class="itemValue">{{
typeList[0].addQOQ ? typeList[0].addQOQ : ""
}}</text>
</view>
<view class="middleItem">
<text class="itemLabel">外租收入<text class="itemText">/环比</text></text>
<text class="itemValue">{{
typeList[1].addQOQ ? typeList[1].addQOQ : ""
}}</text>
</view>
</view>
<view class="otherDetailBottom">
<view class="bottomItem" @click="handleShowTrafficDetail" style="margin-bottom: 16rpx">
<view class="bottomSmallItem">
<view class="itemLeft">
<image class="leftIcon" :src="1 <= selectMonth && selectMonth <= 3
? 'https://eshangtech.com/ShopICO/ahyd-BID/newIndex/1stEntryCar.svg'
: 4 <= selectMonth && selectMonth <= 6
? 'https://eshangtech.com/ShopICO/ahyd-BID/newIndex/2stEntryCar.svg'
: 7 <= selectMonth && selectMonth <= 9
? 'https://eshangtech.com/ShopICO/ahyd-BID/newIndex/3stEntryCar.svg'
: 'https://eshangtech.com/ShopICO/ahyd-BID/newIndex/4stEntryCar.svg'
" />
<text class="itemTitle">入区车流</text>
</view>
<view class="itemCenter"> </view>
<view class="itemRight">
<text class="itemValue">{{
trafficCurrentObj.Vehicle_AddUpCount
? trafficCurrentObj.AddUpCount
: ""
}}</text>
<text class="itemText">{{
`/${trafficeUnit || "-"}`
}}</text>
</view>
</view>
<view class="bottomSmallItem">
<view class="itemLeft"> </view>
<view class="itemCenter">
<text class="itemValue">{{
trafficYOYObj.Vehicle_GrowthRate
? trafficYOYObj.Vehicle_GrowthRate > 0
? "+" +
trafficYOYObj.Vehicle_GrowthRate +
"%"
: trafficYOYObj.Vehicle_GrowthRate + "%"
: "-"
}}</text>
<text class="itemText">/同比</text>
</view>
<view class="itemRight">
<text class="itemValue">{{
trafficQOQObj.Vehicle_GrowthRate
? trafficQOQObj.Vehicle_GrowthRate > 0
? "+" +
trafficQOQObj.Vehicle_GrowthRate +
"%"
: trafficQOQObj.Vehicle_GrowthRate + "%"
: "-"
}}</text>
<text class="itemText">/环比</text>
</view>
</view>
</view>
<view class="bottomItem" @click="handleShowTrafficDetail" style="margin-bottom: 16rpx">
<view class="bottomSmallItem">
<view class="itemLeft">
<image class="leftIcon" :src="1 <= selectMonth && selectMonth <= 3
? 'https://eshangtech.com/ShopICO/ahyd-BID/newIndex/1stEntryRate.svg'
: 4 <= selectMonth && selectMonth <= 6
? 'https://eshangtech.com/ShopICO/ahyd-BID/newIndex/2stEntryRate.svg'
: 7 <= selectMonth && selectMonth <= 9
? 'https://eshangtech.com/ShopICO/ahyd-BID/newIndex/3stEntryRate.svg'
: 'https://eshangtech.com/ShopICO/ahyd-BID/newIndex/4stEntryRate.svg'
" />
<text class="itemTitle">入区率</text>
</view>
<view class="itemCenter"> </view>
<view class="itemRight">
<text class="itemValue">{{
trafficCurrentObj.Entry_Rate
? trafficCurrentObj.Entry_Rate + "%"
: ""
}}</text>
</view>
</view>
<view class="bottomSmallItem">
<view class="itemLeft"> </view>
<view class="itemCenter">
<text class="itemValue">{{
trafficYOYObj.Entry_GrowthRate
? trafficYOYObj.Entry_GrowthRate > 0
? "+" +
trafficYOYObj.Entry_GrowthRate +
"%"
: trafficYOYObj.Entry_GrowthRate + "%"
: "-"
}}</text>
<text class="itemText">/同比</text>
</view>
<view class="itemRight">
<text class="itemValue">{{
trafficQOQObj.Entry_GrowthRate
? trafficQOQObj.Entry_GrowthRate > 0
? "+" +
trafficQOQObj.Entry_GrowthRate +
"%"
: trafficQOQObj.Entry_GrowthRate + "%"
: "-"
}}</text>
<text class="itemText">/环比</text>
</view>
</view>
</view>
<view class="bottomItem" @click="handleShowTrafficDetail">
<view class="bottomSmallItem">
<view class="itemLeft">
<image class="leftIcon" :src="1 <= selectMonth && selectMonth <= 3
? 'https://eshangtech.com/ShopICO/ahyd-BID/newIndex/1stEntryFix.svg'
: 4 <= selectMonth && selectMonth <= 6
? 'https://eshangtech.com/ShopICO/ahyd-BID/newIndex/2stEntryFix.svg'
: 7 <= selectMonth && selectMonth <= 9
? 'https://eshangtech.com/ShopICO/ahyd-BID/newIndex/3stEntryFix.svg'
: 'https://eshangtech.com/ShopICO/ahyd-BID/newIndex/4stEntryFix.svg'
" />
<text class="itemTitle">停留时长</text>
</view>
<view class="itemCenter"> </view>
<view class="itemRight">
<text class="itemValue">{{
trafficCurrentObj.Stay_Times
? trafficCurrentObj.Stay_Times + "分钟"
: ""
}}</text>
</view>
</view>
<view class="bottomSmallItem">
<view class="itemLeft"> </view>
<view class="itemCenter">
<text class="itemValue">{{
trafficYOYObj.StayTimes_GrowthRate
? trafficYOYObj.StayTimes_GrowthRate > 0
? "+" +
trafficYOYObj.StayTimes_GrowthRate +
"%"
: trafficYOYObj.StayTimes_GrowthRate + "%"
: "-"
}}</text>
<text class="itemText">/同比</text>
</view>
<view class="itemRight">
<text class="itemValue">{{
trafficQOQObj.StayTimes_GrowthRate
? trafficQOQObj.StayTimes_GrowthRate > 0
? "+" +
trafficQOQObj.StayTimes_GrowthRate +
"%"
: trafficQOQObj.StayTimes_GrowthRate + "%"
: "-"
}}</text>
<text class="itemText">/环比</text>
</view>
</view>
</view>
<view class="monthDetail" @click.stop="handleShowTrafficDetail" v-if="false">
<view class="monthItem">
<text class="label">{{
`${index + 1}月入区车流`
}}</text>
<text class="value">{{
trafficCurrentObj.Vehicle_Count
? $util.noDecimal(
trafficCurrentObj.Vehicle_Count
) + "辆"
: ""
}}</text>
</view>
<view class="monthItem">
<text class="label">{{
`${index + 1}月入区率`
}}</text>
<text class="value">{{
trafficCurrentObj.Entry_Rate
? trafficCurrentObj.Entry_Rate + "%"
: ""
}}</text>
</view>
<view class="monthItem">
<text class="label">{{
`${index + 1}月停留时长`
}}</text>
<text class="value">{{
trafficCurrentObj.Stay_Times
? trafficCurrentObj.Stay_Times + "分钟"
: ""
}}</text>
</view>
</view>
</view>
</view>
<div class="noShowMoreBox" @click="handleChangeLoadMore">
<image v-if="loadMore" class="noShowMore" :style="{
transform: `${loadMore ? 'rotate(-90deg)' : ''}`,
}" src="https://eshangtech.com/ShopICO/ahyd-BID/newIndex3/goMore.svg" />
</div>
</view>
<view class="detail" v-if="false" v-show="selectMonthIndex !== index + 1 ||
selectMonthIndex !==
((index + 1) % 12 === 0 ? 12 : (index + 1) % 12)
">
<view class="detailItem">
<p class="price">-</p>
<p class="itemName">
长款金额<text class="itemUnit">/元</text>
</p>
</view>
<view class="detailItem">
<p class="price">-</p>
<p class="itemName">
短款金额<text class="itemUnit">/元</text>
</p>
</view>
<view class="detailItem">
<p class="price">-</p>
<p class="itemName">
优惠金额<text class="itemUnit">/元</text>
</p>
</view>
<view class="detailItem">
<p class="price" :style="{ color: isBig ? 'red' : '' }">
-
</p>
<div class="itemName" style="display: flex; align-items: center">
<text>门店上传</text>
</div>
</view>
<view class="detailItem">
<p class="price">-</p>
<p class="itemName">
商品出售<text class="itemUnit">/件</text>
</p>
</view>
<view class="detailItem">
<p class="price">-</p>
<p class="itemName">
商品均价<text class="itemUnit">/元</text>
</p>
</view>
<view class="detailItem">
<p class="price">-</p>
<p class="itemName">
日均入区<text class="itemUnit">/辆</text>
</p>
</view>
<view class="detailItem">
<p class="price">-</p>
<p class="itemName">
入区率<text class="itemUnit">/%</text>
</p>
</view>
<view class="detailItem">
<p class="price">-</p>
<p class="itemName">
停留时长<text class="itemUnit">/分钟</text>
</p>
</view>
</view>
</div>
<div class="selectVersion3BottomContent" v-if="loadMore && selectVersion === 3"
style="margin-top: 8px">
<view style="
width: 100%;
height: 24px;
display: flex;
justify-content: flex-end;
font-size: 13px;
" @click="handleChangeSmallTab">
切换显示样式
</view>
<div v-if="smallTab === 1" style="height: 890px">
<view class="bottomContentTitle">{{ `${selectMonth || "-"}月营业收入合计 (除税)` }}
<span class="unit">/万元</span>
</view>
<view class="tableTop">
<span class="bigMoney">{{
selectVersion3Obj["累计"].AccountINC.curYearData
}}</span>
<view class="changeBox">
<span class="changeunit">同比增幅</span>
<image class="changeIcon" :src="selectVersion3Obj['累计'].AccountINC
.increaseRate > 0
? 'https://eshangtech.com/ShopICO/ahyd-BID/newIndex3/addSelectVersion3.png'
: 'https://eshangtech.com/ShopICO/ahyd-BID/newIndex3/dropSelectVersion3.png'
" />
<span class="changeRate">{{
selectVersion3Obj["累计"].AccountINC
.increaseRate || "-"
}}%</span>
</view>
</view>
<view class="tableBox">
<view class="tableHeader">
<view class="tableHeaderItem rightBorder">类别</view>
<view class="tableHeaderItem rightBorder">合计</view>
<view class="tableHeaderItem rightBorder">同比增长</view>
<view class="tableHeaderItem">同比增幅</view>
</view>
<view class="tableContent">
<view class="bigTableRow bottomBorder">
<view class="tableRowItem rightBorder">自营业务</view>
<view class="tableRowItem rightBorder">{{
selectVersion3Obj["自营"].AccountINC.curYearData
}}</view>
<view class="tableRowItem rightBorder">{{
selectVersion3Obj["自营"].AccountINC.increaseData
}}</view>
<view class="tableRowItem">{{
selectVersion3Obj["自营"].AccountINC
.increaseRate || ""
}}</view>
</view>
<view class="tableRow bottomBorder">
<view class="tableRowItem rightBorder">便利店</view>
<view class="tableRowItem rightBorder">{{
selectVersion3Obj["便利店"].AccountINC.curYearData
}}</view>
<view class="tableRowItem rightBorder">{{
selectVersion3Obj["便利店"].AccountINC
.increaseData
}}</view>
<view class="tableRowItem">{{
selectVersion3Obj["便利店"].AccountINC
.increaseRate || ""
}}</view>
</view>
<view class="tableRow bottomBorder">
<view class="tableRowItem rightBorder">餐饮与客房</view>
<view class="tableRowItem rightBorder">{{
selectVersion3Obj["餐饮客房"].AccountINC
.curYearData
}}</view>
<view class="tableRowItem rightBorder">{{
selectVersion3Obj["餐饮客房"].AccountINC
.increaseData
}}</view>
<view class="tableRowItem">{{
selectVersion3Obj["餐饮客房"].AccountINC
.increaseRate || ""
}}</view>
</view>
<view class="bigTableRow bottomBorder">
<view class="tableRowItem rightBorder">外包业务</view>
<view class="tableRowItem rightBorder">{{
selectVersion3Obj["外包"].AccountINC.curYearData
}}</view>
<view class="tableRowItem rightBorder">{{
selectVersion3Obj["外包"].AccountINC.increaseData
}}</view>
<view class="tableRowItem">{{
selectVersion3Obj["外包"].AccountINC
.increaseRate || ""
}}</view>
</view>
<view class="tableRow">
<view class="tableRowItem rightBorder">商铺租赁</view>
<view class="tableRowItem rightBorder">{{
selectVersion3Obj["商铺租赁"].AccountINC
.curYearData
}}</view>
<view class="tableRowItem rightBorder">{{
selectVersion3Obj["商铺租赁"].AccountINC
.increaseData
}}</view>
<view class="tableRowItem">{{
selectVersion3Obj["商铺租赁"].AccountINC
.increaseRate || ""
}}</view>
</view>
<view class="bigTableRow">
<view class="tableRowItem rightBorder">入区车流量</view>
<view class="tableRowItem rightBorder">{{
selectVersion3Obj["累计"].BayonetINC.curYearData
}}</view>
<view class="tableRowItem rightBorder">{{
selectVersion3Obj["累计"].BayonetINC.increaseData
}}</view>
<view class="tableRowItem">{{
selectVersion3Obj["累计"].BayonetINC.increaseRate
}}</view>
</view>
</view>
</view>
<view class="bottomContentTitle" style="margin-top: 32rpx">2024年累计营业收入 (除税)
<span class="unit">/亿元</span>
</view>
<view class="tableTop">
<span class="bigMoney">{{
allselectVersion3Obj["累计"].AccountINC.curYearData
}}</span>
<view class="changeBox">
<span class="changeunit">同比增幅</span>
<image class="changeIcon" :src="allselectVersion3Obj['累计'].AccountINC
.increaseRate > 0
? 'https://eshangtech.com/ShopICO/ahyd-BID/newIndex3/addSelectVersion3.png'
: 'https://eshangtech.com/ShopICO/ahyd-BID/newIndex3/dropSelectVersion3.png'
" />
<span class="changeRate">{{
allselectVersion3Obj["累计"].AccountINC
.increaseRate || "-"
}}%</span>
</view>
</view>
<view class="tableBox">
<view class="tableHeader bottomBorder">
<view class="tableHeaderItem rightBorder">类别</view>
<view class="tableHeaderItem rightBorder">合计</view>
<view class="tableHeaderItem rightBorder">同比增长</view>
<view class="tableHeaderItem">同比增幅</view>
</view>
<view class="tableContent bottomBorder">
<view class="bigTableRow bottomBorder">
<view class="tableRowItem rightBorder">自营业务</view>
<view class="tableRowItem rightBorder">{{
allselectVersion3Obj["自营"].AccountINC
.curYearData
}}</view>
<view class="tableRowItem rightBorder">{{
allselectVersion3Obj["自营"].AccountINC
.increaseData
}}</view>
<view class="tableRowItem">{{
allselectVersion3Obj["自营"].AccountINC
.increaseRate || ""
}}</view>
</view>
<view class="tableRow bottomBorder">
<view class="tableRowItem rightBorder">便利店</view>
<view class="tableRowItem rightBorder">{{
allselectVersion3Obj["便利店"].AccountINC
.curYearData
}}</view>
<view class="tableRowItem rightBorder">{{
allselectVersion3Obj["便利店"].AccountINC
.increaseData
}}</view>
<view class="tableRowItem">{{
allselectVersion3Obj["便利店"].AccountINC
.increaseRate || ""
}}</view>
</view>
<view class="tableRow bottomBorder">
<view class="tableRowItem rightBorder">餐饮与客房</view>
<view class="tableRowItem rightBorder">{{
allselectVersion3Obj["餐饮客房"].AccountINC
.curYearData
}}</view>
<view class="tableRowItem rightBorder">{{
allselectVersion3Obj["餐饮客房"].AccountINC
.increaseData
}}</view>
<view class="tableRowItem">{{
allselectVersion3Obj["餐饮客房"].AccountINC
.increaseRate || ""
}}</view>
</view>
<view class="bigTableRow bottomBorder">
<view class="tableRowItem rightBorder">外包业务</view>
<view class="tableRowItem rightBorder">{{
allselectVersion3Obj["外包"].AccountINC
.curYearData
}}</view>
<view class="tableRowItem rightBorder">{{
allselectVersion3Obj["外包"].AccountINC
.increaseData
}}</view>
<view class="tableRowItem">{{
allselectVersion3Obj["外包"].AccountINC
.increaseRate || ""
}}</view>
</view>
<view class="tableRow">
<view class="tableRowItem rightBorder">商铺租赁</view>
<view class="tableRowItem rightBorder">{{
allselectVersion3Obj["商铺租赁"].AccountINC
.curYearData
}}</view>
<view class="tableRowItem rightBorder">{{
allselectVersion3Obj["商铺租赁"].AccountINC
.increaseData
}}</view>
<view class="tableRowItem">{{
allselectVersion3Obj["商铺租赁"].AccountINC
.increaseRate || ""
}}</view>
</view>
<view class="bigTableRow">
<view class="tableRowItem rightBorder">入区车流量</view>
<view class="tableRowItem rightBorder">{{
allselectVersion3Obj["累计"].BayonetINC
.curYearData
}}</view>
<view class="tableRowItem rightBorder">{{
allselectVersion3Obj["累计"].BayonetINC
.increaseData
}}</view>
<view class="tableRowItem">{{
allselectVersion3Obj["累计"].BayonetINC
.increaseRate
}}</view>
</view>
</view>
</view>
</div>
<div v-if="smallTab === 2" style="height: 550px">
<view class="bottomContentTitle">{{ `${selectMonth || "-"}月营业收入合计 (除税)` }}
<span class="unit">/万元</span>
</view>
<template>
<view class="bigTypeBox" style="margin-top: 8rpx">
<view class="normalTextBox">
<span class="normalText">总额</span>
<span class="typeValue">{{
selectVersion3Obj["累计"].AccountINC.curYearData
}}</span>
</view>
<view class="normalTextBox">
<image class="normalTextIcon" v-if="
selectVersion3Obj['累计'].AccountINC
.increaseRate
" :src="selectVersion3Obj['累计'].AccountINC
.increaseRate > 0
? 'https://eshangtech.com/ShopICO/ahyd-BID/newIndex3/addSelectVersion3.png'
: 'https://eshangtech.com/ShopICO/ahyd-BID/newIndex3/dropSelectVersion3.png'
" />
<span class="normalText">{{
selectVersion3Obj["累计"].AccountINC
.increaseRate > 0
? "增幅"
: selectVersion3Obj["累计"].AccountINC
.increaseRate < 0 ? "降幅" : "" }}</span>
<span class="typeValue">{{
selectVersion3Obj["累计"].AccountINC
.increaseRate || "-"
}}%</span>
</view>
</view>
<view class="bigTypeBox" style="margin-top: 24rpx">
<span class="bigType">自营业务</span>
<view class="normalTextBox">
<span class="normalText">合计</span>
<span class="typeValue">{{
selectVersion3Obj["自营"].AccountINC.curYearData
}}</span>
</view>
<view class="normalTextBox">
<image class="normalTextIcon" v-if="
selectVersion3Obj['自营'].AccountINC
.increaseRate
" :src="selectVersion3Obj['自营'].AccountINC
.increaseRate > 0
? 'https://eshangtech.com/ShopICO/ahyd-BID/newIndex3/addSelectVersion3.png'
: 'https://eshangtech.com/ShopICO/ahyd-BID/newIndex3/dropSelectVersion3.png'
" />
<span class="normalText">{{
selectVersion3Obj["自营"].AccountINC
.increaseRate > 0
? "增幅"
: selectVersion3Obj["自营"].AccountINC
.increaseRate < 0 ? "降幅" : "" }}</span>
<span class="typeValue">{{
selectVersion3Obj["自营"].AccountINC
.increaseRate || "-"
}}%</span>
</view>
</view>
<view class="bigTypeBox" style="margin-top: 12rpx">
<view class="normalTextBox">
<span class="smallTitle">便利店:</span>
<span class="typeValue">{{
selectVersion3Obj["便利店"].AccountINC.curYearData
}}</span>
</view>
<view class="normalTextBox">
<image class="normalTextIcon" v-if="
selectVersion3Obj['便利店'].AccountINC
.increaseData
" :src="selectVersion3Obj['便利店'].AccountINC
.increaseData > 0
? 'https://eshangtech.com/ShopICO/ahyd-BID/newIndex3/addSelectVersion3.png'
: 'https://eshangtech.com/ShopICO/ahyd-BID/newIndex3/dropSelectVersion3.png'
" />
<span class="normalText">{{
selectVersion3Obj["便利店"].AccountINC
.increaseData > 0
? "增长"
: selectVersion3Obj["便利店"].AccountINC
.increaseData < 0 ? "下降" : "" }}</span>
<span class="typeValue">{{
selectVersion3Obj["便利店"].AccountINC
.increaseData || "-"
}}</span>
</view>
<view class="normalTextBox">
<image class="normalTextIcon" v-if="
selectVersion3Obj['便利店'].AccountINC
.increaseRate
" :src="selectVersion3Obj['便利店'].AccountINC
.increaseRate > 0
? 'https://eshangtech.com/ShopICO/ahyd-BID/newIndex3/addSelectVersion3.png'
: 'https://eshangtech.com/ShopICO/ahyd-BID/newIndex3/dropSelectVersion3.png'
" />
<span class="normalText">{{
selectVersion3Obj["便利店"].AccountINC
.increaseRate > 0
? "增幅"
: selectVersion3Obj["便利店"].AccountINC
.increaseRate < 0 ? "降幅" : "" }}</span>
<span class="typeValue">{{
selectVersion3Obj["便利店"].AccountINC
.increaseRate || "-"
}}%</span>
</view>
</view>
<view class="bigTypeBox" style="margin-top: 12rpx">
<view class="normalTextBox">
<span class="smallTitle">餐饮客房:</span>
<span class="typeValue">{{
selectVersion3Obj["餐饮客房"].AccountINC
.curYearData
}}</span>
</view>
<view class="normalTextBox">
<image class="normalTextIcon" v-if="
selectVersion3Obj['餐饮客房'].AccountINC
.increaseData
" :src="selectVersion3Obj['餐饮客房'].AccountINC
.increaseData > 0
? 'https://eshangtech.com/ShopICO/ahyd-BID/newIndex3/addSelectVersion3.png'
: 'https://eshangtech.com/ShopICO/ahyd-BID/newIndex3/dropSelectVersion3.png'
" />
<span class="normalText">{{
selectVersion3Obj["餐饮客房"].AccountINC
.increaseData > 0
? "增长"
: selectVersion3Obj["餐饮客房"].AccountINC
.increaseData < 0 ? "下降" : "" }}</span>
<span class="typeValue">{{
selectVersion3Obj["餐饮客房"].AccountINC
.increaseData || "-"
}}</span>
</view>
<view class="normalTextBox">
<image class="normalTextIcon" v-if="
selectVersion3Obj['餐饮客房'].AccountINC
.increaseRate
" :src="selectVersion3Obj['餐饮客房'].AccountINC
.increaseRate > 0
? 'https://eshangtech.com/ShopICO/ahyd-BID/newIndex3/addSelectVersion3.png'
: 'https://eshangtech.com/ShopICO/ahyd-BID/newIndex3/dropSelectVersion3.png'
" />
<span class="normalText">{{
selectVersion3Obj["餐饮客房"].AccountINC
.increaseRate > 0
? "增幅"
: selectVersion3Obj["餐饮客房"].AccountINC
.increaseRate < 0 ? "降幅" : "" }}</span>
<span class="typeValue">{{
selectVersion3Obj["餐饮客房"].AccountINC
.increaseRate || "-"
}}%</span>
</view>
</view>
<view class="bigTypeBox" style="margin-top: 12rpx">
<span class="bigType">外包业务</span>
<view class="normalTextBox">
<span class="normalText">合计</span>
<span class="typeValue">{{
selectVersion3Obj["外包"].AccountINC.curYearData
}}</span>
</view>
<view class="normalTextBox">
<image class="normalTextIcon" v-if="
selectVersion3Obj['外包'].AccountINC
.increaseData
" :src="selectVersion3Obj['外包'].AccountINC
.increaseData > 0
? 'https://eshangtech.com/ShopICO/ahyd-BID/newIndex3/addSelectVersion3.png'
: 'https://eshangtech.com/ShopICO/ahyd-BID/newIndex3/dropSelectVersion3.png'
" />
<span class="normalText">{{
selectVersion3Obj["外包"].AccountINC
.increaseData > 0
? "增长"
: selectVersion3Obj["外包"].AccountINC
.increaseData < 0 ? "下降" : "" }}</span>
<span class="typeValue">{{
selectVersion3Obj["外包"].AccountINC
.increaseData || "-"
}}</span>
</view>
<view class="normalTextBox">
<image class="normalTextIcon" v-if="
selectVersion3Obj['外包'].AccountINC
.increaseRate
" :src="selectVersion3Obj['外包'].AccountINC
.increaseRate > 0
? 'https://eshangtech.com/ShopICO/ahyd-BID/newIndex3/addSelectVersion3.png'
: 'https://eshangtech.com/ShopICO/ahyd-BID/newIndex3/dropSelectVersion3.png'
" />
<span class="normalText">{{
selectVersion3Obj["外包"].AccountINC
.increaseRate > 0
? "增幅"
: selectVersion3Obj["外包"].AccountINC
.increaseRate < 0 ? "降幅" : "" }}</span>
<span class="typeValue">{{
selectVersion3Obj["外包"].AccountINC
.increaseRate || "-"
}}%</span>
</view>
</view>
<view class="bigTypeBox" style="margin-top: 12rpx">
<view class="normalTextBox">
<span class="smallTitle">商铺租赁:</span>
<span class="typeValue">{{
selectVersion3Obj["商铺租赁"].AccountINC
.curYearData
}}</span>
</view>
<view class="normalTextBox">
<image class="normalTextIcon" v-if="
selectVersion3Obj['商铺租赁'].AccountINC
.increaseData
" :src="selectVersion3Obj['商铺租赁'].AccountINC
.increaseData > 0
? 'https://eshangtech.com/ShopICO/ahyd-BID/newIndex3/addSelectVersion3.png'
: 'https://eshangtech.com/ShopICO/ahyd-BID/newIndex3/dropSelectVersion3.png'
" />
<span class="normalText">{{
selectVersion3Obj["商铺租赁"].AccountINC
.increaseData > 0
? "增长"
: selectVersion3Obj["商铺租赁"].AccountINC
.increaseData < 0 ? "下降" : "" }}</span>
<span class="typeValue">{{
selectVersion3Obj["商铺租赁"].AccountINC
.increaseData || "-"
}}</span>
</view>
<view class="normalTextBox">
<image class="normalTextIcon" v-if="
selectVersion3Obj['商铺租赁'].AccountINC
.increaseRate
" :src="selectVersion3Obj['商铺租赁'].AccountINC
.increaseRate > 0
? 'https://eshangtech.com/ShopICO/ahyd-BID/newIndex3/addSelectVersion3.png'
: 'https://eshangtech.com/ShopICO/ahyd-BID/newIndex3/dropSelectVersion3.png'
" />
<span class="normalText">{{
selectVersion3Obj["商铺租赁"].AccountINC
.increaseRate > 0
? "增幅"
: selectVersion3Obj["商铺租赁"].AccountINC
.increaseRate < 0 ? "降幅" : "" }}</span>
<span class="typeValue">{{
selectVersion3Obj["商铺租赁"].AccountINC
.increaseRate || "-"
}}%</span>
</view>
</view>
<view class="bigTypeBox" style="margin-top: 24rpx">
<span class="bigType">入区车流</span>
<view class="normalTextBox">
<span class="normalText">合计</span>
<span class="typeValue">{{
selectVersion3Obj["累计"].BayonetINC.curYearData
}}</span>
</view>
<view class="normalTextBox">
<image class="normalTextIcon" v-if="
selectVersion3Obj['累计'].BayonetINC
.increaseData
" :src="selectVersion3Obj['累计'].BayonetINC
.increaseData > 0
? 'https://eshangtech.com/ShopICO/ahyd-BID/newIndex3/addSelectVersion3.png'
: 'https://eshangtech.com/ShopICO/ahyd-BID/newIndex3/dropSelectVersion3.png'
" />
<span class="normalText">{{
selectVersion3Obj["累计"].BayonetINC
.increaseData > 0
? "增长"
: selectVersion3Obj["累计"].BayonetINC
.increaseData < 0 ? "下降" : "" }}</span>
<span class="typeValue">{{
selectVersion3Obj["累计"].BayonetINC
.increaseData || "-"
}}</span>
</view>
<view class="normalTextBox">
<image class="normalTextIcon" v-if="
selectVersion3Obj['累计'].BayonetINC
.increaseRate
" :src="selectVersion3Obj['累计'].BayonetINC
.increaseRate > 0
? 'https://eshangtech.com/ShopICO/ahyd-BID/newIndex3/addSelectVersion3.png'
: 'https://eshangtech.com/ShopICO/ahyd-BID/newIndex3/dropSelectVersion3.png'
" />
<span class="normalText">{{
selectVersion3Obj["累计"].BayonetINC
.increaseRate > 0
? "增幅"
: selectVersion3Obj["累计"].BayonetINC
.increaseRate < 0 ? "降幅" : "" }}</span>
<span class="typeValue">{{
selectVersion3Obj["累计"].BayonetINC
.increaseRate || "-"
}}%</span>
</view>
</view>
</template>
<view class="bottomContentTitle" style="margin-top: 32rpx">{{ `2024年累计营业收入 (除税)` }}
<span class="unit">/亿元</span>
</view>
<template>
<view class="bigTypeBox" style="margin-top: 8rpx">
<view class="normalTextBox">
<span class="normalText">总额</span>
<span class="typeValue">{{
allselectVersion3Obj["累计"].AccountINC
.curYearData
}}</span>
</view>
<view class="normalTextBox">
<image class="normalTextIcon" v-if="
allselectVersion3Obj['累计'].AccountINC
.increaseRate
" :src="allselectVersion3Obj['累计'].AccountINC
.increaseRate > 0
? 'https://eshangtech.com/ShopICO/ahyd-BID/newIndex3/addSelectVersion3.png'
: 'https://eshangtech.com/ShopICO/ahyd-BID/newIndex3/dropSelectVersion3.png'
" />
<span class="normalText">{{
allselectVersion3Obj["累计"].AccountINC
.increaseRate > 0
? "增幅"
: allselectVersion3Obj["累计"].AccountINC
.increaseRate < 0 ? "降幅" : "" }}</span>
<span class="typeValue">{{
allselectVersion3Obj["累计"].AccountINC
.increaseRate || "-"
}}%</span>
</view>
</view>
<view class="bigTypeBox" style="margin-top: 24rpx">
<span class="bigType">自营业务</span>
<view class="normalTextBox">
<span class="normalText">合计</span>
<span class="typeValue">{{
allselectVersion3Obj["自营"].AccountINC
.curYearData
}}</span>
</view>
<view class="normalTextBox">
<image class="normalTextIcon" v-if="
allselectVersion3Obj['自营'].AccountINC
.increaseRate
" :src="allselectVersion3Obj['自营'].AccountINC
.increaseRate > 0
? 'https://eshangtech.com/ShopICO/ahyd-BID/newIndex3/addSelectVersion3.png'
: 'https://eshangtech.com/ShopICO/ahyd-BID/newIndex3/dropSelectVersion3.png'
" />
<span class="normalText">{{
allselectVersion3Obj["自营"].AccountINC
.increaseRate > 0
? "增幅"
: allselectVersion3Obj["自营"].AccountINC
.increaseRate < 0 ? "降幅" : "" }}</span>
<span class="typeValue">{{
allselectVersion3Obj["自营"].AccountINC
.increaseRate || "-"
}}%</span>
</view>
</view>
<view class="bigTypeBox" style="margin-top: 12rpx">
<view class="normalTextBox">
<span class="smallTitle">便利店:</span>
<span class="typeValue">{{
allselectVersion3Obj["便利店"].AccountINC
.curYearData
}}</span>
</view>
<view class="normalTextBox">
<image class="normalTextIcon" v-if="
allselectVersion3Obj['便利店'].AccountINC
.increaseData
" :src="allselectVersion3Obj['便利店'].AccountINC
.increaseData > 0
? 'https://eshangtech.com/ShopICO/ahyd-BID/newIndex3/addSelectVersion3.png'
: 'https://eshangtech.com/ShopICO/ahyd-BID/newIndex3/dropSelectVersion3.png'
" />
<span class="normalText">{{
allselectVersion3Obj["便利店"].AccountINC
.increaseData > 0
? "增长"
: allselectVersion3Obj["便利店"].AccountINC
.increaseData < 0 ? "下降" : "" }}</span>
<span class="typeValue">{{
allselectVersion3Obj["便利店"].AccountINC
.increaseData || "-"
}}%</span>
</view>
<view class="normalTextBox">
<image class="normalTextIcon" v-if="
allselectVersion3Obj['便利店'].AccountINC
.increaseRate
" :src="allselectVersion3Obj['便利店'].AccountINC
.increaseRate > 0
? 'https://eshangtech.com/ShopICO/ahyd-BID/newIndex3/addSelectVersion3.png'
: 'https://eshangtech.com/ShopICO/ahyd-BID/newIndex3/dropSelectVersion3.png'
" />
<span class="normalText">{{
allselectVersion3Obj["便利店"].AccountINC
.increaseRate > 0
? "增幅"
: allselectVersion3Obj["便利店"].AccountINC
.increaseRate < 0 ? "降幅" : "" }}</span>
<span class="typeValue">{{
allselectVersion3Obj["便利店"].AccountINC
.increaseRate || "-"
}}%</span>
</view>
</view>
<view class="bigTypeBox" style="margin-top: 12rpx">
<view class="normalTextBox">
<span class="smallTitle">餐饮客房:</span>
<span class="typeValue">{{
allselectVersion3Obj["餐饮客房"].AccountINC
.curYearData
}}</span>
</view>
<view class="normalTextBox">
<image class="normalTextIcon" v-if="
allselectVersion3Obj['餐饮客房'].AccountINC
.increaseData
" :src="allselectVersion3Obj['餐饮客房'].AccountINC
.increaseData > 0
? 'https://eshangtech.com/ShopICO/ahyd-BID/newIndex3/addSelectVersion3.png'
: 'https://eshangtech.com/ShopICO/ahyd-BID/newIndex3/dropSelectVersion3.png'
" />
<span class="normalText">{{
allselectVersion3Obj["餐饮客房"].AccountINC
.increaseData > 0
? "增长"
: allselectVersion3Obj["餐饮客房"].AccountINC
.increaseData < 0 ? "下降" : "" }}</span>
<span class="typeValue">{{
allselectVersion3Obj["餐饮客房"].AccountINC
.increaseData || "-"
}}%</span>
</view>
<view class="normalTextBox">
<image class="normalTextIcon" v-if="
allselectVersion3Obj['餐饮客房'].AccountINC
.increaseRate
" :src="allselectVersion3Obj['餐饮客房'].AccountINC
.increaseRate > 0
? 'https://eshangtech.com/ShopICO/ahyd-BID/newIndex3/addSelectVersion3.png'
: 'https://eshangtech.com/ShopICO/ahyd-BID/newIndex3/dropSelectVersion3.png'
" />
<span class="normalText">{{
allselectVersion3Obj["餐饮客房"].AccountINC
.increaseRate > 0
? "增幅"
: allselectVersion3Obj["餐饮客房"].AccountINC
.increaseRate < 0 ? "降幅" : "" }}</span>
<span class="typeValue">{{
allselectVersion3Obj["餐饮客房"].AccountINC
.increaseRate || "-"
}}%</span>
</view>
</view>
<view class="bigTypeBox" style="margin-top: 12rpx">
<span class="bigType">外包业务</span>
<view class="normalTextBox">
<span class="normalText">合计</span>
<span class="typeValue">{{
allselectVersion3Obj["外包"].AccountINC
.curYearData
}}</span>
</view>
<view class="normalTextBox">
<image class="normalTextIcon" v-if="
allselectVersion3Obj['外包'].AccountINC
.increaseData
" :src="allselectVersion3Obj['外包'].AccountINC
.increaseData > 0
? 'https://eshangtech.com/ShopICO/ahyd-BID/newIndex3/addSelectVersion3.png'
: 'https://eshangtech.com/ShopICO/ahyd-BID/newIndex3/dropSelectVersion3.png'
" />
<span class="normalText">{{
allselectVersion3Obj["外包"].AccountINC
.increaseData > 0
? "增长"
: allselectVersion3Obj["外包"].AccountINC
.increaseData < 0 ? "下降" : "" }}</span>
<span class="typeValue">{{
allselectVersion3Obj["外包"].AccountINC
.increaseData || "-"
}}%</span>
</view>
<view class="normalTextBox">
<image class="normalTextIcon" v-if="
allselectVersion3Obj['外包'].AccountINC
.increaseRate
" :src="allselectVersion3Obj['外包'].AccountINC
.increaseRate > 0
? 'https://eshangtech.com/ShopICO/ahyd-BID/newIndex3/addSelectVersion3.png'
: 'https://eshangtech.com/ShopICO/ahyd-BID/newIndex3/dropSelectVersion3.png'
" />
<span class="normalText">{{
allselectVersion3Obj["外包"].AccountINC
.increaseRate > 0
? "增幅"
: allselectVersion3Obj["外包"].AccountINC
.increaseRate < 0 ? "降幅" : "" }}</span>
<span class="typeValue">{{
allselectVersion3Obj["外包"].AccountINC
.increaseRate || "-"
}}%</span>
</view>
</view>
<view class="bigTypeBox" style="margin-top: 12rpx">
<view class="normalTextBox">
<span class="smallTitle">商铺租赁:</span>
<span class="typeValue">{{
allselectVersion3Obj["商铺租赁"].AccountINC
.curYearData
}}</span>
</view>
<view class="normalTextBox">
<image class="normalTextIcon" v-if="
allselectVersion3Obj['商铺租赁'].AccountINC
.increaseData
" :src="allselectVersion3Obj['商铺租赁'].AccountINC
.increaseData > 0
? 'https://eshangtech.com/ShopICO/ahyd-BID/newIndex3/addSelectVersion3.png'
: 'https://eshangtech.com/ShopICO/ahyd-BID/newIndex3/dropSelectVersion3.png'
" />
<span class="normalText">{{
allselectVersion3Obj["商铺租赁"].AccountINC
.increaseData > 0
? "增长"
: allselectVersion3Obj["商铺租赁"].AccountINC
.increaseData < 0 ? "下降" : "" }}</span>
<span class="typeValue">{{
allselectVersion3Obj["商铺租赁"].AccountINC
.increaseData || "-"
}}%</span>
</view>
<view class="normalTextBox">
<image class="normalTextIcon" v-if="
allselectVersion3Obj['商铺租赁'].AccountINC
.increaseRate
" :src="allselectVersion3Obj['商铺租赁'].AccountINC
.increaseRate > 0
? 'https://eshangtech.com/ShopICO/ahyd-BID/newIndex3/addSelectVersion3.png'
: 'https://eshangtech.com/ShopICO/ahyd-BID/newIndex3/dropSelectVersion3.png'
" />
<span class="normalText">{{
allselectVersion3Obj["商铺租赁"].AccountINC
.increaseRate > 0
? "增幅"
: allselectVersion3Obj["商铺租赁"].AccountINC
.increaseRate < 0 ? "降幅" : "" }}</span>
<span class="typeValue">{{
allselectVersion3Obj["商铺租赁"].AccountINC
.increaseRate || "-"
}}%</span>
</view>
</view>
<view class="bigTypeBox" style="margin-top: 24rpx">
<span class="bigType">入区车流</span>
<view class="normalTextBox">
<span class="normalText">合计</span>
<span class="typeValue">{{
allselectVersion3Obj["累计"].BayonetINC
.curYearData
}}</span>
</view>
<view class="normalTextBox">
<image class="normalTextIcon" v-if="
allselectVersion3Obj['累计'].BayonetINC
.increaseData
" :src="allselectVersion3Obj['累计'].BayonetINC
.increaseData > 0
? 'https://eshangtech.com/ShopICO/ahyd-BID/newIndex3/addSelectVersion3.png'
: 'https://eshangtech.com/ShopICO/ahyd-BID/newIndex3/dropSelectVersion3.png'
" />
<span class="normalText">{{
allselectVersion3Obj["累计"].BayonetINC
.increaseData > 0
? "增长"
: allselectVersion3Obj["累计"].BayonetINC
.increaseData < 0 ? "下降" : "" }}</span>
<span class="typeValue">{{
allselectVersion3Obj["累计"].BayonetINC
.increaseData || "-"
}}%</span>
</view>
<view class="normalTextBox">
<image class="normalTextIcon" v-if="
allselectVersion3Obj['累计'].BayonetINC
.increaseRate
" :src="allselectVersion3Obj['累计'].BayonetINC
.increaseRate > 0
? 'https://eshangtech.com/ShopICO/ahyd-BID/newIndex3/addSelectVersion3.png'
: 'https://eshangtech.com/ShopICO/ahyd-BID/newIndex3/dropSelectVersion3.png'
" />
<span class="normalText">{{
allselectVersion3Obj["累计"].BayonetINC
.increaseRate > 0
? "增幅"
: allselectVersion3Obj["累计"].BayonetINC
.increaseRate < 0 ? "降幅" : "" }}</span>
<span class="typeValue">{{
allselectVersion3Obj["累计"].BayonetINC
.increaseRate || "-"
}}%</span>
</view>
</view>
</template>
</div>
<div v-if="smallTab === 3" style="height: 570px">
<view class="titleRow">{{ `${selectMonth || "-"}月营业收入合计 (除税)`
}}<span class="unit">/万元</span></view>
<template>
<view class="contentRow">总额:{{
selectVersion3Obj["累计"].AccountINC.curYearData
}}万元,同比{{
selectVersion3Obj["累计"].AccountINC.increaseRate >
0
? "增幅"
: selectVersion3Obj["累计"].AccountINC
.increaseRate < 0 ? "降幅" : "" }}{{ selectVersion3Obj["累计"].AccountINC.increaseRate
|| "-" }}%</view>
<view class="contentRow"><span class="contentTitle">自营业务:</span>(总额:{{
selectVersion3Obj["自营"].AccountINC.curYearData
}}万元,同比{{
selectVersion3Obj["自营"].AccountINC.increaseRate >
0
? "增幅"
: selectVersion3Obj["自营"].AccountINC
.increaseRate < 0 ? "降幅" : "" }}{{ selectVersion3Obj["自营"].AccountINC.increaseRate
}}万元);</view>
<view class="contentRow">
<span class="point"></span>
<span class="contentTitle">便利店:</span>{{
selectVersion3Obj["便利店"].AccountINC.curYearData
}}万元,{{
selectVersion3Obj["便利店"].AccountINC
.increaseData > 0
? "增长"
: selectVersion3Obj["便利店"].AccountINC
.increaseData < 0 ? "下降" : "" }}{{ selectVersion3Obj["便利店"].AccountINC
.increaseData || "-" }}万元,同比{{ selectVersion3Obj["便利店"].AccountINC
.increaseRate > 0
? "增幅"
: selectVersion3Obj["便利店"].AccountINC
.increaseRate < 0 ? "降幅" : "" }}{{ selectVersion3Obj["便利店"].AccountINC
.increaseRate || "-" }}%; </view>
<view class="contentRow">
<span class="point"></span>
<span class="contentTitle">餐饮客房:</span>{{
selectVersion3Obj["餐饮客房"].AccountINC
.curYearData
}}万元,{{
selectVersion3Obj["餐饮客房"].AccountINC
.increaseData > 0
? "增长"
: selectVersion3Obj["餐饮客房"].AccountINC
.increaseData < 0 ? "下降" : "" }}{{ selectVersion3Obj["餐饮客房"].AccountINC
.increaseData || "-" }}万元,同比{{ selectVersion3Obj["餐饮客房"].AccountINC
.increaseRate > 0
? "增幅"
: selectVersion3Obj["餐饮客房"].AccountINC
.increaseRate < 0 ? "降幅" : "" }}{{ selectVersion3Obj["餐饮客房"].AccountINC
.increaseRate || "-" }}%; </view>
<view class="contentRow"><span class="contentTitle">外包业务:</span>(总额:{{
selectVersion3Obj["外包"].AccountINC.curYearData
}}万元,同比{{
selectVersion3Obj["外包"].AccountINC.increaseRate >
0
? "增幅"
: selectVersion3Obj["外包"].AccountINC
.increaseRate < 0 ? "降幅" : "" }}{{
selectVersion3Obj["外包"].AccountINC.increaseRate }}万元);</view>
<view class="contentRow">
<span class="point"></span>
<span class="contentTitle">商铺租赁:</span>{{
selectVersion3Obj["商铺租赁"].AccountINC
.curYearData
}}万元,{{
selectVersion3Obj["商铺租赁"].AccountINC
.increaseData > 0
? "增长"
: selectVersion3Obj["商铺租赁"].AccountINC
.increaseData < 0 ? "下降" : "" }}{{
selectVersion3Obj["商铺租赁"].AccountINC.increaseData || "-"
}}万元,同比{{ selectVersion3Obj["商铺租赁"].AccountINC.increaseRate >
0
? "增幅"
: selectVersion3Obj["商铺租赁"].AccountINC
.increaseRate < 0 ? "降幅" : "" }}{{
selectVersion3Obj["商铺租赁"].AccountINC.increaseRate || "-"
}}%; </view>
<view class="contentRow">
<span class="contentTitle">入区车流:</span>
{{
selectVersion3Obj["累计"].BayonetINC.curYearData
}}万辆,{{
selectVersion3Obj["累计"].BayonetINC.increaseData >
0
? "增长"
: selectVersion3Obj["累计"].BayonetINC
.increaseData < 0 ? "下降" : "" }}{{
selectVersion3Obj["累计"].BayonetINC.increaseData || "-"
}}万辆,同比{{
selectVersion3Obj["累计"].BayonetINC.increaseRate >
0
? "增幅"
: selectVersion3Obj["累计"].BayonetINC
.increaseRate < 0 ? "降幅" : "" }}{{
selectVersion3Obj["累计"].BayonetINC.increaseRate || "-"
}}%; </view>
</template>
<view class="titleRow" style="margin-top: 24rpx">{{ `2024年累计营业收入 (除税)`
}}<span class="unit">/亿元</span></view>
<template>
<view class="contentRow">总额:{{
allselectVersion3Obj["累计"].AccountINC.curYearData
}}亿元,同比{{
allselectVersion3Obj["累计"].AccountINC
.increaseRate > 0
? "增幅"
: allselectVersion3Obj["累计"].AccountINC
.increaseRate < 0 ? "降幅" : "" }}{{ allselectVersion3Obj["累计"].AccountINC.increaseRate
|| "-" }}%</view>
<view class="contentRow"><span class="contentTitle">自营业务:</span>(总额:{{
allselectVersion3Obj["自营"].AccountINC.curYearData
}}亿元,同比{{
allselectVersion3Obj["自营"].AccountINC
.increaseRate > 0
? "增幅"
: allselectVersion3Obj["自营"].AccountINC
.increaseRate < 0 ? "降幅" : "" }}{{ allselectVersion3Obj["自营"].AccountINC
.increaseRate }}亿元);</view>
<view class="contentRow">
<span class="point"></span>
<span class="contentTitle">便利店:</span>{{
allselectVersion3Obj["便利店"].AccountINC
.curYearData
}}亿元,{{
allselectVersion3Obj["便利店"].AccountINC
.increaseData > 0
? "增长"
: allselectVersion3Obj["便利店"].AccountINC
.increaseData < 0 ? "下降" : "" }}{{ allselectVersion3Obj["便利店"].AccountINC
.increaseData || "-" }}亿元,同比{{ allselectVersion3Obj["便利店"].AccountINC
.increaseRate > 0
? "增幅"
: allselectVersion3Obj["便利店"].AccountINC
.increaseRate < 0 ? "降幅" : "" }}{{ allselectVersion3Obj["便利店"].AccountINC
.increaseRate || "-" }}%; </view>
<view class="contentRow">
<span class="point"></span>
<span class="contentTitle">餐饮客房:</span>{{
allselectVersion3Obj["餐饮客房"].AccountINC
.curYearData
}}亿元,{{
allselectVersion3Obj["餐饮客房"].AccountINC
.increaseData > 0
? "增长"
: allselectVersion3Obj["餐饮客房"].AccountINC
.increaseData < 0 ? "下降" : "" }}{{ allselectVersion3Obj["餐饮客房"].AccountINC
.increaseData || "-" }}亿元,同比{{ allselectVersion3Obj["餐饮客房"].AccountINC
.increaseRate > 0
? "增幅"
: allselectVersion3Obj["餐饮客房"].AccountINC
.increaseRate < 0 ? "降幅" : "" }}{{
allselectVersion3Obj["餐饮客房"].AccountINC.increaseRate || "-" }}%;
</view>
<view class="contentRow"><span class="contentTitle">外包业务:</span>(总额:{{
allselectVersion3Obj["外包"].AccountINC.curYearData
}}亿元,同比{{
allselectVersion3Obj["外包"].AccountINC
.increaseRate > 0
? "增幅"
: allselectVersion3Obj["外包"].AccountINC
.increaseRate < 0 ? "降幅" : "" }}{{
allselectVersion3Obj["外包"].AccountINC.increaseRate }}亿元);</view>
<view class="contentRow">
<span class="point"></span>
<span class="contentTitle">商铺租赁:</span>{{
allselectVersion3Obj["商铺租赁"].AccountINC
.curYearData
}}亿元,{{
allselectVersion3Obj["商铺租赁"].AccountINC
.increaseData > 0
? "增长"
: allselectVersion3Obj["商铺租赁"].AccountINC
.increaseData < 0 ? "下降" : "" }}{{
allselectVersion3Obj["商铺租赁"].AccountINC.increaseData || "-"
}}亿元,同比{{ allselectVersion3Obj["商铺租赁"].AccountINC
.increaseRate > 0
? "增幅"
: allselectVersion3Obj["商铺租赁"].AccountINC
.increaseRate < 0 ? "降幅" : "" }}{{
allselectVersion3Obj["商铺租赁"].AccountINC.increaseRate || "-"
}}%; </view>
<view class="contentRow">
<span class="contentTitle">入区车流:</span>
{{
allselectVersion3Obj["累计"].BayonetINC.curYearData
}}亿辆,{{
allselectVersion3Obj["累计"].BayonetINC
.increaseData > 0
? "增长"
: allselectVersion3Obj["累计"].BayonetINC
.increaseData < 0 ? "下降" : "" }}{{
allselectVersion3Obj["累计"].BayonetINC.increaseData
|| "-" }}亿辆,同比{{ allselectVersion3Obj["累计"].BayonetINC
.increaseRate > 0
? "增幅"
: allselectVersion3Obj["累计"].BayonetINC
.increaseRate < 0 ? "降幅" : "" }}{{
allselectVersion3Obj["累计"].BayonetINC.increaseRate
|| "-" }}%; </view>
</template>
</div>
<div v-if="smallTab === 4" style="height: 390px">
<view class="tableBox">
<view class="tableHeader bottomBorder">
<view class="tableHeaderItem rightBorder">类别</view>
<view class="tableHeaderItem rightBorder">合计</view>
<view class="tableHeaderItem rightBorder">同比增长</view>
<view class="tableHeaderItem">同比增幅</view>
</view>
<view class="tableContent bottomBorder">
<view class="bigTableRow bottomBorder">
<view class="tableRowItem rightBorder">自营业务</view>
<view class="tableRowItem rightBorder">{{
allselectVersion3Obj["自营"].AccountINC
.curYearData
}}</view>
<view class="tableRowItem rightBorder">{{
allselectVersion3Obj["自营"].AccountINC
.increaseData
}}</view>
<view class="tableRowItem">{{
allselectVersion3Obj["自营"].AccountINC
.increaseRate || ""
}}</view>
</view>
<view class="tableRow bottomBorder">
<view class="tableRowItem rightBorder">便利店</view>
<view class="tableRowItem rightBorder">{{
allselectVersion3Obj["便利店"].AccountINC
.curYearData
}}</view>
<view class="tableRowItem rightBorder">{{
allselectVersion3Obj["便利店"].AccountINC
.increaseData
}}</view>
<view class="tableRowItem">{{
allselectVersion3Obj["便利店"].AccountINC
.increaseRate || ""
}}</view>
</view>
<view class="tableRow bottomBorder">
<view class="tableRowItem rightBorder">餐饮与客房</view>
<view class="tableRowItem rightBorder">{{
allselectVersion3Obj["餐饮客房"].AccountINC
.curYearData
}}</view>
<view class="tableRowItem rightBorder">{{
allselectVersion3Obj["餐饮客房"].AccountINC
.increaseData
}}</view>
<view class="tableRowItem">{{
allselectVersion3Obj["餐饮客房"].AccountINC
.increaseRate || ""
}}</view>
</view>
<view class="bigTableRow bottomBorder">
<view class="tableRowItem rightBorder">外包业务</view>
<view class="tableRowItem rightBorder">{{
allselectVersion3Obj["外包"].AccountINC
.curYearData
}}</view>
<view class="tableRowItem rightBorder">{{
allselectVersion3Obj["外包"].AccountINC
.increaseData
}}</view>
<view class="tableRowItem">{{
allselectVersion3Obj["外包"].AccountINC
.increaseRate || ""
}}</view>
</view>
<view class="tableRow">
<view class="tableRowItem rightBorder">商铺租赁</view>
<view class="tableRowItem rightBorder">{{
allselectVersion3Obj["商铺租赁"].AccountINC
.curYearData
}}</view>
<view class="tableRowItem rightBorder">{{
allselectVersion3Obj["商铺租赁"].AccountINC
.increaseData
}}</view>
<view class="tableRowItem">{{
allselectVersion3Obj["商铺租赁"].AccountINC
.increaseRate || ""
}}</view>
</view>
<view class="bigTableRow">
<view class="tableRowItem rightBorder">入区车流量</view>
<view class="tableRowItem rightBorder">{{
allselectVersion3Obj["累计"].BayonetINC
.curYearData
}}</view>
<view class="tableRowItem rightBorder">{{
allselectVersion3Obj["累计"].BayonetINC
.increaseData
}}</view>
<view class="tableRowItem">{{
allselectVersion3Obj["累计"].BayonetINC
.increaseRate
}}</view>
</view>
</view>
</view>
</div>
</div>
</view>
<view class="bigBox sss" v-else>
<view class="box">
<view class="top" style="height: 640rpx">
<view class="topTop">
<view class="statistics" @click="goToRevenueStatic">
<image class="staticImg"
src="https://eshangtech.com/ShopICO/ahyd-BID/newIndex/3stStaticIcon.svg" />
<text class="staticTitle">{{ `-月对客销售` }}</text>
<span class="staticUnit">/万元</span>
<view class="moreIcon" @click.stop="changeShowRealBox">
<image class="noticeIcon"
src="https://eshangtech.com/ShopICO/ahyd-BID/newIndex3/noticeIcon.svg" />
<view v-if="showRealBox" class="realBox" @click.stop="changeShowRealBox">
<view class="field">
<view class="label">对客销售:</view>
<view class="value">{{ "-" }}</view>
</view>
<view class="field">
<view class="label">自营销售:</view>
<view class="value">{{ "-" }}</view>
</view>
<view class="field">
<view class="label" style="padding-left: 20rpx">便利店:</view>
<view class="value">{{ "-" }}</view>
</view>
<view class="field">
<view class="label" style="padding-left: 20rpx">餐饮客房:</view>
<view class="value">{{ "-" }}</view>
</view>
<view class="field">
<view class="label">外租收入:</view>
<view class="value">{{ "-" }}</view>
</view>
<view class="field">
<view class="label" style="padding-left: 20rpx">商铺租赁:</view>
<view class="value">{{ "-" }}</view>
</view>
</view>
</view>
</view>
<view class="haveMore" @click="goToRevenueStatic">
<text class="haveMoreText">查看更多</text>
<image class="haveMoreICon"
src="https://eshangtech.com/ShopICO/ahyd-BID/newIndex3/haveMoreICon.svg" />
</view>
</view>
<view class="revenueBox" v-show="selectMonth === index + 1 ||
selectMonth ===
((index + 1) % 12 === 0 ? 12 : (index + 1) % 12)
">
<view class="revenueTop">
<view class="revenueTopLeft">
<text class="revenueNumber">{{
showTableData.CashPayChange
? showTableData.CashPayChange
: "0.00"
}}</text>
</view>
<view class="revenueTopRight" v-if="showTableData.add">
<text class="addValue" :style="{
color:
showTableData.add > 0
? '#E83944'
: showTableData.add < 0
? '#0E9976'
: '',
}">{{ "-" }}%</text>
<text class="rightNav">同比</text>
</view>
</view>
<view class="revenueNav"> </view>
<view class="newBox">
<view class="moneyRate">
<view class="leftBox" @click="handleShowYDModal" v-if="showRateChart">
<view class="rateChartsBox">
<rateCharts :success="moneyRateList" :colorList="1 <= selectMonth && selectMonth <= 3
? ['#1677FE', '#456497', '#97A9C6']
: 4 <= selectMonth && selectMonth <= 6
? ['#1677FE', '#456497', '#97A9C6']
: 7 <= selectMonth && selectMonth <= 9
? ['#1677FE', '#456497', '#97A9C6']
: ['#1677FE', '#456497', '#97A9C6']
" :name="`${selectMonth}rate`" />
</view>
<view class="haveNoticeBox" v-if="ydModal" @click.stop="handleShowYDModal">
<view class="field">
<view class="label">便利店:</view>
<view class="value">-%</view>
</view>
<view class="field">
<view class="label">餐饮客房:</view>
<view class="value">-%</view>
</view>
<view class="field">
<view class="label">商铺租赁:</view>
<view class="value">-%</view>
</view>
</view>
</view>
<view class="newRightBox">
<view class="newRightItem" v-for="(subItem, subIndex) in profitSharingList"
:key="subIndex">
<view class="itemLeft">
<view class="itemIcon" :style="{
background:
subIndex === 0
? '#1677FE'
: subIndex === 1
? '#456497'
: subIndex === 2
? '#97A9C6'
: '',
}"></view>
<span class="itemName">-</span>
</view>
<view class="itemCenter">-</view>
<view class="itemRight" :style="{
color:
subItem.add > 0
? '#E83944'
: subItem.add < 0
? '#0E9976'
: '',
}">-</view>
</view>
</view>
</view>
</view>
<view class="accountRevenue">
<view class="accountItem" style="margin-bottom: 24rpx">
<view class="itemTop">
<view class="itemName">对客销售<span class="unit">/亿元</span></view>
<view class="itemType">累计</view>
</view>
<view class="itemBottom">
<span class="revenueNum">-</span>
<span class="revenueAdd" :style="{
color:
showTableData.YearRevenueAddNumber > 0
? '#E83944'
: showTableData.YearRevenueAddNumber < 0
? '#0E9976'
: '',
}">-</span>
<span class="revenueAdd" :style="{
color:
showTableData.YearRevenueAdd > 0
? '#E83944'
: showTableData.YearRevenueAdd < 0
? '#0E9976'
: '',
}">-</span>
</view>
</view>
<view class="accountItem">
<view class="itemTop">
<view class="itemName">营业收入<span class="unit">/亿元</span></view>
<view class="itemType">除税累计</view>
</view>
<view class="itemBottom">
<span class="revenueNum">-</span>
<span class="revenueAdd" :style="{
color:
showTableData.YearAccountAddNumber > 0
? '#E83944'
: showTableData.YearAccountAddNumber < 0
? '#0E9976'
: '',
}">-</span>
<span class="revenueAdd" :style="{
color:
showTableData.YearAccountAdd > 0
? '#E83944'
: showTableData.YearAccountAdd < 0
? '#0E9976'
: '',
}">-</span>
</view>
</view>
</view>
</view>
<view class="revenueBox" v-show="selectMonth !== index + 1 &&
selectMonth !==
((index + 1) % 12 === 0 ? 12 : (index + 1) % 12)
">
<view class="revenueTop">
<view class="revenueTopLeft">
<text class="revenueNumber">-</text>
<view class="moreIcon" @click="changeShowRealBox">?
<view v-if="showRealBox" class="realBox" @click.stop="changeShowRealBox">
<view><text class="label">对客营收:</text>-</view>
<view><text class="label">自营收入:</text>-</view>
<view><text class="label">外租收入:</text>-</view>
</view>
</view>
</view>
<view class="revenueTopRight"> </view>
</view>
<view class="revenueNav">
<text class="leftNav">-月对客营收<text class="unit">/万元</text></text>
<text class="rightNav">同比</text>
</view>
<view class="progress" :style="{
background:
1 <= selectMonth && selectMonth <= 3
? '#FFAB30'
: 4 <= selectMonth && selectMonth <= 6
? '#5DC1E0'
: 7 <= selectMonth && selectMonth <= 9
? '#7CADF8'
: '#DCA858',
}">
<view class="have" :style="{
background:
1 <= selectMonth && selectMonth <= 3
? '#DB573B'
: 4 <= selectMonth && selectMonth <= 6
? '#137BBD'
: 7 <= selectMonth && selectMonth <= 9
? '#3663CB'
: '#A66A37',
}"></view>
</view>
<view class="message">
<view class="smallDetailItem" style="margin-right: 14px">
<view class="messageTop">
<view class="type" :style="{
background:
1 <= selectMonth && selectMonth <= 3
? '#DB573B'
: 4 <= selectMonth && selectMonth <= 6
? '#137BBD'
: 7 <= selectMonth && selectMonth <= 9
? '#3663CB'
: '#A66A37',
}"></view>
<text class="typeTitle">自营收入<text class="unit">/万元</text></text>
</view>
<view class="middle">
<text class="money">-</text>
<view class="addItem">-</view>
</view>
<view class="messageBottom">
<text class="addText">-</text>
<text class="addType">同比</text>
</view>
</view>
<view class="smallDetailItem">
<view class="messageTop">
<view class="type" :style="{
background:
1 <= selectMonth && selectMonth <= 3
? '#FFAB30'
: 4 <= selectMonth && selectMonth <= 6
? '#5DC1E0'
: 7 <= selectMonth && selectMonth <= 9
? '#7CADF8'
: '#DCA858',
}"></view>
<text class="typeTitle">外租收入<text class="unit">/万元</text></text>
</view>
<view class="middle">
<text class="money">-</text>
<!-- <view class="addItem">+13.18%</view>-->
</view>
<view class="messageBottom">
<text class="addText">-</text>
<text class="addType">同比</text>
</view>
</view>
</view>
</view>
</view>
</view>
<view class="bottom" style="height: 60rpx" v-if="!loadMore">
<!-- <view class="bottom" v-if="false" @click="handleChangeLoadMore">-->
<text class="searchText">查看更多</text>
<image class="searchIcon" :style="{
height: '16px',
transform: loadMore ? 'rotate(180deg)' : '',
}" src="https://eshangtech.com/ShopICO/ahyd-BID/newIndex3/goMore.svg" />
</view>
<div class="otherDetail sss" v-else>
<view class="detail" v-show="selectMonth === index + 1 ||
selectMonth ===
((index + 1) % 12 === 0 ? 12 : (index + 1) % 12)
">
<view class="detailMessage">
<view class="otherDetailTop">
<view class="otherDetailTopLeft">
<view class="yearAll">-</view>
<view class="yearLabel">年度累计<text class="unit">/亿元</text></view>
</view>
<view class="otherDetailRight">
<view class="otherDetailAddBox">
<image class="otherDetailAddIcon" :src="Number(showTableData.yearYoY) > 0
? 'https://eshangtech.com/ShopICO/ahyd-BID/examine/add.svg'
: Number(yesObj.yearYOY) < 0
? 'https://eshangtech.com/ShopICO/ahyd-BID/examine/reduce.svg'
: ''
" />
<text class="otherDetailAddValue">-</text>
</view>
<view class="otherDetailAddLabel">同比</view>
</view>
</view>
<view class="otherDetailMiddle">
<view class="middleItem" style="margin-bottom: 16rpx">
<text class="itemLabel">对客营收<text class="itemText">/环比</text></text>
<text class="itemValue">-</text>
</view>
<view class="middleItem" style="margin-bottom: 16rpx">
<text class="itemLabel">自营收入<text class="itemText">/环比</text></text>
<text class="itemValue">-</text>
</view>
<view class="middleItem">
<text class="itemLabel">外租收入<text class="itemText">/环比</text></text>
<text class="itemValue">-</text>
</view>
</view>
<view class="otherDetailBottom">
<view class="bottomItem" @click="handleShowTrafficDetail" style="margin-bottom: 16rpx">
<view class="bottomSmallItem">
<view class="itemLeft">
<image class="leftIcon" :src="1 <= selectMonth && selectMonth <= 3
? 'https://eshangtech.com/ShopICO/ahyd-BID/newIndex/1stEntryCar.svg'
: 4 <= selectMonth && selectMonth <= 6
? 'https://eshangtech.com/ShopICO/ahyd-BID/newIndex/2stEntryCar.svg'
: 7 <= selectMonth && selectMonth <= 9
? 'https://eshangtech.com/ShopICO/ahyd-BID/newIndex/3stEntryCar.svg'
: 'https://eshangtech.com/ShopICO/ahyd-BID/newIndex/4stEntryCar.svg'
" />
<text class="itemTitle">入区车流</text>
</view>
<view class="itemCenter"> </view>
<view class="itemRight">
<text class="itemValue">-</text>
<text class="itemText">-</text>
</view>
</view>
<view class="bottomSmallItem">
<view class="itemLeft"> </view>
<view class="itemCenter">
<text class="itemValue">-</text>
<text class="itemText">/同比</text>
</view>
<view class="itemRight">
<text class="itemValue">-</text>
<text class="itemText">/环比</text>
</view>
</view>
</view>
<view class="bottomItem" @click="handleShowTrafficDetail" style="margin-bottom: 16rpx">
<view class="bottomSmallItem">
<view class="itemLeft">
<image class="leftIcon" :src="1 <= selectMonth && selectMonth <= 3
? 'https://eshangtech.com/ShopICO/ahyd-BID/newIndex/1stEntryRate.svg'
: 4 <= selectMonth && selectMonth <= 6
? 'https://eshangtech.com/ShopICO/ahyd-BID/newIndex/2stEntryRate.svg'
: 7 <= selectMonth && selectMonth <= 9
? 'https://eshangtech.com/ShopICO/ahyd-BID/newIndex/3stEntryRate.svg'
: 'https://eshangtech.com/ShopICO/ahyd-BID/newIndex/4stEntryRate.svg'
" />
<text class="itemTitle">入区率</text>
</view>
<view class="itemCenter"> </view>
<view class="itemRight">
<text class="itemValue">-</text>
</view>
</view>
<view class="bottomSmallItem">
<view class="itemLeft"> </view>
<view class="itemCenter">
<text class="itemValue">-</text>
<text class="itemText">/同比</text>
</view>
<view class="itemRight">
<text class="itemValue">-</text>
<text class="itemText">/环比</text>
</view>
</view>
</view>
<view class="bottomItem">
<view class="bottomSmallItem">
<view class="itemLeft">
<image class="leftIcon" :src="1 <= selectMonth && selectMonth <= 3
? 'https://eshangtech.com/ShopICO/ahyd-BID/newIndex/1stEntryFix.svg'
: 4 <= selectMonth && selectMonth <= 6
? 'https://eshangtech.com/ShopICO/ahyd-BID/newIndex/2stEntryFix.svg'
: 7 <= selectMonth && selectMonth <= 9
? 'https://eshangtech.com/ShopICO/ahyd-BID/newIndex/3stEntryFix.svg'
: 'https://eshangtech.com/ShopICO/ahyd-BID/newIndex/4stEntryFix.svg'
" />
<text class="itemTitle">停留时长</text>
</view>
<view class="itemCenter"> </view>
<view class="itemRight">
<text class="itemValue">-</text>
</view>
</view>
<view class="bottomSmallItem">
<view class="itemLeft"> </view>
<view class="itemCenter">
<text class="itemValue">-</text>
<text class="itemText">/同比</text>
</view>
<view class="itemRight">
<text class="itemValue">-</text>
<text class="itemText">/环比</text>
</view>
</view>
</view>
<view class="monthDetail" @click.stop="handleShowTrafficDetail" v-if="false">
<view class="monthItem">
<text class="label">{{
`${index + 1}月入区车流`
}}</text>
<text class="value">-</text>
</view>
<view class="monthItem">
<text class="label">{{
`${index + 1}月入区率`
}}</text>
<text class="value">-</text>
</view>
<view class="monthItem">
<text class="label">{{
`${index + 1}月停留时长`
}}</text>
<text class="value">-</text>
</view>
</view>
</view>
</view>
<div class="noShowMoreBox" @click="handleChangeLoadMore">
<image v-if="loadMore" class="noShowMore" :style="{
transform: `${loadMore ? 'rotate(-90deg)' : ''}`,
}" src="https://eshangtech.com/ShopICO/ahyd-BID/newIndex3/goMore.svg" />
</div>
</view>
<view class="detail" v-if="false" v-show="selectMonthIndex !== index + 1 ||
selectMonthIndex !==
((index + 1) % 12 === 0 ? 12 : (index + 1) % 12)
">
<view class="detailItem">
<p class="price">-</p>
<p class="itemName">
长款金额<text class="itemUnit">/元</text>
</p>
</view>
<view class="detailItem">
<p class="price">-</p>
<p class="itemName">
短款金额<text class="itemUnit">/元</text>
</p>
</view>
<view class="detailItem">
<p class="price">-</p>
<p class="itemName">
优惠金额<text class="itemUnit">/元</text>
</p>
</view>
<view class="detailItem">
<p class="price" :style="{ color: isBig ? 'red' : '' }">
-
</p>
<div class="itemName" style="display: flex; align-items: center">
<text>门店上传</text>
</div>
</view>
<view class="detailItem">
<p class="price">-</p>
<p class="itemName">
商品出售<text class="itemUnit">/件</text>
</p>
</view>
<view class="detailItem">
<p class="price">-</p>
<p class="itemName">
商品均价<text class="itemUnit">/元</text>
</p>
</view>
<view class="detailItem">
<p class="price">-</p>
<p class="itemName">
日均入区<text class="itemUnit">/辆</text>
</p>
</view>
<view class="detailItem">
<p class="price">-</p>
<p class="itemName">
入区率<text class="itemUnit">/%</text>
</p>
</view>
<view class="detailItem">
<p class="price">-</p>
<p class="itemName">
停留时长<text class="itemUnit">/分钟</text>
</p>
</view>
</view>
</div>
</view>
</swiper-item>
</block>
</block>
</swiper>
</div>
<!-- 进度条 -->
<view class="sliderBox" v-if="false">
<SliderPage :index="selectDetail" />
</view>
</view>
<view class="funEntry">
<!-- 即时营收 -->
<view class="instantRevenue" style="margin-top: 24rpx">
<view class="revenue" @click="handlePage">
<view class="revenueTop">
<view class="revenyeTopLeft">
<image class="monthIcon" src="https://eshangtech.com/ShopICO/ahyd-BID/newIndex3/monthIcon.svg" />
<text class="dateText">{{
$util.handleGetMonthDay(nowDay)
}}</text>
<text class="day">/{{ howDay }}</text>
</view>
<view class="revenyeTopRight">
<image class="right" src="https://eshangtech.com/ShopICO/ahyd-BID/newIndex3/goMore.svg" />
</view>
</view>
<view class="revenueMoney">
<NumberScroll v-if="currentMoney" :number="currentMoney" />
<!-- <text class="moneyText">{{currentMoney}}</text>-->
<text class="moneyLabel">实时对客销售/元</text>
</view>
</view>
</view>
<!-- 车流预警-->
<view class="bigCarBox" style="margin-top: 24rpx" v-if="special">
<view class="carWarning" @click="handleGoWarning">
<div class="carWarningTop">
<!-- @click="handleGoWarning" -->
<div class="warningBox">
<image class="warningIcon" src="https://eshangtech.com/ShopICO/ahyd-BID/newIndex3/carIcon.svg" />
<div class="trafficBox">
<text class="trafficCar">{{ isShowFestival ? '昨日车流对比' : '车流预警' }}</text>
<text class="trafficUnit"> /Top3</text>
<!-- <image class="moreIcon" src="https://eshangtech.com/ShopICO/ahyd-BID/newIndex/carMoreIcon.svg"/>-->
</div>
</div>
<div class="moreStoreBox">
<!-- <span class="moreText">更多记录</span>-->
<image class="moreIcon" src="https://eshangtech.com/ShopICO/ahyd-BID/newIndex3/goMore.svg" />
</div>
</div>
<div class="contentList">
<div class="contentItem" v-for="(item, index) in warningList" :key="index">
<div class="index">
<div class="boxBg" v-if="index <= 2"></div>
<span class="indexText" :style="{
fontWeight: index <= 2 ? 'bold' : 'normal',
color: index <= 2 ? '#160002' : '#786B6C',
}">{{ index + 1 }}</span>
</div>
<div class="serviceBox">
<span class="name">{{ item.name }}</span>
<span class="position">{{ item.SERVERPART_REGION }}区</span>
</div>
<div class="numberBox">
<span class="number">{{ item.VEHICLE_COUNT }}</span>
<span class="unit">/辆</span>
</div>
<div class="addBox">
<image class="addIcon" :src="Number(item.VEHICLE_RATE) > 100
? 'https://eshangtech.com/ShopICO/ahyd-BID/examine/add.svg'
: Number(item.VEHICLE_RATE) === 100
? ''
: 'https://eshangtech.com/ShopICO/ahyd-BID/examine/reduce.svg'
" />
<span class="add">{{ item.VEHICLE_RATE }}%</span>
</div>
</div>
</div>
</view>
</view>
<!-- 八个有背景的导航栏-->
<view class="funBox">
<!-- 服务区信息 -->
<view class="funItem" @click="handleGoServiceMessage">
<view class="funItemContent">
<view class="funIconBox">
<image class="funIcon" src="https://eshangtech.com/ShopICO/ahyd-BID/newIndex3/serviceInfo.svg" />
</view>
<text class="funText">驿达数智</text>
</view>
</view>
<!-- 经营报表-->
<view class="funItem" @click="handleGoOperate">
<view class="funItemContent">
<view class="funIconBox">
<image class="funIcon"
src="https://eshangtech.com/ShopICO/ahyd-BID/newIndex3/operatStatement.svg" />
</view>
<text class="funText">经营报表</text>
</view>
</view>
<!-- 经营品牌库-->
<view class="funItem" v-if="false" @click="handleFestival">
<view class="funItemContent">
<view class="funIconBox">
<image class="funIcon" src="https://eshangtech.com/ShopICO/ahyd-BID/newIndex3/brandLibrary.svg" />
</view>
<text class="funText">经营品牌库</text>
</view>
</view>
<!-- 财务报表-->
<!-- <view class="funItem" @click="handleMoney">
<view class="funItemContent">
<view class="funIconBox">
<image class="funIcon" src="https://eshangtech.com/ShopICO/ahyd-BID/newIndex3/financialState.svg" />
</view>
<text class="funText">财务报表</text>
</view>
</view> -->
<view v-if="showAi" class="funItem szzs" @click="goToRobot">
<view class="funItemContent">
<view class="funIconBox">
<image class="funIcon" src="https://eshangtech.com/ShopICO/ahyd-BID/newIndex3/statistics.svg" />
</view>
<text class="funText">数智助手</text>
</view>
</view>
<!-- 节日特刊-->
<view class="funItem" @click="goToNational">
<view class="funItemContent">
<view class="funIconBox">
<!-- <image class="funIcon" src="https://eshangtech.com/ShopICO/ahyd-BID/newIndex3/springTravelLogo.svg"/>-->
<image class="funIcon" :src="isShowFestival === 'spring'
? 'https://eshangtech.com/ShopICO/ahyd-BID/newIndex3/springTravelLogo.svg'
: isShowFestival === 'qm'
? 'https://eshangtech.com/ShopICO/ahyd-BID/newIndex3/qmIcon.png'
: isShowFestival === 'labour'
? 'https://eshangtech.com/ShopICO/ahyd-BID/newIndex3/labourLogo.png'
: isShowFestival === 'dragonBoat'
? 'https://eshangtech.com/ShopICO/ahyd-BID/newIndex3/dragonBoatIcon.png'
: isShowFestival === 'summerHoliday'
? 'https://eshangtech.com/ShopICO/ahyd-BID/newIndex3/summerHolidayIcon.png'
: isShowFestival === 'midAutumn'
? 'https://eshangtech.com/ShopICO/ahyd-BID/newIndex3/midAutumnIcon.png'
: isShowFestival === 'nationalDay'
? 'https://eshangtech.com/ShopICO/ahyd-BID/newIndex3/nationalDayIcon.png'
: isShowFestival === 'newYearDay'
? 'https://eshangtech.com/ShopICO/ahyd-BID/newIndex3/springTravelLogo.svg'
: isShowFestival === 'other'
? 'https://eshangtech.com/ShopICO/ahyd-BID/newIndex3/springTravelLogo.svg'
: ''
" />
</view>
<text class="funText">{{
isShowFestival === "spring"
? "平安春运"
: isShowFestival === "qm"
? "清明节"
: isShowFestival === "labour"
? "劳动节"
: isShowFestival === "dragonBoat"
? "端午节"
: isShowFestival === "summerHoliday"
? "火热暑运"
: isShowFestival === "midAutumn"
? "中秋节"
: isShowFestival === "nationalDay"
? "国庆节"
: isShowFestival === "newYearDay"
? "元旦" :
isShowFestival === "other"
? "节日特刊"
: ""
}}</text>
<!-- <text class="funText">端午节</text>-->
<!-- <text class="funText">节日特刊</text>-->
<!-- <text class="funText">平安春运</text>-->
<!-- <text class="funText">{{ isShowFestival==='spring'?'平安春运':isShowFestival==='qm'?'清明节':'' }}</text>-->
</view>
</view>
<view v-if="businessWarning" class="funItem" :style="{ marginTop: showAi ? '32rpx' : '' }"
@click="goToOperateWarning">
<view class="funItemContent">
<view class="funIconBox">
<image class="funIcon" src="https://eshangtech.com/ShopICO/ahyd-BID/warning/operateWarning.svg" />
</view>
<text class="funText">经营预警</text>
</view>
</view>
<view v-if="projectWarning" class="funItem"
:style="{ marginTop: showAi || businessWarning ? '32rpx' : '' }" @click="goToProjectWarning">
<view class="funItemContent">
<view class="funIconBox">
<image class="funIcon" src="https://eshangtech.com/ShopICO/ahyd-BID/warning/projectWarning.svg" />
</view>
<text class="funText">项目预警</text>
</view>
</view>
<view class="funItem" style="margin-top: 32rpx" v-if="false" @click="goToBillLading">
<view class="funItemContent">
<view class="funIconBox">
<image class="funIcon" src="https://eshangtech.com/ShopICO/ahyd-BID/newIndex3/statistics.svg" />
</view>
<text class="funText">提单申请</text>
</view>
</view>
<!-- 数智统计-->
<view class="funItem" v-if="false" style="margin-top: 48rpx" @click="changeShowPortrait">
<view class="funItemContent">
<view class="funIconBox">
<image class="funIcon" src="https://eshangtech.com/ShopICO/ahyd-BID/newIndex3/statistics.svg" />
</view>
<text class="funText">数智统计</text>
</view>
</view>
<!-- 现场管理-->
<view class="funItem" v-if="false" style="margin-top: 48rpx" @click="handleGoExamine(1)">
<view class="funItemContent">
<view class="funIconBox">
<image class="funIcon"
src="https://eshangtech.com/ShopICO/ahyd-BID/newIndex3/onSiteManagement.svg" />
</view>
<text class="funText">现场管理</text>
</view>
</view>
<!-- 昨日营收-->
<view class="funItem" v-if="false" style="margin-top: 48rpx" @click="handlePage">
<view class="funItemContent">
<view class="funIconBox">
<image class="funIcon"
src="https://eshangtech.com/ShopICO/ahyd-BID/newIndex3/yesterdayRevenue.svg" />
</view>
<text class="funText">昨日营收</text>
</view>
</view>
</view>
<!-- <span @click="handleGoProject">111</span>-->
<!-- 四个画像-->
<div class="funList" v-if="showPortrait">
<view class="san"></view>
<div class="funItem" v-for="(item, index) in tabTypeList" :key="index" @click="handleGoTab(item)">
<view class="iconBox">
<image class="funItemIcon" :src="item.imgUrl" />
</view>
<text class="funItemText">{{ item.name }}</text>
</div>
</div>
<!-- 人流预警-->
<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" />
<div class="trafficBox">
<text class="trafficCar" style="color: #075ff0">人流预警</text>
<image class="moreIcon" src="https://eshangtech.com/ShopICO/ahyd-BID/newIndex/personMoreIcon.svg" />
</div>
</div>
<div class="moreStoreBox" @click="handleGoWarning">
<!-- <span class="moreText">更多记录</span>-->
<!-- <image class="moreIcon" src="https://eshangtech.com/ShopICO/ahyd-BID/commercial/rightArrow.svg"/>-->
</div>
</div>
<div class="contentList">
<div class="contentItem" v-for="(item, index) in warningList" :key="index">
<div class="index">
<div class="boxBg" v-if="index <= 2"></div>
<span class="indexText" :style="{
fontWeight: index <= 2 ? 'bold' : 'normal',
color: index <= 2 ? '#160002' : '#786B6C',
}">{{ index + 1 }}</span>
</div>
<div class="serviceBox">
<span class="name">{{ item.name }}</span>
<span class="position">{{ item.SERVERPART_REGION }}区</span>
</div>
<div class="numberBox">
<span class="number">{{ item.VEHICLE_COUNT }}</span>
<span class="unit">/人</span>
</div>
<div class="addBox">
<image class="addIcon" :src="Number(item.VEHICLE_RATE) > 100
? 'https://eshangtech.com/ShopICO/ahyd-BID/examine/add.svg'
: Number(item.VEHICLE_RATE) === 100
? ''
: 'https://eshangtech.com/ShopICO/ahyd-BID/examine/reduce.svg'
" />
<span class="add">{{ item.VEHICLE_RATE }}%</span>
</div>
</div>
</div>
</view>
<!-- 自营计划-->
<view class="selfPlan" v-if="false">
<view class="selfPlanTitle">自营计划</view>
<view class="content">
<view class="contentItem" style="border-bottom: 2rpx solid #f6f6f7; padding-bottom: 32rpx">
<view class="contentTop">
<view class="contentLeft">
<image class="dateImg" src="https://eshangtech.com/ShopICO/ahyd-BID/newIndex/monthIcon.svg" />
<text class="smallTitle">本月计划</text>
</view>
<view class="contentRight" @click="handlePlanPageGo('month')">
<text class="moreText">查看更多</text>
<image class="moreIcon" src="https://eshangtech.com/ShopICO/ahyd-BID/commercial/rightArrow.svg" />
</view>
</view>
<view class="contentBottom">
<view class="canvaBox">
<MonthCharts :success="plan.percentageMonth" />
</view>
<view class="messageBox">
<view class="messageTop">
<image class="topIcon" :src="Number(plan.MonthGrowth_Rate) > 0
? 'https://eshangtech.com/ShopICO/ahyd-BID/examine/add.svg'
: Number(plan.MonthGrowth_Rate) < 0
? 'https://eshangtech.com/ShopICO/ahyd-BID/examine/reduce.svg'
: ''
" />
<text class="messageValue">{{ monthAdd }}%</text>
<text class="messageDesc">(比计划)</text>
</view>
<view class="messageBottom">
<view class="bottomItem">
<view class="itemValue">{{
plan.RevenueMonth_Amount ? plan.RevenueMonth_Amount : "-"
}}</view>
<view class="itemLabel">已完成<text class="unit">/万元</text></view>
</view>
<view class="bottomItem">
<view class="itemValue">{{
plan.BudgetMonth_Amount ? plan.BudgetMonth_Amount : "-"
}}</view>
<view class="itemLabel">计划<text class="unit">/万元</text></view>
</view>
<view class="bottomItem">
<view class="itemValue">{{
plan.MonthYOY_Rate
? plan.MonthYOY_Rate > 0
? `+${plan.MonthYOY_Rate}%`
: `${plan.MonthYOY_Rate}%`
: "-"
}}</view>
<view class="itemLabel">同比</view>
</view>
</view>
</view>
</view>
</view>
<view class="contentItem" style="margin-top: 32rpx">
<view class="contentTop">
<view class="contentLeft">
<image class="dateImg" src="https://eshangtech.com/ShopICO/ahyd-BID/newIndex/yearIcon.svg" />
<text class="smallTitle">本年计划</text>
</view>
<view class="contentRight" @click="handlePlanPageGo('year')">
<text class="moreText">查看更多</text>
<image class="moreIcon" src="https://eshangtech.com/ShopICO/ahyd-BID/commercial/rightArrow.svg" />
</view>
</view>
<view class="contentBottom">
<view class="canvaBox">
<MonthCharts :success="plan.percentageYear" />
</view>
<view class="messageBox">
<view class="messageTop">
<image class="topIcon" :src="Number(yearAdd) > 0
? 'https://eshangtech.com/ShopICO/ahyd-BID/examine/add.svg'
: Number(yearAdd) < 0
? 'https://eshangtech.com/ShopICO/ahyd-BID/examine/reduce.svg'
: ''
" />
<text class="messageValue">{{ yearAdd }}%</text>
<text class="messageDesc">(比计划)</text>
</view>
<view class="messageBottom">
<view class="bottomItem">
<view class="itemValue">{{
plan.RevenueYear_Amount ? plan.RevenueYear_Amount : "-"
}}</view>
<view class="itemLabel">已完成<text class="unit">/{{
plan.revenueType === "yi" ? "亿元" : "万元"
}}</text></view>
</view>
<view class="bottomItem">
<view class="itemValue">{{
plan.BudgetYear_Amount ? plan.BudgetYear_Amount : "-"
}}</view>
<view class="itemLabel">计划<text class="unit">/{{ plan.budgetType === "yi" ? "亿元" : "万元"
}}</text></view>
</view>
<view class="bottomItem">
<view class="itemValue">{{
plan.YearYOY_Rate
? plan.YearYOY_Rate > 0
? `+${plan.YearYOY_Rate}%`
: `${plan.YearYOY_Rate}%`
: "-"
}}</view>
<view class="itemLabel">同比</view>
</view>
</view>
</view>
</view>
</view>
</view>
</view>
<!-- 营收占比-->
<view class="proportion" v-if="false">
<view class="proportionTitle">营收占比</view>
<view class="contentPropor">
<view class="tabs">
<view v-for="(item, index) in propOfRevenList" :key="index"
:class="selectTab === item.value ? 'active tabItem' : 'tabItem'"
@click="handleSelectTab(item.value)">
{{ item.name }}
</view>
</view>
<view class="chart">
<div v-show="selectTab === 1" v-if="regionProgress && regionProgress.length > 0">
<div>
<div class="operation-c-list" v-for="(item, o) in regionProgress" :key="o" :style="{
marginBottom: o === regionProgress.length ? '0px' : '',
}">
<div class="top">
<div class="left">
<div class="icon">
<image :src="o === 0
? 'https://eshangtech.com/ShopICO/ahyd-BID/index/No1.svg'
: o === 1
? 'https://eshangtech.com/ShopICO/ahyd-BID/index/No2.svg'
: o === 2
? 'https://eshangtech.com/ShopICO/ahyd-BID/index/No3.svg'
: 'https://eshangtech.com/ShopICO/ahyd-BID/index/No4.svg'
"></image>
<text>{{ o + 1 }}</text>
</div>
<p class="name">{{ item.name }}</p>
</div>
<p class="price">{{ $util.fmoney(item.value, 2) }}</p>
</div>
<div class="bottom">
<div class="bar">
<div class="progress" :style="{ width: item.percentage + '%' }"></div>
</div>
<p class="number">{{ item.percentage + "%" }}</p>
</div>
</div>
</div>
</div>
<div v-show="selectTab === 2" v-if="areaProgress && areaProgress.length > 0">
<div>
<div class="operation-c-list" v-for="(item, o) in areaProgress" :key="o" :style="{
marginBottom: o === regionProgress.length ? '0px' : '',
}">
<div class="top">
<div class="left">
<div class="icon">
<image :src="o === 0
? 'https://eshangtech.com/ShopICO/ahyd-BID/index/No1.svg'
: o === 1
? 'https://eshangtech.com/ShopICO/ahyd-BID/index/No2.svg'
: o === 2
? 'https://eshangtech.com/ShopICO/ahyd-BID/index/No3.svg'
: 'https://eshangtech.com/ShopICO/ahyd-BID/index/No4.svg'
"></image>
<text>{{ o + 1 }}</text>
</div>
<p class="name">{{ item.name }}</p>
</div>
<p class="price">{{ $util.fmoney(item.value, 2) }}</p>
</div>
<div class="bottom">
<div class="bar">
<div class="progress" :style="{ width: item.percentage + '%' }"></div>
</div>
<p class="number">{{ item.percentage + "%" }}</p>
</div>
</div>
</div>
</div>
</view>
</view>
</view>
<!-- 巡检考核-->
<view class="patrolInspection" v-if="false">
<view class="patrolTitle">巡检考核</view>
<view class="contentBox">
<view class="contentFirst" style="border-bottom: 2rpx solid #f7f4f4">
<view class="firstTop">
<view class="left">
<image class="topIcon"
src="https://eshangtech.com/ShopICO/ahyd-BID/newIndex/examineQuestion.svg" />
<text class="topText">日常巡检</text>
</view>
<view class="right" @click="handleGoExamine(2)">
<text class="moreText">查看更多</text>
<image class="moreIcon" src="https://eshangtech.com/ShopICO/ahyd-BID/commercial/rightArrow.svg" />
</view>
</view>
<view class="firstBox">
<view class="boxItem">
<text class="itemValue">{{
dailyExamineObj.RectifyCount || "0"
}}</text>
<text class="itemLabel">已整改<text class="unit">/个</text></text>
</view>
<view class="boxItem">
<text class="itemValue">{{
dailyExamineObj.UnRectifyCount || "0"
}}</text>
<text class="itemLabel">未整改<text class="unit">/个</text></text>
</view>
<view class="boxItem">
<view class="canva"></view>
<view class="detailBox">
<view class="detailValue">{{
dailyExamineObj.CompleteRate
? dailyExamineObj.CompleteRate + "%"
: "-"
}}</view>
<view class="detailLabel">达标率<text class="unit">/全省</text></view>
</view>
</view>
</view>
</view>
<view class="contentFirst">
<view class="firstTop" style="margin-top: 32rpx">
<view class="left">
<image class="topIcon"
src="https://eshangtech.com/ShopICO/ahyd-BID/newIndex/examinePosition.svg" />
<text class="topText">考核管理</text>
</view>
<view class="right" @click="handleGoExamine(1)">
<text class="moreText">查看更多</text>
<image class="moreIcon" src="https://eshangtech.com/ShopICO/ahyd-BID/commercial/rightArrow.svg" />
</view>
</view>
<view class="secondBox">
<view class="secondItem">
<image class="itemImg" src="https://eshangtech.com/ShopICO/ahyd-BID/newIndex/good.svg" />
<view class="secondDetail">
<text class="labelValue">{{ examineObj.A || "0" }}</text>
<text class="labelTitle">优秀<text class="unit">/个</text></text>
</view>
</view>
<view class="secondItem">
<image class="itemImg" src="https://eshangtech.com/ShopICO/ahyd-BID/newIndex/normal.svg" />
<view class="secondDetail">
<text class="labelValue">{{ examineObj.B || "0" }}</text>
<text class="labelTitle">良好<text class="unit">/个</text></text>
</view>
</view>
<view class="secondItem">
<image class="itemImg" src="https://eshangtech.com/ShopICO/ahyd-BID/newIndex/bad.svg" />
<view class="secondDetail">
<text class="labelValue">{{ examineObj.C || "0" }}</text>
<text class="labelTitle">一般<text class="unit">/个</text></text>
</view>
</view>
</view>
</view>
</view>
</view>
<!--节日特刊-->
<div class="nationalDay" v-if="false" @click="goToNational">
<div class="national">
<div class="nationalTop">
<div class="nationalTopLeft">
<span class="topText">节日特刊</span>
<!-- <image class="lanternImg" src="https://eshangtech.com/ShopICO/ahyd-BID/nationalDay/lantern.png" />-->
<!-- <div class="titleBox">-->
<!-- &lt;!&ndash; @click="goToNational" &ndash;&gt;-->
<!-- &lt;!&ndash; <image class="titleBg" src="https://eshangtech.com/ShopICO/ahyd-BID/nationalDay/titleBox.svg"/>&ndash;&gt;-->
<!-- <div class="title" >-->
<!-- <image class="rightIcon" src="https://eshangtech.com/ShopICO/ahyd-BID/nationalDay/rightIcon.svg"/>-->
<!-- </div>-->
<!-- </div>-->
</div>
<div class="nationalTopRight">
<text class="timeText">{{ lastDay }}</text>
</div>
</div>
<div class="nationalContent">
<div class="itemContent" v-for="(item, index) in nationalDayList" :key="index">
<p class="value">{{ item.value || "-" }}</p>
<p class="title">
{{ item.title }}<span>{{ item.unit }}</span>
</p>
<image class="itemBg" :src="item.bg" />
</div>
</div>
</div>
</div>
</view>
<view v-if="showRealBox" class="realBoxPage" @click.stop="changeShowRealBox"
:style="{ left: realBoxPageX + 'px', top: realBoxPageY + 'px' }">
<div style="width: 100%;display: flex;justify-content: space-between; align-items: center;">
<span class="noticeText">注解词说明:</span>
<img class="closeIcon" src="https://eshangtech.com/ShopICO/ahyd-BID/newIndex3/closeIcon.svg"
@click.stop="changeShowRealBox" />
</div>
<span class="noticeText" style="text-indent: 2rem">
对客销售(对客营收、营业额)
----服务区所有经营实体与客户发生的交易金额,一般统计消费总量,多用于外部口径;</span>
<span class="noticeText" style="text-indent: 2rem">
同期服务区的对客销售额与入区车流量和服务区营效变化会呈现较强关联性,属于显性短周指标。</span>
<span class="noticeText" style="text-indent: 2rem">
自营销售(自营经营额)
----驿达自主经营的实体与客户发生的真实交易金额;</span>
<span class="noticeText" style="text-indent: 2rem">
外租销售 (商铺经营额)
----合作商户经营的实体与客户发生的真实交易金额;</span>
<span class="noticeText" style="text-indent: 2rem">
应用场景:口径多用与服务区同行或行业相关部门交流,体现服务区商业服务能力,也是考核旗下服务区商业管理水平提升的重要指标。</span>
<span class="noticeText" style="text-indent: 2rem">
营业收入(经营收入)---驿达通过服务区场景获得的真实收入,包括自主经营项目、外租经营项目、油站充电桩等租赁收入等,多用于内部口径;</span>
<span class="noticeText" style="text-indent: 2rem">
因商户租赁收入和其他固定项目收入,存在财务确认时间滞后情况,数字变化一般晚于对客销售额,属于长周期指标;</span>
<span class="noticeText" style="text-indent: 2rem">
自营营业收入
---指的是驿达自有经营门店的实际交易金额;</span>
<span class="noticeText" style="text-indent: 2rem">
租赁营业收入
---指的是驿达通过租赁商铺,通过商铺交易金额按比例来获取租金的收入;</span>
<span class="noticeText" style="margin-top: 8px">一般情况下,收入单纯代表交易金额,如果对内财务口径一般需要后面(除税)来表达。</span>
<span class="noticeText" style="text-indent: 2rem">
应用场景:口径多用与内部分子公司任务拆解考核和集团的任务指标完成汇报,是整个管理团队的长期阶段性指标结果。</span>
<span class="noticeText" style="text-indent: 2rem">
同比,指的是一段时间内与全年同期的数据比较,一般用于反映长线经营趋势的波动;</span>
<span class="noticeText" style="text-indent: 2rem">
环比,指的是一段时间内与上月同期的数值比较,一般用于反映短期经营趋势的比较。</span>
<span class="noticeText" style="text-indent: 2rem">
因为服务区的特殊性,有节假日条件约束,较多会用同比来形容指标波动。</span>
</view>
<!--通知框-->
<!-- -->
<div class="notice" v-if="isShow" style="bottom: 200px">
<view class="left">
<image class="icon" src="https://eshangtech.com/ShopICO/ahyd-BID/index/warning.svg"></image>
<view class="text">
<p class="name">{{ isShowTitle }}个投诉建议</p>
</view>
</view>
<view class="right" @click="handleSearch('other')">去查看</view>
</div>
<!-- 弹出框-->
<uni-popup ref="popup" :show="popupShow" :type="popupType" :round="popup" @hidePopup="closePop">
<div class="popupIndex">
<div class="popupTop">未上传门店:</div>
<div class="bodyList">
<div class="item" v-for="(item, index) in bodyList" :key="index">
<div class="index">
{{ index + 1 < 10 ? "0" + (index + 1) : index + 1 }} </div>
<div class="title">
{{ item.Serverpart_Name }}{{ item.ServerpartShop_Name }}
</div>
</div>
</div>
</div>
</uni-popup>
<!-- 底部导航栏-->
<Tabbar v-if="!guideInfo.visible" ref="tabbar" :page="page"></Tabbar>
<!-- 数智助手新功能引导层 -->
<view v-if="guideInfo.visible" class="guide-mask" @touchmove.stop.prevent>
<view class="guide-highlight" :style="{
top: guideInfo.top + 'px',
left: guideInfo.left + 'px',
width: guideInfo.width + 'px',
height: guideInfo.height + 'px'
}"></view>
<view class="guide-bubble" :style="{
top: (guideInfo.top - 24) + 'px',
left: (guideInfo.left + guideInfo.width / 2) + 'px'
}">
<div class="guide-bubble-content">
<view class="guide-grid"></view>
<view class="guide-header">
<view class="ai-icon-wrapper">
<view class="ai-pulse"></view>
<view class="ai-inner-dot"></view>
</view>
<text class="guide-title">数智助手</text>
</view>
<text class="guide-desc">您的春运动态播报专家为您实时呈现全省及区域经营动态车流预警与数据分析</text>
<view class="guide-btn-group">
<view class="guide-btn outline" @click.stop="handleCloseGuide">知道了</view>
<view class="guide-btn primary" @click.stop="handleGoToRobot">
看一下
<view class="btn-glow"></view>
</view>
</view>
</div>
</view>
</view>
</view>
</template>
<script>
import { getThisDay, timestampToTimeMonth } from "../../util/dateTime";
import { mapActions, mapGetters, mapState } from "vuex";
import request from "@/util/index.js";
import uniPopup from "../../components/uni-popup.vue";
import Tabbar from "../../components/tabbar/tabbar.vue";
import MonthCharts from "./components/monthCharts.vue";
import RateCharts from "./components/rateCharts.vue";
import SliderPage from "./components/sliderPage.vue";
import UniDataSelect from "../../components/uni-data-select/uni-data-select.vue";
import NumberScroll from "./components/numberScroll.vue";
import moment from "moment";
import numeral from "numeral";
var rincanvas = {};
export default {
components: {
SliderPage,
RateCharts,
MonthCharts,
Tabbar,
uniPopup,
UniDataSelect,
NumberScroll,
},
data() {
const lastDay = this.$util.cutDate(new Date(), "YYYY-MM-DD", -1);
// const lastDay = '2026-02-02'
const nowDay = this.$util.cutDate(new Date(), "YYYY-MM-DD");
// const nowDay = '2026-01-01'
return {
localdata: [
{ text: "全局版", value: 1 },
{ text: "业务版", value: 2 },
{ text: "演示版", value: 3 },
],
selectVersion: 1, // 选择的版本
statusBarHeight: "", // 每个手机的状态栏高度
page: "/pages/index/index",
bodyList: [], //列表
menu: "", // 胶囊按钮高度
startDate: "", // 开始时间
endData: "", // 结束时间
popupType: "center",
popupShow: false,
popup: true,
nationalDayList: [
{
title: "营收",
unit: "/万元",
value: "",
bg: "https://eshangtech.com/ShopICO/ahyd-BID/nationalDay/revenueBg.svg",
},
{
title: "车流",
unit: "/万辆",
value: "",
bg: "https://eshangtech.com/ShopICO/ahyd-BID/nationalDay/carIcon.svg",
},
{
title: "车流增幅Top1",
unit: "",
value: "",
bg: "https://eshangtech.com/ShopICO/ahyd-BID/nationalDay/add.png",
},
],
tabTypeList: [
{
imgUrl: "https://eshangtech.com/ShopICO/ahyd-BID/index/car.svg",
path: "/pages/commercialBINew/carPortrait",
name: "车流",
},
{
imgUrl: "https://eshangtech.com/ShopICO/ahyd-BID/index/guest.svg",
path: "/pages/commercialBI/guestPortrait",
name: "客群",
},
{
imgUrl:
"https://eshangtech.com/ShopICO/ahyd-BID/index/business_icon.svg",
path: "/pages/commercialBI/managePortrait",
name: "经营",
},
{
imgUrl: "https://eshangtech.com/ShopICO/ahyd-BID/index/trade.svg",
path: "/pages/commercialBI/businessPortrait",
name: "交易",
},
],
// { imgUrl: 'https://eshangtech.com/ShopICO/ahyd-BID/index/brand.svg', path: '/pages/commercialBI/formatPortrait', name: '业态品牌' }
detailTypeList: [
{
name: "分润门店",
unit: "/个",
value: "-",
yesterValue: "-",
add: "",
imgIcon: "https://eshangtech.com/ShopICO/ahyd-BID/index/store.svg",
},
{
name: "驿达分润",
unit: "/元",
value: "-",
yesterValue: "-",
imgIcon:
"https://eshangtech.com/ShopICO/ahyd-BID/index/yidaFenrun.svg",
},
{
name: "订单配送",
unit: "/单",
value: "-",
yesterValue: "-",
add: "",
imgIcon:
"https://eshangtech.com/ShopICO/ahyd-BID/index/orderDelivery.svg",
},
{
name: "采购金额",
unit: "/元",
value: "-",
yesterValue: "-",
imgIcon:
"https://eshangtech.com/ShopICO/ahyd-BID/index/purchaseAmount.svg",
},
],
propOfRevenList: [
// { name: '经营模式', value: 1 },
{ name: "区域营收", value: 2 },
{ name: "经营业态", value: 1 },
],
selectTab: 2, // 选项卡的指针
monthAmountAdd: "", //月累计
yearAmountAdd: "", //年累计
mobileData: {}, // 移动支付分账接口返回的数据
single: "", // 时间选择器选择的时间
monthAdd: null, //月每天的相对增加
yearAdd: "", // 年度计划增加的百分比
thisDay: "", // 显示的星期几
isBig: false, //判断门店上传的前一个数字是否比后一个数字大
allShopCount: 0, //门店总数
theRequest: null,
lastDay: lastDay, // 该页面的最近有效日期
howDay: "", // 星期几
nowDay: nowDay, // 当天时间
buyPriceYes: "", //昨日采购金额
regionList: null,
nowTab: 1,
showNotice: false,
showNoticeYear: false,
priceMove: false, //价格出现的动画效果
carInfo: {}, //车流信息
regionProgress: null,
areaProgress: null,
modelProgress: null,
showTableData: {},
monthPrice: 0, //月度累计分润
yesterdayBillCount: 0, //昨日累计配送
lastDayBillCount: 0, //当前日的配送
buyPriceMonth: 0, //月度的采购金额
totalData: null,
option: {}, //onLoad里面的option
isShow: false, //投诉建议是否显示
isShowTitle: 0, //投诉建议条数
isShowId: 0, //投诉id
plan: {}, //月度和年度接口的返回参数 一起的
ShareShopCountYes: 0, //昨日的店铺数
yesterdayAllPay: 0, //前一天的营收总额
noChangeLastDay: lastDay,
wechatPushSalesList: null, // 甘肃单品排行数据
seat: {}, //用户经纬度信息
nearServiceInfo: {
SERVERPART_NAME: "广德服务区",
SPREGIONTYPE_NAME: "芜湖片区",
Serverpart_ID: 524,
}, //最近服务区的有用信息
monthNoticeText: "",
yearNoticeText: "",
isSuccess: false, //首页这些接口是否全部调用成功
isReturn: true,
isSuggestion: false, //可不可以看意见
loadMore: false, // 是否展示更多
special: false,
allTrafficList: [], // 车流数据数组
showTrafficList: [], // 显示在页面上车流数据
warningList: [], // 预警列表
selectDetail: 0, // 选中的统计标签
nowMonth: 0, // 当前的月份
swiperList: [], // 滑动块有多少项
selectMonth: 0, //选择的月份
selectMonthIndex: 0, //选择的月份第几个
useInfo: {}, //用户信息
showRealBox: false, // 是否显示对客营收的完整数据
yesObj: {}, // 昨日营收数据
typeList: [], //自营和外租的数据
showPortrait: false, // 是否显示五个画像的框
examineObj: {}, // 考核详情
dailyExamineObj: {}, //巡检数据详情
stopSwiper: false, // 阻止swiper调用
phoneWidth: 0, // 手机的宽度
progressObj: {}, //自营和外租的占比
showHaveNotice: false, // 显示月份详情卡片的进度条点击显示的内容
trafficQOQObj: {}, // 环比对象
trafficYOYObj: {}, // 同比对象
trafficCurrentObj: {}, // 当前月
trafficeUnit: "", // 单位
showMonthDetail: false, //月度车流的显示框
yesObjCompared: "", //昨日营收的比较值
moneyRateList: [],
currentPeriodData: {}, // 本期数据
ydModal: false, // 显示驿达百分比的具体值
ydRate: "", // 便利店百分比
shopRate: "", // 餐饮客房百分比
shopOutRate: "", // 商铺租赁
showRateChart: true, // 显示百分比表格
revenueMoney: "", // 自营收入
externalMoney: "", // 外租收入
currentMoney: "",
showMoreFixed: false, // 显示悬浮框
profitSharingList: [], // 分润占比旁边的list
// isShowFestival:'labour',// 显示的节日
isShowFestival: "", // 显示的节日
oldSwiperIndex: 0, // 移动swiper 等待1秒钟 如果保持一致就请求 不一致就return
showAdvertisement: false, // 是否显示一开始的广告
isShowCloseAnimal: false, // 是否显示关闭动画
businessWarning: false, // 经营预警
projectWarning: false, // 项目预警
festivalObj: {
newYearDay: {
name: "newYearDay",
title: "元旦",
startTime: "2025-12-31",
endTime: "2026-01-04",
curYear: 2026,
lastYear: 2025
}, //
spring: {
name: "spring",
title: "平安春运",
startTime: "2026-02-02",
endTime: "2026-03-14",
curYear: 2026,
lastYear: 2025
}, // 春运
qm: {
name: "qm",
title: "清明节",
startTime: "2026-04-03",
endTime: "2026-04-07",
curYear: 2026,
lastYear: 2025
}, // 清明节
labour: {
name: "labour",
title: "劳动节",
startTime: "2026-04-30",
endTime: "2026-05-06",
curYear: 2026,
lastYear: 2025
}, // 劳动节
dragonBoat: {
name: "dragonBoat",
title: "端午节",
startTime: "2026-06-18",
endTime: "2026-06-22",
curYear: 2026,
lastYear: 2025
},
summerHoliday: {
name: "summerHoliday",
title: "火热暑运",
startTime: "2026-06-30",
endTime: "2026-08-31",
curYear: 2026,
lastYear: 2025
}, // 暑假
midAutumn: {
name: "midAutumn",
title: "中秋节",
startTime: "2026-09-24",
endTime: "2026-09-28",
curYear: 2026,
lastYear: 2025
}, // 中秋节
nationalDay: {
name: "nationalDay",
title: "国庆节",
startTime: "2026-09-30", // 说要提早两天显示节日的图标 没有数据也没关系 2024-09-30
endTime: "2026-10-08",
curYear: 2026,
lastYear: 2025
}, // 国庆节
// spring: {
// name: "spring",
// title: "平安春运",
// startTime: "2025-01-14",
// endTime: "2025-02-23",
// }, // 春运
// qm: {
// name: "qm",
// title: "清明节",
// startTime: "2025-04-03",
// endTime: "2025-04-07",
// }, // 清明节
// labour: {
// name: "labour",
// title: "劳动节",
// startTime: "2025-04-30",
// endTime: "2025-05-06",
// }, // 劳动节
// dragonBoat: {
// name: "dragonBoat",
// title: "端午节",
// startTime: "2025-05-30",
// endTime: "2025-06-03",
// },
// summerHoliday: {
// name: "summerHoliday",
// title: "火热暑运",
// startTime: "2025-06-30",
// endTime: "2025-08-31",
// }, // 暑假
// // midAutumn: {
// // name: "midAutumn",
// // title: "中秋节",
// // startTime: "2024-09-14",
// // endTime: "2024-09-18",
// // }, // 中秋节
// nationalDay: {
// name: "nationalDay",
// title: "国庆节",
// startTime: "2025-09-30", // 说要提早两天显示节日的图标 没有数据也没关系 2024-09-30
// endTime: "2025-10-09",
// }, // 国庆节
}, // 2024年的全部节日
currentFestivalObj: {},// 当前选择的节日
allselectVersion3Obj: {}, //累计
selectVersion3Obj: {}, //正常
smallTab: 1, // 演示版的几个显示样式
realBoxPageX: 0, // 注释说明弹出框的x位置
realBoxPageY: 0, // 注释说明弹出框的y位置
showAi: false,// 判断用户是否有数智助手的权限
guideInfo: {
visible: false,
top: 0,
left: 0,
width: 0,
height: 0
},
isScrollLock: false, // 是否锁定页面滚动
};
},
watch: {
user: {
// 新用户刚进来的时候可能onLoad会执行不了 监听他的user变化确保能请求
handler: async function (value) {
let userInfo = uni.getStorageSync("vuex");
userInfo = JSON.parse(userInfo);
if (this.isReturn === true) {
// 无权限就会跳转到无数据的页面
if (
userInfo.userData &&
userInfo.userData.AuthorityInfo[
"89a1f248-2113-4d57-84b1-c2e6edb9e8ee"
] === 1
) {
this.isReturn = false;
} else {
this.$util.addUserBehavior({
intoRoute: `/pages/commercialBI/noData`,
});
uni.redirectTo({
url: `/pages/commercialBI/noData?type=noAuthor`,
});
}
if (
userInfo.userData.AuthorityInfo[
"e2fb458b-d1bd-48fa-805e-fc93dc71efb7"
] === 1 ||
userInfo.userData.AuthorityInfo[
"ea2fc404-d924-4c88-98de-1f4d96137745"
] === 1
) {
this.getSuggestion();
}
if (
userInfo.userData.AuthorityInfo[
"03bd2dbf-a5ed-4080-b168-92c3b7412d6f"
] === 1
) {
this.businessWarning = true;
}
if (
userInfo.userData.AuthorityInfo[
"2d25dddc-e67f-4e26-b2d1-da78beed2c11"
] === 1
) {
this.projectWarning = true;
}
if (
userInfo.userData.AuthorityInfo[
"2cf9a69f-fc06-4a1c-a8cb-3f0e914db6b8"
] === 1
) {
this.showAi = true;
// 移除这里的触发,统合到 getData 结束后触发
}
if (!this.isReturn) {
for (let key in this.festivalObj) {
let obj = this.festivalObj[key];
if (
new Date(obj.startTime).getTime() <= new Date(this.lastDay).getTime() &&
new Date(this.lastDay).getTime() < new Date(obj.endTime).getTime()
) {
this.isShowFestival = obj.name
this.currentFestivalObj = obj
}
}
if (!this.isShowFestival) {
this.isShowFestival = "other";
uni.setStorageSync("festival", this.isShowFestival);
} else {
let isSkip = uni.getStorageSync('isSkip')
if (!isSkip) {
this.$util.toNextRoute(
"navigateTo",
`/pages/nationalPage/springTravel?selectType=2`
);
uni.setStorageSync('isSkip', true)
}
uni.setStorageSync("festival", this.isShowFestival);
}
await this.getData(this.option);
}
}
},
deep: true,
},
seat: {
handler(value) {
if (value.latitude && value.longitude) {
this.nearestService();
}
},
},
},
computed: {
...mapState({
...mapGetters({ user: "getUser" }),
PushAuthority: (state) => state.userData.PushAuthority,
ProvinceCode: (state) => state.userData.ProvinceCode,
toDoMsg: (state) => {
return state.toDoMsg;
},
}),
hasSeverpartIndexAuthority() {
let theRequest = this.theRequest;
if (this.theRequest && theRequest.ProvinceCode && this.PushAuthority) {
return this.PushAuthority.some(
(n) =>
n.ProvinceCode == theRequest.ProvinceCode && n.ShopAnalysisType == 1
);
}
return false;
},
...mapGetters({ user: "getUser" }),
},
async onLoad(option) {
// 等待 App.vue 的登录完成
const app = getApp();
// 轮询等待 loginPromise 创建(因为 onLaunch 和 onLoad 几乎同时执行)
let waitCount = 0;
while (!app.loginPromise && waitCount < 100) {
await new Promise(resolve => setTimeout(resolve, 50)); // 等待 50ms
waitCount++;
}
if (app.loginPromise) {
console.log('等待 App.onLaunch 登录完成...');
await app.loginPromise;
console.log('登录完成,继续执行 onLoad');
} else {
console.warn('loginPromise 未创建,直接继续执行');
}
// 默认进来先清空 确保每次进来都能在缓存里面赋值上最新的
uni.setStorageSync("festival", this.isShowFestival);
for (let key in this.festivalObj) {
let obj = this.festivalObj[key];
if (
new Date(obj.startTime).getTime() <= new Date(this.lastDay).getTime() &&
new Date(this.lastDay).getTime() < new Date(obj.endTime).getTime()
) {
this.isShowFestival = obj.name
this.currentFestivalObj = obj
}
}
if (!this.isShowFestival) {
this.isShowFestival = "other";
uni.setStorageSync("festival", this.isShowFestival);
} else {
let isSkip = uni.getStorageSync('isSkip')
if (!isSkip) {
this.$util.toNextRoute(
"navigateTo",
`/pages/nationalPage/springTravel?selectType=2`
);
uni.setStorageSync('isSkip', true)
}
uni.setStorageSync("festival", this.isShowFestival);
}
// 顶部显示的时间
this.single = timestampToTimeMonth(new Date(this.lastDay).getTime());
// 获取手机参数对页面进行适配 主要是用于拿到胶囊的位置
let systemInfo = uni.getSystemInfoSync();
this.statusBarHeight = Number(systemInfo.statusBarHeight);
uni.setStorageSync("phoneInfo", systemInfo);
this.menu = uni.getMenuButtonBoundingClientRect();
// 拿到用户手机的宽 用设计图的宽高比去设定上半部的高度
this.phoneWidth = systemInfo.windowWidth;
// 拿到昨天的时间戳
// 当年份不是2023 要判断有多少个可以滑动的项
const nowDate = new Date(this.nowDay);
let holiday = nowDate.getDay();
this.howDay = [
"星期日",
"星期一",
"星期二",
"星期三",
"星期四",
"星期五",
"星期六",
][holiday];
const date = new Date(this.lastDay);
let y = date.getFullYear();
let m = date.getMonth() + 1;
let sum = 0;
let swiperList = [];
if (2023 - y < 0) {
sum = 12 * (y - 2023) + m;
for (let i = 0; i < sum; i++) {
if (i <= 11) {
swiperList.push({ key: i });
} else {
let currentNumber = Math.floor(i / 12);
let currentM = i % 12;
swiperList.push({ key: 12 * currentNumber + currentM });
}
}
} else {
sum = m;
for (let i = 1; i <= sum; i++) {
swiperList.push({ key: `2023${i < 10 ? "0" + i : i}` });
}
}
this.swiperList = swiperList;
// 顶部卡片滚动的第几个
this.selectDetail = this.handleGetSwiperIndex(this.lastDay);
// 拿到选择日期的月份
this.nowMonth = date.getMonth() + 1;
// 默认选择的月份
this.selectMonth = date.getMonth() + 1;
this.selectMonthIndex =
y > 2023 ? 12 + date.getMonth() + 1 : date.getMonth() + 1;
// 设置顶部时间选择器的开始时间 因为不能选去年数据 所以只能从当前日期的年份开始计算
this.startDate = `${date.getFullYear()}-01`;
// 设置顶部选时间的显示 结束时间不能是大于等于今天
this.endData = new Date();
// 星期几
this.thisDay = getThisDay(date.getDay());
// 把时间存起来给全部页面都能拿到
uni.setStorageSync("lastDay", this.lastDay);
uni.setStorageSync("version", this.selectVersion);
// 保留原有的 storage 读取(用于其他用途)
let storageInfo = uni.getStorageSync("vuex");
// 直接从 store.state 读取最新的用户数据,确保是 WeChat_GetBusinessMemberInfo 接口返回的最新数据
let userInfo = {
userData: this.$store.state.userData // 直接从 store.state 读取,确保是最新的
};
this.useInfo = JSON.parse(JSON.stringify(userInfo));
console.log('userInfo (最新)', JSON.parse(JSON.stringify(userInfo)));
// 判断有没有权限
if (
userInfo.userData &&
userInfo.userData.UserId &&
userInfo.userData.AuthorityInfo &&
userInfo.userData.AuthorityInfo[
"89a1f248-2113-4d57-84b1-c2e6edb9e8ee"
] === 1
) {
this.isReturn = false;
} else {
return
this.$util.addUserBehavior({
intoRoute: `/pages/commercialBI/noData`,
});
uni.redirectTo({
url: `/pages/commercialBI/noData?type=noAuthor`,
});
}
if (!this.isReturn) {
// 使用最新的 userInfo 数据
// 判断是否有投诉建议的悬浮框弹出
if (
userInfo.userData.AuthorityInfo &&
(userInfo.userData.AuthorityInfo[
"e2fb458b-d1bd-48fa-805e-fc93dc71efb7"
] === 1 ||
userInfo.userData.AuthorityInfo[
"ea2fc404-d924-4c88-98de-1f4d96137745"
] === 1)
) {
this.getSuggestion();
}
if (
userInfo.userData.AuthorityInfo &&
userInfo.userData.AuthorityInfo[
"03bd2dbf-a5ed-4080-b168-92c3b7412d6f"
] === 1
) {
this.businessWarning = true;
}
if (
userInfo.userData.AuthorityInfo &&
userInfo.userData.AuthorityInfo[
"2d25dddc-e67f-4e26-b2d1-da78beed2c11"
] === 1
) {
this.projectWarning = true;
}
if (
userInfo.userData.AuthorityInfo &&
userInfo.userData.AuthorityInfo[
"2cf9a69f-fc06-4a1c-a8cb-3f0e914db6b8"
] === 1
) {
this.showAi = true;
// 移除这里的触发,统合到 getData 结束后触发
}
//拿到option的值
this.option = option;
// 获取数据的方法
if (this.user.Membership_Id) {
await this.getData(option);
}
// 判断缓存中是否有位置信息 没有的话 向用户请求 拿到用户当前位置
// 拿到当前位置之后去请求离当前位置最近的服务区 作为第一次进入小程序自动选中的服务区
// 在用户选择服务区之后就会有当前服务区
// 用户的当前坐标,如果没有就重新请求坐标 有了就去调最近的服务区
this.seat = uni.getStorageSync("seatInfo");
if (!this.seat) {
//获取用户的经纬度位置存在stroge里面
wx.getFuzzyLocation({
type: "gcj02",
altitude: true,
success: (res) => {
let seatInfo = {
latitude: res.latitude,
longitude: res.longitude,
};
uni.setStorageSync("seatInfo", seatInfo);
_this.seat = seatInfo;
_this.nearestService();
},
});
} else {
//拿到最近服务区的数据
this.nearestService();
}
// 移除这里的冗余重复调用,已统合进 getData
// 如果十秒之后 isSuccess 没有变成true 说明接口有慢的或者报错了 才出现提示
setTimeout(() => {
if (!this.isSuccess) {
uni.showToast({
title: "加载失败,请下拉刷新重新加载",
icon: "none",
duration: 3000,
});
}
}, 10000);
}
},
onShow() {
// 隐藏掉小程序本身自带的 tabbar 让自定义的tabbar出现
uni.hideTabBar();
this.selectVersion = 1;
uni.removeStorageSync("springService");
},
onHide() {
// 离开页面投诉建议的悬浮框隐藏掉
this.isShow = false;
this.selectTab = 2;
},
onUnload() {
this.$util.addUserBehavior();
},
onPullDownRefresh: async function () {
if (!this.isReturn) {
await this.getData(this.option);
this.currentMoney = 0;
if (new Date().getTime() < new Date("2024-05-03 00:00:00").getTime()) {
this.showAdvertisement = true;
this.isShowCloseAnimal = false;
}
this.handleRealRevenue();
}
uni.stopPullDownRefresh();
},
onPageScroll(e) {
// 移除之前的错误锁定逻辑,不再强制重置 scrollTop
},
methods: {
numeral,
...mapActions(["memberLogin", "getLoginCode"]),
// 切换演示版的显示样式
handleChangeSmallTab() {
if (this.smallTab === 1) {
this.smallTab = 2;
} else if (this.smallTab === 2) {
this.smallTab = 3;
} else if (this.smallTab === 3) {
this.smallTab = 4;
} else if (this.smallTab === 4) {
this.smallTab = 1;
}
},
// 关闭广告
handleClose() {
this.isShowCloseAnimal = true;
let _this = this;
setTimeout(() => {
_this.showAdvertisement = false;
}, 500);
},
// 预览图片
handlePreview() {
uni.previewImage({
current:
"https://eshangtech.com/ShopICO/ahyd-BID/newIndex3/advertisement.jpg",
urls: [
"https://eshangtech.com/ShopICO/ahyd-BID/newIndex3/advertisement.jpg",
],
});
},
// 显示悬浮框
handleShowMore() {
this.showMoreFixed = !this.showMoreFixed;
},
// 选择的版本
handleChangeVersion(e) {
// this.selectVersion = e;
// uni.setStorageSync("version", this.selectVersion);
// if (this.selectVersion === 2) {
// this.$util.addUserBehavior({
// intoRoute: `/pages/index/old/index`,
// });
// uni.redirectTo({
// url: `/pages/index/old/index`,
// });
// } else if (this.selectVersion === 3) {
// this.handleGetSelectVersion3Data(this.oldSwiperIndex);
// }
},
// 版本选择到3的时候要调用拿到数据的方法
async handleGetSelectVersion3Data(month) {
uni.showLoading({
title: "正在加载...",
});
const date = new Date();
// 判断现在选中的是第几年 2023年开始计数
let y = Math.floor(month / 12) + 2023;
// let y = date.getFullYear();
let m = date.getMonth() + 1;
const req = {
calcType: 1, //计算方式1【当月】2【累计】
pushProvinceCode: this.useInfo.userData ? this.useInfo.userData.ProvinceCode : "340000",
curYear: y, //本年年份
compareYear: y - 1, //历年年份
StatisticsMonth: this.selectMonth, //结算月份
StatisticsDate: this.lastDay,
};
const nowData = await request.$webGet(
"CommercialApi/Revenue/GetMonthlyBusinessAnalysis",
req
);
const allReq = {
calcType: 2, //计算方式1【当月】2【累计】
pushProvinceCode: this.useInfo.userData ? this.useInfo.userData.ProvinceCode : "340000",
curYear: y, //本年年份
compareYear: y - 1, //历年年份
StatisticsMonth: this.selectMonth, //结算月份
StatisticsDate: this.lastDay,
};
const allData = await request.$webGet(
"CommercialApi/Revenue/GetMonthlyBusinessAnalysis",
allReq
);
let allList = allData.Result_Data.List;
let allRes = {};
if (allList && allList.length > 0) {
allList.forEach((item) => {
let obj = item;
obj.AccountINC.curYearData = this.formatNumberNoPermil(
item.AccountINC.curYearData / 100000000
);
obj.AccountINC.increaseData = this.formatNumberNoPermil(
item.AccountINC.increaseData / 100000000
);
obj.AccountINC.lYearData = this.formatNumberNoPermil(
item.AccountINC.lYearData / 100000000
);
obj.RevenueINC.increaseData = this.formatNumberNoPermil(
item.RevenueINC.increaseData / 100000000
);
obj.RevenueINC.curYearData = this.formatNumberNoPermil(
item.RevenueINC.curYearData / 100000000
);
obj.RevenueINC.lYearData = this.formatNumberNoPermil(
item.RevenueINC.lYearData / 100000000
);
if (obj.BayonetINC) {
obj.BayonetINC.increaseData = this.formatNumberNoPermil(
(item.BayonetINC.increaseData || 0) / 100000000
);
obj.BayonetINC.curYearData = this.formatNumberNoPermil(
(item.BayonetINC.curYearData || 0) / 100000000
);
obj.BayonetINC.lYearData = this.formatNumberNoPermil(
(item.BayonetINC.lYearData || 0) / 100000000
);
}
if (item.ServerpartName) {
allRes[item.ServerpartName] = obj;
} else if (item.SPRegionTypeName) {
allRes[item.SPRegionTypeName] = obj;
}
});
}
this.allselectVersion3Obj = allRes;
let list = nowData.Result_Data.List;
let res = {};
if (list && list.length > 0) {
list.forEach((item) => {
let obj = item;
obj.AccountINC.curYearData = this.formatNumberNoPermil(
item.AccountINC.curYearData / 10000
);
obj.AccountINC.increaseData = this.formatNumberNoPermil(
item.AccountINC.increaseData / 10000
);
obj.AccountINC.lYearData = this.formatNumberNoPermil(
item.AccountINC.lYearData / 10000
);
obj.RevenueINC.increaseData = this.formatNumberNoPermil(
item.RevenueINC.increaseData / 10000
);
obj.RevenueINC.curYearData = this.formatNumberNoPermil(
item.RevenueINC.curYearData / 10000
);
obj.RevenueINC.lYearData = this.formatNumberNoPermil(
item.RevenueINC.lYearData / 10000
);
if (obj.BayonetINC) {
obj.BayonetINC.increaseData = this.formatNumberNoPermil(
(item.BayonetINC.increaseData || 0) / 10000
);
obj.BayonetINC.curYearData = this.formatNumberNoPermil(
(item.BayonetINC.curYearData || 0) / 10000
);
obj.BayonetINC.lYearData = this.formatNumberNoPermil(
(item.BayonetINC.lYearData || 0) / 10000
);
}
if (item.ServerpartName) {
res[item.ServerpartName] = obj;
} else if (item.SPRegionTypeName) {
res[item.SPRegionTypeName] = obj;
}
});
}
this.selectVersion3Obj = res;
uni.hideLoading();
},
// 跳转去老版本首页
goOldIndexPage() {
this.$util.addUserBehavior({
intoRoute: `/pages/index/old/index`,
});
uni.redirectTo({
url: `/pages/index/old/index`,
});
},
// 点击服务区信息跳转
handleGoServiceMessage() {
let YD = {
SERVERPART_NAME: "安徽驿达",
SPREGIONTYPE_NAME: "",
SPRegionType_ID: null,
Serverpart_ID: null,
latitude: 32,
longitude: 117,
};
uni.setStorageSync("currentService", YD);
// this.$util.toNextRoute('navigateTo', `/pages/map/detail?isPicker=${true}&come=index`)
this.$util.toNextRoute(
"navigateTo",
`/pages/summaryOfPortraits/index?isPicker=${true}&come=index`
);
// let _this = this
// let 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 = {
pushProvinceCode: this.useInfo.userData ? this.useInfo.userData.ProvinceCode : "340000",
StatisticsEndDate: this.lastDay,
ShowGrowthRate: true,
};
const data = await request.$webGet(
"CommercialApi/BigData/GetBayonetGrowthAnalysis",
req
);
this.nationalDayList[1].value = data.Result_Data.sumEntryCount
? this.$util.fmoney(
Number((data.Result_Data.sumEntryCount / 10000).toFixed(2))
)
: "";
this.nationalDayList[2].value =
data.Result_Data.GrowthList[0].Entry_GrowthRate > 0
? "+" + data.Result_Data.GrowthList[0].Entry_GrowthRate + "%"
: "-" + data.Result_Data.GrowthList[0].Entry_GrowthRate + "%";
},
// 跳转到营收统计
goToRevenueStatic() {
this.$util.toNextRoute(
"navigateTo",
`/pages/revenueStatistics/index?time=${this.lastDay}&month=${this.single}`
);
},
goToNational() {
// this.$util.toNextRoute('navigateTo', `/pages/nationalPage/index?time=${this.lastDay}`)
this.$util.toNextRoute(
"navigateTo",
`/pages/nationalPage/springTravel?selectType=2`
);
},
goToOperateWarning() {
this.$util.toNextRoute("navigateTo", `/pages/earlyWarning/index`);
},
goToProjectWarning() {
this.$util.toNextRoute(
"navigateTo",
`/pages/earlyWarning/projectWarning`
);
},
goToRobot() {
this.$util.toNextRoute("navigateTo", `/pages/robot/index`);
},
handleGoToRobot() {
this.handleCloseGuide();
this.goToRobot();
},
goToBillLading() {
this.$util.toNextRoute("navigateTo", `/pages/billOfLading/index`);
},
handleShowTrafficDetail() {
this.showMonthDetail = !this.showMonthDetail;
},
// 点击月份详情卡片进度条 显示的详情
handleShowHaveNoticeBox() {
this.showHaveNotice = !this.showHaveNotice;
},
changeShowRealBox(e) {
this.realBoxPageX = e.detail.x;
this.realBoxPageY = e.detail.y;
this.showRealBox = !this.showRealBox;
},
handleGoOtherFun(val) {
if (val === 1) {
this.$util.toNextRoute(
"navigateTo",
`/pages/map/detail?isPicker=${true}&come=index`
);
} else if (val === 2) {
this.$util.toNextRoute("navigateTo", "/pages/examine/index?come=index");
}
},
handleChangeLoadMore() {
this.loadMore = !this.loadMore;
},
handleGoCarBi() {
this.$util.toNextRoute(
"navigateTo",
`/pages/commercialBINew/carPortrait?mustAllProvince=${true}`
);
},
handleGoWarning() {
this.$util.toNextRoute("navigateTo", `/pages/commercialBI/specialCase`);
},
handleGoProject() {
this.$util.toNextRoute(
"navigateTo",
`/pages/projectProfitSharing/index?noShowTab=${true}&type=${2}`
);
},
//门店上传后面感叹号的点击事件
handleStoreUpload() {
this.popupShow = true;
},
closePop() {
this.popupShow = false;
},
async getSuggestion() {
let req = {
ModuleGuids:
"e2fb458b-d1bd-48fa-805e-fc93dc71efb7,ea2fc404-d924-4c88-98de-1f4d96137745",
ProvinceCode: "340000",
};
const data = await request.$webGet(
"CommercialApi/Suggestion/GetMemberUnreadData",
req
);
if (data.Result_Data.data) {
if (data.Result_Data.data !== "0") {
this.isShow = true;
this.isShowTitle = data.Result_Data.data;
this.isShowId = data.Result_Data.key;
}
}
},
async handleNoticeMonth() {
let date = new Date(this.lastDay);
let y = date.getFullYear();
let m = date.getMonth() + 1;
if (m < 10) {
m = "0" + m;
}
//本月的
let req = {
SearchParameter: {
// STATISTICS_DATE:`${y}-${m}`,
ANALYSISINS_TYPE: "1011",
ANALYSISINS_FORMAT: "3000",
},
PageIndex: 1,
PageSize: 10,
};
const data = await request.$webPost(
"CommercialApi/Analysis/GetANALYSISINSList",
req
);
if (data && data.Result_Data && data.Result_Data.List) {
this.monthNoticeText = data.Result_Data.List[0]
? data.Result_Data.List[0].ANALYSIS_CONTENT
: "";
}
},
async handleNoticeYear() {
let date = new Date(this.lastDay);
let y = date.getFullYear();
let m = date.getMonth() + 1;
if (m < 10) {
m = "0" + m;
}
//本年
let reqYear = {
SearchParameter: {
// STATISTICS_DATE:`${y}`,
ANALYSISINS_TYPE: "1012",
ANALYSISINS_FORMAT: "3000",
},
PageIndex: 1,
PageSize: 10,
};
const totalData = await request.$webPost(
"CommercialApi/Analysis/GetANALYSISINSList",
reqYear
);
if (totalData && totalData.Result_Data && totalData.Result_Data.List) {
this.yearNoticeText = totalData.Result_Data.List[0]
? totalData.Result_Data.List[0].ANALYSIS_CONTENT
: "";
}
},
async nearestService() {
let seat = uni.getStorageSync("seatInfo");
let req = {
longitude: seat.longitude,
Province_Code: "340000",
latitude: seat.latitude,
};
const data = await request.$webGet(
"CommercialApi/BaseInfo/GetServerpartList",
req
);
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 = {
// SERVERPART_NAME: '安徽驿达',//服务区
// SPREGIONTYPE_NAME: '安徽驿达',//片区
// Serverpart_ID: null,
// SPRegionType_ID: null,
// longitude:'117.200927',
// latitude:'31.832905',
// }
// uni.setStorageSync('nearService',res)
// this.nearServiceInfo = res
},
handleShowNotice() {
this.showNotice = true;
},
handleNoShowNotice() {
this.showNotice = false;
},
handleShowNoticeYear() {
this.showNoticeYear = true;
},
handleNoShowNoticeYear() {
this.showNoticeYear = false;
},
handlePlanPageGo(type) {
// this.$util.toNextRoute('navigateTo', `/pages/commercialBI/yearPlan`)
if (!this.isReturn) {
this.$util.toNextRoute(
"navigateTo",
`/pages/commercialBI/planMonth?lastDay=${this.lastDay}&type=${type}`
);
} else {
uni.showToast({
title: "暂无权限请联系管理员",
icon: "none",
});
}
},
handlePage() {
if (!this.isReturn) {
if (this.selectMonth === this.nowMonth) {
this.$util.toNextRoute(
"navigateTo",
`/pages/everdayRenven/index?time=${this.lastDay}`
);
}
} else {
uni.showToast({
title: "暂无权限请联系管理员",
icon: "none",
});
}
},
handleGoTab(item) {
let YD = {
SERVERPART_NAME: "安徽驿达",
SPREGIONTYPE_NAME: "",
SPRegionType_ID: null,
Serverpart_ID: 424,
latitude: 32,
longitude: 117,
};
uni.setStorageSync("currentService", YD);
if (!this.isReturn) {
this.$util.toNextRoute(
"navigateTo",
`${item.path}?time=${this.lastDay}&serviceInfo=${JSON.stringify(
this.nearServiceInfo
)}`
);
} else {
uni.showToast({
title: "暂无权限请联系管理员",
icon: "none",
});
}
},
// option是请求的参数 type是否是切换时间
async getData(option, type) {
//老代码
if (this.user.Membership_Id) {
uni.showLoading({
title: "正在加载...",
});
}
this.isSuccess = false;
const promises = [];
//判断是否从推送进来
if (option.ProvinceCode) {
// 从推送进入
this.theRequest = option;
option.time = this.$util.cutDate(option.time, "YYYY-MM-DD");
option.month = this.$util.cutDate(option.time, "YYYYMM");
if (!type) {
this.lastDay = this.$util.cutDate(option.time, "YYYY-MM-DD");
//修改时间选择器里面的时间
this.single = timestampToTimeMonth(new Date(this.lastDay).getTime());
}
// 老项目的请求数据的那部分
this.initData();
promises.push(this.initYesterdayData(type, "first"));
promises.push(this.handleGetWarningList());
promises.push(this.handleGetAllCarTraffic());
promises.push(this.handleRealRevenue());
promises.push(this.getDetail(this.theRequest));
// 增加公告加载进同步队列
promises.push(this.handleNoticeMonth());
promises.push(this.handleNoticeYear());
} else if (this.user.Membership_Id) {
this.theRequest = this.defaultMsg() || {};
this.theRequest.time = this.lastDay;
this.theRequest.month = this.$util.cutDate(this.lastDay, "YYYYMM");
this.initData();
promises.push(this.initYesterdayData(type, "first"));
promises.push(this.handleGetWarningList());
promises.push(this.handleGetAllCarTraffic());
promises.push(this.handleRealRevenue());
promises.push(this.getDetail(this.theRequest));
// 增加公告加载进同步队列
promises.push(this.handleNoticeMonth());
promises.push(this.handleNoticeYear());
}
// 等待所有核心数据加载完成
try {
await Promise.all(promises);
} catch (err) {
console.error('部分数据加载失败', err);
}
// 老代码 不知道干啥用的
this.nowTab = this.theRequest.ProvinceCode == 340000 ? 1 : 2;
// 若省份为甘肃,则加载甘肃单品排行
if (this.theRequest.ProvinceCode == 620000) {
await this.getRankContent();
}
},
// 实时营收
handleRealRevenue() {
let req = {
pushProvinceCode: this.useInfo.userData ? this.useInfo.userData.ProvinceCode : "340000",
StatisticsDate: this.nowDay,
};
return request
.$webGet("CommercialApi/Revenue/GetCurRevenue", req)
.then((res) => {
this.currentMoney = res.Result_Data.CurRevenueAmount.toFixed(2);
});
},
handleGetWarningList() {
const date = new Date();
// 拿到当前小时的前一小时
// let h = 24
let h = date.getHours();
let y = date.getFullYear();
let m = date.getMonth() + 1;
if (m < 10) {
m = "0" + m;
}
let d = date.getDate();
if (d < 10) {
d = "0" + d;
}
console.log('this.currentFestivalObj', this.currentFestivalObj);
// 判断一下因为首页现在要昨日的 那么就是得 看看有没有节日 有节日才输出
if (!this.isShowFestival) {
const req = {
// this.single
StatisticsDate:
h === 0
? moment(`${y}-${m}-${d}`).subtract(1, "day").format("YYYY-MM-DD")
: `${y}-${m}-${d}`,
StatisticsHour: h === 0 ? 23 : h - 1,
StatisticsType: 1,
ShowCount: 20,
};
return request
.$webGet("CommercialApi/BigData/GetBayonetWarning", req)
.then((res) => {
if (res.Result_Data.List && res.Result_Data.List.length > 0) {
this.special = true;
}
res.Result_Data.List.forEach((item) => {
item.name = item.SERVERPART_NAME.split("服务区")[0];
});
let list = JSON.parse(JSON.stringify(res.Result_Data.List));
for (let i = 0; i <= list.length - 1; i++) {
for (let j = 0; j <= list.length - i - 1; j++) {
if (
list[j] &&
list[j + 1] &&
list[j].VEHICLE_COUNT !== null &&
list[j + 1].VEHICLE_COUNT !== null
) {
if (list[j].VEHICLE_COUNT < list[j + 1].VEHICLE_COUNT) {
let temp = list[j];
list[j] = list[j + 1];
list[j + 1] = temp;
}
}
}
}
this.warningList = list.slice(0, 3);
});
} else {
let holidayObj = {
"newYearDay": 1,
"spring": 2,
"qm": 3,
"labour": 4,
"dragonBoat": 5,
"summerHoliday": 6,
"midAutumn": 7,
"nationalDay": 8,
}
// 到这里说明 首页是节假日
let req = {
StatisticsDate:
h === 0
? moment(`${y}-${m}-${d}`).subtract(1, "day").format("YYYY-MM-DD")
: `${y}-${m}-${d}`,
StatisticsHour: h === 0 ? 23 : h - 1,
StatisticsType: 5, // 1: 预警, 2: 排行
HolidayType: holidayObj[this.isShowFestival],
curYear: this.currentFestivalObj.curYear,
compareYear: this.currentFestivalObj.lastYear,
ShowCount: 20,
}
console.log('fjdjafjsa', req);
return request.$webGet('CommercialApi/BigData/GetHolidayBayonetWarning', req).then((res) => {
const list = res.Result_Data.List || [];
if (list.length > 0) {
this.special = true;
// 预处理名称
list.forEach((item) => {
item.name = item.SERVERPART_NAME ? item.SERVERPART_NAME.split("服务区")[0] : "";
});
// 使用原生 sort 降序排序
list.sort((a, b) => (b.VEHICLE_RATE || 0) - (a.VEHICLE_RATE || 0));
}
this.warningList = list.slice(0, 3);
})
}
},
handleGoMap() {
this.$util.toNextRoute("navigateTo", "/pages/map/index?type=index");
},
handleReg() {
this.$util.toNextRoute("redirectTo", "/pages/register/register");
},
// 跳转到经营报表
handleGoOperate() {
this.$util.toNextRoute(
"navigateTo",
`/pages/operatingStatements/index?time=${this.single}`
);
},
changeShowPortrait() {
// let YD = {
// SERVERPART_NAME: "安徽驿达",
// SPREGIONTYPE_NAME: "",
// SPRegionType_ID: null,
// Serverpart_ID: 424,
// latitude: 32,
// longitude: 117,
// }
// uni.setStorageSync('currentService',YD)
this.$util.toNextRoute(
"navigateTo",
`/pages/summaryOfPortraits/index?index=1`
);
// let near = uni.getStorageSync('nearService')
// let user = uni.getStorageSync('seatInfo')
// if (near){
// this.$util.toNextRoute('navigateTo', `/pages/summaryOfPortraits/index?index=1`)
// }else{
// uni.showLoading({
// title:'寻找最近的服务区'
// })
// let req = {
// longitude:user.longitude,
// Province_Code:'340000',
// latitude:user.latitude,
// }
// request.$webGet('CommercialApi/BaseInfo/GetServerpartList',req).then(res=>{
//
// uni.hideLoading()
// })
// }
// this.showPortrait = !this.showPortrait
// this.$util.toNextRoute('navigateTo', `/pages/summaryOfPortraits/index?index=1`)
},
handleFestival() {
// this.$util.toNextRoute('navigateTo', `/pages/summaryOfPortraits/index?index=5`)
this.$util.toNextRoute(
"navigateTo",
`/pages/commercialBI/formatPortrait?time=${this.lastDay
}&serviceInfo=${JSON.stringify(this.nearServiceInfo)}`
);
// uni.showToast({title: '栏目建设中', icon: 'none'})
},
handleMoney() {
this.$util.toNextRoute("navigateTo", `/pages/revenue/index`);
},
handleSearch(type) {
if (type === "special") {
if (!this.isReturn) {
this.special = false;
this.$util.toNextRoute(
"navigateTo",
"/pages/commercialBI/specialCase"
);
}
} else {
let req = {
SuggestionIds: this.isShowId,
};
request
.$webGet("CommercialApi/Suggestion/RecordReadingLog", req)
.then(() => {
this.$util.toNextRoute(
"navigateTo",
"/pages/suggestion/suggestion"
);
});
}
},
// 改变时间触发的方法 ,改变页面的内容数据
initAiGuide() {
const today = new Date().toISOString().split('T')[0];
const lastShown = uni.getStorageSync('has_ai_guide_shown_v1');
if (!this.showAi || this.guideInfo.visible || lastShown === today) return;
if (!this.isSuccess) return;
console.log('触发数智助手引导定位...');
const query = uni.createSelectorQuery().in(this);
query.select('.szzs').boundingClientRect();
query.selectViewport().scrollOffset();
query.exec(res => {
const element = res[0];
const viewport = res[1];
if (element && element.top > 0) {
const absoluteTop = element.top + viewport.scrollTop;
console.log('布局定位点高度:', absoluteTop);
uni.pageScrollTo({
scrollTop: absoluteTop - 250,
duration: 500,
success: () => {
setTimeout(() => {
this.calculateSzzsPosition();
}, 600);
}
});
} else {
// 容错:如果没找到元素,可能是刚赋值还没渲染,微等后再试一次
setTimeout(() => {
if (this.isSuccess) this.initAiGuide();
}, 300);
}
});
},
// 计算数智助手按钮的位置并锁定页面
calculateSzzsPosition() {
const query = uni.createSelectorQuery().in(this);
query.select('.szzs').boundingClientRect(rect => {
if (rect) {
console.log('滚动后获取坐标:', rect);
this.guideInfo.top = rect.top;
this.guideInfo.left = rect.left;
this.guideInfo.width = rect.width;
this.guideInfo.height = rect.height;
this.isScrollLock = true; // 锁定滚动
this.guideInfo.visible = true; // 显示遮罩
}
}).exec();
},
// 关闭引导并恢复滚动
handleCloseGuide() {
this.guideInfo.visible = false;
this.isScrollLock = false;
const today = new Date().toISOString().split('T')[0];
uni.setStorageSync('has_ai_guide_shown_v1', today);
},
async onRefresh(type) {
// 有权限就让他刷新 不没权限的时候下拉刷新不会调用
if (!this.isReturn) {
await this.getData(this.option, type);
}
},
getUnUpLoadList() {
let req = { pushProvinceCode: "340000", Statistics_Date: this.lastDay };
request
.$webGet("CommercialApi/Revenue/GetRevenuePushList", req)
.then((res) => {
let list = [];
res.Result_Data.List.forEach((item) => {
if (item.Revenue_Upload === 0 || !item.Revenue_Upload) {
list.push(item);
}
});
this.bodyList = list;
this.allShopCount = res.Result_Data.List.length;
});
},
monthYearPlan() {
let monthDate;
const nowDate = new Date(this.lastDay);
if (this.selectMonth === nowDate.getMonth() + 1) {
monthDate = {
Province_Code: "340000",
Statistics_Date: this.lastDay,
};
} else {
let day = this.$util.getThisMonthDay(this.single);
const date = new Date(this.single);
let y = date.getFullYear();
let m = date.getMonth() + 1;
if (m < 10) {
m = "0" + m;
}
monthDate = {
Province_Code: "340000",
Statistics_Date: `${y}-${m}-${day}`,
};
}
request
.$webGet("CommercialApi/Revenue/GetRevenueBudget", monthDate)
.then((res) => {
// 赋值给data中的这个对象 在请求完之后会进行统一的数据处理
this.plan = res.Result_Data;
this.plan.percentageMonth = res.Result_Data.MonthBudget_Degree || "";
this.plan.percentageYear = res.Result_Data.YearBudget_Degree;
this.monthAdd =
this.plan.MonthGrowth_Rate > 0
? `+${this.plan.MonthGrowth_Rate}`
: `${this.plan.MonthGrowth_Rate}`;
this.yearAdd =
this.plan.YearGrowth_Rate > 0
? `+${this.plan.YearGrowth_Rate}`
: `${this.plan.YearGrowth_Rate}`;
//处理数据
let flag1;
flag1 = (res.Result_Data.RevenueMonth_Amount / 10000)
.toString()
.indexOf(".");
this.plan.RevenueMonth_Amount = (
res.Result_Data.RevenueMonth_Amount / 10000
)
.toString()
.substring(0, flag1);
this.plan.RevenueMonth_Amount = this.$util.noDecimal(
this.plan.RevenueMonth_Amount
);
let flag2;
flag2 = (res.Result_Data.BudgetMonth_Amount / 10000)
.toString()
.indexOf(".");
this.plan.BudgetMonth_Amount = (
res.Result_Data.BudgetMonth_Amount / 10000
)
.toString()
.substring(0, flag2);
this.plan.BudgetMonth_Amount = this.$util.noDecimal(
this.plan.BudgetMonth_Amount
);
let revenueType = "";
let flag3;
if (res.Result_Data.RevenueYear_Amount > 100000000) {
revenueType = "yi";
flag3 = (res.Result_Data.RevenueYear_Amount / 100000000)
.toString()
.indexOf(".");
this.plan.RevenueYear_Amount = (
res.Result_Data.RevenueYear_Amount / 100000000
)
.toString()
.substring(0, flag3 + 3);
} else {
revenueType = "wan";
flag3 = (res.Result_Data.RevenueYear_Amount / 10000)
.toString()
.indexOf(".");
this.plan.RevenueYear_Amount = (
res.Result_Data.RevenueYear_Amount / 10000
)
.toString()
.substring(0, flag3 + 3);
}
let budgetType = "";
let flag4;
if (res.Result_Data.BudgetYear_Amount > 100000000) {
budgetType = "yi";
flag4 = (res.Result_Data.BudgetYear_Amount / 100000000)
.toString()
.indexOf(".");
this.plan.BudgetYear_Amount = (
res.Result_Data.BudgetYear_Amount / 100000000
)
.toString()
.substring(0, flag4 + 3);
} else {
budgetType = "wan";
flag4 = (res.Result_Data.BudgetYear_Amount / 100000000)
.toString()
.indexOf(".");
this.plan.BudgetYear_Amount = (
res.Result_Data.BudgetYear_Amount / 10000
)
.toString()
.substring(0, flag4 + 3);
}
this.plan.revenueType = revenueType;
this.plan.budgetType = budgetType;
});
},
handleChangeSelect(e) {
this.oldSwiperIndex = e.detail.current;
setTimeout(() => {
if (this.oldSwiperIndex === e.detail.current) {
this.showRateChart = false;
if (!this.stopSwiper) {
this.selectMonth =
e.detail.current > 11
? (e.detail.current + 1) % 12 === 0
? 12
: (e.detail.current + 1) % 12
: e.detail.current + 1;
this.selectMonthIndex = e.detail.current;
this.selectDetail = e.detail.current;
let y =
e.detail.current > 11
? Math.floor(
(e.detail.current + 1) % 12 === 0
? (e.detail.current + 1) / 12 - 1
: (e.detail.current + 1) / 12
)
: 0;
let m =
e.detail.current > 11
? (e.detail.current + 1) % 12 === 0
? 12
: (e.detail.current + 1) % 12
: e.detail.current + 1;
const date = new Date(this.lastDay);
// let y = date.getFullYear()
// let m = e.detail.current + 1
if (m < 10) {
m = "0" + m;
}
this.single = `${2023 + y}-${m}`;
this.showTableData = null;
this.currentPeriodData = null;
// this.yesObj = null
this.typeList = [];
this.revenueMoney = "";
this.externalMoney = "";
this.carInfo = null;
this.examineObj = null;
this.trafficCurrentObj = null;
this.trafficeUnit = null;
this.trafficYOYObj = null;
this.trafficQOQObj = null;
this.dailyExamineObj = null;
this.monthAdd = null;
// 月份详情卡片的详情
this.initYesterdayData(this.selectMonth !== date.getMonth() + 1);
// 自营计划
// this.monthYearPlan()
// 切换月份的车流量变化
// 是当前月份传入日期 不是当前日期传入月份
let carDate;
if (this.selectMonth === date.getMonth() + 1) {
carDate = this.lastDay;
} else {
carDate = `${2023 + y}-${m}`;
}
this.getCarInfo(carDate);
// 切换考核的数据
// this.handleGetExamine()
// 切换日常巡检数据
// this.handleGetDailyPatrol()
// 获取全省平均车流量
this.handleGetAllCarTraffic();
this.allselectVersion3Obj = {};
this.selectVersion3Obj = {};
this.smallTab = 1;
this.handleGetSelectVersion3Data(e.detail.current);
} else {
setTimeout(() => {
this.showRateChart = true;
}, 1500);
}
}
}, 750);
},
handleShowYDModal() {
this.ydModal = !this.ydModal;
},
getCarInfo(date) {
const data = {
Statistics_Date: date ? date : this.lastDay,
Province_Code: "340000",
};
request
.$webGet("CommercialApi/Revenue/GetAvgBayonetAnalysis", data)
.then((res) => {
// 赋值给data中的这个对象 在请求完之后会进行统一的数据处理
this.carInfo = res.Result_Data;
this.carInfo.Vehicle_Count = res.Result_Data.Vehicle_Count
? res.Result_Data.Vehicle_Count
: "-";
});
},
// 获取月度考核数据
handleGetExamine() {
let date = this.$util.cutDate(this.single, "YYYYMM");
const req = {
DataType: 1,
StartMonth: date,
EndMonth: date,
provinceCode: this.useInfo.userData ? this.useInfo.userData.ProvinceCode : "340000",
};
request
.$webGet("CommercialApi/Examine/GetExamineAnalysis", req)
.then((res) => {
let obj = {
A: 0,
B: 0,
C: 0,
};
res.Result_Data.List.forEach((item) => {
if (item.data === "A") {
obj.A += Number(item.value);
} else if (item.data === "B") {
obj.B += Number(item.value);
} else if (item.data === "C") {
obj.C += Number(item.value);
}
});
this.examineObj = obj;
});
},
// 获得日常巡检数据
handleGetDailyPatrol() {
const date = new Date(this.lastDay);
let obj = {
start: "",
end: "",
};
if (this.selectMonth === date.getMonth() + 1) {
obj = null;
} else {
const date = new Date(this.single);
let y = date.getFullYear();
let m = date.getMonth() + 1;
if (m < 10) {
m = "0" + m;
}
obj.start = `${y}-${m}-01`;
let d = this.$util.getThisMonthDay(this.single);
if (d < 10) {
d = "0" + d;
}
obj.end = `${y}-${m}-${d}`;
}
const req = {
StartDate: obj && obj.start ? obj.start : this.lastDay,
EndDate: obj && obj.end ? obj.end : this.lastDay,
provinceCode: this.useInfo.userData ? this.useInfo.userData.ProvinceCode : "340000",
};
request
.$webGet("CommercialApi/Examine/GetPatrolAnalysis", req)
.then((res) => {
this.dailyExamineObj = res.Result_Data;
});
},
formatNumber(num) {
// 确保输入为数字类型
num = Number(num);
if (isNaN(num)) return "0.00"; // 处理无效数字
// 将数字转换为字符串,并分离整数部分和小数部分
let parts = num.toString().split(".");
// 处理小数部分,不进行四舍五入,直接截取小数点后两位
let decimalPart = parts[1] ? parts[1].substring(0, 2) : "00";
if (decimalPart.length < 2) {
decimalPart = decimalPart.padEnd(2, "0"); // 不足两位补零
}
// 格式化整数部分,添加千分号
let integerPart = parts[0].replace(/\B(?=(\d{3})+(?!\d))/g, ",");
// 返回带千分号的整数部分和保留两位小数的数字
return `${integerPart}.${decimalPart}`;
},
formatNumberNoPermil(num) {
// 放大100倍取整后再缩小回两位小数
return Math.floor(num * 100) / 100;
},
// 跳转到考核
handleGoExamine(type) {
this.$util.toNextRoute(
"navigateTo",
`/pages/newamine/index?come=index&type=${type}&time=${this.single}`
);
// this.$util.toNextRoute('navigateTo', `/pages/summaryOfPortraits/index?index=6`)
},
async initYesterdayData(type, str) {
this.typeList = [];
// type 判断如果是滑动的 就是true 日期就传空 别的地方调用 默认传入时间
let flag3 = false;
// 获取营收推送汇总数据 老的
// const allPriceData = {
// pushProvinceCode:'340000',
// Statistics_Date:this.lastDay,
// ShowCompareRate: true,
// ShowYearRevenue: true
// }
const nowDate = new Date(this.single);
let month = JSON.parse(JSON.stringify(this.selectMonth));
if (month < 10) {
month = "0" + month;
}
let req;
if (type) {
if (nowDate.getMonth() + 1 === this.selectMonth) {
req = {
pushProvinceCode: this.useInfo.userData ? this.useInfo.userData.ProvinceCode : "340000",
StatisticsMonth: `${nowDate.getFullYear()}${month}`,
StatisticsDate: this.lastDay,
};
} else {
req = {
pushProvinceCode: this.useInfo.userData ? this.useInfo.userData.ProvinceCode : "340000",
StatisticsMonth: `${nowDate.getFullYear()}${month}`,
StatisticsDate: this.lastDay,
};
}
} else {
req = {
pushProvinceCode: this.useInfo.userData ? this.useInfo.userData.ProvinceCode : "340000",
StatisticsMonth: `${nowDate.getFullYear()}${month}`,
StatisticsDate: type ? null : this.lastDay,
};
}
uni.showLoading({
title: "正在加载...",
});
return request
.$webGet("CommercialApi/Revenue/GetSummaryRevenueMonth", req)
.then((lastData) => {
flag3 = true;
let result = lastData.Result_Data;
let progressAll = 0;
this.currentPeriodData = result.MonthRevenueModel.CurAccountRoyalty;
let shareList = [{}, {}, {}];
result.BusinessTypeList.forEach((item) => {
progressAll += Number(item.value);
let index = (item.value / 10000).toString().indexOf(".");
item.showValue = (item.value / 10000)
.toString()
.substring(0, index + 3);
// 同比
if (item.data) {
let number = ((item.value - item.data) / item.data) * 100;
if (number > 0) {
item.add = "+" + number.toFixed(2);
} else if (number < 0) {
item.add = number.toFixed(2);
} else {
item.add = null;
}
}
// 环比
if (item.key) {
let number = ((item.value - item.key) / item.key) * 100;
if (number > 0) {
item.addQOQ = "+" + number.toFixed(2) + "%";
} else if (number < 0) {
item.addQOQ = number.toFixed(2) + "%";
} else {
item.addQOQ = null;
}
}
// 分润占比
if (item.name === "便利店") {
shareList[0] = item;
} else if (item.name === "餐饮客房") {
shareList[1] = item;
} else if (item.name === "商铺租赁") {
shareList[2] = item;
}
});
this.moneyRateList = [
Number(shareList[0].value),
Number(shareList[1].value),
Number(shareList[2].value),
];
let sum = 0;
shareList.forEach((item) => {
sum += Number(item.value);
});
if (sum === 0) {
this.ydRate = "-";
this.shopRate = "-";
this.shopOutRate = "-";
} else {
this.ydRate = ((Number(shareList[0].value) / sum) * 100).toFixed(2);
this.shopRate = ((Number(shareList[1].value) / sum) * 100).toFixed(
2
);
this.shopOutRate = (
(1 -
(Number(shareList[0].value) / sum +
Number(shareList[1].value) / sum)) *
100
).toFixed(2);
}
this.profitSharingList = shareList;
this.typeList = result.BusinessTypeList;
this.revenueMoney = result.BusinessTypeList[0].showValue;
this.externalMoney = result.BusinessTypeList[1].showValue;
this.progressObj = {
owner: Number(
((this.typeList[0].value / progressAll) * 100).toFixed(2)
),
other:
100 -
Number(((this.typeList[0].value / progressAll) * 100).toFixed(2)),
};
// 计算百分比
this.regionProgress = result.BusinessTradeList;
let all = 0;
this.regionProgress.forEach((item) => {
all += Number(item.value);
});
this.regionProgress.forEach((item) => {
item.percentage = ((item.value / all) * 100).toFixed(2);
});
// 计算百分比
this.areaProgress = result.SPRegionList;
let all2 = 0;
this.areaProgress.forEach((item) => {
all2 += Number(item.value);
});
this.areaProgress.forEach((item) => {
item.percentage = ((item.value / all2) * 100).toFixed(2);
});
this.showTableData = result.MonthRevenueModel;
// 对客营收的增幅
this.showTableData.YearRevenueAdd = (
((this.showTableData.YearRevenueAmount -
this.showTableData.YearRevenueYOY) /
this.showTableData.YearRevenueYOY) *
100
).toFixed(2);
// 对客营收的增长
this.showTableData.YearRevenueAddNumber =
this.showTableData.YearRevenueAmount -
this.showTableData.YearRevenueYOY;
// 营业收入的增幅
this.showTableData.YearAccountAdd = (
((this.showTableData.YearAccountRoyalty -
this.showTableData.YearAccountRoyaltyYOY) /
this.showTableData.YearAccountRoyaltyYOY) *
100
).toFixed(2);
// 营业收入的增长
this.showTableData.YearAccountAddNumber =
this.showTableData.YearAccountRoyalty -
this.showTableData.YearAccountRoyaltyYOY;
if (this.showTableData.RevenueYOY) {
this.showTableData.add = Number(
(
((this.showTableData.CashPay - this.showTableData.RevenueYOY) /
this.showTableData.RevenueYOY) *
100
).toFixed(2)
);
this.showTableData.add =
this.showTableData.add > 0
? "+" + this.showTableData.add
: this.showTableData.add;
}
if (this.showTableData.YearRevenueAmount) {
// 不四舍五入的截取年度累计
let index = (result.MonthRevenueModel.YearRevenueAmount / 100000000)
.toString()
.indexOf(".");
this.showTableData.allRevenueYear = (
result.MonthRevenueModel.YearRevenueAmount / 100000000
)
.toString()
.substring(0, index + 3);
// 同比去年的年度累计
let yearYoY = (
((result.MonthRevenueModel.YearRevenueAmount -
result.MonthRevenueModel.YearRevenueYOY) /
result.MonthRevenueModel.YearRevenueYOY) *
100
).toFixed(2);
this.showTableData.yearYoY =
Number(yearYoY) > 0 ? "+" + Number(yearYoY) : Number(yearYoY);
}
if (this.showTableData.RevenueQOQ) {
// 对客的环比
let customerQoQ = (
((result.MonthRevenueModel.CashPay -
result.MonthRevenueModel.RevenueQOQ) /
result.MonthRevenueModel.RevenueQOQ) *
100
).toFixed(2);
this.showTableData.customerQoQ =
Number(customerQoQ) > 0
? "+" + customerQoQ + "%"
: Number(customerQoQ) < 0
? customerQoQ + "%"
: "";
}
if (str === "first") {
this.yesObj = result.RevenuePushModel;
if (this.yesObj) {
let indexYes = (result.RevenuePushModel.CashPay / 10000)
.toString()
.indexOf(".");
this.yesObj.CashPay = this.$util.fmoney(
result.RevenuePushModel.CashPay
);
this.nationalDayList[0].value = this.$util.fmoney(
this.yesObj.CashPay,
2
);
}
if (result.GrowthRate) {
this.yesObjCompared = result.GrowthRate;
}
}
if (flag3) {
// uni.hideLoading()
this.todayAmount();
}
});
},
//获取全省平均车流量
handleGetAllCarTraffic() {
const date = new Date(this.lastDay);
let time;
if (this.selectMonth === date.getMonth() + 1) {
time = this.lastDay;
} else {
const date = new Date(this.single);
let y = date.getFullYear();
let m = date.getMonth() + 1;
if (m < 10) {
m = "0" + m;
}
time = `${y}${m}`;
}
const req = {
Province_Code: this.useInfo.userData ? this.useInfo.userData.ProvinceCode : "340000",
Statistics_Date: time,
};
return request
.$webGet("CommercialApi/Revenue/GetProvinceAvgBayonetAnalysis", req)
.then((res) => {
res.Result_Data.List.forEach((item) => {
if (item.Serverpart_Name === "QOQ") {
this.trafficQOQObj = item;
} else if (item.Serverpart_Name === "YOY") {
this.trafficYOYObj = item;
} else {
this.trafficCurrentObj = item;
if (this.trafficCurrentObj.Vehicle_AddUpCount / 1000000 >= 1) {
this.trafficCurrentObj.AddUpCount = this.$util.fmoney(
this.$util.getMoney(
this.trafficCurrentObj.Vehicle_AddUpCount / 1000000
),
2
);
this.trafficeUnit = "百万辆";
} else if (
this.trafficCurrentObj.Vehicle_AddUpCount / 10000 >=
1
) {
this.trafficCurrentObj.AddUpCount = this.$util.fmoney(
this.$util.getMoney(
this.trafficCurrentObj.Vehicle_AddUpCount / 10000
),
2
);
this.trafficeUnit = "万辆";
} else {
this.trafficCurrentObj.AddUpCount =
this.trafficCurrentObj.Vehicle_AddUpCount;
}
}
});
this.showRateChart = true;
});
},
defaultMsg() {
let option = null;
let _this = this;
if (this.PushAuthority && this.PushAuthority.length > 1) {
option = this.PushAuthority.find(
(n) => n.ProvinceCode === _this.ProvinceCode
);
} else if (this.user.Membership_Id) {
option = {
GroupType: 1000,
ProvinceCode: 340000,
ServerpartIds: "",
ShopAnalysisType: 1,
};
} else {
}
return {
...option,
};
},
handleSelectTab(value) {
this.selectTab = value;
},
// 根据当前时间 拿到滑块索引的办法
handleGetSwiperIndex(time) {
const date = new Date(time);
let y = date.getFullYear();
let m = date.getMonth() + 1;
if (y - 2023 > 0) {
let currentY = y - 2023;
let currentM = m % 12 === 0 ? 12 : m % 12;
return currentY * 12 + currentM - 1;
} else {
return m - 1;
}
},
// 顶部的时间组件切换时间触发的方法
bindDateChange(e) {
this.showTableData = null;
// this.yesObj = null
this.typeList = [];
this.carInfo = null;
this.examineObj = null;
this.dailyExamineObj = null;
this.monthAdd = null;
// 阻止调用swiper的滚动 防止切换时间调了一次方法 swiper移动又会自动调用接口的问题
this.stopSwiper = true;
let isOnRefresh = false;
const date = new Date(e.detail.value);
let y = date.getFullYear();
let m = date.getMonth() + 1;
this.selectMonth = m + 1;
this.selectDetail = this.handleGetSwiperIndex(e.detail.value);
// this.stopSwiper = false
const realDate = new Date(this.lastDay);
const realMonth = realDate.getMonth() + 1;
if (this.selectMonth > realMonth) {
isOnRefresh = false;
} else {
isOnRefresh = true;
}
// let isOnRefresh = false
// let startTime = new Date(this.startDate).getTime()- 8 * 3600 * 1000
// let endTime = new Date(this.noChangeLastDay).getTime() - 8 * 3600 * 1000 //结束时间戳
// const date = new Date(e.detail.value).getTime() - 8 * 3600 * 1000
// let startDate = new Date(this.startDate)
// let startMonth = startDate.getMonth() + 1
// let startDay = startDate.getDate()
// let endDate = new Date(this.noChangeLastDay)
// let endMonth = endDate.getMonth() + 1
// let endDay = endDate.getDate()
// 判断是否是在限制的时间内
// isOnRefresh 是判断有没有限制条件的关键参数
// if (date > endTime || date < startTime){
// isOnRefresh = false
// }else{
// isOnRefresh = true
// }
// const nowDate = new Date()
// let y = nowDate.getFullYear()
// let m = nowDate.getMonth() +1
// if (m<10){
// m= '0'+m
// }
// let d = nowDate.getDate()
// if (d<10){
// d= '0'+d
// }
// let nowDay = new Date(`${y}-${m}-${d}`).getTime()- 8 * 3600 * 1000
// if (nowDay<=date){
// isOnRefresh = false
// }else{
// isOnRefresh = true
// }
// 符合要求的时间可以请求数据 不符合的弹出提示
if (isOnRefresh) {
this.single = timestampToTimeMonth(date);
// this.lastDay = e.detail.value
// uni.setStorageSync('lastDay',this.lastDay)
// this.thisDay = getThisDay(new Date(e.detail.value).getDay())
this.onRefresh(true);
} else {
// uni.showModal({
// title: `数据看板仅支持查看${endMonth}.${endDay+1}之前的数据,更多数据请登陆商业综合平台查看`,
// // title: `数据看板仅支持查看${startMonth}.${startDay}-${endMonth}.${endDay}的数据,更多数据请登陆商业综合平台查看`,
// icon:'none',
// showCancel: false,
// duration:3000
// });
}
},
async initData() {
// 初始化营收数据
this.priceMove = true;
},
// 请求完最后处理数据的方法 拿到项目就已经是有一堆请求的了 只能最后处理数据
todayAmount() {
let _this = this;
// 由于处理数据的时间 必须在全部接口请求完毕 所以加个延时器
// 由于页面大部分的内容采用渲染的格式 这样的方法是最快的对原数据进行赋值 对照data里面的几个主要的数组看就能看明白
// 门店上传的前后数字计算来决定样式
if (
this.showTableData.Revenue_Upload >= this.showTableData.TotalShopCount
) {
this.isBig = false;
} else {
this.isBig = true;
}
// 计算相对于昨日的增长率
// this.showTableData.compared = (((Number(this.showTableData.CashPay) - this.yesterdayAllPay) / this.yesterdayAllPay) * 100).toFixed(2)
// 客单均价
this.showTableData.averagePrice = (
Number(this.showTableData.CashPay) /
Number(this.showTableData.TicketCount)
).toFixed(2);
// 商品均价
this.showTableData.countave = (
Number(this.showTableData.CashPay) /
Number(this.showTableData.TotalCount)
).toFixed(2);
// 处理所有数据 变成有千分号和小数点的数据
if (
this.showTableData.UnUpLoadShopList &&
this.showTableData.UnUpLoadShopList.length > 0
) {
let list = [];
this.showTableData.UnUpLoadShopList.forEach((item) => {
if (item.Revenue_Upload === 0 || !item.Revenue_Upload) {
list.push(item);
}
});
this.bodyList = list;
}
let index1 = (this.showTableData.CashPay / 10000).toString().indexOf(".");
let number = this.showTableData.CashPay / 10000;
this.showTableData.CashPayChange = this.$util.fmoney(
this.$util.getMoney(number),
2
);
// for (let key in this.showTableData){
// if (this.showTableData[key]){
// // 在有值的前提下
// // 是第一个if里面的参数 不会被处理 是第二个if里面的参数 会被处理千分号 但是没有小数点 不在第一第二个if里面的字段会被处理 保留两位小数
// if (key==='uploadState' || key==='Revenue_Upload' || key==='TotalShopCount' || key==='UnUpLoadShopList'){
// this.showTableData[key] = this.showTableData[key]
// }else if(key ==='TicketCount'){
// this.showTableData[key] = this.$util.noDecimal(this.showTableData[key],0)
// }else{
// this.showTableData[key] = this.$util.fmoney(this.showTableData[key], 2)
// }
// }
// }
uni.hideLoading();
this.isSuccess = true;
this.stopSwiper = false;
_this.$forceUpdate();
// 在数据渲染完毕后的关键节点,触发新功能提示
this.$nextTick(() => {
this.initAiGuide();
});
},
getListDetail(data) {
let arr = []
let keyJson = {
SHOWMORE_SIGN: {
1: '【长款】',
2: '【异常长款】'
}, // 长款
SHOWLESS_SIGN: {
1: '【短款】',
2: '【异常短款】'
}, // 短款
SHOWABNORMAL_SIGN: {
1: '【异常校验】'
}, // 异常日结
SHOWSCAN_SIGN: {
1: '【扫】'
}, // 扫码上传
SHOWSSUPPLY_SIGN: {
1: '【补】'
}, // 账期补录
SHOWCHECK_SIGN: {
1: '【稽核检查】'
}, // 稽核检查
INTERFACE_SIGN: {
1: '【接口传输】'
}, // 接口传输
}
var keyCode = ['SHOWABNORMAL_SIGN', 'SHOWCHECK_SIGN', 'SHOWMORE_SIGN', 'SHOWLESS_SIGN', 'SHOWSCAN_SIGN',
'SHOWSSUPPLY_SIGN', 'INTERFACE_SIGN'
]
keyCode.map(n => {
if (keyJson[n][data[n]]) arr.push(keyJson[n][data[n]])
})
return arr
},
getDetail(obj) {
let _this = this;
return this.$request
.$webGet("CommercialApi/Revenue/GetServerpartEndAccountList", {
Serverpart_ID: obj.ServerpartIds,
pushProvinceCode: obj.ProvinceCode,
Statistics_Date: obj.time,
})
.then((res) => {
if (res.Result_Code != 100) return;
res.Result_Data.ShopEndaccountList.map((n) => {
n.show = false;
n.detail = this.getListDetail(n);
});
_this.regionList = res.Result_Data.ShopEndaccountList;
});
},
async getRankContent() {
// 甘肃需要单品排行显示
const { ProvinceCode, time } = this.theRequest;
const data = await this.$request.$webGet(
"CommercialApi/Revenue/GetWechatPushSalesList",
{
pushProvinceCode: ProvinceCode,
Statistics_Date: time,
}
);
if (data.Result_Code === 100 && data.Result_Data.TotalCount > 0) {
this.wechatPushSalesList = {};
data.Result_Data.List.forEach((n) => {
this.wechatPushSalesList[n.Data_Type] = n.GoodsList;
});
} else {
this.wechatPushSalesList = {};
}
this.$forceUpdate();
},
},
};
</script>
<style scoped lang="scss">
$iphoneHeight: env(safe-area-inset-bottom);
@import "/static/public/font2/stylesheet.css";
.main {
width: 100%;
box-sizing: border-box;
padding-bottom: calc(45px + env(safe-area-inset-bottom));
background: #f3f4f9;
.meng {
width: 100vw;
height: 100vh;
position: fixed;
top: 0;
left: 0;
z-index: 20;
}
.showMoreFixedBox {
width: 100vw;
height: 100vh;
position: fixed;
top: 0;
left: 0;
z-index: 1000000;
background: rgba(7, 7, 7, 0.5);
.fixedBox {
width: calc(100vw - 64rpx);
box-sizing: border-box;
padding: 38rpx 32rpx;
border-radius: 16rpx;
background: #fff;
position: fixed;
left: 32rpx;
.otherDetailBottom {
.bottomItem {
width: 100%;
.bottomSmallItem {
width: 100%;
display: flex;
align-items: center;
justify-content: space-between;
margin-bottom: 8rpx;
.itemLeft {
display: flex;
align-items: center;
.itemMonth {
padding: 4rpx 8rpx;
font-family: PingFangSC, PingFang SC;
font-weight: 400;
font-size: 24rpx;
color: #ffffff;
line-height: 24rpx;
text-align: left;
font-style: normal;
background: #f2792e;
border-radius: 4rpx;
margin-right: 8rpx;
}
.itemTitle {
font-family: PingFangSC, PingFang SC;
font-weight: 400;
font-size: 28rpx;
color: #160002;
line-height: 44rpx;
text-align: left;
font-style: normal;
.unit {
font-family: PingFangSC, PingFang SC;
font-weight: 400;
font-size: 28rpx;
color: #a69e9f;
line-height: 44rpx;
text-align: left;
font-style: normal;
margin-left: 4rpx;
}
}
}
.itemRight {
.itemValue {
font-family: DINAlternate, DINAlternate;
font-weight: bold;
font-size: 36rpx;
color: #160002;
line-height: 44rpx;
text-align: center;
font-style: normal;
}
}
}
.itemData {
display: flex;
justify-content: flex-end;
align-items: center;
margin-bottom: 8rpx;
.itemValue {
font-family: DINAlternate, DINAlternate;
font-weight: bold;
font-size: 28rpx;
color: #e83944;
line-height: 32rpx;
text-align: center;
font-style: normal;
}
.itemText {
font-family: PingFangSC, PingFang SC;
font-weight: 400;
font-size: 28rpx;
color: #a69e9f;
line-height: 40rpx;
text-align: left;
font-style: normal;
margin-left: 8rpx;
}
}
}
.monthDetail {
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
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;
.monthItem {
.label {
display: inline-block;
width: 100px;
}
.value {
display: inline-block;
text-align: left;
margin-right: 12rpx;
}
}
}
}
}
}
@keyframes moveAndShrink {
0% {
transform: translateX(0) scale(1);
}
50% {
transform: translate(5%, 150px) scale(0.5);
}
100% {
transform: translate(10%, 300px) scale(0);
}
}
.advertisement {
width: 100vw;
height: 100vh;
position: fixed;
top: 0;
left: 0;
background: rgba(7, 7, 7, 0.5);
z-index: 999998;
.advertisementNormalContent {
height: 500px;
position: absolute;
top: 10vh;
left: 50%;
transform: translateX(-50%);
background: #fff;
border-radius: 16px;
box-sizing: border-box;
padding: 16px;
display: flex;
flex-direction: column;
align-items: center;
.topImg {
width: 200px;
height: 49px;
}
.adverImg {
width: 200px;
height: 683px;
}
.text {
font-size: 18px;
color: #7f020b;
display: inline-block;
white-space: nowrap;
}
}
.advertisementContent {
animation: moveAndShrink 0.5s;
}
.closeBox {
position: absolute;
top: calc(10vh + 510px);
left: 50%;
transform: translateX(-50%);
width: 100%;
display: flex;
justify-content: center;
.closeIcon {
width: 30px;
height: 30px;
}
}
}
.header {
width: 100%;
background: linear-gradient(180deg, #dce6ff 0%, #f3f4f9 100%);
box-sizing: border-box;
//padding-bottom: 20rpx;
//padding: 0 16px;
//position: relative;
.headerTop {
width: 100%;
background: #dce6ff;
position: fixed;
top: 0;
left: 0;
box-sizing: border-box;
padding: 0 15px;
z-index: 999997;
.selectTime {
position: absolute;
display: flex;
align-items: center;
.searchIconBox {
display: flex;
align-items: center;
.dateIcon {
width: 168rpx;
height: 50rpx;
}
.searchIconText {
font-size: 30rpx;
font-family: Alimama ShuHeiTi;
font-weight: 400;
color: #160002;
line-height: 40rpx;
margin-left: 6rpx;
//font-style: oblique;
}
}
.seachBox {
width: 334rpx;
background: #fff;
border-radius: 32rpx;
margin-left: 16rpx;
box-sizing: border-box;
padding: 10rpx 20rpx;
display: flex;
align-items: center;
.searchIcon {
width: 32rpx;
height: 32rpx;
margin-right: 8rpx;
}
.searchText {
font-size: 28rpx;
font-family: PingFangSC, PingFang SC;
font-weight: 400;
color: #b6bacb;
line-height: 40rpx;
white-space: nowrap;
}
}
.time {
display: flex;
align-items: center;
margin-right: 4px;
.day {
font-size: 32rpx;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #782717;
line-height: 44rpx;
margin-right: 4px;
}
.uni-input {
font-size: 32rpx;
font-family: PingFangSC-Semibold, PingFang SC;
font-weight: 600;
color: #2249a2;
line-height: 44rpx;
}
.icon {
width: 12px;
height: 12px;
margin-left: 16rpx;
}
}
}
}
.storeDetail {
width: 100%;
margin-top: 16rpx;
box-sizing: border-box;
.storeName {
font-size: 14px;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #782717;
line-height: 20px;
.num {
font-weight: 600;
margin-left: 8px;
}
}
.detailBox {
width: 100%;
//background: rgba(254, 255, 254, 0.3);
//margin-top: 8px;
white-space: nowrap;
.detailItemBox {
width: 100% !important;
display: inline-block;
.bigBox {
width: calc(100% - 10px) !important;
background: #fff;
height: 100%;
//box-shadow: 0rpx 20rpx 40rpx 0rpx rgba(1,27,90,0.06);
border-radius: 38rpx;
padding: 4rpx;
box-sizing: border-box;
.box {
width: 100%;
display: inline-block;
border-radius: 32rpx;
overflow: hidden;
position: relative;
box-shadow: 0rpx 20rpx 40rpx 0rpx rgba(1, 27, 90, 0.06);
//background: rgba(254, 192, 168,0.8);
.top {
width: 100%;
background: linear-gradient(180deg,
#dce6ff 0%,
#ffffff 80%,
#ffffff 100%);
border-bottom-right-radius: 32rpx;
border-bottom-left-radius: 32rpx;
box-sizing: border-box;
padding: 12px 16px;
.topTop {
width: 100%;
display: flex;
align-items: center;
justify-content: space-between;
.statistics {
display: flex;
align-items: center;
.staticImg {
width: 50rpx;
height: 40rpx;
}
.staticTitle {
font-size: 28rpx;
font-family: PingFangSC-Semibold, PingFang SC;
font-weight: 500;
color: #160002;
line-height: 40rpx;
margin: 0 4px;
}
.staticUnit {
font-size: 28rpx;
font-family: PingFangSC, PingFang SC;
font-weight: 400;
color: #a69e9f;
line-height: 40rpx;
}
.moreIcon {
width: 32rpx;
height: 32rpx;
display: flex;
align-items: center;
justify-content: center;
color: #a69e9f;
font-size: 12px;
font-weight: 600;
margin-left: 6px;
position: relative;
z-index: 21;
.noticeIcon {
width: 32rpx;
height: 32rpx;
}
.realBox {
position: absolute;
left: 5%;
top: 10px;
transform: translateX(-50%);
//right: 0;bottom: 0;
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: 22;
width: 75vw;
height: 70vh;
overflow-y: scroll;
white-space: pre-wrap;
.noticeText {
font-size: 12px;
color: #000;
display: block;
}
.closeIcon {
width: 16px;
height: 16px;
}
.field {
text-align: right;
display: flex;
.label {
display: inline-block;
width: 160rpx;
text-align: left;
box-sizing: border-box;
}
.value {
width: 200rpx;
text-align: right;
}
}
}
}
.staticIcon {
width: 32rpx;
height: 32rpx;
opacity: 0.25;
margin-left: 12rpx;
}
}
.haveMore {
display: flex;
align-items: center;
background: #fff;
padding: 10rpx 16rpx;
border-radius: 16rpx;
.haveMoreText {
font-size: 24rpx;
font-family: PingFangSC, PingFang SC;
font-weight: 400;
color: #786b6c;
line-height: 36rpx;
}
.haveMoreICon {
width: 12px;
height: 18px;
}
}
}
.revenueBox {
.revenueTop {
margin-top: 16rpx;
display: flex;
align-items: center;
justify-content: space-between;
.revenueTopLeft {
display: flex;
align-items: center;
.revenueNumber {
font-size: 48rpx;
font-family: DINAlternate-Bold, DINAlternate;
font-weight: bold;
color: #160002;
line-height: 56rpx;
}
.moreIcon {
width: 12px;
height: 12px;
display: flex;
align-items: center;
justify-content: center;
border: 2px solid #a69e9f;
border-radius: 50%;
color: #a69e9f;
font-size: 12px;
font-weight: 600;
margin-left: 6px;
position: relative;
.realBox {
position: absolute;
left: 0;
top: 0;
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;
}
}
}
.revenueTopRight {
display: flex;
align-items: center;
.addReduce {
width: 28rpx;
height: 28rpx;
margin-right: 4px;
border-radius: 50%;
}
.addValue {
font-size: 36rpx;
font-family: DINAlternate, DINAlternate;
font-weight: bold;
color: #e83944;
line-height: 40rpx;
}
.rightNav {
font-size: 28rpx;
font-family: PingFangSC, PingFang SC;
font-weight: 400;
color: #a69e9f;
line-height: 40rpx;
margin-left: 4rpx;
}
}
}
.revenueNav {
display: flex;
align-items: center;
justify-content: space-between;
.leftNav {
margin-top: 2px;
font-size: 28rpx;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
//color: #160002;
color: #a69e9f;
line-height: 40rpx;
.unit {
font-size: 28rpx;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #a69e9f;
line-height: 40rpx;
margin-left: 2px;
}
}
.rightNav {
font-size: 28rpx;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #a69e9f;
line-height: 40rpx;
margin-right: 64rpx;
}
}
.newBox {
width: 100%;
box-sizing: border-box;
//padding: 16rpx 16rpx 0;
//background: linear-gradient(135deg, #FFE3BA 0%, #FFF5E5 40%, #FFF1DB 78%, #FFDABC 100%); border-radius: 16rpx;
//margin-top: 32rpx;
margin-top: 32rpx;
.progress {
width: 100%;
height: 18rpx;
border-radius: 12rpx;
background: #b1c8ff;
//overflow: hidden;
position: relative;
.have {
position: absolute;
top: 0;
left: 0;
width: 60%;
background: #2363ff;
height: 100%;
border-radius: 12rpx;
}
.haveNoticeBox {
position: absolute;
bottom: 13px;
left: 50%;
transform: translateX(-50%);
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;
}
}
.message {
width: 100%;
display: flex;
margin-top: 16rpx;
.smallDetailItem {
width: 50%;
.messageTop {
display: flex;
align-items: center;
.type {
width: 24rpx;
height: 12rpx;
border-radius: 6rpx;
margin-right: 6px;
}
.typeTitle {
font-size: 28rpx;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #160002;
line-height: 40rpx;
.unit {
font-size: 28rpx;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #a69e9f;
line-height: 40rpx;
margin-left: 2px;
}
}
}
.middle {
margin-top: 6px;
margin-left: 20px;
display: flex;
align-items: center;
.money {
font-size: 36rpx;
font-family: DINAlternate-Bold, DINAlternate;
font-weight: bold;
color: #160002;
line-height: 44rpx;
}
.addItem {
margin-left: 6px;
display: inline-block;
padding: 2px 4px;
font-size: 28rpx;
font-family: DINAlternate-Bold, DINAlternate;
font-weight: bold;
color: #e83944;
line-height: 32rpx;
background: rgba(232, 57, 68, 0.1);
border-radius: 18rpx;
}
}
.messageBottom {
margin-left: 20px;
display: flex;
align-items: center;
.addText {
font-size: 28rpx;
font-family: DINAlternate-Bold, DINAlternate;
font-weight: bold;
color: #e83944;
line-height: 32rpx;
}
.addType {
font-size: 28rpx;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #a69e9f;
line-height: 40rpx;
margin-left: 4px;
}
}
}
}
.moneyRate {
width: 100%;
box-sizing: border-box;
margin-top: 16rpx;
height: 144rpx;
display: flex;
align-items: center;
.leftBox {
width: 144rpx;
height: 144rpx;
margin-right: 16rpx;
position: relative;
.rateChartsBox {
width: 144rpx;
height: 144rpx;
}
.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;
.field {
display: flex;
align-items: center;
.label {
width: 140rpx;
text-align: left;
}
.value {
width: 100rpx;
font-family: DINAlternate-Bold, DINAlternate;
text-align: right;
}
}
}
}
.rightBox {
flex: 1;
display: flex;
align-items: center;
.noticeItem {
width: 50%;
.noticeTop {
width: 24rpx;
height: 12rpx;
background: #a66a37;
border-radius: 6rpx;
margin-bottom: 8rpx;
}
.noticeText {
font-size: 28rpx;
font-family: PingFangSC, PingFang SC;
font-weight: 400;
color: #160002;
line-height: 40rpx;
margin-bottom: 6rpx;
.noticeSmallText {
font-size: 28rpx;
font-family: PingFangSC, PingFang SC;
font-weight: 400;
color: #a69e9f;
line-height: 40rpx;
margin-left: 4rpx;
}
}
.noticeMoney {
font-size: 36rpx;
font-family: DINAlternate-Bold, DINAlternate;
font-weight: bold;
color: #160002;
line-height: 44rpx;
}
}
}
.newRightBox {
height: 100%;
flex: 1;
.newRightItem {
width: 100%;
display: flex;
align-items: center;
justify-content: space-between;
margin: 8rpx 0;
.itemLeft {
display: flex;
align-items: center;
width: 33%;
.itemIcon {
width: 12rpx;
height: 12rpx;
margin-right: 12rpx;
border-radius: 50%;
}
.itemName {
font-family: PingFangSC, PingFang SC;
font-weight: 400;
font-size: 28rpx;
color: #160002;
line-height: 40rpx;
text-align: left;
font-style: normal;
display: inline-block;
width: 120rpx;
}
}
.itemCenter {
display: inline-block;
width: 33%;
font-family: DINAlternate-Bold, DINAlternate;
font-weight: bold;
font-size: 28rpx;
color: #160002;
line-height: 40rpx;
text-align: right;
font-style: normal;
}
.itemRight {
display: inline-block;
width: 33%;
font-family: DINAlternate-Bold, DINAlternate;
font-weight: bold;
font-size: 28rpx;
color: #e83944;
line-height: 40rpx;
text-align: right;
font-style: normal;
}
}
}
}
}
.accountRevenue {
width: 100%;
//background: #F9FAFC;
box-sizing: border-box;
padding: 28rpx 24rpx;
margin-top: 48rpx;
.accountItem {
width: 100%;
.itemTop {
display: flex;
align-items: center;
justify-content: space-between;
margin-bottom: 8rpx;
.itemType {
font-family: PingFangSC, PingFang SC;
font-weight: 400;
font-size: 24rpx;
color: #ffffff;
line-height: 24rpx;
text-align: left;
font-style: normal;
padding: 4rpx 8rpx;
background: #f2792e;
border-radius: 4rpx;
margin-right: 8rpx;
}
.itemName {
font-family: PingFangSC, PingFang SC;
font-weight: 400;
font-size: 28rpx;
color: #160002;
line-height: 40rpx;
text-align: left;
font-style: normal;
.unit {
font-family: PingFangSC, PingFang SC;
font-weight: 400;
font-size: 24rpx;
color: #9a9a9a;
line-height: 36rpx;
text-align: left;
font-style: normal;
margin-left: 4rpx;
}
}
}
.itemBottom {
display: flex;
align-items: center;
justify-content: space-between;
.revenueNum {
font-family: DINAlternate-Bold, DINAlternate;
font-weight: bold;
font-size: 32rpx;
color: #160002;
line-height: 44rpx;
text-align: left;
font-style: normal;
}
.revenueAdd {
font-family: DINAlternate-Bold, DINAlternate;
font-weight: bold;
font-size: 32rpx;
color: #e83944;
line-height: 44rpx;
text-align: left;
font-style: normal;
.revenueAddNotice {
font-size: 24rpx;
font-weight: 400;
color: #a69e9f;
margin-right: 4px;
}
}
}
}
}
.showMoreLoading {
width: 100%;
display: flex;
align-items: center;
justify-content: center;
margin-top: 16rpx;
.showMorenDown {
width: 32rpx;
height: 32rpx;
}
}
.goBusiness {
width: 100%;
display: flex;
justify-content: flex-end;
.bussinessRight {
display: flex;
align-items: center;
.bussinessText {
font-size: 28rpx;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #a69e9f;
line-height: 40rpx;
margin: 0 4px;
}
.moreIcon {
width: 12px;
height: 12px;
display: flex;
align-items: center;
justify-content: center;
border: 2px solid #a69e9f;
border-radius: 50%;
color: #a69e9f;
font-size: 12px;
font-weight: 600;
margin-left: 6px;
position: relative;
.realBox {
position: absolute;
//left: 0;top: 0;
right: 0;
bottom: 0;
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;
}
}
.staticIcon {
width: 32rpx;
height: 32rpx;
opacity: 0.25;
}
}
}
}
}
.noShowMoreBox {
width: 100%;
display: flex;
align-items: center;
justify-content: center;
position: absolute;
left: 0;
bottom: 8px;
.noShowMore {
width: 25px;
height: 14px;
}
}
.monthBox {
display: inline-block;
position: absolute;
right: 1px;
top: 1px;
padding: 4rpx 26rpx;
font-size: 28rpx;
font-family: PingFangSC-Semibold, PingFang SC;
font-weight: 600;
color: #b33115;
line-height: 40rpx;
background: #ffd2c4;
border-radius: 0rpx 30rpx 0rpx 30rpx;
}
}
.bottom {
width: 100%;
height: 52rpx;
background: #fdfefd;
box-sizing: border-box;
padding: 0 32rpx 12rpx;
display: flex;
justify-content: space-between;
align-items: center;
border-bottom-left-radius: 38rpx;
border-bottom-right-radius: 38rpx;
.searchText {
font-size: 28rpx;
font-family: PingFangSC, PingFang SC;
font-weight: 400;
color: #2363ff;
line-height: 40rpx;
}
.searchIcon {
width: 25px;
height: 14px;
}
}
.otherDetail {
width: 100%;
//margin-top: 30px;
.detail {
width: 100%;
//height: 290px;
box-sizing: border-box;
padding: 16px 16px 8px;
//background: linear-gradient(180deg, #DCE6FF 0%, #FFFFFF 68%, #FFFFFF 100%);
border-bottom-left-radius: 32rpx;
border-bottom-right-radius: 32rpx;
//margin-top: 12px;
.detailMessage {
width: 100%;
height: 100%;
.otherDetailTop {
width: 100%;
display: flex;
align-items: center;
justify-content: space-between;
.otherDetailTopLeft {
.yearAll {
font-size: 40rpx;
font-family: DINAlternate-Bold, DINAlternate;
font-weight: bold;
color: #6d1301;
line-height: 40rpx;
}
.yearLabel {
margin-top: 4rpx;
font-size: 28rpx;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #6d1301;
line-height: 40rpx;
.unit {
font-size: 28rpx;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #c5846f;
line-height: 40rpx;
margin-left: 4rpx;
}
}
}
.otherDetailRight {
.otherDetailAddBox {
display: flex;
align-items: center;
.otherDetailAddIcon {
width: 28rpx;
height: 28rpx;
margin-right: 6rpx;
}
.otherDetailAddValue {
font-size: 36rpx;
font-family: DINAlternate-Bold, DINAlternate;
font-weight: bold;
color: #e83944;
line-height: 40rpx;
}
}
.otherDetailAddLabel {
font-size: 28rpx;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #6d1301;
line-height: 40rpx;
text-align: right;
}
}
}
.otherDetailMiddle {
margin-top: 42rpx;
.middleItem {
width: 100%;
display: flex;
align-items: center;
justify-content: space-between;
.itemLabel {
font-size: 28rpx;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #6d1301;
line-height: 40rpx;
.itemText {
width: 70rpx;
height: 40rpx;
font-size: 28rpx;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #c5836e;
line-height: 40rpx;
}
}
.itemValue {
font-size: 32rpx;
font-family: DINAlternate-Bold, DINAlternate;
font-weight: bold;
color: #6d1301;
line-height: 40rpx;
}
}
}
.otherDetailBottom {
margin-top: 40rpx;
position: relative;
.bottomItem {
width: 100%;
.bottomSmallItem {
width: 100%;
display: flex;
align-items: center;
}
.itemLeft {
width: 140rpx;
display: flex;
align-items: center;
.leftIcon {
width: 32rpx;
height: 32rpx;
margin-right: 8rpx;
}
.itemTitle {
font-size: 26rpx;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #6d1301;
line-height: 40rpx;
text-align: left;
}
}
.itemCenter,
.itemRight {
width: calc((100% - 140rpx) / 2);
.itemValue {
font-size: 28rpx;
font-family: DINAlternate-Bold, DINAlternate;
font-weight: bold;
color: #6d1301;
line-height: 40rpx;
}
.itemText {
font-size: 26rpx;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #6d1301;
line-height: 40rpx;
margin-left: 4rpx;
}
}
.itemCenter {
text-align: right;
}
.itemRight {
text-align: right;
}
}
.monthDetail {
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
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;
.monthItem {
.label {
display: inline-block;
width: 100px;
}
.value {
display: inline-block;
text-align: left;
margin-right: 12rpx;
}
}
}
}
}
.noShowMoreBox {
width: 100%;
display: flex;
align-items: center;
justify-content: center;
margin-top: 14rpx;
.noShowMore {
width: 32rpx;
height: 32rpx;
}
}
}
}
.demonstrate {
width: 100%;
box-sizing: border-box;
background: linear-gradient(180deg,
#dce6ff 0%,
#ffffff 20%,
#ffffff 100%);
border-radius: 32rpx;
box-sizing: border-box;
padding: 12px 16px 0;
.topTop {
width: 100%;
height: 40px;
display: flex;
align-items: center;
justify-content: space-between;
.statistics {
display: flex;
align-items: center;
.staticImg {
width: 50rpx;
height: 40rpx;
}
.staticTitle {
font-size: 28rpx;
font-family: PingFangSC-Semibold, PingFang SC;
font-weight: 500;
color: #160002;
line-height: 40rpx;
margin: 0 4px;
}
.staticUnit {
font-size: 28rpx;
font-family: PingFangSC, PingFang SC;
font-weight: 400;
color: #a69e9f;
line-height: 40rpx;
}
.moreIcon {
width: 32rpx;
height: 32rpx;
display: flex;
align-items: center;
justify-content: center;
color: #a69e9f;
font-size: 12px;
font-weight: 600;
margin-left: 6px;
position: relative;
z-index: 21;
.noticeIcon {
width: 32rpx;
height: 32rpx;
}
.realBox {
position: absolute;
left: 5%;
top: 10px;
transform: translateX(-50%);
//right: 0;bottom: 0;
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: 22;
width: 75vw;
height: 250px;
overflow-y: scroll;
white-space: pre-wrap;
.noticeText {
font-size: 12px;
color: #000;
display: block;
}
.closeIcon {
width: 16px;
height: 16px;
}
.field {
text-align: right;
display: flex;
.label {
display: inline-block;
width: 160rpx;
text-align: left;
box-sizing: border-box;
}
.value {
width: 200rpx;
text-align: right;
}
}
}
}
.staticIcon {
width: 32rpx;
height: 32rpx;
opacity: 0.25;
margin-left: 12rpx;
}
}
.haveMore {
display: flex;
align-items: center;
background: #fff;
padding: 10rpx 16rpx;
border-radius: 16rpx;
.haveMoreText {
font-size: 24rpx;
font-family: PingFangSC, PingFang SC;
font-weight: 400;
color: #786b6c;
line-height: 36rpx;
}
.haveMoreICon {
width: 12px;
height: 18px;
}
}
}
.overAllDataBottom {
width: 100%;
height: 140px;
box-sizing: border-box;
padding: 0 24rpx 40rpx;
.contentTitleBox {
width: 100%;
display: flex;
align-items: center;
justify-content: space-between;
.contentTitle {
font-size: 28rpx;
font-family: PingFangSC, PingFang SC;
font-weight: 400;
color: #160002;
line-height: 36rpx;
}
.YOYNumber {
display: flex;
align-items: center;
margin-right: 32rpx;
.YOYNumberText {
font-family: PingFangSC, PingFang SC;
font-weight: 400;
font-size: 24rpx;
color: #786b6c;
line-height: 36rpx;
text-align: left;
font-style: normal;
}
.YOYNumberValue {
font-family: DINAlternate, DINAlternate;
font-size: 30rpx;
color: #786b6c;
line-height: 40rpx;
text-align: left;
font-style: normal;
}
}
.YOYBox {
display: flex;
align-items: center;
.YOYBoxText {
font-family: PingFangSC, PingFang SC;
font-weight: 400;
font-size: 24rpx;
color: #786b6c;
line-height: 36rpx;
text-align: left;
font-style: normal;
}
.YOYBoxValue {
font-family: DINAlternate, DINAlternate;
font-weight: bold;
font-size: 36rpx;
color: #e83944;
line-height: 40rpx;
text-align: left;
font-style: normal;
}
}
}
.pkBox {
width: 100%;
height: 140rpx;
position: relative;
box-sizing: border-box;
.pkLogo {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
width: 88rpx;
height: 88rpx;
}
.leftBox,
.rightBox {
width: 50%;
height: 100%;
box-sizing: border-box;
padding: 24rpx 32rpx;
display: flex;
flex-direction: column;
position: absolute;
}
.carLeft {
background-image: url("https://eshangtech.com/ShopICO/ahyd-BID/newIndex3/overAllDataBottom1.png");
}
.summerHolidayLeftBox {
background-image: url("https://eshangtech.com/ShopICO/ahyd-BID/newIndex3/overAllDataBottom5.png");
}
.qmCarLeft {
background-image: url("https://eshangtech.com/ShopICO/ahyd-BID/newIndex3/overAllDataBottom3.png");
}
.qmCarRight {
background-image: url("https://eshangtech.com/ShopICO/ahyd-BID/newIndex3/overAllDataBottom4.png");
//.value{
// color: #0793BB;
//}
//.label{
// color: #0793BB;
//}
}
.summerHolidayRightBox {
background-image: url("https://eshangtech.com/ShopICO/ahyd-BID/newIndex3/overAllDataBottom6.png");
//.value{
// color: #047795!important;
//}
//.label{
// color: #047795!important;
//}
}
.carRight {
background-image: url("https://eshangtech.com/ShopICO/ahyd-BID/newIndex3/overAllDataBottom2.png");
//.value{
// color: #3873DD;
//}
//.label{
// color: #3873DD;
//}
}
.leftBox {
left: 0;
top: 0;
//background-image: url("https://eshangtech.com/ShopICO/ahyd-BID/newIndex3/leftRed.png");
background-repeat: no-repeat;
background-size: 100% 100%;
.value {
font-family: DINAlternate, DINAlternate;
font-weight: bold;
font-size: 40rpx;
color: #ffffff;
line-height: 48rpx;
text-align: left;
font-style: normal;
}
.label {
font-family: PingFangSC, PingFang SC;
font-weight: 400;
font-size: 28rpx;
color: #ffffff;
line-height: 40rpx;
text-align: left;
font-style: normal;
}
}
.rightBox {
right: 0;
top: 0;
//background-image: url("https://eshangtech.com/ShopICO/ahyd-BID/newIndex3/rightPink.png");
background-repeat: no-repeat;
background-size: 100% 100%;
align-items: flex-end;
.value {
font-family: DINAlternate, DINAlternate;
font-weight: bold;
font-size: 40rpx;
color: #4c4c4d;
line-height: 48rpx;
text-align: right;
font-style: normal;
}
.label {
font-family: PingFangSC, PingFang SC;
font-weight: 400;
font-size: 28rpx;
color: #4c4c4d;
line-height: 40rpx;
text-align: right;
font-style: normal;
}
}
}
}
}
.demonstrateMore {
width: calc(100% - 96rpx);
height: 30px;
margin-left: 48rpx;
display: flex;
align-items: center;
justify-content: center;
background: #f5f6f7;
border-radius: 8rpx;
padding: 8rpx 0;
.searchIcon {
width: 32rpx;
height: 32rpx;
}
}
.selectVersion3BottomContent {
width: calc(100% - 96rpx);
margin-left: 48rpx;
.bottomContentTitle {
font-family: PingFangSC, PingFang SC;
font-weight: 600;
font-size: 28rpx;
color: #160002;
height: 30px;
line-height: 30px;
text-align: left;
font-style: normal;
text-indent: 1rem;
position: relative;
.unit {
font-family: PingFangSC, PingFang SC;
font-weight: 400;
font-size: 24rpx;
color: #786b6c;
line-height: 36rpx;
text-align: left;
font-style: normal;
}
}
.bottomContentTitle:before {
content: "";
position: absolute;
left: 0;
top: 50%;
width: 6rpx;
height: 28rpx;
background: #3973fb;
transform: translateY(-50%);
}
.tableTop {
margin-top: 8rpx;
height: 30px;
display: flex;
align-items: center;
.bigMoney {
font-family: DINAlternate, DINAlternate;
font-weight: bold;
font-size: 40rpx;
color: #160002;
line-height: 48rpx;
text-align: left;
font-style: normal;
}
.changeBox {
display: flex;
align-items: center;
margin-left: 16rpx;
.changeIcon {
width: 24rpx;
height: 24rpx;
}
.changeRate {
font-family: PingFangSC, PingFang SC;
font-weight: 600;
font-size: 28rpx;
color: #160002;
line-height: 40rpx;
text-align: left;
font-style: normal;
}
.changeunit {
font-family: PingFangSC, PingFang SC;
font-weight: 400;
font-size: 24rpx;
color: #786b6c;
line-height: 36rpx;
text-align: left;
font-style: normal;
}
}
}
.tableBox {
width: 100%;
box-sizing: border-box;
border-radius: 12rpx;
border: 2rpx solid #eeeef0;
.tableHeader {
width: 100%;
height: 50px;
display: flex;
align-items: center;
background: #fff;
border-bottom: 1px solid #f1f1f1;
.rightBorder {
border-right: 1px solid #f1f1f1;
}
.tableHeaderItem {
width: 25%;
box-sizing: border-box;
padding: 24rpx;
font-family: PingFangSC, PingFang SC;
font-weight: 400;
font-size: 24rpx;
color: #242729;
line-height: 36rpx;
text-align: left;
font-style: normal;
}
}
.tableContent {
.tableRow {
display: flex;
align-items: center;
width: 100%;
height: 50px;
.tableRowItem {
width: 25%;
font-family: PingFangSC, PingFang SC;
font-weight: 400;
font-size: 24rpx;
color: #242729;
line-height: 36rpx;
text-align: left;
font-style: normal;
padding: 22rpx;
box-sizing: border-box;
}
.rightBorder {
border-right: 1px solid #f1f1f1;
}
}
.bigTableRow {
display: flex;
align-items: center;
height: 50px;
width: 100%;
background: #f7f7f7;
.tableRowItem {
width: 25%;
font-family: PingFangSC, PingFang SC;
font-weight: 600;
font-size: 24rpx;
color: #160002;
line-height: 36rpx;
text-align: left;
font-style: normal;
padding: 22rpx;
box-sizing: border-box;
}
.rightBorder {
border-right: 1px solid #f1f1f1;
}
}
.bottomBorder {
border-bottom: 1px solid #f1f1f1;
}
}
}
.bigTypeBox {
display: flex;
align-items: center;
flex-wrap: wrap;
.bigType {
background: #fcf1d3;
border-radius: 4rpx;
font-family: PingFangSC, PingFang SC;
font-weight: 400;
font-size: 24rpx;
color: #571519;
line-height: 44rpx;
text-align: left;
font-style: normal;
padding: 2rpx 16rpx;
position: relative;
margin-left: 1rem;
}
.bigType:before {
content: "";
position: absolute;
width: 6rpx;
height: 28rpx;
background: #3973fb;
top: 50%;
left: -1rem;
transform: translateY(-50%);
}
.normalTextBox {
display: flex;
align-items: center;
margin-left: 12rpx;
.smallTitle {
font-family: PingFangSC, PingFang SC;
font-weight: 400;
font-size: 24rpx;
color: #160002;
line-height: 40rpx;
text-align: left;
font-style: normal;
}
.normalTextIcon {
width: 24rpx;
height: 24rpx;
}
.normalText {
font-family: PingFangSC, PingFang SC;
font-weight: 400;
font-size: 20rpx;
line-height: 36rpx;
color: #786b6c;
line-height: 36rpx;
text-align: left;
}
.typeValue {
font-family: DINAlternate, DINAlternate;
font-weight: bold;
font-size: 24rpx;
line-height: 36rpx;
color: #160002;
text-align: left;
font-style: normal;
margin-left: 4rpx;
}
}
}
.titleRow {
font-family: PingFangSC, PingFang SC;
font-weight: 600;
font-size: 28rpx;
color: #160002;
line-height: 40rpx;
text-align: left;
font-style: normal;
.unit {
font-family: PingFangSC, PingFang SC;
font-weight: 400;
font-size: 24rpx;
color: #786b6c;
line-height: 36rpx;
text-align: left;
font-style: normal;
}
}
.contentRow {
font-family: PingFangSC, PingFang SC;
font-weight: 400;
font-size: 24rpx;
color: #160002;
line-height: 40rpx;
text-align: justify;
font-style: normal;
white-space: pre-wrap;
.contentTitle {
font-family: PingFangSC, PingFang SC;
font-weight: 600;
font-size: 24rpx;
color: #160002;
line-height: 40rpx;
text-align: left;
font-style: normal;
}
.point {
display: inline-block;
width: 10rpx;
height: 10rpx;
background: #3973fb;
border-radius: 50%;
margin-right: 8rpx;
}
}
}
}
}
.noSelectItemBox {
display: inline-block;
.bigBox {
width: calc(100% - 10px) !important;
background: #fff;
//box-shadow: 0rpx 20rpx 40rpx 0rpx rgba(1,27,90,0.06);
border-radius: 38rpx;
padding: 4rpx;
box-sizing: border-box;
.box {
width: 100%;
display: inline-block;
border-radius: 32rpx;
overflow: hidden;
position: relative;
box-shadow: 0rpx 20rpx 40rpx 0rpx rgba(1, 27, 90, 0.06);
//background: rgba(254, 192, 168,0.8);
.top {
width: 100%;
background: linear-gradient(180deg,
#dce6ff 0%,
#ffffff 80%,
#ffffff 100%);
border-bottom-right-radius: 32rpx;
border-bottom-left-radius: 32rpx;
box-sizing: border-box;
padding: 12px 16px;
.topTop {
width: 100%;
display: flex;
align-items: center;
justify-content: space-between;
.statistics {
display: flex;
align-items: center;
.staticImg {
width: 50rpx;
height: 40rpx;
}
.staticTitle {
font-size: 28rpx;
font-family: PingFangSC-Semibold, PingFang SC;
font-weight: 500;
color: #160002;
line-height: 40rpx;
margin: 0 4px;
}
.staticUnit {
font-size: 28rpx;
font-family: PingFangSC, PingFang SC;
font-weight: 400;
color: #a69e9f;
line-height: 40rpx;
}
.moreIcon {
width: 32rpx;
height: 32rpx;
display: flex;
align-items: center;
justify-content: center;
color: #a69e9f;
font-size: 12px;
font-weight: 600;
margin-left: 6px;
position: relative;
z-index: 21;
.noticeIcon {
width: 32rpx;
height: 32rpx;
}
.realBox {
position: absolute;
left: 0;
top: 10px;
transform: translateX(-50%);
//right: 0;bottom: 0;
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: 21;
width: 360rpx;
.field {
text-align: right;
display: flex;
.label {
display: inline-block;
width: 160rpx;
text-align: left;
box-sizing: border-box;
}
.value {
width: 200rpx;
text-align: right;
}
}
}
}
.staticIcon {
width: 32rpx;
height: 32rpx;
opacity: 0.25;
margin-left: 12rpx;
}
}
.haveMore {
display: flex;
align-items: center;
background: #fff;
padding: 10rpx 16rpx;
border-radius: 16rpx;
.haveMoreText {
font-size: 24rpx;
font-family: PingFangSC, PingFang SC;
font-weight: 400;
color: #786b6c;
line-height: 36rpx;
}
.haveMoreICon {
width: 12px;
height: 18px;
}
}
}
.revenueBox {
.revenueTop {
margin-top: 16rpx;
display: flex;
align-items: center;
justify-content: space-between;
.revenueTopLeft {
display: flex;
align-items: center;
.revenueNumber {
font-size: 48rpx;
font-family: DINAlternate-Bold, DINAlternate;
font-weight: bold;
color: #160002;
line-height: 56rpx;
}
.moreIcon {
width: 12px;
height: 12px;
display: flex;
align-items: center;
justify-content: center;
border: 2px solid #a69e9f;
border-radius: 50%;
color: #a69e9f;
font-size: 12px;
font-weight: 600;
margin-left: 6px;
position: relative;
.realBox {
position: absolute;
left: 0;
top: 0;
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;
}
}
}
.revenueTopRight {
display: flex;
align-items: center;
.addReduce {
width: 28rpx;
height: 28rpx;
margin-right: 4px;
border-radius: 50%;
}
.addValue {
font-size: 36rpx;
font-family: DINAlternate, DINAlternate;
font-weight: bold;
color: #e83944;
line-height: 40rpx;
}
.rightNav {
font-size: 28rpx;
font-family: PingFangSC, PingFang SC;
font-weight: 400;
color: #a69e9f;
line-height: 40rpx;
margin-left: 4rpx;
}
}
}
.revenueNav {
display: flex;
align-items: center;
justify-content: space-between;
.leftNav {
margin-top: 2px;
font-size: 28rpx;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
//color: #160002;
color: #a69e9f;
line-height: 40rpx;
.unit {
font-size: 28rpx;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #a69e9f;
line-height: 40rpx;
margin-left: 2px;
}
}
.rightNav {
font-size: 28rpx;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #a69e9f;
line-height: 40rpx;
margin-right: 64rpx;
}
}
.newBox {
width: 100%;
box-sizing: border-box;
//padding: 16rpx 16rpx 0;
//background: linear-gradient(135deg, #FFE3BA 0%, #FFF5E5 40%, #FFF1DB 78%, #FFDABC 100%); border-radius: 16rpx;
//margin-top: 32rpx;
margin-top: 32rpx;
.progress {
width: 100%;
height: 18rpx;
border-radius: 12rpx;
background: #b1c8ff;
//overflow: hidden;
position: relative;
.have {
position: absolute;
top: 0;
left: 0;
width: 60%;
background: #2363ff;
height: 100%;
border-radius: 12rpx;
}
.haveNoticeBox {
position: absolute;
bottom: 13px;
left: 50%;
transform: translateX(-50%);
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;
}
}
.message {
width: 100%;
display: flex;
margin-top: 16rpx;
.smallDetailItem {
width: 50%;
.messageTop {
display: flex;
align-items: center;
.type {
width: 24rpx;
height: 12rpx;
border-radius: 6rpx;
margin-right: 6px;
}
.typeTitle {
font-size: 28rpx;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #160002;
line-height: 40rpx;
.unit {
font-size: 28rpx;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #a69e9f;
line-height: 40rpx;
margin-left: 2px;
}
}
}
.middle {
margin-top: 6px;
margin-left: 20px;
display: flex;
align-items: center;
.money {
font-size: 36rpx;
font-family: DINAlternate-Bold, DINAlternate;
font-weight: bold;
color: #160002;
line-height: 44rpx;
}
.addItem {
margin-left: 6px;
display: inline-block;
padding: 2px 4px;
font-size: 28rpx;
font-family: DINAlternate-Bold, DINAlternate;
font-weight: bold;
color: #e83944;
line-height: 32rpx;
background: rgba(232, 57, 68, 0.1);
border-radius: 18rpx;
}
}
.messageBottom {
margin-left: 20px;
display: flex;
align-items: center;
.addText {
font-size: 28rpx;
font-family: DINAlternate-Bold, DINAlternate;
font-weight: bold;
color: #e83944;
line-height: 32rpx;
}
.addType {
font-size: 28rpx;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #a69e9f;
line-height: 40rpx;
margin-left: 4px;
}
}
}
}
.moneyRate {
width: 100%;
box-sizing: border-box;
margin-top: 16rpx;
height: 144rpx;
display: flex;
align-items: center;
.leftBox {
width: 144rpx;
height: 144rpx;
margin-right: 16rpx;
position: relative;
.rateChartsBox {
width: 144rpx;
height: 144rpx;
}
.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;
.field {
display: flex;
align-items: center;
.label {
width: 140rpx;
text-align: left;
}
.value {
width: 100rpx;
font-family: DINAlternate-Bold, DINAlternate;
text-align: right;
}
}
}
}
.rightBox {
flex: 1;
display: flex;
align-items: center;
.noticeItem {
width: 50%;
.noticeTop {
width: 24rpx;
height: 12rpx;
background: #a66a37;
border-radius: 6rpx;
margin-bottom: 8rpx;
}
.noticeText {
font-size: 28rpx;
font-family: PingFangSC, PingFang SC;
font-weight: 400;
color: #160002;
line-height: 40rpx;
margin-bottom: 6rpx;
.noticeSmallText {
font-size: 28rpx;
font-family: PingFangSC, PingFang SC;
font-weight: 400;
color: #a69e9f;
line-height: 40rpx;
margin-left: 4rpx;
}
}
.noticeMoney {
font-size: 36rpx;
font-family: DINAlternate-Bold, DINAlternate;
font-weight: bold;
color: #160002;
line-height: 44rpx;
}
}
}
.newRightBox {
height: 100%;
flex: 1;
.newRightItem {
width: 100%;
display: flex;
align-items: center;
justify-content: space-between;
margin: 8rpx 0;
.itemLeft {
display: flex;
align-items: center;
width: 33%;
.itemIcon {
width: 12rpx;
height: 12rpx;
margin-right: 12rpx;
border-radius: 50%;
}
.itemName {
font-family: PingFangSC, PingFang SC;
font-weight: 400;
font-size: 28rpx;
color: #160002;
line-height: 40rpx;
text-align: left;
font-style: normal;
display: inline-block;
width: 120rpx;
}
}
.itemCenter {
display: inline-block;
width: 33%;
font-family: DINAlternate-Bold, DINAlternate;
font-weight: bold;
font-size: 28rpx;
color: #160002;
line-height: 40rpx;
text-align: right;
font-style: normal;
}
.itemRight {
display: inline-block;
width: 33%;
font-family: DINAlternate-Bold, DINAlternate;
font-weight: bold;
font-size: 28rpx;
color: #e83944;
line-height: 40rpx;
text-align: right;
font-style: normal;
}
}
}
}
}
.accountRevenue {
width: 100%;
//background: #F9FAFC;
box-sizing: border-box;
padding: 28rpx 24rpx;
margin-top: 48rpx;
.accountItem {
width: 100%;
.itemTop {
display: flex;
align-items: center;
justify-content: space-between;
margin-bottom: 8rpx;
.itemType {
font-family: PingFangSC, PingFang SC;
font-weight: 400;
font-size: 24rpx;
color: #ffffff;
line-height: 24rpx;
text-align: left;
font-style: normal;
padding: 4rpx 8rpx;
background: #f2792e;
border-radius: 4rpx;
margin-right: 8rpx;
}
.itemName {
font-family: PingFangSC, PingFang SC;
font-weight: 400;
font-size: 28rpx;
color: #160002;
line-height: 40rpx;
text-align: left;
font-style: normal;
.unit {
font-family: PingFangSC, PingFang SC;
font-weight: 400;
font-size: 24rpx;
color: #9a9a9a;
line-height: 36rpx;
text-align: left;
font-style: normal;
margin-left: 4rpx;
}
}
}
.itemBottom {
display: flex;
align-items: center;
justify-content: space-between;
.revenueNum {
font-family: DINAlternate-Bold, DINAlternate;
font-weight: bold;
font-size: 32rpx;
color: #160002;
line-height: 44rpx;
text-align: left;
font-style: normal;
}
.revenueAdd {
font-family: DINAlternate-Bold, DINAlternate;
font-weight: bold;
font-size: 32rpx;
color: #e83944;
line-height: 44rpx;
text-align: left;
font-style: normal;
}
}
}
}
.showMoreLoading {
width: 100%;
display: flex;
align-items: center;
justify-content: center;
margin-top: 16rpx;
.showMorenDown {
width: 32rpx;
height: 32rpx;
}
}
.goBusiness {
width: 100%;
display: flex;
justify-content: flex-end;
.bussinessRight {
display: flex;
align-items: center;
.bussinessText {
font-size: 28rpx;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #a69e9f;
line-height: 40rpx;
margin: 0 4px;
}
.moreIcon {
width: 12px;
height: 12px;
display: flex;
align-items: center;
justify-content: center;
border: 2px solid #a69e9f;
border-radius: 50%;
color: #a69e9f;
font-size: 12px;
font-weight: 600;
margin-left: 6px;
position: relative;
.realBox {
position: absolute;
//left: 0;top: 0;
right: 0;
bottom: 0;
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;
}
}
.staticIcon {
width: 32rpx;
height: 32rpx;
opacity: 0.25;
}
}
}
}
}
.noShowMoreBox {
width: 100%;
display: flex;
align-items: center;
justify-content: center;
position: absolute;
left: 0;
bottom: 8px;
.noShowMore {
width: 25px;
height: 14px;
}
}
.monthBox {
display: inline-block;
position: absolute;
right: 1px;
top: 1px;
padding: 4rpx 26rpx;
font-size: 28rpx;
font-family: PingFangSC-Semibold, PingFang SC;
font-weight: 600;
color: #b33115;
line-height: 40rpx;
background: #ffd2c4;
border-radius: 0rpx 30rpx 0rpx 30rpx;
}
}
.bottom {
width: 100%;
height: 52rpx;
background: #fdfefd;
box-sizing: border-box;
padding: 0 32rpx 12rpx;
display: flex;
justify-content: space-between;
align-items: center;
border-bottom-left-radius: 38rpx;
border-bottom-right-radius: 38rpx;
.searchText {
font-size: 28rpx;
font-family: PingFangSC, PingFang SC;
font-weight: 400;
color: #2363ff;
line-height: 40rpx;
}
.searchIcon {
width: 25px;
height: 14px;
}
}
.otherDetail {
width: 100%;
//margin-top: 30px;
.detail {
width: 100%;
//height: 290px;
box-sizing: border-box;
padding: 16px 16px 8px;
//background: linear-gradient(180deg, #DCE6FF 0%, #FFFFFF 68%, #FFFFFF 100%);
border-bottom-left-radius: 32rpx;
border-bottom-right-radius: 32rpx;
//margin-top: 12px;
.detailMessage {
width: 100%;
height: 100%;
.otherDetailTop {
width: 100%;
display: flex;
align-items: center;
justify-content: space-between;
.otherDetailTopLeft {
.yearAll {
font-size: 40rpx;
font-family: DINAlternate-Bold, DINAlternate;
font-weight: bold;
color: #6d1301;
line-height: 40rpx;
}
.yearLabel {
margin-top: 4rpx;
font-size: 28rpx;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #6d1301;
line-height: 40rpx;
.unit {
font-size: 28rpx;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #c5846f;
line-height: 40rpx;
margin-left: 4rpx;
}
}
}
.otherDetailRight {
.otherDetailAddBox {
display: flex;
align-items: center;
.otherDetailAddIcon {
width: 28rpx;
height: 28rpx;
margin-right: 6rpx;
}
.otherDetailAddValue {
font-size: 36rpx;
font-family: DINAlternate-Bold, DINAlternate;
font-weight: bold;
color: #e83944;
line-height: 40rpx;
}
}
.otherDetailAddLabel {
font-size: 28rpx;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #6d1301;
line-height: 40rpx;
text-align: right;
}
}
}
.otherDetailMiddle {
margin-top: 42rpx;
.middleItem {
width: 100%;
display: flex;
align-items: center;
justify-content: space-between;
.itemLabel {
font-size: 28rpx;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #6d1301;
line-height: 40rpx;
.itemText {
width: 70rpx;
height: 40rpx;
font-size: 28rpx;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #c5836e;
line-height: 40rpx;
}
}
.itemValue {
font-size: 32rpx;
font-family: DINAlternate-Bold, DINAlternate;
font-weight: bold;
color: #6d1301;
line-height: 40rpx;
}
}
}
.otherDetailBottom {
margin-top: 40rpx;
position: relative;
.bottomItem {
width: 100%;
.bottomSmallItem {
width: 100%;
display: flex;
align-items: center;
}
.itemLeft {
width: 140rpx;
display: flex;
align-items: center;
.leftIcon {
width: 32rpx;
height: 32rpx;
margin-right: 8rpx;
}
.itemTitle {
font-size: 26rpx;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #6d1301;
line-height: 40rpx;
text-align: left;
}
}
.itemCenter,
.itemRight {
width: calc((100% - 140rpx) / 2);
.itemValue {
font-size: 28rpx;
font-family: DINAlternate-Bold, DINAlternate;
font-weight: bold;
color: #6d1301;
line-height: 40rpx;
}
.itemText {
font-size: 26rpx;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #6d1301;
line-height: 40rpx;
margin-left: 4rpx;
}
}
.itemCenter {
text-align: right;
}
.itemRight {
text-align: right;
}
}
.monthDetail {
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
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;
.monthItem {
.label {
display: inline-block;
width: 100px;
}
.value {
display: inline-block;
text-align: left;
margin-right: 12rpx;
}
}
}
}
}
.noShowMoreBox {
width: 100%;
display: flex;
align-items: center;
justify-content: center;
margin-top: 14rpx;
.noShowMore {
width: 32rpx;
height: 32rpx;
}
}
}
}
}
}
.detailBottom {
width: 100%;
position: relative;
background: #feb7a2;
.searchBox {
width: 100%;
height: 38px;
box-sizing: border-box;
padding: 0 16px;
display: flex;
align-items: center;
justify-content: space-between;
.searchText {
font-size: 14px;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #ad6753;
line-height: 20px;
}
.searchIcon {
width: 26px;
height: 14px;
}
}
.otherDetail {
width: 100%;
height: 100%;
.detail {
width: 100%;
height: 190px;
box-sizing: border-box;
padding: 16px 0;
border-radius: 8rpx;
margin-top: 12px;
.detailItem {
width: 33%;
box-sizing: border-box;
padding-left: 16px;
height: 42px;
text-align: left;
float: left;
margin-bottom: 16px;
.itemName {
font-size: 14px;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #782717;
opacity: 0.8;
line-height: 40rpx;
margin-bottom: 2px;
.prompt {
width: 12px;
height: 12px;
border: 1px solid #782717;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
font-size: 10px;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 600;
color: #782717;
}
.itemUnit {
font-size: 28rpx;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #c8806c;
line-height: 40rpx;
margin-left: 2px;
}
}
.price {
font-size: 16px;
font-family: DINAlternate-Bold, DINAlternate;
font-weight: bold;
color: #782717;
line-height: 40rpx;
}
}
}
}
}
}
}
.sliderBox {
width: 100%;
height: 16rpx;
margin-top: 20rpx;
}
.other {
width: calc(100% - 32px);
position: absolute;
top: 104px;
.topTitle {
width: 100%;
display: flex;
justify-content: space-between;
align-items: flex-start;
.title {
font-size: 28rpx;
font-family: PingFangSC-Semibold, PingFang SC;
font-weight: 600;
color: #782717;
line-height: 40rpx;
}
.text {
font-size: 28rpx;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #782717;
line-height: 40rpx;
margin-left: 8px;
}
.smallTitle {
font-size: 14px;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #782717;
line-height: 20px;
margin-right: 4px;
.month {
margin-left: 4px;
font-size: 14px;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #c97e64;
line-height: 20px;
}
}
}
@keyframes allPriceAnimation {
0% {
transform: translateY(30px);
}
100% {
transform: translateY(0px);
}
}
.box {
display: flex;
align-items: center;
.priceBox {
width: 100%;
display: flex;
align-items: center;
justify-content: flex-start;
margin: 6px 0 0;
.allPrice {
font-size: 56rpx;
font-family: DINAlternate-Bold, DINAlternate;
font-weight: bold;
color: #782717;
line-height: 64rpx;
margin-top: 4px;
}
.allPriceMove {
animation: allPriceAnimation 2s;
}
}
.start {
width: 14px;
height: 14px;
margin-left: 8px;
}
}
.addBox {
width: 100%;
margin-top: 6px;
display: flex;
justify-content: space-between;
align-items: center;
.smallTitle {
font-size: 14px;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #782717;
line-height: 20px;
margin-right: 4px;
.month {
margin-left: 4px;
font-size: 14px;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #c97e64;
line-height: 20px;
}
}
.right {
display: flex;
align-items: center;
.arrowTop {
width: 14px;
height: 14px;
margin-right: 4px;
}
.text {
font-size: 14px;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #782717;
line-height: 20px;
margin-right: 4px;
}
.compare {
font-size: 14px;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #c97e64;
line-height: 20px;
}
}
}
.type {
width: 100%;
height: 45px;
margin-top: 8px;
.item {
width: 50%;
display: flex;
align-items: center;
float: left;
.leftImg {
width: 36px;
height: 36px;
border-radius: 50%;
overflow: hidden;
margin-right: 8px;
background: #fff;
image {
width: 100%;
height: 100%;
}
}
.right {
.typeName {
font-size: 28rpx;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #782717;
line-height: 40rpx;
.unit {
font-size: 28rpx;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #c97a63;
line-height: 40rpx;
margin-left: 4px;
}
}
.price {
font-size: 36rpx;
font-family: DINAlternate-Bold, DINAlternate;
font-weight: bold;
color: #782717;
line-height: 44rpx;
margin-top: 2px;
}
}
}
}
.detail {
width: 100%;
height: 190px;
box-sizing: border-box;
padding: 16px 0;
background: linear-gradient(135deg, #fff2df 0%, #ffe3e5 100%);
box-shadow: 0rpx 0rpx 40rpx 0rpx rgba(244, 138, 143, 0.21);
border-radius: 8rpx;
margin-top: 12px;
margin-bottom: 16px;
.detailItem {
width: 33%;
box-sizing: border-box;
padding-left: 16px;
height: 42px;
text-align: left;
float: left;
margin-bottom: 16px;
.itemName {
font-size: 14px;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #782717;
opacity: 0.8;
line-height: 40rpx;
margin-bottom: 2px;
.prompt {
width: 12px;
height: 12px;
border: 1px solid #782717;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
font-size: 10px;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 600;
color: #782717;
}
.itemUnit {
font-size: 28rpx;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #c99f8f;
line-height: 40rpx;
}
}
.price {
font-size: 16px;
font-family: DINAlternate-Bold, DINAlternate;
font-weight: bold;
color: #782717;
line-height: 40rpx;
}
}
}
}
.more {
width: calc(100% - 32px);
display: flex;
justify-content: center;
position: absolute;
bottom: 12px;
padding-bottom: 12px;
.img {
width: 16px;
height: 16px;
}
.rate {
transform: rotate(180deg) !important;
}
}
}
.funEntry {
width: 100%;
//height: 208px;
//background-image: url("https://eshangtech.com/ShopICO/ahyd-BID/home/funEntryBg.png");
background-repeat: no-repeat;
background-size: 100% 100%;
box-sizing: border-box;
//padding: 14rpx 0 32px 0;
padding: 0 0 32px 0;
//transform: translateY(-16px);
border-top-right-radius: 16px;
border-top-left-radius: 16px;
.instantRevenue {
width: calc(100% - 64rpx);
height: 104px;
box-sizing: border-box;
padding: 2rpx;
background: #fff;
border-radius: 16rpx;
margin-left: 32rpx;
margin-bottom: 24rpx;
.revenue {
width: 100%;
height: 100%;
box-sizing: border-box;
padding: 24rpx;
background: linear-gradient(176deg,
#ffe4cd 0%,
#fef5de 37%,
#ffffff 100%);
border-radius: 16rpx;
display: flex;
flex-direction: column;
justify-content: space-between;
.revenueTop {
width: 100%;
display: flex;
align-items: center;
justify-content: space-between;
.revenyeTopLeft {
display: flex;
align-items: center;
.monthIcon {
width: 48rpx;
height: 48rpx;
}
.dateText {
font-size: 28rpx;
font-family: PingFangSC, PingFang SC;
font-weight: 500;
color: #fc2e20;
line-height: 40rpx;
margin: 0 8rpx;
}
.day {
font-size: 28rpx;
font-family: PingFangSC, PingFang SC;
font-weight: 400;
color: #a69e9f;
line-height: 40rpx;
}
}
.revenyeTopRight {
width: 100px;
display: flex;
justify-content: flex-end;
align-items: center;
.right {
width: 32rpx;
height: 32rpx;
}
}
}
.revenueMoney {
height: 52rpx;
display: flex;
align-items: center;
justify-content: space-between;
.moneyText {
font-size: 44rpx;
font-family: DINAlternate, DINAlternate;
font-weight: bold;
color: #160002;
line-height: 52rpx;
margin-right: 8rpx;
}
.moneyLabel {
font-size: 28rpx;
font-family: PingFangSC, PingFang SC;
font-weight: 400;
color: #a69e9f;
line-height: 40rpx;
}
}
}
}
.funBox {
width: calc(100% - 64rpx);
margin-left: 32rpx;
background: #ffffff;
border-radius: 16rpx;
box-sizing: border-box;
padding: 32rpx 24rpx;
display: flex;
flex-flow: wrap;
.funItem {
width: 25%;
display: flex;
justify-content: center;
.funItemContent {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
.funIconBox {
width: 88rpx;
height: 88rpx;
//border-radius: 50%;
overflow: hidden;
margin-bottom: 16rpx;
.funIcon {
width: 100%;
height: 100%;
}
}
.funText {
font-size: 28rpx;
font-family: PingFangSC, PingFang SC;
font-weight: 400;
color: #160002;
line-height: 40rpx;
}
}
}
}
.funList {
width: calc(100% - 64rpx);
box-sizing: border-box;
margin-left: 32rpx;
padding: 24rpx;
display: flex;
justify-content: space-between;
background: #f3f4f4;
border-radius: 16rpx;
position: relative;
.san {
width: 16px;
height: 16px;
position: absolute;
top: -8px;
left: 108rpx;
background: #f3f4f4;
transform: rotate(-45deg);
}
.funItem {
width: 25%;
display: flex;
flex-direction: column;
align-items: center;
.iconBox {
width: 96rpx;
height: 96rpx;
background: #ffffff;
display: flex;
align-items: center;
justify-content: center;
border-radius: 50%;
margin-bottom: 16rpx;
.funItemIcon {
width: 60rpx;
height: 60rpx;
}
}
.funItemText {
font-size: 24rpx;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #160002;
line-height: 32rpx;
}
}
}
.nationalDay {
width: calc(100% - 64rpx);
//height: 286rpx;
margin-left: 32rpx;
border-radius: 16rpx;
margin-top: 24rpx;
background: linear-gradient(135deg,
rgba(255, 238, 232, 1) 0%,
rgba(255, 238, 231, 1) 79%,
rgba(255, 221, 215, 1) 100%);
//background-image: url("https://eshangtech.com/ShopICO/ahyd-BID/nationalDay/indexBg.svg");
//background-repeat: no-repeat;
//background-size: 100% 100%;
.national {
box-sizing: border-box;
padding: 20rpx 24rpx;
width: 100%;
height: 100%;
.nationalTop {
width: 100%;
display: flex;
align-items: center;
justify-content: space-between;
margin-bottom: 8px;
.nationalTopLeft {
display: flex;
align-items: center;
.topText {
font-size: 32rpx;
font-family: Alimama ShuHeiTi;
font-weight: bold;
color: #ec6c00;
line-height: 38rpx;
}
.lanternImg {
width: 104rpx;
height: 126rpx;
margin-left: 8rpx;
}
.titleBox {
width: 300rpx;
height: 60rpx;
background-image: url("https://eshangtech.com/ShopICO/ahyd-BID/nationalDay/titleBox.svg");
background-repeat: no-repeat;
background-size: contain;
padding-left: 36rpx;
box-sizing: border-box;
display: flex;
transform: translateX(-30px);
align-items: center;
.title {
display: flex;
align-items: center;
.text {
font-size: 32rpx;
font-family: PingFangSC-Medium, PingFang SC;
font-weight: 600;
color: #e93113;
line-height: 44rpx;
}
.rightIcon {
width: 32rpx;
height: 32rpx;
margin-left: 16rpx;
}
}
}
}
.nationalTopRight {
.timeText {
font-size: 28rpx;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #e93113;
line-height: 34rpx;
}
}
}
.nationalContent {
width: 100%;
display: flex;
justify-content: space-between;
.itemContent {
width: calc((100% - 32rpx) / 3);
box-sizing: border-box;
padding: 24rpx 16rpx;
background: #fffaf7;
box-shadow: 0rpx 0rpx 20rpx 0rpx rgba(162, 4, 4, 0.1);
border-radius: 12rpx;
border: 2rpx solid #ffffff;
overflow: hidden;
position: relative;
.itemBg {
position: absolute;
bottom: 0;
right: 0;
width: 100rpx;
height: 100rpx;
}
.value {
font-size: 32rpx;
font-family: DINAlternate-Bold, DINAlternate;
font-weight: bold;
color: #e23038;
line-height: 40rpx;
margin-bottom: 8rpx;
}
.title {
font-size: 24rpx;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 500;
color: rgba(120, 107, 108, 1);
line-height: 36rpx;
span {
margin-left: 4rpx;
}
}
}
}
}
}
.otherFunBox {
width: 100%;
box-sizing: border-box;
padding: 0 16px;
display: flex;
margin-top: 20px;
.otherFunItem {
width: calc((100% - 9px) / 2);
height: 72px;
background-repeat: no-repeat;
background-size: 100% 100%;
position: relative;
.itemTitle {
position: absolute;
left: 12px;
top: 10px;
font-size: 16px;
font-family: PingFangSC-Medium, PingFang SC;
font-weight: 600;
color: #0d4cde;
line-height: 22px;
}
.itemImg {
position: absolute;
top: 18px;
right: 17px;
width: 35px;
height: 35px;
}
.nowBox {
position: absolute;
bottom: 14px;
left: 12px;
display: flex;
align-items: center;
.nowText {
font-size: 12px;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #638eeb;
line-height: 12px;
}
.searchIcon {
width: 12px;
height: 12px;
margin-left: 4px;
}
}
}
}
.bigCarBox {
width: calc(100vw - 68rpx);
margin-left: 34rpx;
background: #fff;
border-radius: 16rpx;
box-sizing: border-box;
padding: 2rpx;
margin-bottom: 26rpx;
.carWarning {
background: linear-gradient(180deg, #edf5ff 0%, #ffffff 100%);
padding: 12px 16px 8rpx;
border-radius: 16rpx;
position: relative;
.carWarningTop {
width: 100%;
display: flex;
justify-content: space-between;
align-items: center;
.moreStoreBox {
display: flex;
align-items: center;
.moreText {
font-size: 28rpx;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #a69e9f;
line-height: 36rpx;
}
.moreIcon {
width: 18px;
height: 18px;
}
}
.warningBox {
display: flex;
align-items: center;
.warningIcon {
width: 48rpx;
height: 48rpx;
margin-right: 8rpx;
}
.trafficBox {
display: flex;
align-items: center;
.trafficCar {
font-size: 28rpx;
font-family: PingFangSC, PingFang SC;
font-weight: 600;
color: #160002;
line-height: 40rpx;
}
.trafficUnit {
font-size: 28rpx;
font-family: PingFangSC, PingFang SC;
font-weight: 400;
color: #a69e9f;
line-height: 40rpx;
margin-left: 8rpx;
}
.moreIcon {
margin-left: 16rpx;
width: 32rpx;
height: 32rpx;
}
}
}
}
.contentList {
width: 100%;
border-radius: 8px;
margin-top: 32rpx;
.contentItem {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 24rpx;
.index {
width: 12px;
height: 12px;
position: relative;
.boxBg {
width: 12px;
height: 12px;
background: #8bbbff;
filter: blur(4px);
position: absolute;
top: 0;
left: 0;
}
.indexText {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
z-index: 2;
font-size: 16px;
font-family: DingTalk-JinBuTi, DingTalk;
font-weight: normal;
color: #160002;
line-height: 20px;
}
}
.serviceBox {
width: 35%;
display: inline-block;
margin-left: 8px;
.name {
font-size: 14px;
font-family: PingFangSC-Semibold, PingFang SC;
font-weight: 600;
color: #160002;
line-height: 26px;
}
.position {
font-size: 12px;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #786b6c;
line-height: 20px;
margin-left: 4rpx;
}
}
.numberBox {
width: 30%;
display: flex;
justify-content: flex-end;
.number {
font-size: 16px;
font-family: DINAlternate-Bold, DINAlternate;
font-weight: bold;
color: #160002;
line-height: 24px;
}
.unit {
font-size: 14px;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #a69e9f;
line-height: 20px;
margin-left: 2px;
}
}
.addBox {
width: calc(30% - 20px);
display: flex;
align-items: center;
justify-content: flex-end;
.addIcon {
width: 14px;
height: 14px;
}
.add {
font-size: 16px;
font-family: DINAlternate-Bold, DINAlternate;
font-weight: bold;
color: #e83944;
line-height: 24px;
}
}
}
}
}
}
.peopleWarning {
width: calc(100% - 32px);
margin-left: 16px;
margin-top: 32rpx;
background-image: url("https://eshangtech.com/ShopICO/ahyd-BID/newIndex/personWarningBg.svg");
background-repeat: no-repeat;
background-size: cover;
box-sizing: border-box;
padding: 12px 16px;
border-radius: 16rpx;
position: relative;
.carWarningTop {
width: 100%;
display: flex;
justify-content: space-between;
align-items: center;
.moreStoreBox {
display: flex;
align-items: center;
.moreText {}
.moreIcon {
width: 18px;
height: 18px;
}
}
.warningBox {
width: 150px;
height: 36px;
position: relative;
.warningIcon {
position: absolute;
left: 0;
top: 0;
width: 36px;
height: 36px;
z-index: 2;
}
.trafficBox {
position: absolute;
left: 28px;
top: 3px;
z-index: 1;
width: 120px;
height: 30px;
background: #ddeaff;
border-top-right-radius: 15px;
border-bottom-right-radius: 15px;
box-sizing: border-box;
padding: 4px 16px;
display: flex;
align-items: center;
.trafficCar {
font-size: 16px;
font-family: PingFangSC-Medium, PingFang SC;
font-weight: 600;
color: #007da5;
line-height: 16px;
}
.moreIcon {
margin-left: 16rpx;
width: 32rpx;
height: 32rpx;
}
}
}
}
.contentList {
width: 100%;
border-radius: 8px;
.contentItem {
padding: 6px 0;
display: flex;
justify-content: space-between;
align-items: center;
.index {
width: 12px;
height: 12px;
position: relative;
.boxBg {
width: 12px;
height: 12px;
background: #589cff;
filter: blur(4px);
position: absolute;
top: 0;
left: 0;
}
.indexText {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
z-index: 2;
font-size: 16px;
font-family: DingTalk-JinBuTi, DingTalk;
font-weight: normal;
color: #160002;
line-height: 20px;
}
}
.serviceBox {
width: 35%;
display: inline-block;
margin-left: 8px;
.name {
font-size: 28rpx;
font-family: PingFangSC-Semibold, PingFang SC;
font-weight: 600;
color: #160002;
line-height: 40rpx;
}
.position {
font-size: 24rpx;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #786b6c;
line-height: 36rpx;
margin-left: 4rpx;
}
}
.numberBox {
width: 30%;
.number {
font-size: 16px;
font-family: DINAlternate-Bold, DINAlternate;
font-weight: bold;
color: #160002;
line-height: 24px;
}
.unit {
font-size: 14px;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #a69e9f;
line-height: 20px;
margin-left: 2px;
}
}
.addBox {
width: calc(30% - 20px);
display: flex;
align-items: center;
.addIcon {
width: 14px;
height: 14px;
}
.add {
font-size: 16px;
font-family: DINAlternate-Bold, DINAlternate;
font-weight: bold;
color: #e83944;
line-height: 24px;
}
}
}
}
}
.patrolInspection {
width: calc(100% - 64rpx);
margin-left: 32rpx;
margin-top: 32rpx;
height: 532rpx;
background: #fff2e5;
border-radius: 20rpx;
box-sizing: border-box;
padding: 20rpx 24rpx;
.patrolTitle {
font-size: 32rpx;
font-family: Alimama ShuHeiTi;
font-weight: bold;
color: #ec6c00;
line-height: 38rpx;
}
.contentBox {
width: 100%;
height: 430rpx;
background: #ffffff;
border-radius: 20rpx;
margin-top: 20rpx;
box-sizing: border-box;
padding: 32rpx 24rpx;
.contentFirst {
.firstTop {
display: flex;
justify-content: space-between;
.left {
display: flex;
align-items: center;
.topIcon {
width: 50rpx;
height: 50rpx;
}
.topText {
font-size: 28rpx;
font-family: PingFangSC-Semibold, PingFang SC;
font-weight: 600;
color: #160002;
line-height: 40rpx;
margin-left: 4rpx;
}
}
.right {
display: flex;
align-items: center;
.moreText {
font-size: 24rpx;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #a69e9f;
line-height: 36rpx;
}
.moreIcon {
width: 20rpx;
height: 40rpx;
}
}
}
.firstBox {
display: flex;
justify-content: space-between;
margin-top: 22rpx;
padding-bottom: 32rpx;
.boxItem {
display: flex;
flex-direction: column;
.itemValue {
font-size: 36rpx;
font-family: DINAlternate-Bold, DINAlternate;
font-weight: bold;
color: #020e1a;
line-height: 44rpx;
}
.itemLabel {
font-size: 24rpx;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #786b6c;
line-height: 36rpx;
.unit {
font-size: 24rpx;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #a69e9f;
line-height: 36rpx;
margin-left: 2rpx;
}
}
.detailBox {
.detailValue {
font-size: 36rpx;
font-family: DINAlternate-Bold, DINAlternate;
font-weight: bold;
color: #e83944;
line-height: 44rpx;
}
.detailLabel {
font-size: 24rpx;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #786b6c;
line-height: 36rpx;
.unit {
font-size: 24rpx;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #a69e9f;
line-height: 36rpx;
margin-left: 4rpx;
}
}
}
}
}
.secondBox {
display: flex;
justify-content: space-between;
margin-top: 28rpx;
.secondItem {
display: flex;
.itemImg {
width: 80rpx;
height: 80rpx;
}
.secondDetail {
display: flex;
flex-direction: column;
margin-left: 16rpx;
.labelValue {
font-size: 36rpx;
font-family: DINAlternate-Bold, DINAlternate;
font-weight: bold;
color: #020e1a;
line-height: 44rpx;
}
.labelTitle {
font-size: 24rpx;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #786b6c;
line-height: 36rpx;
.unit {
font-size: 24rpx;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #a69e9f;
line-height: 36rpx;
}
}
}
}
}
}
}
}
.selfPlan {
width: calc(100% - 64rpx);
height: 630rpx;
padding: 20rpx 24rpx;
box-sizing: border-box;
background: #e8f2ff;
border-radius: 16rpx;
margin-left: 32rpx;
margin-top: 32rpx;
.selfPlanTitle {
font-size: 32rpx;
font-family: Alimama ShuHeiTi;
font-weight: bold;
color: #4157e6;
line-height: 38rpx;
}
.content {
width: 100%;
height: 530rpx;
background: #fff;
margin-top: 20rpx;
border-radius: 20rpx;
box-sizing: border-box;
padding: 32rpx 24rpx;
.contentItem {
.contentTop {
width: 100%;
display: flex;
justify-content: space-between;
.contentLeft {
display: flex;
align-items: center;
.dateImg {
width: 40rpx;
height: 40rpx;
}
.smallTitle {
font-size: 28rpx;
font-family: PingFangSC-Semibold, PingFang SC;
font-weight: 600;
color: #160002;
line-height: 40rpx;
margin-left: 4rpx;
}
}
.contentRight {
display: flex;
align-items: center;
.moreText {
font-size: 24rpx;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #a69e9f;
line-height: 36rpx;
}
.moreIcon {
width: 20rpx;
height: 40rpx;
margin-left: 4rpx;
}
}
}
.contentBottom {
margin-top: 24rpx;
display: flex;
.canvaBox {
width: 136rpx;
height: 136rpx;
}
.messageBox {
flex: 1;
margin-left: 32rpx;
.messageTop {
width: 100%;
display: flex;
align-items: center;
.topIcon {
width: 28rpx;
height: 28rpx;
}
.messageValue {
font-size: 36rpx;
font-family: DINAlternate-Bold, DINAlternate;
font-weight: bold;
color: #e83944;
line-height: 44rpx;
}
.messageDesc {
font-size: 24rpx;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #a69e9f;
line-height: 36rpx;
margin-left: 8rpx;
}
}
.messageBottom {
width: 100%;
margin-top: 16rpx;
display: flex;
justify-content: space-between;
.bottomItem {
.itemValue {
font-size: 32rpx;
font-family: DINAlternate-Bold, DINAlternate;
font-weight: bold;
color: #020e1a;
line-height: 40rpx;
}
.itemLabel {
font-size: 24rpx;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #786b6c;
line-height: 36rpx;
.unit {
font-size: 24rpx;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #a69e9f;
line-height: 36rpx;
}
}
}
}
}
}
}
}
}
.proportion {
width: calc(100% - 64rpx);
margin-left: 32rpx;
border-radius: 20rpx;
background: #e6f6f7;
margin-top: 34rpx;
box-sizing: border-box;
padding: 20rpx 24rpx;
.proportionTitle {
font-size: 32rpx;
font-family: Alimama ShuHeiTi;
font-weight: bold;
color: #02858b;
line-height: 38rpx;
}
.contentPropor {
width: 100%;
background: #fff;
border-radius: 20rpx;
margin-top: 20rpx;
box-sizing: border-box;
padding: 24rpx;
.tabs {
width: 100%;
.tabItem {
display: inline-block;
padding: 8rpx 24rpx;
font-size: 28rpx;
font-family: PingFangSC-Semibold, PingFang SC;
font-weight: 400;
color: #160002;
line-height: 40rpx;
border-radius: 28rpx;
}
.active {
background: #e5f2f3;
color: #02858b;
font-weight: 600;
}
}
.chart {
width: 100%;
margin-top: 12px;
.operation-c-list {
width: 100%;
margin-bottom: 12px;
.top {
width: 100%;
margin-bottom: 2px;
display: flex;
justify-content: space-between;
align-items: center;
.left {
display: flex;
justify-content: space-between;
.icon {
width: 20px;
height: 20px;
position: relative;
margin-right: 8px;
display: flex;
justify-content: center;
align-items: center;
image {
width: 100%;
height: 100%;
position: absolute;
top: 0;
left: 0;
}
text {
z-index: 99;
font-size: 24rpx;
font-family: DINAlternate-Bold, DINAlternate;
font-weight: bold;
color: #ffffff;
}
}
.name {
font-size: 32rpx;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #160002;
line-height: 40rpx;
}
}
}
.bottom {
display: flex;
justify-content: space-between;
.bar {
width: 352rpx;
height: 16rpx;
background: #ebeeee;
border-radius: 10rpx;
position: relative;
overflow: hidden;
.progress {
position: absolute;
top: 0;
left: 0;
background: #02858b;
height: 100%;
border-radius: 10rpx;
}
}
.number {
font-size: 28rpx;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #786b6c;
line-height: 40rpx;
}
}
}
}
}
}
}
.notice {
position: fixed;
bottom: 120px;
left: 5%;
width: 90%;
padding: 10px 10px;
box-sizing: border-box;
border-radius: 10px;
z-index: 999999;
background: #2c71f9;
display: flex;
justify-content: space-between;
align-items: center;
.left {
display: flex;
align-items: center;
.icon {
width: 40px;
height: 40px;
margin-right: 10px;
}
.text {
margin-left: 8px;
.name {
font-size: 14px;
font-family: PingFangSC-Semibold, PingFang SC;
font-weight: 600;
color: #ffffff;
line-height: 20px;
}
.desc {
font-size: 12px;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #b5cdfc;
line-height: 18px;
}
}
}
.right {
border: 1px solid #fff;
padding: 2px 6px;
font-size: 14px;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
border-radius: 11px;
color: #ffffff;
}
}
.popupIndex {
position: fixed;
top: 30%;
left: 10%;
width: 80%;
height: 250px;
background: #fff;
border-radius: 8px;
overflow: hidden;
padding: 0 16px;
box-sizing: border-box;
.popupTop {
box-sizing: border-box;
height: 60px;
font-size: 15px;
font-weight: 600;
color: #333;
text-align: left;
width: 100%;
padding: 16px 0;
background-color: #fff;
}
.bodyList {
width: 100%;
height: 190px;
box-sizing: border-box;
.item {
width: 100%;
border-bottom: 1px solid #efefef;
padding: 5px 0;
display: flex;
align-items: center;
.index {
height: 16px;
color: #e1b582;
border: 1px solid #e1b582;
border-radius: 4px;
padding: 0 6px;
margin-right: 6px;
font-size: 12px;
line-height: 16px;
}
}
}
}
.realBoxPage {
position: fixed;
// left: 5%;
// top: 10px;
transform: translateX(-50%);
//right: 0;bottom: 0;
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: 22;
width: 75vw;
height: 70vh;
// height: 250px;
overflow-y: scroll;
white-space: pre-wrap;
.noticeText {
font-size: 12px;
color: #000;
display: block;
}
.closeIcon {
width: 16px;
height: 16px;
}
.field {
text-align: right;
display: flex;
.label {
display: inline-block;
width: 160rpx;
text-align: left;
box-sizing: border-box;
}
.value {
width: 200rpx;
text-align: right;
}
}
}
}
/* 数智助手新功能引导样式 */
.guide-mask {
position: fixed;
top: 0;
left: 0;
width: 100vw;
height: 100vh;
z-index: 99999;
background-color: rgba(0, 0, 0, 0.2);
}
.guide-highlight {
position: absolute;
border-radius: 16rpx;
box-shadow: 0 0 0 2000px rgba(0, 0, 0, 0.75);
transition: all 0.4s cubic-bezier(0.165, 0.84, 0.44, 1);
pointer-events: none;
}
.guide-highlight::before,
.guide-highlight::after {
content: '';
position: absolute;
top: -8px;
left: -8px;
right: -8px;
bottom: -8px;
border: 2px solid #1677FE;
border-radius: 20rpx;
animation: guide-pulse 2s infinite;
}
.guide-highlight::after {
animation-delay: 1s;
}
@keyframes guide-pulse {
0% {
transform: scale(0.95);
opacity: 0.8;
}
70% {
transform: scale(1.15);
opacity: 0;
}
100% {
transform: scale(1.2);
opacity: 0;
}
}
.guide-bubble {
position: absolute;
transform: translate(-50%, -100%);
width: 540rpx;
z-index: 100001;
pointer-events: auto;
animation: bubble-entrance 0.5s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}
@keyframes bubble-entrance {
from {
opacity: 0;
transform: translate(-50%, -100%) translateY(-20px) scale(0.9);
}
to {
opacity: 1;
transform: translate(-50%, -100%) translateY(0) scale(1);
}
}
.guide-bubble-content {
background: linear-gradient(135deg, rgba(11, 14, 20, 0.9), rgba(26, 33, 48, 0.9));
backdrop-filter: blur(25px);
-webkit-backdrop-filter: blur(25px);
padding: 36rpx;
border-radius: 28rpx;
color: #fff;
position: relative;
overflow: hidden;
border: 1px solid rgba(22, 119, 254, 0.3);
box-shadow: 0 25rpx 50rpx rgba(0, 0, 0, 0.5),
inset 0 0 15rpx rgba(22, 119, 254, 0.1);
}
.guide-grid {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background-image:
linear-gradient(rgba(22, 119, 254, 0.05) 1px, transparent 1px),
linear-gradient(90deg, rgba(22, 119, 254, 0.05) 1px, transparent 1px);
background-size: 20rpx 20rpx;
pointer-events: none;
}
/* 流动边框灯效 */
.guide-bubble-content::after {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
border-radius: 28rpx;
padding: 1px;
background: linear-gradient(90deg, transparent, transparent, #1677FE, transparent, transparent);
background-size: 200% 100%;
-webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
-webkit-mask-composite: destination-out;
mask-composite: exclude;
animation: border-flow 4s linear infinite;
pointer-events: none;
}
@keyframes border-flow {
0% {
background-position: 200% 0;
}
100% {
background-position: -200% 0;
}
}
.guide-bubble-content::before {
content: '';
position: absolute;
top: 100%;
left: 50%;
transform: translateX(-50%);
border: 18rpx solid transparent;
border-top-color: rgba(35, 35, 45, 0.85);
}
.guide-header {
display: flex;
align-items: center;
margin-bottom: 18rpx;
}
.ai-icon-wrapper {
position: relative;
width: 32rpx;
height: 32rpx;
margin-right: 12rpx;
}
.ai-pulse {
position: absolute;
width: 100%;
height: 100%;
background: #1677FE;
border-radius: 50%;
animation: ai-icon-pulse 1.5s infinite;
}
.ai-inner-dot {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
width: 14rpx;
height: 14rpx;
background: #fff;
border-radius: 50%;
box-shadow: 0 0 10rpx #1677FE;
}
@keyframes ai-icon-pulse {
0% {
transform: scale(1);
opacity: 0.6;
}
50% {
transform: scale(1.6);
opacity: 0;
}
100% {
transform: scale(1);
opacity: 0.6;
}
}
.guide-title {
font-size: 34rpx;
font-weight: 700;
color: #1677FE;
letter-spacing: 2rpx;
text-shadow: 0 0 10rpx rgba(22, 119, 254, 0.4);
}
.guide-desc {
display: block;
font-size: 27rpx;
line-height: 1.6;
margin-bottom: 34rpx;
color: rgba(255, 255, 255, 0.85);
}
.guide-btn-group {
display: flex;
justify-content: space-between;
gap: 24rpx;
}
.guide-btn {
position: relative;
flex: 1;
text-align: center;
padding: 18rpx 0;
border-radius: 50rpx;
font-size: 27rpx;
font-weight: 600;
overflow: hidden;
}
.guide-btn.outline {
background: rgba(255, 255, 255, 0.03);
border: 1px dashed rgba(22, 119, 254, 0.4);
color: rgba(255, 255, 255, 0.9);
}
.guide-btn.primary {
background: linear-gradient(135deg, #1677FE, #0056D2);
color: #ffffff;
box-shadow: 0 8rpx 20rpx rgba(22, 119, 254, 0.3);
border: none;
}
.btn-glow {
position: absolute;
top: -50%;
left: -50%;
width: 200%;
height: 200%;
background: radial-gradient(circle, rgba(255, 255, 255, 0.2) 0%, transparent 70%);
animation: btn-glow-move 3s infinite linear;
pointer-events: none;
}
@keyframes btn-glow-move {
0% {
transform: translate(-30%, -30%);
}
50% {
transform: translate(30%, 30%);
}
100% {
transform: translate(-30%, -30%);
}
}
</style>