服务监管 双二维码的区分

This commit is contained in:
ylj20011123 2026-01-20 13:40:04 +08:00
parent 39c03aba5a
commit 2fc99587bf
14 changed files with 4232 additions and 4198 deletions

View File

@ -29,9 +29,12 @@
<text class="title">经营项目预警</text>
</view>
<view class="errorContent">
<view v-for="(item,index) in topTabList" :key="index" :class="selectTab===index+1?'errorItem selectErrorItem':'errorItem'" @click="handleChangeTab(index+1)">
<view v-for="(item, index) in topTabList" :key="index"
:class="selectTab === index + 1 ? 'errorItem selectErrorItem' : 'errorItem'"
@click="handleChangeTab(index + 1)">
<view class="itemLeft">
<image class="itemLogo" :src="'https://eshangtech.com/ShopICO/ahyd-BID/warning/error' + (index+1) + 'st.png'"/>
<image class="itemLogo"
:src="'https://eshangtech.com/ShopICO/ahyd-BID/warning/error' + (index + 1) + 'st.png'" />
</view>
<view class="itemRight">
<text class="itemValue">{{ item.value || '-' }}</text>
@ -220,15 +223,21 @@
<view class="sortItem" style="width: 25%;justify-content: flex-end" @click="handleChangeSortName(1)">
<text class="sortName">营收金额</text>
<view class="sortIconBox">
<image class="upIcon" :style="{transform: sortName===1?sortType===1?``:`rotate(180deg)`:``}" :src="sortType===1?'https://eshangtech.com/ShopICO/ahyd-BID/car/upDesc.svg':sortName===1?'https://eshangtech.com/ShopICO/ahyd-BID/car/downDesc.svg':'https://eshangtech.com/ShopICO/ahyd-BID/car/upDesc.svg'"/>
<image class="bottomIcon" :style="{transform: sortName===1?sortType===1?``:`rotate(180deg)`:'rotate(-180deg)'}":src="sortType===1 && sortName===1?'https://eshangtech.com/ShopICO/ahyd-BID/car/downDesc.svg':'https://eshangtech.com/ShopICO/ahyd-BID/car/upDesc.svg'"/>
<image class="upIcon" :style="{ transform: sortName === 1 ? sortType === 1 ? `` : `rotate(180deg)` : `` }"
:src="sortType === 1 ? 'https://eshangtech.com/ShopICO/ahyd-BID/car/upDesc.svg' : sortName === 1 ? 'https://eshangtech.com/ShopICO/ahyd-BID/car/downDesc.svg' : 'https://eshangtech.com/ShopICO/ahyd-BID/car/upDesc.svg'" />
<image class="bottomIcon"
:style="{ transform: sortName === 1 ? sortType === 1 ? `` : `rotate(180deg)` : 'rotate(-180deg)' }"
:src="sortType === 1 && sortName === 1 ? 'https://eshangtech.com/ShopICO/ahyd-BID/car/downDesc.svg' : 'https://eshangtech.com/ShopICO/ahyd-BID/car/upDesc.svg'" />
</view>
</view>
<view class="sortItem" style="width: 25%;justify-content: flex-end" @click="handleChangeSortName(2)">
<text class="sortName">盈利金额</text>
<view class="sortIconBox">
<image class="upIcon" :style="{transform: sortName===2?sortType===1?``:`rotate(180deg)`:``}" :src="sortType===1?'https://eshangtech.com/ShopICO/ahyd-BID/car/upDesc.svg':sortName===2?'https://eshangtech.com/ShopICO/ahyd-BID/car/downDesc.svg':'https://eshangtech.com/ShopICO/ahyd-BID/car/upDesc.svg'"/>
<image class="bottomIcon" :style="{transform: sortName===2?sortType===1?``:`rotate(180deg)`:'rotate(-180deg)'}":src="sortType===1 && sortName===2?'https://eshangtech.com/ShopICO/ahyd-BID/car/downDesc.svg':'https://eshangtech.com/ShopICO/ahyd-BID/car/upDesc.svg'"/>
<image class="upIcon" :style="{ transform: sortName === 2 ? sortType === 1 ? `` : `rotate(180deg)` : `` }"
:src="sortType === 1 ? 'https://eshangtech.com/ShopICO/ahyd-BID/car/upDesc.svg' : sortName === 2 ? 'https://eshangtech.com/ShopICO/ahyd-BID/car/downDesc.svg' : 'https://eshangtech.com/ShopICO/ahyd-BID/car/upDesc.svg'" />
<image class="bottomIcon"
:style="{ transform: sortName === 2 ? sortType === 1 ? `` : `rotate(180deg)` : 'rotate(-180deg)' }"
:src="sortType === 1 && sortName === 2 ? 'https://eshangtech.com/ShopICO/ahyd-BID/car/downDesc.svg' : 'https://eshangtech.com/ShopICO/ahyd-BID/car/upDesc.svg'" />
</view>
</view>
</view>
@ -249,7 +258,8 @@
<view class="listItemRight">
<view class="rightTop">
<view class="rightTopLeft">
<image v-if="index<=2" class="sortIcon" :src="index===0?'https://eshangtech.com/ShopICO/ahyd-BID/warning/sort1st.png':index===1?'https://eshangtech.com/ShopICO/ahyd-BID/warning/sort2st.png':index===2?'https://eshangtech.com/ShopICO/ahyd-BID/warning/sort3st.png':''"/>
<image v-if="index <= 2" class="sortIcon"
:src="index === 0 ? 'https://eshangtech.com/ShopICO/ahyd-BID/warning/sort1st.png' : index === 1 ? 'https://eshangtech.com/ShopICO/ahyd-BID/warning/sort2st.png' : index === 2 ? 'https://eshangtech.com/ShopICO/ahyd-BID/warning/sort3st.png' : ''" />
<view class="otherIcon" v-else>{{ index + 1 }}</view>
<text class="shopName">{{ item.SERVERPARTSHOP_NAME || '' }}</text>
</view>
@ -268,17 +278,25 @@
<view class="rightBottomMoney">
<view style="width: 50%">
<view class="moneyItem">
<text class="value">{{item.REVENUE_AMOUNT?$util.getMoney(item.REVENUE_AMOUNT / 10000):'-'}}</text>
<text class="value">{{ item.REVENUE_AMOUNT ? $util.getMoney(item.REVENUE_AMOUNT / 10000) : '-'
}}</text>
<text class="unit">营收 /万元</text>
</view>
</view>
<view style="width: 50%;position: relative" @click.stop="handleShowDetail(item)">
<view class="moneyItem">
<text class="value">{{item.PROFIT_AMOUNT?$util.getMoney(item.PROFIT_AMOUNT / 10000):'-'}}</text>
<text class="value">{{ item.PROFIT_AMOUNT ? $util.getMoney(item.PROFIT_AMOUNT / 10000) : '-'
}}</text>
<text class="unit">盈利 /万元</text>
</view>
<view class="moneyDetailFixed" v-if="item.showDetail" @click.stop="handleCloseDetail(item)">
{{`营业金额(${item.REVENUE_AMOUNT ? $util.getMoney(item.REVENUE_AMOUNT / 10000) : 0}万元)-甲方利润(${item.ROYALTY_THEORY ? $util.getMoney(item.ROYALTY_THEORY / 10000) : 0}万元)- 商家成本预估(20%营业额;${item.LABOURS_COUNT?`员工${item.LABOURS_COUNT || 0}人;`:''}${item.LABOURS_WAGE?`月均${item.LABOURS_WAGE || 0}元/人;`:''}${item.DEPRECIATION_EXPENSE?`折旧费${item.DEPRECIATION_EXPENSE || 0}万元/3年`:''}${item.OTHER_EXPENSE?`其他运营成本${item.OTHER_EXPENSE || 0}万元`:''})${$util.getMoney(item.COST_AMOUNT /10000) || 0}万元)`}}
{{ `营业金额(${item.REVENUE_AMOUNT ? $util.getMoney(item.REVENUE_AMOUNT / 10000) :
0}万元-甲方利润${item.ROYALTY_THEORY ? $util.getMoney(item.ROYALTY_THEORY / 10000) : 0}万元-
商家成本预估(20%营业额${item.LABOURS_COUNT ? `员工${item.LABOURS_COUNT ||
0}` : ''}${item.LABOURS_WAGE ? `月均${item.LABOURS_WAGE ||
0}/` : ''}${item.DEPRECIATION_EXPENSE ? `折旧费${item.DEPRECIATION_EXPENSE ||
0}万元/3` : ''}${item.OTHER_EXPENSE ? `其他运营成本${item.OTHER_EXPENSE ||
0}万元` : ''})${$util.getMoney(item.COST_AMOUNT / 10000) || 0}万元)` }}
</view>
</view>
</view>
@ -292,35 +310,46 @@
<view class="uniPopup">
<view class="uniPopupTop">
<text class="uniPopupTitle">筛选</text>
<image @click="hidePopup" class="close" src="https://eshangtech.com/ShopICO/ahyd-BID/examine/close.svg"></image>
<image @click="hidePopup" class="close" src="https://eshangtech.com/ShopICO/ahyd-BID/examine/close.svg">
</image>
</view>
<view class="filterBox">
<view class="filterTitle">统计时间</view>
<view class="filterTimeBox">
<picker class="timeSelect" mode="date" fields="month" :value="$moment(startDate).format('YYYY-MM')" :start="'2024-01-01'" :end="end" @change="handleGetStartTime">{{startDate}}</picker>
<picker class="timeSelect" mode="date" fields="month" :value="$moment(startDate).format('YYYY-MM')"
:start="'2024-01-01'" :end="end" @change="handleGetStartTime">{{ startDate }}</picker>
<span class="timeSelect" style="margin: 0 4rpx">-</span>
<picker class="timeSelect" mode="date" fields="month" :value="$moment(endDate).format('YYYY-MM')" :start="start" :end="end" @change="handleGetEndTime">{{endDate}}</picker>
<picker class="timeSelect" mode="date" fields="month" :value="$moment(endDate).format('YYYY-MM')"
:start="start" :end="end" @change="handleGetEndTime">{{ endDate }}</picker>
</view>
</view>
<view class="filterBox" style="margin-top: 48rpx">
<view class="filterTitle">经营状态</view>
<view class="filterItemList">
<view :class="businessStatus===1000?'filterItem selectFilterItem':'filterItem'" @click="handleChangeBusinessStatus(1000)">运营中</view>
<view :class="businessStatus===1010?'filterItem selectFilterItem':'filterItem'" @click="handleChangeBusinessStatus(1010)">待运营</view>
<view :class="businessStatus===2000?'filterItem selectFilterItem':'filterItem'" @click="handleChangeBusinessStatus(2000)">暂停</view>
<view :class="businessStatus===3000?'filterItem selectFilterItem':'filterItem'" @click="handleChangeBusinessStatus(3000)">关闭</view>
<view :class="businessStatus === 1000 ? 'filterItem selectFilterItem' : 'filterItem'"
@click="handleChangeBusinessStatus(1000)">运营中</view>
<view :class="businessStatus === 1010 ? 'filterItem selectFilterItem' : 'filterItem'"
@click="handleChangeBusinessStatus(1010)">待运营</view>
<view :class="businessStatus === 2000 ? 'filterItem selectFilterItem' : 'filterItem'"
@click="handleChangeBusinessStatus(2000)">暂停</view>
<view :class="businessStatus === 3000 ? 'filterItem selectFilterItem' : 'filterItem'"
@click="handleChangeBusinessStatus(3000)">关闭</view>
</view>
</view>
<view class="filterBox" style="margin-top: 48rpx">
<view class="filterTitle">经营模式</view>
<view class="filterItemList">
<view :class="businessType===1000?'filterItem selectFilterItem':'filterItem'" @click="handleChangeBusinessType(1000)">合作经营</view>
<view :class="businessType===2000?'filterItem selectFilterItem':'filterItem'" @click="handleChangeBusinessType(2000)">固定租金</view>
<view :class="businessType===3000?'filterItem selectFilterItem':'filterItem'" @click="handleChangeBusinessType(3000)">保底采购</view>
<view :class="businessType===4000?'filterItem selectFilterItem':'filterItem'" @click="handleChangeBusinessType(4000)">业主自营</view>
<view :class="businessType === 1000 ? 'filterItem selectFilterItem' : 'filterItem'"
@click="handleChangeBusinessType(1000)">合作经营</view>
<view :class="businessType === 2000 ? 'filterItem selectFilterItem' : 'filterItem'"
@click="handleChangeBusinessType(2000)">固定租金</view>
<view :class="businessType === 3000 ? 'filterItem selectFilterItem' : 'filterItem'"
@click="handleChangeBusinessType(3000)">保底采购</view>
<view :class="businessType === 4000 ? 'filterItem selectFilterItem' : 'filterItem'"
@click="handleChangeBusinessType(4000)">业主自营</view>
</view>
</view>
@ -602,15 +631,18 @@ export default {
<style scoped lang="scss">
.projectWarningBox {
background: #F3F3F3;
.earlyTop {
width: 100%;
background: #F3F3F3;
position: relative;
.earlyTopBg {
width: 100%;
height: 430rpx;
background: linear-gradient(180deg, #D8E3FF 0%, #F3F3F3 100%);
}
.headerBox {
width: 100%;
position: fixed;
@ -622,27 +654,33 @@ export default {
//padding: 32rpx;
display: flex;
align-items: center;
.backIconBox {
width: 48rpx;
height: 48rpx;
margin-right: 18rpx;
.backIcon {
width: 100%;
height: 100%;
}
}
.timeBox {
display: flex;
align-items: center;
.timeIconBox {
width: 40rpx;
height: 40rpx;
margin-right: 12rpx;
.timeIcon {
width: 100%;
height: 100%;
}
}
.timeText {
font-family: AlimamaShuHeiTi, AlimamaShuHeiTi;
font-weight: bold;
@ -652,6 +690,7 @@ export default {
text-align: left;
font-style: normal;
}
.timeSelect {
font-family: AlimamaShuHeiTi, AlimamaShuHeiTi;
font-weight: bold;
@ -661,6 +700,7 @@ export default {
text-align: left;
font-style: normal;
}
.downIcon {
width: 30rpx;
height: 24rpx;
@ -668,12 +708,14 @@ export default {
}
}
}
.errorWarning {
width: 100%;
box-sizing: border-box;
padding: 0 32rpx;
position: absolute;
left: 0;
.errorTitle {
width: 100%;
height: 88rpx;
@ -684,11 +726,13 @@ export default {
align-items: center;
box-sizing: border-box;
padding: 24rpx;
.warningIcon {
width: 40rpx;
height: 40rpx;
margin-right: 8rpx;
}
.title {
font-family: PingFangSC, PingFang SC;
font-weight: 600;
@ -699,6 +743,7 @@ export default {
font-style: normal;
}
}
.errorContent {
width: 100%;
background: #FFFFFF;
@ -709,6 +754,7 @@ export default {
display: flex;
justify-content: space-between;
flex-wrap: wrap;
.errorItem {
width: 50%;
display: flex;
@ -717,6 +763,7 @@ export default {
box-sizing: border-box;
padding: 12rpx;
border-radius: 16rpx;
.itemLeft {
width: 88rpx;
height: 88rpx;
@ -726,15 +773,18 @@ export default {
display: flex;
align-items: center;
justify-content: center;
.itemLogo {
width: 56rpx;
height: 56rpx;
}
}
.itemRight {
margin-left: 16rpx;
display: flex;
flex-direction: column;
.itemValue {
font-family: DINAlternate, DINAlternate;
font-weight: bold;
@ -744,6 +794,7 @@ export default {
text-align: left;
font-style: normal;
}
.itemLabel {
font-family: PingFangSC, PingFang SC;
font-weight: 400;
@ -755,16 +806,25 @@ export default {
}
}
}
.selectErrorItem {
background: #D9E9FF;
}
.messageBox {
margin-top: 16rpx;
background: #F8F8F8;
border-radius: 16rpx;
box-sizing: border-box;
padding: 16rpx;
width: 100%;
.messageIcon {
width: 48rpx;
height: 48rpx;
margin-right: 8rpx;
}
.messageType {
font-family: PingFangSC, PingFang SC;
font-weight: 400;
@ -779,6 +839,7 @@ export default {
margin-right: 16rpx;
white-space: nowrap;
}
.messageDesc {
font-family: PingFangSC, PingFang SC;
font-weight: 400;
@ -803,17 +864,21 @@ export default {
background: #fff;
box-sizing: border-box;
padding: 24rpx 32rpx;
.contentTitle {
width: 100%;
display: flex;
align-items: center;
justify-content: space-between;
.contentIcon {
width: 48rpx;
height: 48rpx;
}
.titleBox {
margin-left: 12rpx;
.title {
font-size: 32rpx;
font-family: PingFangSC, PingFang SC;
@ -821,6 +886,7 @@ export default {
color: #160002;
line-height: 44rpx;
}
.desc {
font-size: 24rpx;
font-family: PingFangSC, PingFang SC;
@ -847,11 +913,13 @@ export default {
line-height: 40rpx;
text-align: left;
font-style: normal;
.filterIcon {
width: 24rpx;
height: 28rpx;
margin-right: 4rpx;
}
.searchCountBox {
width: 28rpx;
height: 28rpx;
@ -871,13 +939,16 @@ export default {
}
}
}
.messageBox {
margin-top: 16rpx;
.messageIcon {
width: 48rpx;
height: 48rpx;
margin-right: 8rpx;
}
.messageType {
font-family: PingFangSC, PingFang SC;
font-weight: 400;
@ -892,6 +963,7 @@ export default {
margin-right: 16rpx;
white-space: nowrap;
}
.messageDesc {
font-family: PingFangSC, PingFang SC;
font-weight: 400;
@ -903,18 +975,21 @@ export default {
white-space: nowrap;
}
}
.selectBox {
width: 100%;
height: 72rpx;
display: flex;
align-items: center;
margin-top: 28rpx;
.scrollBox {
//width: calc(100% - 140rpx);
width: calc(100% - 32rpx);
height: 72rpx;
display: flex;
white-space: nowrap;
.scrollItem {
background: #F5F5F5;
border-radius: 8rpx;
@ -922,11 +997,13 @@ export default {
padding: 16rpx;
display: flex;
align-items: center;
.itemImg {
width: 48rpx;
height: 48rpx;
margin-right: 8rpx;
}
.text {
font-family: PingFangSC, PingFang SC;
font-weight: 400;
@ -937,13 +1014,16 @@ export default {
font-style: normal;
}
}
.selectScroll {
background: #ECF2FF !important;
.text {
color: #2363FF !important;
}
}
}
.fixedRight {
width: 138rpx;
height: 72rpx;
@ -959,11 +1039,13 @@ export default {
line-height: 40rpx;
text-align: left;
font-style: normal;
.filterIcon {
width: 24rpx;
height: 28rpx;
margin-right: 4rpx;
}
.searchCountBox {
width: 28rpx;
height: 28rpx;
@ -983,15 +1065,18 @@ export default {
}
}
}
.dataList {
width: 100%;
//height: calc(100% - 200rpx);
margin-top: 24rpx;
.listTitle {
display: flex;
align-items: center;
border-bottom: 1px solid #F1F1F1;
padding-bottom: 16rpx;
.titleName {
font-family: PingFangSC, PingFang SC;
font-weight: 400;
@ -1001,9 +1086,11 @@ export default {
text-align: left;
font-style: normal;
}
.sortItem {
display: flex;
align-items: center;
.sortName {
font-size: 24rpx;
font-family: PingFangSC, PingFang SC;
@ -1011,15 +1098,18 @@ export default {
color: #9A9A9A;
line-height: 36rpx;
}
.sortIconBox {
display: flex;
flex-direction: column;
margin-left: 16rpx;
.upIcon {
width: 16rpx;
height: 12rpx;
margin-bottom: 4rpx;
}
.bottomIcon {
width: 16rpx;
height: 12rpx;
@ -1027,10 +1117,12 @@ export default {
}
}
}
.listContent {
width: 100%;
height: calc(100% - 60rpx);
margin-top: 24rpx;
.listItem {
width: 100%;
margin-bottom: 24rpx;
@ -1042,6 +1134,7 @@ export default {
align-items: flex-start;
position: relative;
margin-bottom: 24rpx;
.bg {
width: 144rpx;
height: 144rpx;
@ -1049,6 +1142,7 @@ export default {
right: 0;
bottom: 0;
}
.listItemLeft {
.picBox {
width: 96rpx;
@ -1056,17 +1150,20 @@ export default {
border-radius: 16rpx;
margin-right: 16rpx;
overflow: hidden;
.shopLogo {
width: 96rpx;
height: 96rpx;
}
}
.stateBox {
margin-top: 40rpx;
display: flex;
align-items: center;
justify-content: center;
width: 96rpx;
.stateIcon {
width: 12rpx;
height: 12rpx;
@ -1074,6 +1171,7 @@ export default {
background: #ff4d4f;
margin-right: 12rpx;
}
.stateText {
font-size: 24rpx;
font-family: PingFangSC, PingFang SC;
@ -1083,22 +1181,27 @@ export default {
}
}
}
.listItemRight {
width: calc(100% - 100rpx);
.rightTop {
display: flex;
align-items: center;
justify-content: space-between;
width: 100%;
.rightTopLeft {
width: calc(100% - 32rpx);
display: flex;
align-items: center;
.sortIcon {
width: 40rpx;
height: 40rpx;
margin-right: 12rpx;
}
.otherIcon {
width: 40rpx;
height: 40rpx;
@ -1118,6 +1221,7 @@ export default {
font-style: normal;
margin-right: 12rpx;
}
.shopName {
font-size: 28rpx;
font-family: PingFangSC, PingFang SC;
@ -1131,6 +1235,7 @@ export default {
overflow: hidden;
}
}
.rightTopRight {
.moreIcon {
width: 32rpx;
@ -1138,11 +1243,13 @@ export default {
}
}
}
.MERCHANTS_NAMEBox {
width: 100%;
display: flex;
align-items: center;
justify-content: space-between;
.MERCHANTS_NAME {
font-family: PingFangSC, PingFang SC;
font-weight: 400;
@ -1160,6 +1267,7 @@ export default {
text-overflow: ellipsis;
overflow: hidden;
}
.type {
max-width: 25%;
font-family: PingFangSC, PingFang SC;
@ -1178,6 +1286,7 @@ export default {
.rightBottom {
margin-top: 12rpx;
.type {
font-family: PingFangSC, PingFang SC;
font-weight: 400;
@ -1191,6 +1300,7 @@ export default {
background: #E3EFFF;
border-radius: 4rpx;
}
.endTime {
background: #FFEFEA;
border-radius: 4rpx;
@ -1204,13 +1314,16 @@ export default {
font-style: normal;
}
}
.rightBottomMoney {
display: flex;
align-items: center;
margin-top: 32rpx;
.moneyItem {
display: flex;
flex-direction: column;
.value {
font-size: 28rpx;
font-family: DINAlternate, DINAlternate;
@ -1219,6 +1332,7 @@ export default {
line-height: 32rpx;
margin-top: 8rpx;
}
.unit {
font-size: 24rpx;
font-family: PingFangSC, PingFang SC;
@ -1227,13 +1341,15 @@ export default {
line-height: 36rpx;
}
}
.moneyDetailFixed {
position: absolute;
display: inline-block;
background: #fff;
padding: 12rpx;
border-radius: 12rpx;
bottom: 40rpx;right: 10%;
bottom: 40rpx;
right: 10%;
width: 80vw;
box-shadow: 0rpx 2rpx 8rpx 0rpx rgba(231, 231, 231, 0.67);
}
@ -1249,11 +1365,13 @@ export default {
height: 976rpx;
box-sizing: border-box;
padding: 32rpx;
.uniPopupTop {
width: 100%;
display: flex;
align-items: center;
justify-content: space-between;
.uniPopupTitle {
font-family: PingFangSC, PingFang SC;
font-weight: 600;
@ -1263,6 +1381,7 @@ export default {
text-align: left;
font-style: normal;
}
.close {
width: 40rpx;
height: 40rpx;
@ -1271,6 +1390,7 @@ export default {
.filterBox {
margin-top: 40rpx;
.filterTitle {
font-family: PingFangSC, PingFang SC;
font-weight: 600;
@ -1280,10 +1400,12 @@ export default {
text-align: left;
font-style: normal;
}
.filterItemList {
margin: 24rpx;
display: flex;
flex-wrap: wrap;
.filterItem {
width: calc((100% - 32rpx)/3);
display: flex;
@ -1302,19 +1424,23 @@ export default {
border-radius: 8rpx;
padding: 12rpx 0;
}
.filterItem:nth-child(3) {
margin-right: 0;
}
.selectFilterItem {
color: #2363FF;
background: #ECF2FF;
}
}
.filterTimeBox {
display: flex;
align-items: center;
justify-content: space-between;
margin-top: 24rpx;
.timeSelect {
width: calc((100% - 20px)/2);
}

View File

@ -3,10 +3,12 @@
<view class="meng" v-if="showNotice || showQuestion" @click="handleCloseNotice"></view>
<view class="earlyTop" :style="{height: detail.BUSINESS_ENDDATE?`calc(${menu.bottom}px + 570rpx)`:`calc(${menu.bottom}px + 490rpx)`}">
<view class="earlyTop"
:style="{ height: detail.BUSINESS_ENDDATE ? `calc(${menu.bottom}px + 570rpx)` : `calc(${menu.bottom}px + 490rpx)` }">
<view class="earlyTopBg"></view>
<view class="headerBox" :style="{ paddingTop: menu.top + 'px', height: menu.bottom + 4 + 'px' }">
<view :style="{height:menu.height +'px',display: 'flex',alignItems: 'center',justifyContent:'space-between',padding:'0 32rpx',width:'100%'}">
<view
:style="{ height: menu.height + 'px', display: 'flex', alignItems: 'center', justifyContent: 'space-between', padding: '0 32rpx', width: '100%' }">
<view class="backIconBox" @click="handleBack">
<image class="backIcon" src="https://eshangtech.com/ShopICO/ahyd-BID/commercial/navigation-left.svg" />
</view>
@ -43,13 +45,15 @@
<view class="moneyBox">
<view style="width: 50%;display: inline-block">
<view class="moneyItem">
<text class="value">{{detail.REVENUE_AMOUNT?$util.getMoney(detail.REVENUE_AMOUNT / 10000):'-'}}</text>
<text class="value">{{ detail.REVENUE_AMOUNT ? $util.getMoney(detail.REVENUE_AMOUNT / 10000) : '-'
}}</text>
<text class="unit">营收 /万元</text>
</view>
</view>
<view style="width: 50%;display: inline-block">
<view class="moneyItem">
<text class="value">{{detail.PROFIT_AMOUNT?$util.getMoney(detail.PROFIT_AMOUNT / 10000):'-'}}</text>
<text class="value">{{ detail.PROFIT_AMOUNT ? $util.getMoney(detail.PROFIT_AMOUNT / 10000) : '-'
}}</text>
<text class="unit">盈利 /万元</text>
</view>
</view>
@ -65,7 +69,8 @@
</view>
<view class="line" v-if="detail.BUSINESS_ENDDATE"></view>
<view v-if="detail.BUSINESS_ENDDATE" style="padding: 16rpx 0 24rpx 0;display: flex;align-items: center;justify-content: space-between">
<view v-if="detail.BUSINESS_ENDDATE"
style="padding: 16rpx 0 24rpx 0;display: flex;align-items: center;justify-content: space-between">
<text class="overTime">{{ `门店关闭:${detail.BUSINESS_ENDDATE}` }}</text>
<text class="type" style="margin-left: 12rpx">{{ `项目到期:${detail.ENDDATE}结束` }}</text>
</view>
@ -79,11 +84,13 @@
<view class="contentBox">
<view class="tabBox">
<view :class="selectTab === 1 ? 'tabItem selectItemLeft' : 'tabItem'" @click="handleChangeTab(1)">
<image class="tabItemIcon" :src="selectTab===1?'https://eshangtech.com/ShopICO/ahyd-BID/warning/tab1Select.png':'https://eshangtech.com/ShopICO/ahyd-BID/warning/tab1NOSelect.png'"/>
<image class="tabItemIcon"
:src="selectTab === 1 ? 'https://eshangtech.com/ShopICO/ahyd-BID/warning/tab1Select.png' : 'https://eshangtech.com/ShopICO/ahyd-BID/warning/tab1NOSelect.png'" />
<text class="tabText">综合分析</text>
</view>
<view :class="selectTab === 2 ? 'tabItem selectItemRight' : 'tabItem'" @click="handleChangeTab(2)">
<image class="tabItemIcon" :src="selectTab===2?'https://eshangtech.com/ShopICO/ahyd-BID/warning/tab2Select.png':'https://eshangtech.com/ShopICO/ahyd-BID/warning/tab2NoSelect.png'"/>
<image class="tabItemIcon"
:src="selectTab === 2 ? 'https://eshangtech.com/ShopICO/ahyd-BID/warning/tab2Select.png' : 'https://eshangtech.com/ShopICO/ahyd-BID/warning/tab2NoSelect.png'" />
<text class="tabText">经营情况</text>
</view>
</view>
@ -92,19 +99,19 @@
<image class="descIcon" src="https://eshangtech.com/ShopICO/ahyd-BID/warning/warningLight.png" />
<view class="desc">
<text class="descText">
{{firstTabDetail.Profit / 10000< 0 ?'商家存在':
firstTabDetail.Profit / 10000 <= 10 && firstTabDetail.Profit / 10000 > 0?'商家存在':
{{ firstTabDetail.Profit / 10000 < 0 ? '商家存在' : firstTabDetail.Profit / 10000 <= 10 &&
firstTabDetail.Profit / 10000 > 0 ? '商家存在' :
firstTabDetail.Profit / 10000 > 10 && firstTabDetail.Profit / 10000 < 100 ? '商家经营状态' :
firstTabDetail.Profit / 10000 >= 100 ? '商家存在' : ''
}}
<text class="big">{{
firstTabDetail.Profit / 10000< 0 ?'退场风险':
firstTabDetail.Profit / 10000 <= 10 && firstTabDetail.Profit / 10000 > 0?'较大经营风险':
firstTabDetail.Profit / 10000 < 0 ? '退场风险' : firstTabDetail.Profit / 10000 <= 10 &&
firstTabDetail.Profit / 10000 > 0 ? '较大经营风险' :
firstTabDetail.Profit / 10000 > 10 && firstTabDetail.Profit / 10000 < 100 ? '良好' :
firstTabDetail.Profit / 10000 >= 100 ? '较大的盈利优势' : ''
}}</text>{{
firstTabDetail.Profit / 10000< 0 ?',请密切关注此项目经营状态!':
firstTabDetail.Profit / 10000 <= 10 && firstTabDetail.Profit / 10000 > 0?',请关注此项目经营状态!':
firstTabDetail.Profit / 10000 < 0 ? ',请密切关注此项目经营状态!' : firstTabDetail.Profit / 10000 <= 10 &&
firstTabDetail.Profit / 10000 > 0 ? ',请关注此项目经营状态!' :
firstTabDetail.Profit / 10000 > 10 && firstTabDetail.Profit / 10000 < 100 ? ',能较好的进行持续经营!' :
firstTabDetail.Profit / 10000 >= 100 ? ',建议后期项目调整保底提成!' : ''
}}
@ -131,21 +138,27 @@
<view class="contentItem" style="display: flex;align-items: center">
年度统计周期内
<image class="date" src="https://eshangtech.com/ShopICO/ahyd-BID/warning/dateIcon.png" />
<text class="time">{{`${firstTabDetail.STATISTICS_STARTDATE}-${firstTabDetail.STATISTICS_ENDDATE}`}}</text>
<text class="time">{{ `${firstTabDetail.STATISTICS_STARTDATE}-${firstTabDetail.STATISTICS_ENDDATE}`
}}</text>
</view>
<view class="contentItem">
对客营收
<text class="money">{{ firstTabDetail.PROJECT_REVENUE?$util.getMoney(firstTabDetail.PROJECT_REVENUE / 10000):'-'}}</text>
<text class="money">{{ firstTabDetail.PROJECT_REVENUE ? $util.getMoney(firstTabDetail.PROJECT_REVENUE
/
10000) : '-' }}</text>
<text class="unit">/万元</text>
商家入账
<text class="money">{{ firstTabDetail.SUBROYALTY_AMOUNT?$util.getMoney(firstTabDetail.SUBROYALTY_AMOUNT / 10000):'-'}}</text>
<text class="money">{{
firstTabDetail.SUBROYALTY_AMOUNT ? $util.getMoney(firstTabDetail.SUBROYALTY_AMOUNT /
10000) : '-' }}</text>
<text class="unit">/万元</text>
</view>
<view class="contentItem">
按合同约定支付驿达租金
<text class="money">{{ firstTabDetail.ROYALTY_THEORY?$util.getMoney(firstTabDetail.ROYALTY_THEORY / 10000):'-'}}</text>
<text class="money">{{ firstTabDetail.ROYALTY_THEORY ? $util.getMoney(firstTabDetail.ROYALTY_THEORY /
10000) : '-' }}</text>
<text class="unit">/万元</text>
</view>
@ -156,36 +169,58 @@
<!-- </view>-->
<view class="contentItem">
按对客销售的<text style="color: #FE7628;margin: 0 8rpx">{{ detail.COST_RATE ? `${detail.COST_RATE}%` : '-' }}</text>成本预估经营成本需
<text class="money">{{ firstTabDetail.PROJECT_REVENUE ? $util.getMoney(firstTabDetail.PROJECT_REVENUE * (detail.COST_RATE ? detail.COST_RATE / 100 : 0) / 10000) : '' }}</text><text class="unit">/万元</text>
按对客销售的<text style="color: #FE7628;margin: 0 8rpx">{{ detail.COST_RATE ? `${detail.COST_RATE}%` : '-'
}}</text>成本预估经营成本需
<text class="money">{{ firstTabDetail.PROJECT_REVENUE ? $util.getMoney(firstTabDetail.PROJECT_REVENUE
* (detail.COST_RATE ? detail.COST_RATE / 100 : 0) / 10000) : '' }}</text><text
class="unit">/</text>
</view>
<view class="contentItem" v-if="firstTabDetail.PROJECT_REVENUE">
人工成本<text style="color: #FE7628;margin: 0 8rpx">{{ detail.LABOURS_COUNT || '' }}</text>个人平均工资<text style="color: #FE7628;margin: 0 8rpx">{{ detail.LABOURS_WAGE || '' }}</text>/实际发生
<text style="color: #FE7628;margin: 0 8rpx">{{ detail.MONTH_COUNT || '' }}</text>个月合计人工成本<text class="money">{{$util.getMoney((detail.LABOURS_COUNT * detail.LABOURS_WAGE * detail.MONTH_COUNT) / 10000)}}</text>万元
人工成本<text style="color: #FE7628;margin: 0 8rpx">{{ detail.LABOURS_COUNT || '' }}</text>个人平均工资<text
style="color: #FE7628;margin: 0 8rpx">{{ detail.LABOURS_WAGE || '' }}</text>/实际发生
<text style="color: #FE7628;margin: 0 8rpx">{{ detail.MONTH_COUNT || '' }}</text>个月合计人工成本<text
class="money">{{ $util.getMoney((detail.LABOURS_COUNT * detail.LABOURS_WAGE * detail.MONTH_COUNT) /
10000) }}</text>万元
</view>
<view class="contentItem" v-if="firstTabDetail.PROJECT_REVENUE">
折旧费用按总投入<text style="color: #FE7628;margin: 0 8rpx">{{detail.DEPRECIATION_EXPENSE || ''}}</text>万元<text style="color: #FE7628;margin: 0 8rpx">{{detail.DEPRECIATION_YEAR || ''}}</text>
年折旧实际发生<text style="color: #FE7628;margin: 0 8rpx">{{detail.MONTH_COUNT || ''}}</text>合计折旧费用<text class="money">{{$util.getMoney((detail.DEPRECIATION_EXPENSE / detail.DEPRECIATION_YEAR / 12) * detail.MONTH_COUNT)}}</text>万元
折旧费用按总投入<text style="color: #FE7628;margin: 0 8rpx">{{ detail.DEPRECIATION_EXPENSE ||
'' }}</text>万元<text style="color: #FE7628;margin: 0 8rpx">{{ detail.DEPRECIATION_YEAR || ''
}}</text>
年折旧实际发生<text style="color: #FE7628;margin: 0 8rpx">{{ detail.MONTH_COUNT || '' }}</text>合计折旧费用<text
class="money">{{ $util.getMoney((detail.DEPRECIATION_EXPENSE / detail.DEPRECIATION_YEAR / 12) *
detail.MONTH_COUNT) }}</text>万元
</view>
<view class="contentItem" v-if="firstTabDetail.PROJECT_REVENUE">
其他经营费用按每年综合经营费用<text class="money">{{ detail.OTHER_EXPENSE || '' }}</text>万元预估
</view>
<view class="contentItem" v-if="firstTabDetail.PROJECT_REVENUE">
<text class="unit">实际商家经营成本 = 经营成本 + 人工成本 + 折旧费用 + 其他经营费用 = </text><text class="money">
{{$util.getMoney( (firstTabDetail.PROJECT_REVENUE * (detail.COST_RATE ? detail.COST_RATE / 100 : 0) / 10000) + ((detail.LABOURS_COUNT * detail.LABOURS_WAGE * detail.MONTH_COUNT) / 10000) + ((detail.DEPRECIATION_EXPENSE / detail.DEPRECIATION_YEAR / 12) * detail.MONTH_COUNT) + detail.OTHER_EXPENSE )}}
{{ $util.getMoney((firstTabDetail.PROJECT_REVENUE * (detail.COST_RATE ? detail.COST_RATE / 100 : 0)
/ 10000) + ((detail.LABOURS_COUNT * detail.LABOURS_WAGE * detail.MONTH_COUNT) / 10000) +
((detail.DEPRECIATION_EXPENSE / detail.DEPRECIATION_YEAR / 12) * detail.MONTH_COUNT) +
detail.OTHER_EXPENSE) }}
</text>万元
</view>
<view class="contentItem">
商家<text style="color: #FE7628;margin: 0 8rpx">{{ firstTabDetail.SUBROYALTY_AMOUNT - ( (firstTabDetail.PROJECT_REVENUE * (detail.COST_RATE ? detail.COST_RATE / 100 : 0) ) + ((detail.LABOURS_COUNT * detail.LABOURS_WAGE * detail.MONTH_COUNT)) + ((detail.DEPRECIATION_EXPENSE / detail.DEPRECIATION_YEAR / 12) * detail.MONTH_COUNT) + detail.OTHER_EXPENSE )<0?'预计预亏':'预计盈利' }}</text>
商家<text style="color: #FE7628;margin: 0 8rpx">{{ firstTabDetail.SUBROYALTY_AMOUNT - (
(firstTabDetail.PROJECT_REVENUE * (detail.COST_RATE ? detail.COST_RATE / 100 : 0)) +
((detail.LABOURS_COUNT * detail.LABOURS_WAGE * detail.MONTH_COUNT)) + ((detail.DEPRECIATION_EXPENSE
/ detail.DEPRECIATION_YEAR / 12) * detail.MONTH_COUNT) + detail.OTHER_EXPENSE) < 0 ? '预计预亏' : '预计盈利'
}}</text>
<text class="money">{{ firstTabDetail.SUBROYALTY_AMOUNT ?
$util.getMoney(Math.abs(
((firstTabDetail.SUBROYALTY_AMOUNT - ( (firstTabDetail.PROJECT_REVENUE * (detail.COST_RATE ? detail.COST_RATE / 100 : 0)) + (detail.LABOURS_COUNT * detail.LABOURS_WAGE * detail.MONTH_COUNT) + ((detail.DEPRECIATION_EXPENSE / detail.DEPRECIATION_YEAR / 12) * detail.MONTH_COUNT * 10000) + (detail.OTHER_EXPENSE * 10000) ) )) / 10000)
((firstTabDetail.SUBROYALTY_AMOUNT - ((firstTabDetail.PROJECT_REVENUE * (detail.COST_RATE ?
detail.COST_RATE / 100 : 0)) + (detail.LABOURS_COUNT * detail.LABOURS_WAGE * detail.MONTH_COUNT)
+ ((detail.DEPRECIATION_EXPENSE / detail.DEPRECIATION_YEAR / 12) * detail.MONTH_COUNT * 10000) +
(detail.OTHER_EXPENSE * 10000)))) / 10000)
) : '-' }}</text><text class="unit">/万元</text>
</view>
<view class="contentItem" style="margin-bottom: 8rpx">
<text class="yellowBgText">{{`${BusinessTradeIdsObj[firstTabDetail.BUSINESS_TRADE]}/${BusinessTradeIdsBigObj[firstTabDetail.BUSINESS_PTRADE]}`}}</text>
<text class="yellowBgText">{{
`${BusinessTradeIdsObj[firstTabDetail.BUSINESS_TRADE]}/${BusinessTradeIdsBigObj[firstTabDetail.BUSINESS_PTRADE]}`
}}</text>
<!-- 地方特色小吃/休闲小吃-->
<text class="yellowBgText">{{ firstTabDetail.SHOPSHORTNAME || '' }}</text>
</view>
@ -193,8 +228,8 @@
<view class="contentItem" style="display: flex;align-items: center;flex-wrap: wrap;margin-bottom: 0">
{{ firstTabDetail.ACCOUNT_RATE >= 80 ? '优于' :
firstTabDetail.ACCOUNT_RATE < 80 && firstTabDetail.ACCOUNT_RATE >= 50 ? '优于' :
firstTabDetail.ACCOUNT_RATE< 50?'租赁收入低于':''
}}<text style="color: #FE7628;margin: 0 8rpx">{{ firstTabDetail.ACCOUNT_RATE?`${firstTabDetail.ACCOUNT_RATE}%`:'' }}</text>
firstTabDetail.ACCOUNT_RATE < 50 ? '租赁收入低于' : '' }}<text style="color: #FE7628;margin: 0 8rpx">{{
firstTabDetail.ACCOUNT_RATE ? `${firstTabDetail.ACCOUNT_RATE}%` : '' }}</text>
的经营业态项目
<view style="display: flex;align-items: center;vertical-align: top;margin-left: 8rpx">
<image class="stateIcon" src="https://eshangtech.com/ShopICO/ahyd-BID/warning/Like.png" />
@ -202,10 +237,10 @@
<text class="stateText">{{
firstTabDetail.ACCOUNT_RATE >= 80 ? '优秀' :
firstTabDetail.ACCOUNT_RATE < 80 && firstTabDetail.ACCOUNT_RATE >= 50 ? '良好' :
firstTabDetail.ACCOUNT_RATE< 50?'请关注此项目经营状况!':''
}}</text>
firstTabDetail.ACCOUNT_RATE < 50 ? '请关注此项目经营状况!' : '' }}</text>
<view class="questionBox">
<image class="questionIcon" @click="handleShowQuestion" src="https://eshangtech.com/ShopICO/ahyd-BID/newIndex3/noticeIcon.svg"/>
<image class="questionIcon" @click="handleShowQuestion"
src="https://eshangtech.com/ShopICO/ahyd-BID/newIndex3/noticeIcon.svg" />
<view class="questionContent" @click="handleCloseNotice" v-if="showQuestion">
<view>{{ `>=${80} %,优秀` }}</view>
<view>{{ `<= ${80} % 且>= ${50} %,良好` }}</view>
@ -230,10 +265,12 @@
<text class="unit">/{{ firstTabDetail.TRADE_COUNT_TYPE }}</text>
</view>
<view class="contentTitle" style="padding-left: 14rpx;margin-top: 40rpx;display: flex;align-items: center">
<view class="contentTitle"
style="padding-left: 14rpx;margin-top: 40rpx;display: flex;align-items: center">
在所有
<view class="YdBox">
<image class="YDLogo" src="https://eshangtech.com/ShopICO/ahyd-BID/tabBar/company_active.png"/>
<image class="YDLogo"
src="https://eshangtech.com/ShopICO/ahyd-BID/tabBar/company_active.png" />
<text style="color: red;text-indent: 0">驿达旗下</text>
</view> 服务区中
</view>
@ -258,25 +295,30 @@
<view class="timeBox">
<image class="dateIcon" src="https://eshangtech.com/ShopICO/ahyd-BID/warning/dateIcon.png" />
<text class="dateText" style="white-space: nowrap">{{
`${item.STARTDATE ? $moment(item.STARTDATE).format('YYYY年MM月DD日') : ''}${item.ENDDATE ? $moment(item.ENDDATE).format('YYYY年MM月DD日') : ''}`
`${item.STARTDATE ? $moment(item.STARTDATE).format('YYYY年MM月DD日') : ''}${item.ENDDATE ?
$moment(item.ENDDATE).format('YYYY年MM月DD日') : ''}`
}}</text>
</view>
</view>
<view class="contentItem">
{{new Date().getTime() < new Date($moment(item.ENDDATE).format('YYYY-MM-DD')).getTime() ? '项目履约中...' : '项目已完成...'}}
<text class="orangeText">{{ item.SUBROYALTY_PRICE >= item.MINTURNOVER ?'保底租金已交付':'未完成保底额' }}</text>
{{ new Date().getTime() < new Date($moment(item.ENDDATE).format('YYYY-MM-DD')).getTime()
? '项目履约中...' : '项目已完成...' }} <text class="orangeText">{{ item.SUBROYALTY_PRICE >= item.MINTURNOVER
? '保底租金已交付' : '未完成保底额' }}</text>
</view>
<view class="contentItem">
对客销售总额<text class="money">{{ item.REVENUE_AMOUNT?$util.getMoney(item.REVENUE_AMOUNT / 10000):'-'}}</text>
对客销售总额<text class="money">{{ item.REVENUE_AMOUNT ? $util.getMoney(item.REVENUE_AMOUNT /
10000) : '-' }}</text>
<text class="unit">/万元</text>
商家入账<text class="money">{{ item.SUBROYALTY_THEORY?$util.getMoney(item.SUBROYALTY_THEORY / 10000):'-'}}</text>
商家入账<text class="money">{{ item.SUBROYALTY_THEORY ? $util.getMoney(item.SUBROYALTY_THEORY /
10000) : '-' }}</text>
<text class="unit">/万元</text>
</view>
<view class="contentItem">
按合同约定支付驿达租金<text class="money">{{ item.ROYALTY_THEORY?$util.getMoney(item.ROYALTY_THEORY / 10000):'-'}}</text>
按合同约定支付驿达租金<text class="money">{{ item.ROYALTY_THEORY ? $util.getMoney(item.ROYALTY_THEORY /
10000) : '-' }}</text>
<text class="unit">/万元</text>
</view>
@ -287,74 +329,93 @@
<!-- <text class="unit">/万元</text>-->
<!-- </view>-->
<view class="contentItem">
按对客销售的<text style="color: #FE7628;margin: 0 8rpx">{{ detail.COST_RATE ? `${detail.COST_RATE}%` : '-' }}</text>成本预估经营成本需
<text class="money">{{ item.REVENUE_AMOUNT ? $util.getMoney(item.REVENUE_AMOUNT * (detail.COST_RATE ? detail.COST_RATE / 100 : 0) / 10000) : '' }}</text><text class="unit">/万元</text>
按对客销售的<text style="color: #FE7628;margin: 0 8rpx">{{ detail.COST_RATE ? `${detail.COST_RATE}%` : '-'
}}</text>成本预估经营成本需
<text class="money">{{ item.REVENUE_AMOUNT ? $util.getMoney(item.REVENUE_AMOUNT * (detail.COST_RATE
? detail.COST_RATE / 100 : 0) / 10000) : '' }}</text><text class="unit">/万元</text>
</view>
<view class="contentItem" v-if="item.REVENUE_AMOUNT">
人工成本<text style="color: #FE7628;margin: 0 8rpx">{{ detail.LABOURS_COUNT || '' }}</text>个人平均工资<text style="color: #FE7628;margin: 0 8rpx">{{ detail.LABOURS_WAGE || '' }}</text>/实际发生
<text style="color: #FE7628;margin: 0 8rpx">{{ detail.MONTH_COUNT || '' }}</text>个月合计人工成本<text class="money">{{$util.getMoney((detail.LABOURS_COUNT * detail.LABOURS_WAGE * detail.MONTH_COUNT) / 10000)}}</text>万元
人工成本<text style="color: #FE7628;margin: 0 8rpx">{{ detail.LABOURS_COUNT || ''
}}</text>个人平均工资<text style="color: #FE7628;margin: 0 8rpx">{{ detail.LABOURS_WAGE || ''
}}</text>/实际发生
<text style="color: #FE7628;margin: 0 8rpx">{{ detail.MONTH_COUNT || '' }}</text>个月合计人工成本<text
class="money">{{ $util.getMoney((detail.LABOURS_COUNT * detail.LABOURS_WAGE * detail.MONTH_COUNT)
/
10000) }}</text>万元
</view>
<view class="contentItem" v-if="item.REVENUE_AMOUNT">
折旧费用按总投入<text style="color: #FE7628;margin: 0 8rpx">{{detail.DEPRECIATION_EXPENSE || ''}}</text>万元<text style="color: #FE7628;margin: 0 8rpx">{{detail.DEPRECIATION_YEAR || ''}}</text>
年折旧实际发生<text style="color: #FE7628;margin: 0 8rpx">{{detail.howMonth || ''}}</text>/合计折旧费用<text class="money">{{$util.getMoney((detail.DEPRECIATION_EXPENSE / detail.DEPRECIATION_YEAR / 12) * detail.MONTH_COUNT)}}</text>万元
折旧费用按总投入<text style="color: #FE7628;margin: 0 8rpx">{{ detail.DEPRECIATION_EXPENSE ||
'' }}</text>万元<text style="color: #FE7628;margin: 0 8rpx">{{ detail.DEPRECIATION_YEAR ||
'' }}</text>
年折旧实际发生<text style="color: #FE7628;margin: 0 8rpx">{{ detail.howMonth || ''
}}</text>/合计折旧费用<text class="money">{{ $util.getMoney((detail.DEPRECIATION_EXPENSE /
detail.DEPRECIATION_YEAR / 12) *
detail.MONTH_COUNT) }}</text>万元
</view>
<view class="contentItem" v-if="item.REVENUE_AMOUNT">
其他经营费用按每年综合经营费用<text class="money">{{ detail.OTHER_EXPENSE || '' }}</text>万元预估
</view>
<view class="contentItem" v-if="item.REVENUE_AMOUNT">
<text class="unit">实际商家经营成本 = 经营成本 + 人工成本 + 折旧费用 + 其他经营费用 = </text><text class="money">
{{$util.getMoney( (item.REVENUE_AMOUNT * (detail.COST_RATE ? detail.COST_RATE / 100 : 0) / 10000) + ((detail.LABOURS_COUNT * detail.LABOURS_WAGE * detail.MONTH_COUNT) / 10000) + ((detail.DEPRECIATION_EXPENSE / detail.DEPRECIATION_YEAR / 12) * detail.MONTH_COUNT) + detail.OTHER_EXPENSE )}}
{{ $util.getMoney((item.REVENUE_AMOUNT * (detail.COST_RATE ? detail.COST_RATE / 100 : 0) / 10000)
+ ((detail.LABOURS_COUNT * detail.LABOURS_WAGE * detail.MONTH_COUNT) / 10000) +
((detail.DEPRECIATION_EXPENSE / detail.DEPRECIATION_YEAR / 12) * detail.MONTH_COUNT) +
detail.OTHER_EXPENSE) }}
</text>万元
</view>
<view class="contentItem">
商家<text style="color: #FE7628;margin: 0 8rpx">{{ item.SUBROYALTY_THEORY - ( (item.REVENUE_AMOUNT * (detail.COST_RATE ? detail.COST_RATE / 100 : 0) ) + ((detail.LABOURS_COUNT * detail.LABOURS_WAGE * detail.MONTH_COUNT)) + ((detail.DEPRECIATION_EXPENSE / detail.DEPRECIATION_YEAR / 12) * detail.MONTH_COUNT) + detail.OTHER_EXPENSE )<0?'预计预亏':'预计盈利' }}</text>
商家<text style="color: #FE7628;margin: 0 8rpx">{{ item.SUBROYALTY_THEORY - ((item.REVENUE_AMOUNT *
(detail.COST_RATE ? detail.COST_RATE / 100 : 0)) + ((detail.LABOURS_COUNT * detail.LABOURS_WAGE *
detail.MONTH_COUNT)) + ((detail.DEPRECIATION_EXPENSE / detail.DEPRECIATION_YEAR / 12) *
detail.MONTH_COUNT) + detail.OTHER_EXPENSE) < 0 ? '预计预亏' : '预计盈利' }}</text>
<text class="money">{{ item.SUBROYALTY_THEORY ?
$util.getMoney(Math.abs(
((item.SUBROYALTY_THEORY - ( (item.REVENUE_AMOUNT * (detail.COST_RATE ? detail.COST_RATE / 100 : 0)) + (detail.LABOURS_COUNT * detail.LABOURS_WAGE * detail.MONTH_COUNT) + ((detail.DEPRECIATION_EXPENSE / detail.DEPRECIATION_YEAR / 12) * detail.MONTH_COUNT * 10000) + (detail.OTHER_EXPENSE * 10000) ) )) / 10000)
((item.SUBROYALTY_THEORY - ((item.REVENUE_AMOUNT * (detail.COST_RATE ? detail.COST_RATE / 100
: 0)) + (detail.LABOURS_COUNT * detail.LABOURS_WAGE * detail.MONTH_COUNT) +
((detail.DEPRECIATION_EXPENSE / detail.DEPRECIATION_YEAR / 12) * detail.MONTH_COUNT * 10000) +
(detail.OTHER_EXPENSE * 10000)))) / 10000)
) : '-' }}</text><text class="unit">/万元</text>
</view>
<view class="contentItem">
项目进度完成
<text class="money">{{ item.daySuccess ?item.daySuccess > 100 ? 100 : item.daySuccess +'%':'' }}</text>
<text class="money">{{ item.daySuccess ? item.daySuccess > 100 ? 100 : item.daySuccess + '%' : ''
}}</text>
</view>
<view class="contentItem">
租金交付已完成
<text class="money">{{ item.rentDelivery ?item.rentDelivery > 100 ? 100 : item.rentDelivery +'%':'-' }}</text>
<text class="money">{{ item.rentDelivery ? item.rentDelivery > 100 ? 100 : item.rentDelivery + '%' :
'-'
}}</text>
</view>
<view class="contentItem">
租金交付进度 <text class="orangeText" style="margin: 0 8rpx">{{ item.rentDelivery > item.daySuccess ? '优于' : item.rentDelivery < item.daySuccess ? '低于' : '等于' }}</text> 项目进度
租金交付进度 <text class="orangeText" style="margin: 0 8rpx">{{ item.rentDelivery > item.daySuccess ? '优于'
: item.rentDelivery < item.daySuccess ? '低于' : '等于' }}</text> 项目进度
</view>
<view class="resultBox" v-if="item.daySuccess < 100">
<image class="warningLight" src="https://eshangtech.com/ShopICO/ahyd-BID/warning/warningLight.png"/>
{{ item.progressDifference <= 10 ? '项目保底' :
item.progressDifference > 10 && item.progressDifference <= 40 ?'项目能':
item.progressDifference > 40 ?'项目':
<image class="warningLight"
src="https://eshangtech.com/ShopICO/ahyd-BID/warning/warningLight.png" />
{{ item.progressDifference <= 10 ? '项目保底' : item.progressDifference > 10 && item.progressDifference
<= 40 ? '项目能' : item.progressDifference > 40 ? '项目' :
item.progressDifference <= 0 && item.progressDifference >= -10 ? '项目保底完成' :
item.progressDifference <= -10 && item.progressDifference >= -40 ? '商家' :
item.progressDifference < -40 ?'项目':''
}}
<text class="blueText">
{{ item.progressDifference <= 10 ? '基本能实现' :
item.progressDifference > 10 && item.progressDifference <= 40 ?'较好的完成':
item.progressDifference > 40 ?'超预期':
item.progressDifference < -40 ? '项目' : '' }} <text class="blueText">
{{ item.progressDifference <= 10 ? '基本能实现' : item.progressDifference > 10 &&
item.progressDifference <= 40 ? '较好的完成' : item.progressDifference > 40 ? '超预期' :
item.progressDifference <= 0 && item.progressDifference >= -10 ? '存在困难' :
item.progressDifference <= -10 && item.progressDifference >= -40 ? '存在经营困难' :
item.progressDifference < -40 ?'超预期':''
}}
</text>
{{ item.progressDifference <= 10 ? '' :
item.progressDifference > 10 && item.progressDifference <= 40 ?'保底且实现盈利':
item.progressDifference > 40 ?'后续项目可以适当提升保底营收':
item.progressDifference < -40 ? '超预期' : '' }} </text>
{{ item.progressDifference <= 10 ? '' : item.progressDifference > 10 &&
item.progressDifference <= 40 ? '保底且实现盈利' : item.progressDifference > 40
? '后续项目可以适当提升保底营收' :
item.progressDifference <= 0 && item.progressDifference >= -10 ? ',请保持关注' :
item.progressDifference <= -10 && item.progressDifference >= -40 ?',请密切保持关注':
item.progressDifference < -40 ?',商家存在退场风险':''
}}
</view>
item.progressDifference <= -10 && item.progressDifference >= -40
? ',请密切保持关注' :
item.progressDifference < -40 ? ',商家存在退场风险' : '' }} </view>
</view>
</view>
@ -516,6 +577,8 @@ import {wrapTreeNode} from "../../util/dateTime";
...thirdObj,
...fourthObj,
}
console.log('this.firstTabDetailthis.firstTabDetail', this.firstTabDetail);
},
async handleGetSecondTab() {
const req = {
@ -572,22 +635,27 @@ import {wrapTreeNode} from "../../util/dateTime";
.projectWarningDetail {
width: 100%;
background: #F3F3F3;
.meng {
width: 100vw;
height: 100vh;
position: fixed;
top: 0;left: 0;
top: 0;
left: 0;
z-index: 21;
}
.earlyTop {
width: 100%;
background: #F3F3F3;
position: relative;
.earlyTopBg {
width: 100%;
height: 430rpx;
background: linear-gradient(180deg, #D8E3FF 0%, #F3F3F3 100%);
}
.headerBox {
width: 100%;
position: fixed;
@ -600,15 +668,18 @@ import {wrapTreeNode} from "../../util/dateTime";
display: flex;
align-items: center;
justify-content: space-between;
.backIconBox {
width: 48rpx;
height: 48rpx;
margin-right: 18rpx;
.backIcon {
width: 100%;
height: 100%;
}
}
.pageTitle {
font-family: PingFangTC, PingFangTC;
font-weight: 600;
@ -618,6 +689,7 @@ import {wrapTreeNode} from "../../util/dateTime";
text-align: center;
font-style: normal;
}
.default {
width: 48rpx;
height: 48rpx;
@ -632,6 +704,7 @@ import {wrapTreeNode} from "../../util/dateTime";
border-radius: 16rpx;
box-sizing: border-box;
padding: 2rpx;
.contentBox {
width: 100%;
//height: 480rpx;
@ -642,27 +715,33 @@ import {wrapTreeNode} from "../../util/dateTime";
border-radius: 14rpx;
box-sizing: border-box;
padding: 24rpx 24rpx 0 24rpx;
.contentTop {
display: flex;
//align-items: center;
justify-content: space-between;
.topLeft {
width: 96rpx;
height: 96rpx;
border-radius: 16rpx;
overflow: hidden;
.logo {
width: 100%;
height: 100%;
}
}
.topRight {
width: calc(100% - 100rpx);
margin-left: 16rpx;
.rightTop {
display: flex;
align-items: flex-start;
justify-content: space-between;
.shopName {
font-family: PingFangSC, PingFang SC;
font-weight: 600;
@ -678,14 +757,17 @@ import {wrapTreeNode} from "../../util/dateTime";
overflow: hidden;
-webkit-line-clamp: 2;
}
.fixedBox {
display: flex;
align-items: center;
.fixed {
width: 32rpx;
height: 32rpx;
margin-right: 4rpx;
}
.serverPartName {
font-family: PingFangSC, PingFang SC;
font-weight: 400;
@ -714,9 +796,11 @@ import {wrapTreeNode} from "../../util/dateTime";
border-radius: 4rpx;
}
}
.MERCHANTS_NAMERightBox {
display: flex;
justify-content: flex-end;
.MERCHANTS_NAME {
font-family: PingFangSC, PingFang SC;
font-weight: 400;
@ -732,13 +816,16 @@ import {wrapTreeNode} from "../../util/dateTime";
}
}
}
.contentBottom {
.moneyBox {
width: 100%;
margin-top: 48rpx;
.moneyItem {
display: flex;
flex-direction: column;
.value {
font-family: DINAlternate, DINAlternate;
font-weight: bold;
@ -748,6 +835,7 @@ import {wrapTreeNode} from "../../util/dateTime";
text-align: left;
font-style: normal;
}
.unit {
font-family: PingFangSC, PingFang SC;
font-weight: 400;
@ -759,13 +847,16 @@ import {wrapTreeNode} from "../../util/dateTime";
}
}
}
.messageBox {
margin-top: 16rpx;
.messageIcon {
width: 48rpx;
height: 48rpx;
margin-right: 8rpx;
}
.messageType {
font-family: PingFangSC, PingFang SC;
font-weight: 400;
@ -780,6 +871,7 @@ import {wrapTreeNode} from "../../util/dateTime";
margin-right: 16rpx;
white-space: nowrap;
}
.messageDesc {
font-family: PingFangSC, PingFang SC;
font-weight: 400;
@ -791,12 +883,14 @@ import {wrapTreeNode} from "../../util/dateTime";
white-space: nowrap;
}
}
.line {
width: 100%;
height: 2rpx;
background: #F3F3F3;
margin: 12rpx 0 0 0;
}
.overTime {
font-family: PingFangSC, PingFang SC;
font-weight: 400;
@ -806,6 +900,7 @@ import {wrapTreeNode} from "../../util/dateTime";
text-align: left;
font-style: normal;
}
.type {
font-family: PingFangSC, PingFang SC;
font-weight: 400;
@ -830,10 +925,12 @@ import {wrapTreeNode} from "../../util/dateTime";
border-radius: 32rpx 32rpx 0rpx 0rpx;
box-sizing: border-box;
margin-top: 32rpx;
.contentBox {
width: 100%;
//background: #fff;
padding-bottom: 40rpx;
.tabBox {
width: 100%;
height: 108rpx;
@ -844,6 +941,7 @@ import {wrapTreeNode} from "../../util/dateTime";
background-image: url("https://eshangtech.com/ShopICO/ahyd-BID/warning/grayBg.png");
background-repeat: no-repeat;
background-size: 100% 100%;
.tabItem {
width: 50%;
height: 108rpx;
@ -851,11 +949,13 @@ import {wrapTreeNode} from "../../util/dateTime";
align-items: center;
justify-content: center;
background: linear-gradient(180deg, #F3F4F8 0%, #FFFFFF 100%);
.tabItemIcon {
width: 40rpx;
height: 40rpx;
margin-right: 8rpx;
}
.tabText {
font-family: PingFangSC, PingFang SC;
font-weight: 400;
@ -866,10 +966,12 @@ import {wrapTreeNode} from "../../util/dateTime";
font-style: normal;
}
}
.selectItemLeft {
background-image: url("https://eshangtech.com/ShopICO/ahyd-BID/warning/selectLeft.png");
background-repeat: no-repeat;
background-size: 100% 100%;
.tabText {
font-family: PingFangSC, PingFang SC;
font-weight: 600;
@ -880,10 +982,12 @@ import {wrapTreeNode} from "../../util/dateTime";
font-style: normal;
}
}
.selectItemRight {
background-image: url("https://eshangtech.com/ShopICO/ahyd-BID/warning/selectRight.png");
background-repeat: no-repeat;
background-size: 100% 100%;
.tabText {
font-family: PingFangSC, PingFang SC;
font-weight: 600;
@ -904,12 +1008,15 @@ import {wrapTreeNode} from "../../util/dateTime";
box-sizing: border-box;
padding: 16rpx 24rpx;
display: flex;
.descIcon {
width: 48rpx;
height: 48rpx;
}
.desc {
flex: 1;
.descText {
font-family: PingFangSC, PingFang SC;
font-weight: 400;
@ -919,23 +1026,28 @@ import {wrapTreeNode} from "../../util/dateTime";
text-align: left;
font-style: normal;
vertical-align: top;
.big {
color: #2363FF;
font-weight: 400;
font-size: 30rpx;
}
}
.noticeBox {
position: relative;
display: flex;
align-items: center;
.noticeIcon {
width: 32rpx;
height: 32rpx;
}
.noticeDesc {
position: absolute;
top: 32rpx;left: 0;
top: 32rpx;
left: 0;
display: inline-block;
transform: translateX(-40px);
width: 70vw;
@ -961,6 +1073,7 @@ import {wrapTreeNode} from "../../util/dateTime";
width: calc(100% - 64rpx);
margin-left: 32rpx;
margin-top: 40rpx;
.contentTitle {
font-family: PingFangSC, PingFang SC;
font-weight: 400;
@ -972,6 +1085,7 @@ import {wrapTreeNode} from "../../util/dateTime";
position: relative;
text-indent: 1rem;
margin-bottom: 20rpx;
.yellowText {
font-family: PingFangSC, PingFang SC;
font-weight: 400;
@ -985,6 +1099,7 @@ import {wrapTreeNode} from "../../util/dateTime";
border-radius: 4rpx;
margin: 0 8rpx;
}
.typeText {
background: linear-gradient(134deg, #FFEED1 0%, #FFE1CD 100%);
border-radius: 4rpx;
@ -992,15 +1107,18 @@ import {wrapTreeNode} from "../../util/dateTime";
color: #FF7E05;
margin: 0 12rpx;
}
.YdBox {
display: flex;
align-items: center;
margin: 0 12rpx;
.YDLogo {
width: 48rpx;
height: 48rpx;
margin-right: 8rpx;
}
.YDText {
font-family: PingFangSC, PingFang SC;
font-weight: 400;
@ -1012,15 +1130,18 @@ import {wrapTreeNode} from "../../util/dateTime";
}
}
}
.contentTitle:before {
content: '';
width: 6rpx;
height: 28rpx;
background: #3973FB;
position: absolute;
left: 0;top: 50%;
left: 0;
top: 50%;
transform: translateY(-50%);
}
.contentItem {
font-family: PingFangSC, PingFang SC;
font-weight: 400;
@ -1030,11 +1151,13 @@ import {wrapTreeNode} from "../../util/dateTime";
text-align: left;
font-style: normal;
margin-bottom: 16rpx;
.date {
width: 32rpx;
height: 32rpx;
margin: 0 8rpx;
}
.time {
font-family: PingFangSC, PingFang SC;
font-weight: 400;
@ -1044,6 +1167,7 @@ import {wrapTreeNode} from "../../util/dateTime";
text-align: left;
font-style: normal;
}
.money {
font-family: DINAlternate, DINAlternate;
font-weight: bold;
@ -1054,6 +1178,7 @@ import {wrapTreeNode} from "../../util/dateTime";
font-style: normal;
margin: 0 4rpx;
}
.unit {
font-family: PingFangSC, PingFang SC;
font-weight: 400;
@ -1063,6 +1188,7 @@ import {wrapTreeNode} from "../../util/dateTime";
text-align: left;
font-style: normal;
}
.yellowBgText {
font-family: PingFangSC, PingFang SC;
font-weight: 400;
@ -1075,11 +1201,13 @@ import {wrapTreeNode} from "../../util/dateTime";
background: #FCF1D3;
border-radius: 4rpx;
}
.stateIcon {
width: 35rpx;
height: 35rpx;
margin-right: 8rpx;
}
.stateText {
font-family: PingFangSC, PingFang SC;
font-weight: 600;
@ -1089,6 +1217,7 @@ import {wrapTreeNode} from "../../util/dateTime";
text-align: left;
font-style: normal;
}
.questionBox {
width: 20px;
height: 20px;
@ -1098,13 +1227,16 @@ import {wrapTreeNode} from "../../util/dateTime";
align-items: center;
justify-content: center;
margin-left: 9px;
.questionIcon {
width: 20px;
height: 20px;
}
.questionContent {
position: absolute;
top: 32rpx;right: 0;
top: 32rpx;
right: 0;
display: inline-block;
transform: translateX(40px);
width: 70vw;
@ -1125,10 +1257,12 @@ import {wrapTreeNode} from "../../util/dateTime";
}
}
}
.secondContent {
width: calc(100% - 64rpx);
margin-left: 32rpx;
margin-top: 8rpx;
.contentItem {
margin-bottom: 20rpx;
font-family: PingFangSC, PingFang SC;
@ -1138,6 +1272,7 @@ import {wrapTreeNode} from "../../util/dateTime";
line-height: 40rpx;
text-align: left;
font-style: normal;
.indexDesc {
background: #E1F3E6;
border-radius: 4rpx;
@ -1151,14 +1286,17 @@ import {wrapTreeNode} from "../../util/dateTime";
font-style: normal;
margin-right: 18rpx;
}
.timeBox {
display: flex;
align-items: center;
.dateIcon {
width: 32rpx;
height: 32rpx;
margin-right: 8rpx;
}
.dateText {
font-family: PingFangSC, PingFang SC;
font-weight: 400;
@ -1169,6 +1307,7 @@ import {wrapTreeNode} from "../../util/dateTime";
font-style: normal;
}
}
.orangeText {
font-family: PingFangSC, PingFang SC;
font-weight: 600;
@ -1178,6 +1317,7 @@ import {wrapTreeNode} from "../../util/dateTime";
text-align: left;
font-style: normal;
}
.money {
font-family: DINAlternate, DINAlternate;
font-weight: bold;
@ -1188,6 +1328,7 @@ import {wrapTreeNode} from "../../util/dateTime";
font-style: normal;
margin: 0 4rpx;
}
.unit {
font-family: PingFangSC, PingFang SC;
font-weight: 400;
@ -1198,6 +1339,7 @@ import {wrapTreeNode} from "../../util/dateTime";
font-style: normal;
}
}
.resultBox {
width: 100%;
background: #F7F8FA;
@ -1212,6 +1354,7 @@ import {wrapTreeNode} from "../../util/dateTime";
height: 48rpx;
margin-right: 8rpx;
}
.blueText {
color: #2363FF;
margin-left: 8rpx;

View File

@ -169,16 +169,16 @@
height: menu.height + 'px',
marginLeft: '10rpx',
}">
<UniDataSelect :localdata="localdata" :value="selectVersion" :clear="false"
<!-- <UniDataSelect :localdata="localdata" :value="selectVersion" :clear="false"
@change="handleChangeVersion">
<template v-slot:content>
<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>
<!-- </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" />
@ -234,77 +234,6 @@
<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">
<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 class="field">-->
<!-- <view class="label">对客销售</view>-->
<!-- <view class="value">{{showTableData.CashPay?$util.fmoney($util.getMoney(showTableData.CashPay),2):'-'}}</view>-->
<!-- </view>-->
<!-- <view class="field">-->
<!-- <view class="label">自营销售</view>-->
<!-- <view class="value">{{typeList && typeList.length>0?$util.fmoney($util.getMoney(typeList[0].value),2) : '-'}}</view>-->
<!-- </view>-->
<!-- <view class="field">-->
<!-- <view class="label" style="padding-left: 20rpx">便利店</view>-->
<!-- <view class="value">{{typeList && typeList.length>0?$util.fmoney($util.getMoney(typeList[2].value),2) : '-'}}</view>-->
<!-- </view>-->
<!-- <view class="field">-->
<!-- <view class="label" style="padding-left: 20rpx">餐饮客房</view>-->
<!-- <view class="value">{{typeList && typeList.length>0?$util.fmoney($util.getMoney(typeList[3].value),2) : '-'}}</view>-->
<!-- </view>-->
<!-- <view class="field">-->
<!-- <view class="label">外租收入</view>-->
<!-- <view class="value">{{typeList && typeList.length>0?$util.fmoney($util.getMoney(typeList[1].value),2) : '-'}}</view>-->
<!-- </view>-->
<!-- <view class="field">-->
<!-- <view class="label" style="padding-left: 20rpx">商铺租赁</view>-->
<!-- <view class="value">{{typeList && typeList.length>0?$util.fmoney($util.getMoney(typeList[4].value),2) : '-'}}</view>-->
<!-- </view>-->
</view>
</view>
</view>
<view class="haveMore" @click="goToRevenueStatic">
@ -762,77 +691,7 @@
<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">
<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 class="field">-->
<!-- <view class="label">对客销售</view>-->
<!-- <view class="value">{{showTableData.CashPay?$util.fmoney($util.getMoney(showTableData.CashPay),2):'-'}}</view>-->
<!-- </view>-->
<!-- <view class="field">-->
<!-- <view class="label">自营销售</view>-->
<!-- <view class="value">{{typeList && typeList.length>0?$util.fmoney($util.getMoney(typeList[0].value),2) : '-'}}</view>-->
<!-- </view>-->
<!-- <view class="field">-->
<!-- <view class="label" style="padding-left: 20rpx">便利店</view>-->
<!-- <view class="value">{{typeList && typeList.length>0?$util.fmoney($util.getMoney(typeList[2].value),2) : '-'}}</view>-->
<!-- </view>-->
<!-- <view class="field">-->
<!-- <view class="label" style="padding-left: 20rpx">餐饮客房</view>-->
<!-- <view class="value">{{typeList && typeList.length>0?$util.fmoney($util.getMoney(typeList[3].value),2) : '-'}}</view>-->
<!-- </view>-->
<!-- <view class="field">-->
<!-- <view class="label">外租收入</view>-->
<!-- <view class="value">{{typeList && typeList.length>0?$util.fmoney($util.getMoney(typeList[1].value),2) : '-'}}</view>-->
<!-- </view>-->
<!-- <view class="field">-->
<!-- <view class="label" style="padding-left: 20rpx">商铺租赁</view>-->
<!-- <view class="value">{{typeList && typeList.length>0?$util.fmoney($util.getMoney(typeList[4].value),2) : '-'}}</view>-->
<!-- </view>-->
</view>
</view>
</view>
<view class="haveMore" @click="goToRevenueStatic">
@ -3475,13 +3334,21 @@
</view>
<!-- 财务报表-->
<view class="funItem" @click="handleMoney">
<!-- <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="projectWarning" class="funItem" @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">
@ -3553,14 +3420,7 @@
</view>
</view>
<view v-if="projectWarning" class="funItem" style="margin-top: 32rpx" @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" style="margin-top: 32rpx" v-if="false" @click="goToBillLading">
<view class="funItemContent">
@ -3984,6 +3844,49 @@
</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">
@ -4336,6 +4239,8 @@ export default {
allselectVersion3Obj: {}, //
selectVersion3Obj: {}, //
smallTab: 1, //
realBoxPageX: 0, // x
realBoxPageY: 0, // y
};
},
watch: {
@ -4728,18 +4633,18 @@ export default {
},
//
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);
}
// 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) {
@ -4991,7 +4896,10 @@ export default {
handleShowHaveNoticeBox() {
this.showHaveNotice = !this.showHaveNotice;
},
changeShowRealBox() {
changeShowRealBox(e) {
console.log('eee', e);
this.realBoxPageX = e.detail.x;
this.realBoxPageY = e.detail.y;
this.showRealBox = !this.showRealBox;
},
handleGoOtherFun(val) {
@ -6804,7 +6712,7 @@ $iphoneHeight: env(safe-area-inset-bottom);
box-shadow: 0rpx 0rpx 40rpx 0rpx rgba(244, 138, 143, 0.21);
z-index: 22;
width: 75vw;
height: 250px;
height: 70vh;
overflow-y: scroll;
white-space: pre-wrap;
@ -11070,5 +10978,52 @@ $iphoneHeight: env(safe-area-inset-bottom);
}
}
}
.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;
}
}
}
}
</style>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -3232,48 +3232,26 @@ export default {
},
{
label: "25年元旦",
type: 0,
HolidayType: 1,
label: "25年国庆",
type: 6,
HolidayType: 8,
curYear: 2025,
compareYear: 2024,
startTime: "2024-12-31",
endTime: "2025-01-02",
lastYearStart: "2023/12/31",
lastYearEnd: "2024/01/02",
startTime: "2025-09-30",
endTime: "2025-10-09",
lastYearStart: "2024/09/30",
lastYearEnd: "2024/10/09",
},
{
label: "25年运",
type: 0,
HolidayType: 2,
label: "25年运",
type: 4,
HolidayType: 6,
curYear: 2025,
compareYear: 2024,
startTime: "2025-01-14",
endTime: "2025-02-22",
lastYearStart: "2024/01/26",
lastYearEnd: "2024/03/05",
},
{
label: "25年清明",
type: 1,
HolidayType: 3,
curYear: 2025,
compareYear: 2024,
startTime: "2025-04-03",
endTime: "2025-04-07",
lastYearStart: "2024/04/03",
lastYearEnd: "2024/04/07",
},
{
label: "25年劳动",
type: 2,
HolidayType: 4,
curYear: 2025,
compareYear: 2024,
startTime: "2025-04-30",
endTime: "2025-05-06",
lastYearStart: "2024/04/30",
lastYearEnd: "2024/05/06",
startTime: "2025-06-30",
endTime: "2025-08-31",
lastYearStart: "2024/06/30",
lastYearEnd: "2024/08/31",
},
{
label: "25年端午",
@ -3287,16 +3265,50 @@ export default {
lastYearEnd: "2024/06/11",
},
{
label: "25年暑运",
type: 4,
HolidayType: 6,
label: "25年劳动",
type: 2,
HolidayType: 4,
curYear: 2025,
compareYear: 2024,
startTime: "2025-06-30",
endTime: "2025-08-31",
lastYearStart: "2024/06/30",
lastYearEnd: "2024/08/31",
startTime: "2025-04-30",
endTime: "2025-05-06",
lastYearStart: "2024/04/30",
lastYearEnd: "2024/05/06",
},
{
label: "25年清明",
type: 1,
HolidayType: 3,
curYear: 2025,
compareYear: 2024,
startTime: "2025-04-03",
endTime: "2025-04-07",
lastYearStart: "2024/04/03",
lastYearEnd: "2024/04/07",
},
{
label: "25年春运",
type: 0,
HolidayType: 2,
curYear: 2025,
compareYear: 2024,
startTime: "2025-01-14",
endTime: "2025-02-22",
lastYearStart: "2024/01/26",
lastYearEnd: "2024/03/05",
},
{
label: "25年元旦",
type: 0,
HolidayType: 1,
curYear: 2025,
compareYear: 2024,
startTime: "2024-12-31",
endTime: "2025-01-02",
lastYearStart: "2023/12/31",
lastYearEnd: "2024/01/02",
},
// {
// label: "25",
// curYear: 2025,
@ -3305,82 +3317,17 @@ export default {
// startTime: "2025-01-26",
// endTime: "2025-03-05",
// },
{
label: "25年国庆",
label: "24年国庆",
type: 6,
HolidayType: 8,
curYear: 2025,
compareYear: 2024,
startTime: "2025-09-30",
endTime: "2025-10-09",
lastYearStart: "2024/09/30",
lastYearEnd: "2024/10/09",
},
{
label: "24年元旦",
type: 0,
HolidayType: 1,
curYear: 2024,
compareYear: 2023,
startTime: "2023-12-31",
endTime: "2024-01-02",
lastYearStart: "2022/12/31",
lastYearEnd: "2022/01/02",
},
{
label: "24年春运",
type: 0,
HolidayType: 2,
curYear: 2024,
compareYear: 2023,
startTime: "2024-01-26",
endTime: "2024-03-05",
lastYearStart: "2023/01/06",
lastYearEnd: "2023/02/16",
},
{
label: "24年清明",
type: 1,
HolidayType: 3,
curYear: 2024,
compareYear: 2023,
startTime: "2024-04-03",
endTime: "2024-04-07",
lastYearStart: "2023/04/04",
lastYearEnd: "2023/04/06",
},
{
label: "24年劳动",
type: 2,
HolidayType: 4,
curYear: 2024,
compareYear: 2023,
startTime: "2024-04-30",
endTime: "2024-05-06",
lastYearStart: "2023/04/28",
lastYearEnd: "2023/05/04",
},
{
label: "24年端午",
type: 3,
HolidayType: 5,
curYear: 2024,
compareYear: 2023,
startTime: "2024-06-07",
endTime: "2024-06-11",
lastYearStart: "2023/06/21",
lastYearEnd: "2023/06/25",
},
{
label: "24年暑运",
type: 4,
HolidayType: 6,
curYear: 2024,
compareYear: 2023,
startTime: "2024-06-30",
endTime: "2024-08-31",
lastYearStart: "2023/06/30",
lastYearEnd: "2023/08/31",
startTime: "2024-09-30",
endTime: "2024-10-08",
lastYearStart: "2023/09/30",
lastYearEnd: "2023/10/08",
},
{
label: "24年中秋",
@ -3394,16 +3341,71 @@ export default {
lastYearEnd: "2023/09/30",
},
{
label: "24年国庆",
type: 6,
HolidayType: 8,
label: "24年暑运",
type: 4,
HolidayType: 6,
curYear: 2024,
compareYear: 2023,
startTime: "2024-09-30",
endTime: "2024-10-08",
lastYearStart: "2023/09/30",
lastYearEnd: "2023/10/08",
startTime: "2024-06-30",
endTime: "2024-08-31",
lastYearStart: "2023/06/30",
lastYearEnd: "2023/08/31",
},
{
label: "24年端午",
type: 3,
HolidayType: 5,
curYear: 2024,
compareYear: 2023,
startTime: "2024-06-07",
endTime: "2024-06-11",
lastYearStart: "2023/06/21",
lastYearEnd: "2023/06/25",
},
{
label: "24年劳动",
type: 2,
HolidayType: 4,
curYear: 2024,
compareYear: 2023,
startTime: "2024-04-30",
endTime: "2024-05-06",
lastYearStart: "2023/04/28",
lastYearEnd: "2023/05/04",
},
{
label: "24年清明",
type: 1,
HolidayType: 3,
curYear: 2024,
compareYear: 2023,
startTime: "2024-04-03",
endTime: "2024-04-07",
lastYearStart: "2023/04/04",
lastYearEnd: "2023/04/06",
},
{
label: "24年春运",
type: 0,
HolidayType: 2,
curYear: 2024,
compareYear: 2023,
startTime: "2024-01-26",
endTime: "2024-03-05",
lastYearStart: "2023/01/06",
lastYearEnd: "2023/02/16",
},
{
label: "24年元旦",
type: 0,
HolidayType: 1,
curYear: 2024,
compareYear: 2023,
startTime: "2023-12-31",
endTime: "2024-01-02",
lastYearStart: "2022/12/31",
lastYearEnd: "2022/01/02",
}
],
currentFestival: {}, //
currentIndex: 0, //

View File

@ -27,7 +27,7 @@
:src="selectTab === 2 ? 'https://eshangtech.com/ShopICO/ahyd-BID/newIndex3/activeSecondTab.png' : 'https://eshangtech.com/ShopICO/ahyd-BID/newIndex3/secondTab.png'" />
</div>
<div class="timeSelect">
<span class="moreText" @click="handleShowPopup">更多筛选</span>
<span class="moreText" style="font-size: 30rpx;" @click="handleShowPopup">更多筛选</span>
<!-- <uni-datetime-picker />-->
</div>
@ -91,7 +91,7 @@
}${$util.getMoney(topDetail.RevenueINC.increaseData / 10000)}` : '-' }}</span>
</span>
<span class="staticTimeText" v-if="currentScroll === 'item0'">
{{ `统计口径:${selectStart}${selectEnd}累计` }}
{{ `统计口径:${selectStart}${selectEnd}累计` }}
</span>
</view>
@ -354,7 +354,7 @@
<!-- </view>-->
</view>
</view>
<view class="amountItem" style="margin-top: 56rpx">
<view class="amountItem" style="margin-top: 24rpx">
<view class="itemTop">
<view class="itemTopLeft">
<image class="leftIcon"
@ -393,7 +393,7 @@
<!-- </view>-->
</view>
</view>
<view class="amountItem" @click="handleGoMerchantAccount" style="margin-top: 56rpx">
<view class="amountItem" @click="handleGoMerchantAccount" style="margin-top: 24rpx">
<view class="itemTop">
<view class="itemTopLeft">
<image class="leftIcon"
@ -502,7 +502,7 @@
<!-- </view>-->
</view>
</view>
<view class="amountItem" style="margin-top: 56rpx">
<view class="amountItem" style="margin-top: 24rpx">
<view class="itemTop">
<view class="itemTopLeft">
<image class="leftIcon"
@ -540,7 +540,7 @@
<!-- </view>-->
</view>
</view>
<view class="amountItem" style="margin-top: 56rpx">
<view class="amountItem" style="margin-top: 24rpx">
<view class="itemTop">
<view class="itemTopLeft">
<image class="leftIcon"
@ -595,7 +595,7 @@
<span class="contentTitle">商家营收</span>
<span class="contentUnit">/万元</span>
</view>
<view class="revenueAmount" style="margin-top: 48rpx">
<view class="revenueAmount" style="margin-top: 24rpx">
<view class="amountItem">
<view class="itemTop">
<view class="itemTopLeft">
@ -629,7 +629,7 @@
<!-- </view>-->
</view>
</view>
<view class="amountItem" style="margin-top: 56rpx">
<view class="amountItem" style="margin-top: 24rpx">
<view class="itemTop">
<view class="itemTopLeft">
<image class="leftIcon"
@ -662,7 +662,7 @@
<!-- </view>-->
</view>
</view>
<view class="amountItem" style="margin-top: 56rpx">
<view class="amountItem" style="margin-top: 24rpx">
<view class="itemTop">
<view class="itemTopLeft">
<image class="leftIcon"
@ -695,7 +695,7 @@
<!-- </view>-->
</view>
</view>
<view class="amountItem" style="margin-top: 56rpx">
<view class="amountItem" style="margin-top: 24rpx">
<view class="itemTop">
<view class="itemTopLeft">
<image class="leftIcon"
@ -741,7 +741,8 @@
<uniPopup class="popupBox" type="bottom" :round="true" :showIndex="1" :show="showPop" @hidePopup="hidePopup">
<uniPopup class="popupBox" type="bottom" :round="true" :showIndex="1" :show="showPop" @hidePopup="hidePopup"
:safe-area="true">
<view class="popupContentBox">
<view class="label">统计时间</view>
<view class="popupTitleBox">
@ -754,8 +755,8 @@
<span class="unit" style="margin: 0 4px">-</span>
<view class="timeSelectBox">
<picker mode="date" fields="month" class="screen-unit" :start="selectStart" :end="endTime"
@change="handleChangeSelectEnd($event)">
<picker mode="date" fields="month" class="screen-unit" :value="selectEnd" :start="selectStart"
:end="endSelectTime" @change="handleChangeSelectEnd($event)">
<text class="time">{{ selectEnd || '结束时间' }}</text>
</picker>
</view>
@ -832,7 +833,8 @@ export default {
let currentMonth = selectDate.getMonth() + 1
this.currentMonth = currentMonth
this.curYear = selectYear
this.defaultStart = `${selectYear}-01`
// this.defaultStart = `${selectYear}-01`
this.defaultStart = `2024-01`
this.selectStart = `${selectYear}-01`
const nowDate = new Date()
@ -859,7 +861,6 @@ export default {
}
this.selectList.unshift('累计')
}
console.log('this.selectList', this.selectList)
await this.handleGetRevenueData()
await this.handleGetTableData()
uni.hideLoading()
@ -876,6 +877,14 @@ export default {
//
async handleSearchTime() {
if (this.selectStart && this.selectEnd) {
this.selectList = []
const date = new Date(this.selectEnd)
let monthNumber = date.getMonth() + 1
for (let i = 1; i <= monthNumber; i++) {
this.selectList.push(`${i}`)
}
this.selectList.unshift('累计')
this.hidePopup()
this.currentScroll = 'item0'
uni.showLoading({
@ -890,8 +899,15 @@ export default {
async handleChangeSelectStart(e) {
console.log('e', e)
this.selectStart = e.detail.value
const date = new Date(this.selectEnd)
let m = date.getMonth() + 1
const date = new Date(e.detail.value)
let y = date.getFullYear()
const currentDate = new Date()
const currentYear = currentDate.getFullYear()
let currentMonth = currentDate.getMonth() + 1
if (currentMonth < 10) {
currentMonth = '0' + currentMonth
}
// let m = date.getMonth() + 1
// if (this.selectStart && this.selectEnd){
// uni.showLoading({
// title:''
@ -899,6 +915,10 @@ export default {
// this.handleGetPageData(m)
// uni.hideLoading()
// }
//
this.endSelectTime = `${y}-${currentYear === y ? currentMonth : 12}`
this.selectEnd = `${y}-${currentYear === y ? currentMonth : 12}`
this.curYear = y
},
//
async handleChangeSelectEnd(e) {
@ -1321,13 +1341,13 @@ export default {
align-items: center;
.moreText {
font-size: 16px;
font-size: 24rpx;
font-weight: bold;
color: #fff;
}
.time {
font-size: 14px;
font-size: 24rpx;
color: #fff;
}
}
@ -1452,9 +1472,9 @@ export default {
.contentTitle {
font-family: PingFangSC, PingFang SC;
font-weight: 600;
font-size: 32rpx;
font-size: 30rpx;
color: #160002;
line-height: 44rpx;
line-height: 36rpx;
text-align: left;
font-style: normal;
margin-right: 4rpx;
@ -1474,11 +1494,12 @@ export default {
.sumBox {
width: 100%;
box-sizing: border-box;
padding: 32rpx 24rpx;
padding: 24rpx 24rpx;
background: #fff;
border-radius: 12rpx;
margin-top: 32rpx;
margin-top: 24rpx;
display: flex;
align-items: center;
justify-content: space-between;
.left {
@ -1505,27 +1526,27 @@ export default {
align-items: flex-end;
.sumMoney {
font-size: 36rpx;
font-size: 30rpx;
font-family: DINAlternate-Bold, DINAlternate;
font-weight: bold;
color: #160002;
line-height: 44rpx;
line-height: 36rpx;
}
.sumUnit {
margin-top: 8rpx;
font-size: 28rpx;
font-size: 24rpx;
font-family: PingFangSC, PingFang SC;
font-weight: 400;
color: #160002;
line-height: 40rpx;
line-height: 32rpx;
.unit {
font-size: 28rpx;
font-size: 24rpx;
font-family: PingFangSC, PingFang SC;
font-weight: 400;
color: #A69E9F;
line-height: 40rpx;
line-height: 32rpx;
margin-left: 4rpx;
}
}
@ -1553,11 +1574,11 @@ export default {
}
.itemTitle {
font-size: 32rpx;
font-size: 30rpx;
font-family: PingFangSC, PingFang SC;
font-weight: 600;
color: #160002;
line-height: 44rpx;
line-height: 36rpx;
}
.itemUnit {
@ -1571,11 +1592,11 @@ export default {
}
.itemTopRight {
font-size: 36rpx;
font-size: 30rpx;
font-family: DINAlternate-Bold, DINAlternate;
font-weight: bold;
color: #160002;
line-height: 44rpx;
line-height: 36rpx;
}
}
@ -1587,20 +1608,20 @@ export default {
display: inline-block;
.bottomItemTitle {
font-size: 28rpx;
font-size: 24rpx;
font-family: PingFangSC, PingFang SC;
font-weight: 400;
color: #A69E9F;
line-height: 40rpx;
margin-bottom: 4rpx;
line-height: 30rpx;
margin-bottom: 8rpx;
}
.bottomItemValue {
font-size: 32rpx;
font-size: 28rpx;
font-family: PingFangSC, PingFang SC;
font-weight: 400;
color: #160002;
line-height: 40rpx;
line-height: 30rpx;
}
}
}
@ -1720,7 +1741,7 @@ export default {
align-items: center;
.moreText {
font-size: 28rpx;
font-size: 24rpx;
font-family: PingFangSC, PingFang SC;
font-weight: 400;
color: #2C99FE;
@ -1743,14 +1764,14 @@ export default {
.dataItem {
display: flex;
flex-direction: column;
margin-top: 32rpx;
margin-top: 24rpx;
.dataBigValue {
font-family: DINAlternate, DINAlternate;
font-weight: bold;
font-size: 50rpx;
font-size: 30rpx;
color: #E83944;
line-height: 64rpx;
line-height: 36rpx;
text-align: left;
font-style: normal;
}
@ -1768,9 +1789,9 @@ export default {
.dataValue {
font-family: DINAlternate, DINAlternate;
font-weight: bold;
font-size: 36rpx;
font-size: 28rpx;
color: #160002;
line-height: 64rpx;
line-height: 36rpx;
text-align: left;
font-style: normal;
}
@ -1780,7 +1801,7 @@ export default {
.addBox {
display: flex;
align-items: center;
// justify-content: space-between;
justify-content: space-between;
font-family: PingFangSC, PingFang SC;
font-weight: 400;
font-size: 24rpx;
@ -1795,14 +1816,14 @@ export default {
font-weight: bold;
font-size: 28rpx;
color: #E83944;
line-height: 32rpx;
line-height: 36rpx;
text-align: left;
font-style: normal;
margin-left: 8rpx;
}
.staticTimeText {
white-space: nowrap;
font-weight: 400;
font-size: 24rpx;
color: #9A9A9A;
@ -1813,7 +1834,7 @@ export default {
width: 100%;
height: 2rpx;
background: #F5F4F4;
margin: 40rpx 0;
margin: 24rpx 0;
}
.tableBox {

View File

@ -3,7 +3,8 @@
<view class="bigBg">
<view class="top" :style="{ height: (menu.bottom + 18) + 'px' }">
<view class="header" :style="{ height: menu.height + menu.top + 'px', top: 0 + 'px' }">
<image :style="{bottom: ((statusBarHeight-24)/4)+'px' }" class="backArrow" src="https://eshangtech.com/ShopICO/ahyd-BID/examine/leftArrowWhite.svg" @click="handleBack"/>
<image :style="{ bottom: ((statusBarHeight - 24) / 4) + 'px' }" class="backArrow"
src="https://eshangtech.com/ShopICO/ahyd-BID/examine/leftArrowWhite.svg" @click="handleBack" />
</view>
</view>
<view class="contentPage">
@ -22,7 +23,8 @@
</view>
</view>
</view>
<view v-if="pageType===2" style="display: flex;justify-content: flex-end;box-sizing: border-box;padding-right: 16px">
<view v-if="pageType === 2"
style="display: flex;justify-content: flex-end;box-sizing: border-box;padding-right: 16px">
{{ selectStart || defaultStart }}-{{ selectEnd || defaultEnd }}
</view>
<view class="revenueContent">
@ -30,9 +32,12 @@
<!-- <view class="allBox">-->
<!-- <view :class="currentScroll==='all'?'scrollItem selectItem':'scrollItem'" @click="handleChangeTime('all')">累计</view>-->
<!-- </view>-->
<scroll-view scroll-x="true" class="navList" :scrollIntoView="currentScroll" :scroll-with-animation="true">
<scroll-view scroll-x="true" class="navList" :scrollIntoView="currentScroll"
:scroll-with-animation="true">
<view :style="{ width: `${60 * scrollList.length + 40}px`, height: '100%' }">
<view :class="currentScroll===`item${index+1}`?'scrollItem selectItem':'scrollItem'" v-for="(item,index) in scrollList" :key="index" :id="`item${index+1}`" @click="handleChangeTime(index+1)">{{item}}</view>
<view :class="currentScroll === `item${index + 1}` ? 'scrollItem selectItem' : 'scrollItem'"
v-for="(item, index) in scrollList" :key="index" :id="`item${index + 1}`"
@click="handleChangeTime(index + 1)">{{ item }}</view>
</view>
</scroll-view>
</view>
@ -47,61 +52,86 @@
<view class="sortBox">
<view class="sortItem" @click="handleChangeSortName(1)">
<text class="sortText">{{ `${Number(curYear.toString().slice(2))}${type === 1 ? '销售' : type === 2 ? '收入' : type === 3 ? '车流' : ''}` }}</text>
<text class="sortText">{{ `${Number(curYear.toString().slice(2))}${type === 1 ? '销售' : type === 2 ?
'收入' : type === 3 ? '车流' : ''}` }}</text>
<view class="sortIconBox">
<image class="upIcon" :style="{transform: sortName===1?sortType===1?``:`rotate(180deg)`:``}" :src="sortType===1?'https://eshangtech.com/ShopICO/ahyd-BID/car/upDesc.svg':sortName===1?'https://eshangtech.com/ShopICO/ahyd-BID/car/downDesc.svg':'https://eshangtech.com/ShopICO/ahyd-BID/car/upDesc.svg'"/>
<image class="bottomIcon" :style="{transform: sortName===1?sortType===1?``:`rotate(180deg)`:'rotate(-180deg)'}":src="sortType===1 && sortName===1?'https://eshangtech.com/ShopICO/ahyd-BID/car/downDesc.svg':'https://eshangtech.com/ShopICO/ahyd-BID/car/upDesc.svg'"/>
<image class="upIcon" :style="{ transform: sortName === 1 ? sortType === 1 ? `` : `rotate(180deg)` : `` }"
:src="sortType === 1 ? 'https://eshangtech.com/ShopICO/ahyd-BID/car/upDesc.svg' : sortName === 1 ? 'https://eshangtech.com/ShopICO/ahyd-BID/car/downDesc.svg' : 'https://eshangtech.com/ShopICO/ahyd-BID/car/upDesc.svg'" />
<image class="bottomIcon"
:style="{ transform: sortName === 1 ? sortType === 1 ? `` : `rotate(180deg)` : 'rotate(-180deg)' }"
:src="sortType === 1 && sortName === 1 ? 'https://eshangtech.com/ShopICO/ahyd-BID/car/downDesc.svg' : 'https://eshangtech.com/ShopICO/ahyd-BID/car/upDesc.svg'" />
</view>
</view>
<view class="sortItem" @click="handleChangeSortName(2)">
<text class="sortText">{{ `${Number(curYear.toString().slice(2)) - 1}${type === 1 ? '销售' : type === 2 ? '收入' : type === 3 ? '车流' : ''}` }}</text>
<text class="sortText">{{ `${Number(curYear.toString().slice(2)) - 1}${type === 1 ? '销售' : type === 2
? '收入' : type === 3 ? '车流' : ''}` }}</text>
<view class="sortIconBox">
<image class="upIcon" :style="{transform: sortName===2?sortType===1?``:`rotate(180deg)`:``}" :src="sortType===1?'https://eshangtech.com/ShopICO/ahyd-BID/car/upDesc.svg':sortName===2?'https://eshangtech.com/ShopICO/ahyd-BID/car/downDesc.svg':'https://eshangtech.com/ShopICO/ahyd-BID/car/upDesc.svg'"/>
<image class="bottomIcon" :style="{transform: sortName===2?sortType===1?``:`rotate(180deg)`:'rotate(-180deg)'}":src="sortType===1 && sortName===2?'https://eshangtech.com/ShopICO/ahyd-BID/car/downDesc.svg':'https://eshangtech.com/ShopICO/ahyd-BID/car/upDesc.svg'"/>
<image class="upIcon" :style="{ transform: sortName === 2 ? sortType === 1 ? `` : `rotate(180deg)` : `` }"
:src="sortType === 1 ? 'https://eshangtech.com/ShopICO/ahyd-BID/car/upDesc.svg' : sortName === 2 ? 'https://eshangtech.com/ShopICO/ahyd-BID/car/downDesc.svg' : 'https://eshangtech.com/ShopICO/ahyd-BID/car/upDesc.svg'" />
<image class="bottomIcon"
:style="{ transform: sortName === 2 ? sortType === 1 ? `` : `rotate(180deg)` : 'rotate(-180deg)' }"
:src="sortType === 1 && sortName === 2 ? 'https://eshangtech.com/ShopICO/ahyd-BID/car/downDesc.svg' : 'https://eshangtech.com/ShopICO/ahyd-BID/car/upDesc.svg'" />
</view>
</view>
<view class="sortItem" @click="handleChangeSortName(3)">
<text class="sortText">{{ `${type === 1 ? '销售' : type === 2 ? '收入' : type === 3 ? '车流' : ''}增长` }}</text>
<text class="sortText">{{ `${type === 1 ? '销售' : type === 2 ? '收入' : type === 3 ? '车流' : ''}增长`
}}</text>
<view class="sortIconBox">
<image class="upIcon" :style="{transform: sortName===3?sortType===1?``:`rotate(180deg)`:``}" :src="sortType===1?'https://eshangtech.com/ShopICO/ahyd-BID/car/upDesc.svg':sortName===3?'https://eshangtech.com/ShopICO/ahyd-BID/car/downDesc.svg':'https://eshangtech.com/ShopICO/ahyd-BID/car/upDesc.svg'"/>
<image class="bottomIcon" :style="{transform: sortName===3?sortType===1?``:`rotate(180deg)`:'rotate(-180deg)'}":src="sortType===1 && sortName===3?'https://eshangtech.com/ShopICO/ahyd-BID/car/downDesc.svg':'https://eshangtech.com/ShopICO/ahyd-BID/car/upDesc.svg'"/>
<image class="upIcon" :style="{ transform: sortName === 3 ? sortType === 1 ? `` : `rotate(180deg)` : `` }"
:src="sortType === 1 ? 'https://eshangtech.com/ShopICO/ahyd-BID/car/upDesc.svg' : sortName === 3 ? 'https://eshangtech.com/ShopICO/ahyd-BID/car/downDesc.svg' : 'https://eshangtech.com/ShopICO/ahyd-BID/car/upDesc.svg'" />
<image class="bottomIcon"
:style="{ transform: sortName === 3 ? sortType === 1 ? `` : `rotate(180deg)` : 'rotate(-180deg)' }"
:src="sortType === 1 && sortName === 3 ? 'https://eshangtech.com/ShopICO/ahyd-BID/car/downDesc.svg' : 'https://eshangtech.com/ShopICO/ahyd-BID/car/upDesc.svg'" />
</view>
</view>
<view class="sortItem" @click="handleChangeSortName(4)">
<text class="sortText">{{ `${type === 1 ? '销售' : type === 2 ? '收入' : type === 3 ? '车流' : ''}增幅` }}</text>
<text class="sortText">{{ `${type === 1 ? '销售' : type === 2 ? '收入' : type === 3 ? '车流' : ''}增幅`
}}</text>
<view class="sortIconBox">
<image class="upIcon" :style="{transform: sortName===4?sortType===1?``:`rotate(180deg)`:``}" :src="sortType===1?'https://eshangtech.com/ShopICO/ahyd-BID/car/upDesc.svg':sortName===4?'https://eshangtech.com/ShopICO/ahyd-BID/car/downDesc.svg':'https://eshangtech.com/ShopICO/ahyd-BID/car/upDesc.svg'"/>
<image class="bottomIcon" :style="{transform: sortName===4?sortType===1?``:`rotate(180deg)`:'rotate(-180deg)'}":src="sortType===1 && sortName===4?'https://eshangtech.com/ShopICO/ahyd-BID/car/downDesc.svg':'https://eshangtech.com/ShopICO/ahyd-BID/car/upDesc.svg'"/>
<image class="upIcon" :style="{ transform: sortName === 4 ? sortType === 1 ? `` : `rotate(180deg)` : `` }"
:src="sortType === 1 ? 'https://eshangtech.com/ShopICO/ahyd-BID/car/upDesc.svg' : sortName === 4 ? 'https://eshangtech.com/ShopICO/ahyd-BID/car/downDesc.svg' : 'https://eshangtech.com/ShopICO/ahyd-BID/car/upDesc.svg'" />
<image class="bottomIcon"
:style="{ transform: sortName === 4 ? sortType === 1 ? `` : `rotate(180deg)` : 'rotate(-180deg)' }"
:src="sortType === 1 && sortName === 4 ? 'https://eshangtech.com/ShopICO/ahyd-BID/car/downDesc.svg' : 'https://eshangtech.com/ShopICO/ahyd-BID/car/upDesc.svg'" />
</view>
</view>
</view>
<view class="modalDetail">
<scroll-view :scroll-y="true" class="typeFirst" :style="{height: pageType===1?'calc(100vh - 270px)':'calc(100vh - 240px)'}">
<scroll-view :scroll-y="true" class="typeFirst"
:style="{ height: pageType === 1 ? 'calc(100vh - 270px)' : 'calc(100vh - 240px)' }">
<view class="listItem" v-for="(item, index) in dataList" :key="index">
<view class="itemLeft">
<image class="bg" src="https://eshangtech.com/ShopICO/ahyd-BID/car/itemLeftBg.svg" />
<view class="nameBox">
<text class="serviceName" :style="{fontSize:item.ServerpartName.split('服务区')[0].length>4?'26rpx':'30rpx'}">{{item.ServerpartName ? item.ServerpartName.split('服务区')[0]:''}}</text>
<text class="serviceName"
:style="{ fontSize: item.ServerpartName.split('服务区')[0].length > 4 ? '26rpx' : '30rpx' }">{{ item.ServerpartName
? item.ServerpartName.split('服务区')[0]:''}}</text>
<text class="serviceLabel">服务区</text>
</view>
</view>
<view class="contentRight">
<view class="rightTop">
<view class="rightTopLeft">
<view class="indexBox" :style="{backgroundImage:`url(${index===0?'https://eshangtech.com/ShopICO/ahyd-BID/car/1stBg.svg':index===1?'https://eshangtech.com/ShopICO/ahyd-BID/car/2stBg.svg':index===2?'https://eshangtech.com/ShopICO/ahyd-BID/car/3stBg.svg':'https://eshangtech.com/ShopICO/ahyd-BID/car/4stBg.svg'})`}">{{index+1}}</view>
<view class="indexBox"
:style="{ backgroundImage: `url(${index === 0 ? 'https://eshangtech.com/ShopICO/ahyd-BID/car/1stBg.svg' : index === 1 ? 'https://eshangtech.com/ShopICO/ahyd-BID/car/2stBg.svg' : index === 2 ? 'https://eshangtech.com/ShopICO/ahyd-BID/car/3stBg.svg' : 'https://eshangtech.com/ShopICO/ahyd-BID/car/4stBg.svg'})` }">
{{ index + 1 }}</view>
</view>
<view class="rightTopRight">
<text class="entryRateLabel">增幅</text>
<view class="entryRateValue">
<span :style="{color: type===1?item.RevenueINC.increaseRate>0?'#E83944':'#0E9976': type===2?item.AccountINC.increaseRate>0?'#E83944':'#0E9976': type===3?item.BayonetINC.increaseRate>0?'#E83944':'#0E9976':'-'}">
{{type===1?item.RevenueINC.increaseRate>0?'+':'': type===2?item.AccountINC.increaseRate>0?'+':'': type===3?item.BayonetINC.increaseRate>0?'+':'':'-'}}
<span
:style="{ color: type === 1 ? item.RevenueINC.increaseRate > 0 ? '#E83944' : '#0E9976' : type === 2 ? item.AccountINC.increaseRate > 0 ? '#E83944' : '#0E9976' : type === 3 ? item.BayonetINC.increaseRate > 0 ? '#E83944' : '#0E9976' : '-' }">
{{ type === 1 ? item.RevenueINC.increaseRate > 0 ? '+' : '' :
type === 2 ? item.AccountINC.increaseRate > 0 ? '+' : '' :
type===3?item.BayonetINC.increaseRate>0?'+':'':'-'}}
</span>
<span :style="{color: type===1?item.RevenueINC.increaseRate>0?'#E83944':'#0E9976': type===2?item.AccountINC.increaseRate>0?'#E83944':'#0E9976': type===3?item.BayonetINC.increaseRate>0?'#E83944':'#0E9976':'-'}">
<span
:style="{ color: type === 1 ? item.RevenueINC.increaseRate > 0 ? '#E83944' : '#0E9976' : type === 2 ? item.AccountINC.increaseRate > 0 ? '#E83944' : '#0E9976' : type === 3 ? item.BayonetINC.increaseRate > 0 ? '#E83944' : '#0E9976' : '-' }">
{{ type === 1 ? item.RevenueINC.increaseRate ? item.RevenueINC.increaseRate : '-' :
type === 2 ? item.AccountINC.increaseRate ? item.AccountINC.increaseRate : '-' :
type === 3 ? item.BayonetINC.increaseRate ? item.BayonetINC.increaseRate : '-' : '-' }}%
@ -113,25 +143,33 @@
<view class="rightBottomItem">
<text class="itemLabel">{{ curYear }}</text>
<text class="itemValue">
{{type===1?item.RevenueINC.curYearData?$util.getMoney(item.RevenueINC.curYearData / 10000):'0.00':
type===2?item.AccountINC.curYearData?$util.getMoney(item.AccountINC.curYearData / 10000):'0.00':
type===3?item.BayonetINC.curYearData?$util.getMoney(item.BayonetINC.curYearData / 10000):'0.00':'-'}}
{{ type === 1 ? item.RevenueINC.curYearData ? $util.getMoney(item.RevenueINC.curYearData /
10000) : '0.00' :
type === 2 ? item.AccountINC.curYearData ? $util.getMoney(item.AccountINC.curYearData /
10000) : '0.00' :
type === 3 ? item.BayonetINC.curYearData ? $util.getMoney(item.BayonetINC.curYearData /
10000):'0.00':'-'}}
</text>
</view>
<view class="rightBottomItem">
<text class="itemLabel">{{ curYear - 1 }}</text>
<text class="itemValue">
{{type===1?item.RevenueINC.lYearData?$util.getMoney(item.RevenueINC.lYearData / 10000):'0.00':
{{ type === 1 ? item.RevenueINC.lYearData ? $util.getMoney(item.RevenueINC.lYearData /
10000) : '0.00' :
type === 2 ? item.AccountINC.lYearData ? $util.getMoney(item.AccountINC.lYearData / 10000) : '0.00' :
type===3?item.BayonetINC.lYearData?$util.getMoney(item.BayonetINC.lYearData / 10000):'0.00':'-'}}
type === 3 ? item.BayonetINC.lYearData ? $util.getMoney(item.BayonetINC.lYearData /
10000):'0.00':'-'}}
</text>
</view>
<view class="rightBottomItem">
<text class="itemLabel">增长</text>
<text class="itemValue">
{{type===1?item.RevenueINC.increaseData?$util.getMoney(item.RevenueINC.increaseData / 10000):'0.00':
type===2?item.AccountINC.increaseData?$util.getMoney(item.AccountINC.increaseData / 10000):'0.00':
type===3?item.BayonetINC.increaseData?$util.getMoney(item.BayonetINC.increaseData / 10000):'0.00':'-'}}
{{ type === 1 ? item.RevenueINC.increaseData ? $util.getMoney(item.RevenueINC.increaseData /
10000) : '0.00' :
type === 2 ? item.AccountINC.increaseData ? $util.getMoney(item.AccountINC.increaseData /
10000) : '0.00' :
type === 3 ? item.BayonetINC.increaseData ? $util.getMoney(item.BayonetINC.increaseData /
10000):'0.00':'-'}}
</text>
</view>
</view>
@ -139,10 +177,12 @@
<view class="otherCarBox" v-if="type !== 3">
<view class="left">
<span class="carLabel">车流增幅</span>
<span :style="{color: item.BayonetINC.increaseRate>1000?'':item.BayonetINC.increaseRate>0?'#E83944':item.BayonetINC.increaseRate<0?'#0E9976':''}">
<span
:style="{ color: item.BayonetINC.increaseRate > 1000 ? '' : item.BayonetINC.increaseRate > 0 ? '#E83944' : item.BayonetINC.increaseRate < 0 ? '#0E9976' : '' }">
{{ item.BayonetINC.increaseRate > 1000 ? '' : item.BayonetINC.increaseRate > 0 ? '+' : '' }}
</span>
<span :style="{color: item.BayonetINC.increaseRate>1000?'':item.BayonetINC.increaseRate>0?'#E83944':item.BayonetINC.increaseRate<0?'#0E9976':''}">
<span
:style="{ color: item.BayonetINC.increaseRate > 1000 ? '' : item.BayonetINC.increaseRate > 0 ? '#E83944' : item.BayonetINC.increaseRate < 0 ? '#0E9976' : '' }">
{{ item.BayonetINC.increaseRate ? item.BayonetINC.increaseRate > 1000 ? '-' : item.BayonetINC.increaseRate : '-' }}%
</span>
</view>
@ -214,7 +254,7 @@ export default {
this.useInfo = JSON.parse(JSON.stringify(userInfo))
this.lastDay = uni.getStorageSync('lastDay')
const nowDate = new Date(this.lastDay)
const nowDate = new Date(query.selectEnd)
let nowYear = nowDate.getFullYear()
let nowMonth = nowDate.getMonth() + 1
@ -604,15 +644,18 @@ export default {
.main {
width: 100%;
background: #fff;
.bigBg {
width: 100%;
height: 100%;
background-image: url("https://eshangtech.com/ShopICO/ahyd-BID/newIndex3/revenueBackground.png");
background-repeat: no-repeat;
background-size: 100% 640rpx;
.top {
width: 100%;
height: 324rpx;
//background-image: url("https://eshangtech.com/ShopICO/ahyd-BID/newIndex3/rankBg.png");
//background-repeat: no-repeat;
//background-position: 0 0;
@ -629,6 +672,7 @@ export default {
display: flex;
align-items: center;
z-index: 2;
.backArrow {
width: 24px;
height: 24px;
@ -637,9 +681,11 @@ export default {
}
}
}
.contentPage {
width: 100%;
box-sizing: border-box;
//transform: translateY(-120rpx);
.revenueDetail {
width: 100%;
@ -647,6 +693,7 @@ export default {
border-radius: 16rpx;
box-sizing: border-box;
padding: 2rpx;
.revenueDetailTitleBox {
width: 100%;
height: 90rpx;
@ -662,6 +709,7 @@ export default {
.left {
display: flex;
align-items: center;
.contentMonth {
font-family: PingFangSC, PingFang SC;
font-weight: 400;
@ -675,6 +723,7 @@ export default {
margin-right: 8rpx;
background: #F2792E;
}
.leftText {
font-family: DingTalk, DingTalk;
font-weight: 600;
@ -684,10 +733,12 @@ export default {
text-align: left;
font-style: normal;
}
.detailLogo {
width: 178rpx;
height: 32rpx;
}
.modalUnit {
font-size: 24rpx;
font-family: PingFangSC, PingFang SC;
@ -699,6 +750,7 @@ export default {
top: 30rpx;
}
}
.right {
.typeChangeBox {
display: flex;
@ -707,6 +759,7 @@ export default {
border-radius: 6rpx;
box-sizing: border-box;
padding: 4rpx;
.normal {
font-size: 24rpx;
font-family: PingFangSC, PingFang SC;
@ -715,6 +768,7 @@ export default {
line-height: 36rpx;
padding: 6rpx 16rpx;
}
.select {
font-size: 24rpx;
font-family: PingFangSC, PingFang SC;
@ -727,19 +781,23 @@ export default {
}
}
}
.revenueContent {
width: 100%;
box-sizing: border-box;
padding: 0 32rpx 24rpx;
.navBigList {
width: 100%;
height: 40rpx;
display: flex;
align-items: center;
margin-top: 32rpx;
.allBox {
width: 70rpx;
height: 100%;
.scrollItem {
font-size: 28rpx;
font-family: PingFangSC, PingFang SC;
@ -747,6 +805,7 @@ export default {
color: #A69E9F;
line-height: 40rpx;
}
.selectItem {
font-size: 28rpx;
font-family: PingFangSC, PingFang SC;
@ -756,9 +815,11 @@ export default {
}
}
.navList {
width: 100%;
height: 60rpx;
.scrollItem {
width: 60px;
font-size: 28rpx;
@ -769,6 +830,7 @@ export default {
display: inline-block;
text-align: center;
}
.selectItem {
display: inline-block;
width: 60px;
@ -780,6 +842,7 @@ export default {
position: relative;
line-height: 40rpx;
}
.selectItem:after {
content: '';
display: inline-block;
@ -792,6 +855,7 @@ export default {
}
}
}
.dateText {
font-size: 24rpx;
font-family: PingFangSC, PingFang SC;
@ -803,6 +867,7 @@ export default {
.modalBox {
margin-top: 40rpx;
.modalTitleBox {
width: 100%;
box-sizing: border-box;
@ -811,9 +876,11 @@ export default {
display: flex;
align-items: center;
justify-content: space-between;
.modalTitleItem {
display: flex;
align-items: center;
.modalIndex {
width: 12rpx;
height: 12rpx;
@ -821,6 +888,7 @@ export default {
border-radius: 50%;
margin-right: 12rpx;
}
.modalText {
font-size: 24rpx;
font-family: PingFangSC, PingFang SC;
@ -829,6 +897,7 @@ export default {
line-height: 40rpx;
margin-right: 4rpx;
}
.modalUnit {
font-size: 24rpx;
font-family: PingFangSC, PingFang SC;
@ -837,9 +906,11 @@ export default {
line-height: 36rpx;
}
}
.moreBox {
display: flex;
align-items: center;
.moreText {
font-size: 24rpx;
font-family: PingFangSC, PingFang SC;
@ -847,25 +918,30 @@ export default {
color: #9A9A9A;
line-height: 36rpx;
}
.moreIcon {
width: 24rpx;
height: 36rpx;
margin-left: 4rpx;
}
}
.modalTitleItem1 {
font-size: 24rpx;
text-align: center;
}
}
.sortBox {
display: flex;
align-items: center;
justify-content: space-between;
margin-bottom: 16rpx;
.sortItem {
display: flex;
align-items: center;
.sortText {
font-size: 24rpx;
font-family: PingFangSC, PingFang SC;
@ -873,15 +949,18 @@ export default {
color: #9A9A9A;
line-height: 36rpx;
}
.sortIconBox {
display: flex;
flex-direction: column;
margin-left: 16rpx;
.upIcon {
width: 16rpx;
height: 12rpx;
margin-bottom: 4rpx;
}
.bottomIcon {
width: 16rpx;
height: 12rpx;
@ -893,10 +972,12 @@ export default {
.modalDetail {
width: 100%;
box-sizing: border-box;
.modalDetailTitle {
display: flex;
align-items: center;
padding: 8rpx 0;
.titleItem {
font-size: 24rpx;
font-family: PingFangSC, PingFang SC;
@ -906,12 +987,14 @@ export default {
text-align: center;
}
}
.typeFirst {
.row {
margin-top: 32rpx;
display: flex;
align-items: center;
margin-top: 32rpx;
.valueItem {
font-size: 24rpx;
font-family: PingFangSC, PingFang SC;
@ -921,10 +1004,12 @@ export default {
text-align: center;
text-indent: 8rpx;
}
.bigFather {
position: relative;
font-weight: 600;
}
.bigFather:before {
position: absolute;
top: 50%;
@ -937,10 +1022,12 @@ export default {
border-radius: 50%;
background: #DB6465;
}
.father {
position: relative;
font-weight: 600;
}
.father:before {
position: absolute;
top: 50%;
@ -957,6 +1044,7 @@ export default {
.son {
position: relative;
}
.son:before {
position: absolute;
top: 50%;
@ -969,6 +1057,7 @@ export default {
border-radius: 50%;
background: orangered;
}
.compareItem {
font-size: 24rpx;
font-family: DINAlternate, DINAlternate;
@ -976,6 +1065,7 @@ export default {
line-height: 40rpx;
text-align: center;
}
.addItem {
font-size: 24rpx;
font-family: DINAlternate, DINAlternate;
@ -984,6 +1074,7 @@ export default {
text-align: center;
}
}
.listItem {
width: 100%;
padding: 24rpx;
@ -992,6 +1083,7 @@ export default {
background: #F7F7F7;
margin-bottom: 24rpx;
display: flex;
.itemLeft {
width: 160rpx;
height: 160rpx;
@ -1000,17 +1092,21 @@ export default {
position: relative;
background-repeat: no-repeat;
background-size: cover;
.bg {
position: absolute;
width: 160rpx;
height: 160rpx;
top: 0;left: 0;
top: 0;
left: 0;
z-index: 1;
}
.statueBox {
position: absolute;
z-index: 2;
top: 0;right: 0;
top: 0;
right: 0;
width: 76rpx;
height: 32rpx;
font-size: 20rpx;
@ -1022,6 +1118,7 @@ export default {
background-size: 100% 100%;
text-align: center;
}
.nameBox {
position: absolute;
z-index: 2;
@ -1029,6 +1126,7 @@ export default {
left: 20rpx;
display: flex;
flex-direction: column;
.serviceName {
font-size: 30rpx;
font-family: PingFangSC, PingFang SC;
@ -1037,6 +1135,7 @@ export default {
line-height: 30rpx;
margin-bottom: 6rpx;
}
.serviceLabel {
font-size: 20rpx;
font-family: PingFangSC, PingFang SC;
@ -1046,19 +1145,23 @@ export default {
}
}
}
.contentRight {
width: calc(100% - 176rpx);
margin-left: 16rpx;
display: flex;
flex-direction: column;
justify-content: space-between;
.rightTop {
display: flex;
align-items: center;
justify-content: space-between;
.rightTopLeft {
display: flex;
align-items: center;
.indexBox {
width: 36rpx;
height: 32rpx;
@ -1071,6 +1174,7 @@ export default {
background-repeat: no-repeat;
background-size: 100% 100%;
}
.areaName {
font-size: 28rpx;
font-family: PingFangSC, PingFang SC;
@ -1080,9 +1184,11 @@ export default {
margin-left: 8rpx;
}
}
.rightTopRight {
display: flex;
align-items: center;
.entryRateLabel {
font-size: 24rpx;
font-family: PingFangSC, PingFang SC;
@ -1090,6 +1196,7 @@ export default {
color: #9A9A9A;
line-height: 32rpx;
}
.entryRateValue {
font-size: 28rpx;
font-family: DINAlternate, DINAlternate;
@ -1100,14 +1207,17 @@ export default {
}
}
}
.rightBottom {
display: flex;
justify-content: space-between;
.rightBottomItem {
width: calc(100% / 3);
display: flex;
flex-direction: column;
align-items: flex-end;
.itemLabel {
font-size: 24rpx;
font-family: PingFangSC, PingFang SC;
@ -1116,6 +1226,7 @@ export default {
line-height: 36rpx;
text-align: right;
}
.itemValue {
font-size: 28rpx;
font-family: DINAlternate, DINAlternate;
@ -1127,11 +1238,13 @@ export default {
}
}
}
.otherCarBox {
width: 100%;
display: flex;
align-items: center;
justify-content: space-between;
.left {
font-size: 24rpx;
font-family: PingFangSC, PingFang SC;
@ -1139,12 +1252,14 @@ export default {
color: #9A9A9A;
line-height: 36rpx;
}
.MoreBox {
width: 30%;
height: 32rpx;
display: flex;
align-items: center;
justify-content: flex-end;
.goMoreIcon {
width: 32rpx;
height: 32rpx;
@ -1153,6 +1268,7 @@ export default {
}
}
}
.load-more {
text-align: center;
width: 100%;
@ -1161,13 +1277,16 @@ export default {
font-size: 24rpx;
}
}
.typeSecond {
.listValueBox {
width: 100%;
.row {
width: 100%;
display: flex;
margin-top: 32rpx;
.rowItem {
text-align: center;
font-size: 24rpx;

View File

@ -9,7 +9,8 @@
:topLeftColor="topLeftColor" :iconObj="iconObj" :haveIconObj="haveIconObj" :detailBoxBg="detailBoxBg"
:haveFun="haveFun" :serviceTypeObj="serviceTypeObj" :serviceInfoObj="serviceInfoObj" :pageType="pageType"
:pageIndex="4" :headerBg="'linear-gradient( #d09845 0%, #ffffff 100%)'" />
<div class="charts" :style="{ paddingTop: serviceInfo.SERVERPART_NAME === '安徽驿达' ? menu.bottom + 62 + 14 + 'px' : '' }">
<div class="charts"
:style="{ paddingTop: serviceInfo.SERVERPART_NAME === '安徽驿达' ? menu.bottom + 62 + 14 + 'px' : '' }">
<div class="chartsItem">
<div style="display: flex;justify-content: space-between;align-items: center">
<p class="title">交易分析</p>
@ -831,7 +832,7 @@ export default {
}
.time {
margin-bottom: 4px;
// margin-bottom: 4px;
.thisTime {
font-size: 14px;
@ -847,7 +848,10 @@ export default {
.time {
display: flex;
align-items: center;
margin-right: 4px;
// margin-right: 4px;
border-radius: 28rpx;
padding: 12rpx 16rpx;
background: #f0e8dd;
.day {
font-size: 32rpx;

View File

@ -48,7 +48,7 @@
<div class="timeSelect">
<view style="display: flex;align-items: center">
<img class="selectIcon" src="https://eshangtech.com/ShopICO/ahyd-BID/car/dateIcon.svg" />
<picker mode="date" fields="month" :value="searchText" :end="lastDay"
<picker mode="date" fields="month" :value="searchText" :end="lastDay" :start="'2023-01'"
@change="changeAllProvinceSearch">
<view class="time">
<view class="text">{{ searchTextMonth }}</view>

View File

@ -70,7 +70,7 @@ export default {
rotateLock: false,
background: "#FFFFFF",
color: ["#1E80FF", "#00B6FF"],
padding: [15, 15, 5, 5],
padding: [15, 15, 5, 0],
dataLabel: false,
enableScroll: false,
legend: {
@ -106,7 +106,8 @@ export default {
addLine: true,
width: 2,
gradient: true,
activeType: "hollow"
activeType: "hollow",
dataPointShape: false //
}
}
}
@ -172,7 +173,8 @@ export default {
addLine: true,
width: 2,
gradient: true,
activeType: "hollow"
activeType: "hollow",
dataLabel: false //
}
}
});

View File

@ -6,11 +6,11 @@
<!-- </view>-->
<view class="scrollPage">
<scroll-view class="scrollBox" scroll-x="true" :scroll-into-view="'item' + isYD && selectIndex === 1 ? 0 : selectIndex"
scroll-with-animation>
<scroll-view class="scrollBox" scroll-x="true"
:scroll-into-view="'item' + isYD && selectIndex === 1 ? 0 : selectIndex" scroll-with-animation>
<view :style="{ display: isYD && i === 0 ? 'none' : '' }" :id="'item' + i"
:class="selectIndex === i ? `scrollItem selectScroll${selectIndex}` : 'scrollItem'" v-for="(item, i) in pageList"
:key="i" @click="handleToDetail(i)">
:class="selectIndex === i ? `scrollItem selectScroll${selectIndex}` : 'scrollItem'"
v-for="(item, i) in pageList" :key="i" @click="handleToDetail(i)">
{{ item }}
</view>
</scroll-view>
@ -21,7 +21,8 @@ export default {
name: "sliderPage",
data() {
return {
pageList: ["基础信息", "车流统计", "客群统计", "经营统计", "交易统计", "业态品牌", "考核考评", "日常巡检"],
// pageList: ["", "", "", "", "", "", "", ""],
pageList: ["基础信息", "车流统计", "客群统计", "经营统计", "交易统计", "业态品牌"],
// pageList: [],
urlList: [
'/pages/map/detail',

View File

@ -25,12 +25,13 @@
<no-data v-else />
</div>
<div class="chartsItem" style="margin-top: 32px;height: 330px">
<div class="time">
<div class="time" style="width:100%;display: flex;justify-content: flex-end;">
<div class="select">
<picker mode="date" fields="month" :value="single" :end="endData" @change="bindDateChange">
<view class="time">
<view class="uni-input" style="background: transparent;padding: 0;height:100%">{{ single }}</view>
<image class="icon" src="https://eshangtech.com/ShopICO/ahyd-BID/index/arrow_bottom.svg"></image>
<image class="icon" src="https://eshangtech.com/ShopICO/ahyd-BID/index/arrow_bottom_guestPortrait.svg">
</image>
</view>
</picker>
</div>
@ -576,7 +577,7 @@ export default {
background: #fff;
.time {
margin-bottom: 4px;
// margin-bottom: 4px;
.thisTime {
font-size: 14px;
@ -588,17 +589,21 @@ export default {
.select {
margin-left: 8px;
display: inline-block;
border-radius: 28rpx;
padding: 12rpx 16rpx;
background: #EEF7F8;
.time {
display: flex;
align-items: center;
margin-right: 4px;
// margin-right: 4px;
.day {
font-size: 32rpx;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #782717;
// color: #ae664e;
color: #A0D0C1;
line-height: 44rpx;
margin-right: 4px;
}
@ -607,7 +612,8 @@ export default {
font-size: 14px;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #ae664e;
// color: #ae664e;
color: #A0D0C1;
line-height: 36rpx;
}
@ -630,14 +636,20 @@ export default {
}
.item {
border-radius: 28rpx;
padding: 12rpx 16rpx;
background: #EEF7F8;
.value {
font-size: 14px;
font-family: PingFangSC-Semibold, PingFang SC;
font-weight: 400;
color: #160002;
// color: #160002;
color: #A0D0C1;
line-height: 20px;
}
}
}
}
}

View File

@ -3,16 +3,32 @@
<!-- <div style="position: fixed;right: 0;top: 20%;z-index:99999999999">-->
<!-- <commercial-type :have="2"/>-->
<!-- </div>-->
<header-top ref="headerTop" :bgUrl="bgUrl" :menu="menu" :bgColor="bgColor" :title="title" :analyseInfo="analyseInfo" :topBg="topBg" :page="page" :backType="backType"
:serverpartName="serviceInfo.SERVERPART_NAME" :spregionTypeName="serviceInfo.SPREGIONTYPE_NAME" :serviceInfo="serviceInfo"
:topLeftBg="topLeftBg" :topLeftColor="topLeftColor" :iconObj="iconObj" :haveIconObj="haveIconObj" :detailBoxBg="detailBoxBg"
:haveFun="haveFun" :serviceTypeObj="serviceTypeObj" :serviceInfoObj="serviceInfoObj" :pageType="pageType" :pageIndex="3"
:headerBg="'linear-gradient( #a28ec3 0%, #ffffff 100%)'"/>
<div class="charts" :style="{paddingTop:serviceInfo.SERVERPART_NAME==='安徽驿达'?menu.bottom + 62 + 14 + 'px':''}">
<header-top ref="headerTop" :bgUrl="bgUrl" :menu="menu" :bgColor="bgColor" :title="title" :analyseInfo="analyseInfo"
:topBg="topBg" :page="page" :backType="backType" :serverpartName="serviceInfo.SERVERPART_NAME"
:spregionTypeName="serviceInfo.SPREGIONTYPE_NAME" :serviceInfo="serviceInfo" :topLeftBg="topLeftBg"
:topLeftColor="topLeftColor" :iconObj="iconObj" :haveIconObj="haveIconObj" :detailBoxBg="detailBoxBg"
:haveFun="haveFun" :serviceTypeObj="serviceTypeObj" :serviceInfoObj="serviceInfoObj" :pageType="pageType"
:pageIndex="3" :headerBg="'linear-gradient( #a28ec3 0%, #ffffff 100%)'" />
<div class="charts"
:style="{ paddingTop: serviceInfo.SERVERPART_NAME === '安徽驿达' ? menu.bottom + 62 + 14 + 'px' : '' }">
<div class="chartsItem">
<view class="titleTop" style="justify-content: space-between">
<p class="title">营收分析</p>
<text>{{time?$util.getThisMonthHaveHeng(time):''}}</text>
<!-- <text>{{ time ? $util.getThisMonthHaveHeng(time) : '' }}</text> -->
<div class="time">
<div class="select">
<picker mode="date" fields="month" :value="single" :start="startTime" :end="endData"
@change="bindDateChange">
<view class="time">
<view class="uni-input" style="background: transparent;padding: 0;height:100%">{{ single }}</view>
<image class="icon"
src="https://eshangtech.com/ShopICO/ahyd-BID/index/arrow_bottom_managePortrait.svg"></image>
</view>
</picker>
</div>
</div>
</view>
<!-- <span class="dateText">{{lastDay}}</span>-->
<revenue-analysis :data="monthDetail" />
@ -36,18 +52,23 @@
<view class="textTop">
<view class="left">
<p class="number">{{ plan.percentageMonth ? plan.percentageMonth + '%' : '-' }}</p>
<p v-if="plan.percentageMonth>=100" class="desc"><image class="success" src="https://eshangtech.com/ShopICO/ahyd-BID/index/successMonth.svg"></image></p>
<p v-if="plan.percentageMonth >= 100" class="desc">
<image class="success" src="https://eshangtech.com/ShopICO/ahyd-BID/index/successMonth.svg"></image>
</p>
</view>
<view class="right">
<text class="comparePlan">比计划 </text>
<view class="box2">
<image class="addIcon" :src="plan.MonthGrowth_Rate>0?'https://eshangtech.com/ShopICO/ahyd-BID/index/addIcon.svg':'https://eshangtech.com/ShopICO/ahyd-BID/index/reduce.svg'"></image>
<image class="addIcon"
:src="plan.MonthGrowth_Rate > 0 ? 'https://eshangtech.com/ShopICO/ahyd-BID/index/addIcon.svg' : 'https://eshangtech.com/ShopICO/ahyd-BID/index/reduce.svg'">
</image>
<p class="text">{{ monthAdd ? monthAdd + '%' : '-' }}</p>
</view>
</view>
</view>
<div class="progressPlan">
<div class="trans" :style="{width:`${plan.percentageMonth>=100?100:plan.percentageMonth}%`}"></div>
<div class="trans" :style="{ width: `${plan.percentageMonth >= 100 ? 100 : plan.percentageMonth}%` }">
</div>
<!-- <div class=pro :style="{width:(100 - plan.percentageMonth)+ '%'}"></div>-->
<!-- <view class="trans" :style="{width: plan.percentageMonth + '%'}"></view>-->
<!-- <image class="img" src="https://eshangtech.com/ShopICO/ahyd-BID/index/progress_orange.png"></image>-->
@ -85,18 +106,23 @@
<view class="textTop">
<view class="left">
<p class="number">{{ plan.percentageYear ? plan.percentageYear + '%' : '-' }}</p>
<p v-if="plan.percentageYear>=100" class="desc" style="color: #4E68FF"><image class="success" src="https://eshangtech.com/ShopICO/ahyd-BID/index/yearSuccess.svg"></image></p>
<p v-if="plan.percentageYear >= 100" class="desc" style="color: #4E68FF">
<image class="success" src="https://eshangtech.com/ShopICO/ahyd-BID/index/yearSuccess.svg"></image>
</p>
</view>
<view class="right">
<text class="comparePlan">比计划 </text>
<div class="box2">
<image class="addIcon" :src="plan.YearGrowth_Rate>0?'https://eshangtech.com/ShopICO/ahyd-BID/index/addIcon.svg':'https://eshangtech.com/ShopICO/ahyd-BID/index/reduce.svg'"></image>
<image class="addIcon"
:src="plan.YearGrowth_Rate > 0 ? 'https://eshangtech.com/ShopICO/ahyd-BID/index/addIcon.svg' : 'https://eshangtech.com/ShopICO/ahyd-BID/index/reduce.svg'">
</image>
<p class="text">{{ yearAdd ? yearAdd + '%' : '' }}</p>
</div>
</view>
</view>
<div class="progressPlan">
<div class="transYear" :style="{width:`${plan.percentageYear>=100?100:plan.percentageYear}%`}"></div>
<div class="transYear" :style="{ width: `${plan.percentageYear >= 100 ? 100 : plan.percentageYear}%` }">
</div>
<!-- <image class="img" :style="{width: plan.percentageYear + '%'}" src="https://eshangtech.com/ShopICO/ahyd-BID/index/progress_blue.png"></image>-->
<!-- <div class=pro :style="{width:(100 - plan.percentageYear)+ '%'}"></div>-->
</div>
@ -122,7 +148,10 @@
<div class="chartsItem" style="margin-top: 32px">
<p class="title">同比分析</p>
<view class="tab">
<view v-for="(item,index) in tabList" :key="index" :class="selectTab===item.value?'tabItem tabItemActive':'tabItem'" @click="handleChangeTab(item.value)">{{item.name}}</view>
<view v-for="(item, index) in tabList" :key="index"
:class="selectTab === item.value ? 'tabItem tabItemActive' : 'tabItem'"
@click="handleChangeTab(item.value)">
{{ item.name }}</view>
</view>
<div class="subItem">
<p class="title">{{ selectTab === 0 ? '营收同比' : selectTab === 1 ? '客单同比' : selectTab === 2 ? '均价同比' : '' }}</p>
@ -132,7 +161,9 @@
<p class="sumMoney">{{ revenue.data ? revenue.data : '-' }}</p>
</div>
<div class="bottom">
<image class="icon" :src="revenue.add>0?'https://eshangtech.com/ShopICO/ahyd-BID/commercial/addArrow.svg':revenue.add<0?'https://eshangtech.com/ShopICO/ahyd-BID/commercial/decline.svg':''"></image>
<image class="icon"
:src="revenue.add > 0 ? 'https://eshangtech.com/ShopICO/ahyd-BID/commercial/addArrow.svg' : revenue.add < 0 ? 'https://eshangtech.com/ShopICO/ahyd-BID/commercial/decline.svg' : ''">
</image>
<p class="add">{{ revenue.add ? revenue.add + '%' : '-' }}</p>
<p class="text">(相比去年同日)</p>
</div>
@ -140,7 +171,8 @@
</div>
<div class="subItem" style="height: 230px;margin-top: 20px;">
<div style="margin-bottom: 30px;display: flex;align-items: center;justify-content: space-between">
<p class="title">{{selectTab===0?'营收特征分析':selectTab===1?'客单对比':selectTab===2?'均价对比':''}}</p>
<p class="title">{{ selectTab === 0 ? '营收特征分析' : selectTab === 1 ? '客单对比' : selectTab === 2 ? '均价对比' : '' }}
</p>
<text v-if="selectTab === 0" style="margin-top: 12px">单位: 万元</text>
<text v-if="selectTab === 1" style="margin-top: 12px">单位: </text>
<text v-if="selectTab === 2" style="margin-top: 12px">单位: </text>
@ -160,7 +192,8 @@
</div>
<!-- <no-data/>-->
</div>
<analyse :analyseInfo="{analysisins_type: selectTab===0?1305:selectTab===1?1306:selectTab===2?1307:'',analysisins_format: 2000}"/>
<analyse
:analyseInfo="{ analysisins_type: selectTab === 0 ? 1305 : selectTab === 1 ? 1306 : selectTab === 2 ? 1307 : '', analysisins_format: 2000 }" />
</div>
<div class="chartsItem" style="margin-top: 32px">
<p class="title">营收类型比例</p>
@ -207,7 +240,8 @@ export default {
name: "businessPortrait",
components: {
SliderPage,
NoData, RevenueTrends, MoneyCompare, ContractGuarantee, RevenueAnalysis, headerTop,analyse},
NoData, RevenueTrends, MoneyCompare, ContractGuarantee, RevenueAnalysis, headerTop, analyse
},
data() {
return {
topBg: 'linear-gradient(180deg, #D9CCEF 0%, #DED3F2 100%);',
@ -260,7 +294,11 @@ export default {
haveFun: {},
monthDetail: {},//
serviceTypeObj: {},//
serviceInfoObj:{}
serviceInfoObj: {},
single: '',//
endData: '', //
startTime: '2023-01',//
}
},
props: {
@ -341,6 +379,24 @@ export default {
},
methods: {
timestampToTimeMonth,
//
bindDateChange(e) {
const date = new Date(e.detail.value)
const nowDate = new Date()
let y = date.getFullYear()
let m = date.getMonth() + 1
let nowYear = nowDate.getFullYear()
let nowMonth = nowDate.getMonth() + 1
if (nowYear === y && nowMonth === m) {
let d = nowDate.getDate() - 1
this.time = `${nowYear}-${nowMonth}-${d}`
} else {
let d = this.$util.getThisMonthDay(`${y}-${m}`)
this.time = `${y}-${m}-${d}`
}
this.single = this.$util.getThisMonthHave(this.time)
this.onRefresh()
},
//
handleGetPageData() {
//
@ -351,6 +407,8 @@ export default {
if (storeTime) {
this.time = storeTime
}
this.single = this.$util.getThisMonthHave(this.time)
this.endData = uni.getStorageSync('lastDay')
let date = new Date(this.time)
let m = date.getMonth() + 1
if (m < 10) {
@ -391,6 +449,28 @@ export default {
this.getSummaryMonth()
this.handleChangeCurrent()
},
onRefresh() {
//
this.getRevenueList()
//
// this.getOrderTransaction()
//
this.getMoneyCompareList()
//
this.getTrendsList()
//
this.getRevenueType()
//
this.monthYearPlan()
//
this.handleNoticeMonth()
this.handleNoticeYear()
//
this.getServiceInfo()
//
this.getSummaryMonth()
this.handleChangeCurrent()
},
handleChangeCurrent() {
this.$refs.headerTop.handleChangeCurrent()
},
@ -886,16 +966,19 @@ export default {
.main {
width: 100vw;
height: 100vh;
.charts {
width: 100%;
box-sizing: border-box;
padding: 28px 16px 24px;
background: #fff;
.chartsItem {
.titleTop {
display: flex;
align-items: center;
position: relative;
.title {
font-size: 32rpx;
font-family: PingFangSC-Semibold, PingFang SC;
@ -904,17 +987,67 @@ export default {
line-height: 44rpx;
}
.time {
// margin-bottom: 4px;
.thisTime {
font-size: 14px;
font-family: PingFangSC-Semibold, PingFang SC;
font-weight: 500;
color: #160002;
}
.select {
margin-left: 8px;
display: inline-block;
.time {
display: flex;
align-items: center;
// margin-right: 4px;
border-radius: 28rpx;
padding: 12rpx 16rpx;
background: #E9EFFF;
.day {
font-size: 32rpx;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #782717;
line-height: 44rpx;
margin-right: 4px;
}
.uni-input {
font-size: 14px;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #9f74f7;
line-height: 36rpx;
}
.icon {
width: 24px;
height: 16px;
}
}
}
}
.question {
width: 16px;
height: 16px;
margin-left: 4px;
display: flex;
align-items: center;
image {
width: 100%;
height: 100%;
}
}
.titleTopNotice {
position: absolute;
padding: 12px;
@ -923,19 +1056,23 @@ export default {
background: #FFFFFF;
box-shadow: 0 10px 10px 0 rgba(22, 0, 2, 0.1);
}
.meng {
width: 100vw;
height: 100vh;
position: fixed;
top: 0;left: 0;
top: 0;
left: 0;
}
}
.title {
font-size: 17px;
font-family: PingFangSC-Semibold, PingFang SC;
font-weight: 600;
color: #160002;
line-height: 24px;
.unit {
font-size: 14px;
font-family: PingFangSC-Regular, PingFang SC;
@ -944,6 +1081,7 @@ export default {
line-height: 20px;
margin-left: 4px;
}
.dateText {
display: inline-block;
margin-left: 16rpx;
@ -953,22 +1091,28 @@ export default {
color: #A69E9F;
}
}
.progress {
width: calc(100vw - 32px);
margin-top: 12px;
.top {
display: flex;
align-items: center;
justify-content: space-between;
.left,.right{
.left,
.right {
display: flex;
align-items: center;
.title {
font-size: 14px;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #160002;
}
.value {
font-size: 18px;
font-family: DINAlternate-Bold, DINAlternate;
@ -977,37 +1121,46 @@ export default {
}
}
}
.bottom {
width: 100%;
height: 14px;
position: relative;
.first {
height: 100%;
position: absolute;
left: 0;top: 0;
left: 0;
top: 0;
background: #1E80FF;
border-radius: 2px 0 0 2px;
}
.first:after {
position: absolute;
content: '';
right: 0;top: 0;
right: 0;
top: 0;
background: #fff;
width: 1px;
height: 100%;
z-index: 111;
}
.second {
height: 100%;
position: absolute;
right: 0;top: 0;
right: 0;
top: 0;
background: #00C2FF;
border-radius: 0 2px 2px 0;
}
.second:before {
position: absolute;
content: '';
left: 0;top: 0;
left: 0;
top: 0;
background: #fff;
width: 1px;
height: 100%;
@ -1015,6 +1168,7 @@ export default {
}
}
}
.box {
width: 100%;
padding: 12px 16px;
@ -1022,9 +1176,11 @@ export default {
border-radius: 8px;
background: #f5f2f2;
margin-top: 12px;
.top {
width: 100%;
display: flex;
.big {
width: 40px;
height: 40px;
@ -1035,21 +1191,26 @@ export default {
justify-content: center;
align-items: center;
margin-right: 8px;
.icon {
width: 20px;
height: 20px;
}
}
.text {
width: calc(100% - 60px);
padding: 2px 0;
.textTop {
display: flex;
align-items: center;
justify-content: space-between;
.left {
display: flex;
align-items: center;
.number {
font-size: 36rpx;
font-family: DINAlternate-Bold, DINAlternate;
@ -1057,12 +1218,14 @@ export default {
color: #150002;
line-height: 40rpx;
}
.desc {
display: flex;
align-items: center;
margin-left: 8px;
font-size: 14px;
color: #FF7043;
.success {
width: 20px;
height: 20px;
@ -1070,11 +1233,13 @@ export default {
}
}
}
.right {
flex: 1;
display: flex;
justify-content: flex-end;
align-items: center;
.comparePlan {
font-size: 24rpx;
font-family: PingFangSC-Regular, PingFang SC;
@ -1083,9 +1248,11 @@ export default {
line-height: 36rpx;
white-space: nowrap;
}
.box2 {
display: flex;
align-items: center;
.text {
font-size: 14px;
font-family: DINAlternate-Bold, DINAlternate;
@ -1094,6 +1261,7 @@ export default {
line-height: 40rpx;
}
.addIcon {
width: 16px;
height: 16px;
@ -1111,22 +1279,27 @@ export default {
margin-top: 8px;
position: relative;
overflow: hidden;
.trans {
height: 8px;
position: absolute;
left: 0;top: 0;
left: 0;
top: 0;
border-top-right-radius: 4px;
border-bottom-right-radius: 4px;
background: url("https://eshangtech.com/ShopICO/ahyd-BID/index/progress_orange.png")no-repeat 100% 100%;
}
.transYear {
height: 8px;
position: absolute;
left: 0;top: 0;
left: 0;
top: 0;
border-top-right-radius: 4px;
border-bottom-right-radius: 4px;
background: url("https://eshangtech.com/ShopICO/ahyd-BID/index/progress_blue.png")no-repeat 100% 100%;
}
//.img{
// width: 100%;
// height: 100%;
@ -1146,10 +1319,12 @@ export default {
}
}
}
.bottom {
display: flex;
margin-top: 16px;
padding-left: 48px;
.success {
.text {
font-size: 28rpx;
@ -1158,6 +1333,7 @@ export default {
color: #786b6c;
line-height: 40rpx;
margin-bottom: 2px;
.unit {
font-size: 28rpx;
font-family: PingFangSC-Regular, PingFang SC;
@ -1167,6 +1343,7 @@ export default {
margin-left: 2px;
}
}
.money {
font-size: 28rpx;
font-family: DINAlternate-Bold, DINAlternate;
@ -1177,6 +1354,7 @@ export default {
}
}
}
.tab {
width: 100%;
height: 38px;
@ -1188,6 +1366,7 @@ export default {
align-items: center;
margin-bottom: 12px;
margin-top: 12px;
.tabItem {
display: flex;
justify-content: center;
@ -1200,13 +1379,16 @@ export default {
font-weight: 400;
color: #786B6C;
}
.tabItemActive {
color: #160002;
background: #FFFFFF;
}
}
.subItem {
width: 100%;
.title {
font-size: 14px;
font-family: PingFangSC-Semibold, PingFang SC;
@ -1215,20 +1397,24 @@ export default {
line-height: 20px;
margin-bottom: 8px;
}
.money {
width: calc(100% - 32px);
padding: 18px 16px;
background: #F7F7F7;
border-radius: 4px;
.top {
display: flex;
align-items: center;
margin-bottom: 4px;
.icon {
width: 20px;
height: 20px;
margin-right: 8px;
}
.sumMoney {
font-size: 20px;
font-family: DINAlternate-Bold, DINAlternate;
@ -1237,15 +1423,18 @@ export default {
line-height: 24px;
}
}
.bottom {
display: flex;
align-items: center;
margin-left: 24px;
.icon {
width: 14px;
height: 14px;
margin-right: 4px;
}
.add {
font-size: 14px;
font-family: PingFangSC-Regular, PingFang SC;
@ -1254,6 +1443,7 @@ export default {
line-height: 20px;
margin-right: 4px;
}
.text {
font-size: 14px;
font-family: PingFangSC-Regular, PingFang SC;