This commit is contained in:
cclu 2024-05-29 18:49:12 +08:00
parent e36ee4f57c
commit c10acc5693
4 changed files with 1091 additions and 366 deletions

View File

@ -1,9 +1,10 @@
<template> <template>
<view class="earlyWarningDetail"> <view class="earlyWarningDetail">
<view class="earlyTop" :style="{height: `calc(${menu.bottom}px + 628rpx)`}"> <view class="earlyTop" :style="{height: `calc(${menu.bottom}px + 650rpx)`}">
<!-- menu.bottom + 314 + 'px'--> <!-- menu.bottom + 314 + 'px'-->
<view class="earlyTopBg"></view> <view class="earlyTopBg"></view>
<view class="headerBox" :style="{top:menu.top + 'px',height:menu.height+'px'}"> <view class="headerBox" :style="{paddingTop: menu.top + 'px',height:menu.bottom + 12 +'px'}">
<view :style="{height:menu.height +'px',display: 'flex',alignItems: 'center',paddingLeft:'32rpx'}">
<view class="backIconBox" @click="handleBack"> <view class="backIconBox" @click="handleBack">
<image class="backIcon" src="https://eshangtech.com/ShopICO/ahyd-BID/commercial/navigation-left.svg"/> <image class="backIcon" src="https://eshangtech.com/ShopICO/ahyd-BID/commercial/navigation-left.svg"/>
</view> </view>
@ -20,16 +21,19 @@
</div> </div>
</div> </div>
</view> </view>
</view>
<view class="revenueBox" :style="{top: menu.bottom + 19 +'px' }"> <view class="revenueBox" :style="{top: menu.bottom + 19 +'px' }">
<view class="box"> <view class="box">
<view class="typeBox"> <view class="typeBox">
<image class="bg" src="https://eshangtech.com/ShopICO/ahyd-BID/warning/detailTopBg1.png"/> <image class="bg" src="https://eshangtech.com/ShopICO/ahyd-BID/warning/detailTopBg1.png"/>
<view class="typeBoxTop"> <view class="typeBoxTop" style="display: flex;justify-content: space-between;align-items: center">
<text class="monthText">{{date || ''}}</text> <view>
<text class="title">对客销售</text> <text class="title">对客销售</text>
<text class="unit">/万元</text> <text class="unit">/万元</text>
</view> </view>
<text class="monthText">{{date || ''}}</text>
</view>
<view class="typeBoxContent"> <view class="typeBoxContent">
<view style="width: 40%;display: inline-block"> <view style="width: 40%;display: inline-block">
<view class="valueItem"> <view class="valueItem">
@ -50,10 +54,10 @@
</view> </view>
</view> </view>
</view> </view>
<view class="addBox"> <!-- <view class="addBox">-->
<text class="label">增长</text> <!-- <text class="label">增长</text>-->
<text :class="res.RevenueINC.increaseData<0?'addGreenValue':res.RevenueINC.increaseData>0?'addValue':''">{{res.RevenueINC.increaseData>0?`+${$util.getMoney(res.RevenueINC.increaseData/10000)}`:res.RevenueINC.increaseData<0?`${$util.getMoney(res.RevenueINC.increaseData/10000)}`:''}}</text> <!-- <text :class="res.RevenueINC.increaseData<0?'addGreenValue':res.RevenueINC.increaseData>0?'addValue':''">{{res.RevenueINC.increaseData>0?`+${$util.getMoney(res.RevenueINC.increaseData/10000)}`:res.RevenueINC.increaseData<0?`${$util.getMoney(res.RevenueINC.increaseData/10000)}`:''}}</text>-->
</view> <!-- </view>-->
</view> </view>
<view class="line"></view> <view class="line"></view>
@ -61,7 +65,7 @@
<view class="typeBox"> <view class="typeBox">
<image class="bg" src="https://eshangtech.com/ShopICO/ahyd-BID/warning/detailTopBg2.png"/> <image class="bg" src="https://eshangtech.com/ShopICO/ahyd-BID/warning/detailTopBg2.png"/>
<view class="typeBoxTop"> <view class="typeBoxTop">
<text class="monthText">{{date || ''}}</text> <!-- <text class="monthText">{{date || ''}}</text>-->
<text class="title">入区车流</text> <text class="title">入区车流</text>
<text class="unit">/万辆</text> <text class="unit">/万辆</text>
</view> </view>
@ -85,15 +89,23 @@
</view> </view>
</view> </view>
</view> </view>
<view class="addBox"> <!-- <view class="addBox">-->
<text class="label">增长</text> <!-- <text class="label">增长</text>-->
<text :class="res.BayonetINC.increaseData<0?'addGreenValue':res.BayonetINC.increaseData>0?'addValue':''">{{res.BayonetINC.increaseData>0?`+${$util.getMoney(res.BayonetINC.increaseData/10000)}`:res.BayonetINC.increaseData<0?`${$util.getMoney(res.BayonetINC.increaseData/10000)}`:''}}</text> <!-- <text :class="res.BayonetINC.increaseData<0?'addGreenValue':res.BayonetINC.increaseData>0?'addValue':''">{{res.BayonetINC.increaseData>0?`+${$util.getMoney(res.BayonetINC.increaseData/10000)}`:res.BayonetINC.increaseData<0?`${$util.getMoney(res.BayonetINC.increaseData/10000)}`:''}}</text>-->
<!-- </view>-->
</view>
<view class="descBox">
<text class="monthText">{{selectType===1?'车流增加,服务区营收减少':selectType===2?'车流增加,门店的营收减少':selectType===3?'车流增加,营收增长不匹配':selectType===4?'车流减少,营收降低不匹配':''}}</text>
<view class="descTitle">预警说明<text class="desc">
{{selectType===1?'请重点关注入区车流增加自营商超营收同步增长,服务区整体营收呈现下降的情况!':selectType===2?'请重点关注入区车流增加自营商超营收同步增长,服务区部分门店营收呈现下降的情况!':selectType===3?'请重点关注营收与车流增幅产生较大差异的服务区!增幅差额=车流增幅-营收增幅,越大越不好,倒序排列':selectType===4?'请重点关注营收与车流降幅产生较大差异的服务区!增幅差额=销售增幅-车流降幅,越大越不好,倒序排列':''}}
</text></view>
</view> </view>
</view> </view>
</view> </view>
</view> </view>
</view> <view class="detailContentBox" >
<view class="detailContentBox" :style="{height: `calc(100vh - ${menu.bottom}px - 628rpx)`}"> <!-- :style="{height: `calc(100vh - ${menu.bottom}px - 800rpx)`}"-->
<view class="contentTop"> <view class="contentTop">
<image class="topIcon" src="https://eshangtech.com/ShopICO/ahyd-BID/warning/shopIcon.png"/> <image class="topIcon" src="https://eshangtech.com/ShopICO/ahyd-BID/warning/shopIcon.png"/>
<text class="topTitle">商家数据</text> <text class="topTitle">商家数据</text>
@ -104,87 +116,93 @@
<view class="topName">商家</view> <view class="topName">商家</view>
</view> </view>
</view> </view>
<view class="sortItem" style="width: 124rpx"> <view class="sortItem" style="width: 124rpx" @click="handleChangeSortName(1)">
<view class="sort">
<view class="topName">2023</view>
<view class="sortIconBox">
<image class="upIcon" src="https://eshangtech.com/ShopICO/ahyd-BID/car/upDesc.svg"/>
<image class="bottomIcon" src="https://eshangtech.com/ShopICO/ahyd-BID/car/downDesc.svg"/>
</view>
</view>
</view>
<view class="sortItem" style="width: 124rpx">
<view class="sort" > <view class="sort" >
<view class="topName">2024</view> <view class="topName">2024</view>
<view class="sortIconBox"> <view class="sortIconBox">
<image class="upIcon" src="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" src="https://eshangtech.com/ShopICO/ahyd-BID/car/downDesc.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> </view>
</view> </view>
<view class="sortItem" style="width: 84rpx"> <view class="sortItem" style="width: 124rpx" @click="handleChangeSortName(2)">
<view class="sort">
<view class="topName">2023</view>
<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'"/>
</view>
</view>
</view>
<view class="sortItem" style="width: 84rpx" @click="handleChangeSortName(3)">
<view class="sort"> <view class="sort">
<view class="topName">增长</view> <view class="topName">增长</view>
<view class="sortIconBox"> <view class="sortIconBox">
<image class="upIcon" src="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" src="https://eshangtech.com/ShopICO/ahyd-BID/car/downDesc.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> </view>
</view> </view>
<view class="sortItem" style="width: 84rpx"> <view class="sortItem" style="width: 84rpx" @click="handleChangeSortName(4)">
<view class="sort" > <view class="sort" >
<view class="topName">增幅</view> <view class="topName">增幅</view>
<view class="sortIconBox"> <view class="sortIconBox">
<image class="upIcon" src="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" src="https://eshangtech.com/ShopICO/ahyd-BID/car/downDesc.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>
</view> </view>
</view> </view>
<view class="listBox"> <view class="listBox">
<view class="listItem" v-for="(item,index) in res.ShopINCList" :key="index"> <view class="listItem" v-for="(item,index) in dataList" :key="index">
<view class="listItemTop"> <view class="listItemTop">
<view class="listItemLeft"> <view class="listItemLeft">
<view class="logoBox"> <view class="logoBox">
<image class="logo" :src="item.Brand_ICO"/> <image class="logo" :src="item.Brand_ICO"/>
</view> </view>
<view class="titleBox"> <view class="titleBox">
<view style="display: flex;align-items: center;">
<text class="itemTitle">{{item.ServerpartShopName}}</text> <text class="itemTitle">{{item.ServerpartShopName}}</text>
<text class="MERCHANTS_NAME" v-if="item.MERCHANTS_NAME">{{item.MERCHANTS_NAME}}</text>
</view>
<view class="itemTypeBox"> <view class="itemTypeBox">
<text class="mode" style="margin-right: 8rpx">{{ item.SettlementModes }}</text> <text v-if="item.SettlementModes" class="mode" style="margin-right: 8rpx">{{ SETTLEMENT_MODESOBJ[item.SettlementModes] || '' }}</text>
<text class="type">{{ businessTypeObj[item.BusinessType ] }}</text> <text v-if="item.BusinessType" class="type">{{ businessTypeObj[item.BusinessType ] || '' }}</text>
</view> </view>
</view> </view>
</view> </view>
<view class="listItemRight"> <!-- <view class="listItemRight">-->
<image class="warningIcon" src="https://eshangtech.com/ShopICO/ahyd-BID/warning/warningIcon.png"/> <!-- <image class="warningIcon" src="https://eshangtech.com/ShopICO/ahyd-BID/warning/warningIcon.png"/>-->
</view> <!-- </view>-->
</view> </view>
<view class="listItemBottom" style="margin-bottom: 16rpx;margin-top: 24rpx"> <view class="listItemBottom" style="margin-bottom: 16rpx;margin-top: 24rpx">
<view class="bottomValue name" style="width: 56rpx">营收</view> <view class="bottomValue name" style="width: 56rpx">营收</view>
<view class="bottomValue value" style="width: 124rpx">{{item.RevenueINC.lYearData?$util.getMoney(item.RevenueINC.lYearData/10000):'-'}}</view>
<view class="bottomValue value" style="width: 124rpx">{{item.RevenueINC.curYearData?$util.getMoney(item.RevenueINC.curYearData/10000):'-'}}</view> <view class="bottomValue value" style="width: 124rpx">{{item.RevenueINC.curYearData?$util.getMoney(item.RevenueINC.curYearData/10000):'-'}}</view>
<view class="bottomValue value" style="width: 124rpx">{{item.RevenueINC.lYearData?$util.getMoney(item.RevenueINC.lYearData/10000):'-'}}</view>
<view class="bottomValue value" style="width: 84rpx">{{item.RevenueINC.increaseData?$util.getMoney(item.RevenueINC.increaseData/10000):'-'}}</view> <view class="bottomValue value" style="width: 84rpx">{{item.RevenueINC.increaseData?$util.getMoney(item.RevenueINC.increaseData/10000):'-'}}</view>
<view :class="item.RevenueINC.increaseRate<0?'bottomValue greenAdd':item.RevenueINC.increaseRate>0?'bottomValue add':''" style="width: 124rpx">{{item.RevenueINC.increaseRate? <view :class="item.RevenueINC.increaseRate<0?'bottomValue greenAdd':item.RevenueINC.increaseRate>0?'bottomValue add':''" style="width: 124rpx">{{item.RevenueINC.increaseRate?
item.RevenueINC.increaseRate>0?`+${item.RevenueINC.increaseRate}%`: item.RevenueINC.increaseRate>0?`+${item.RevenueINC.increaseRate}%`:
item.RevenueINC.increaseRate<0?`${item.RevenueINC.increaseRate}%` item.RevenueINC.increaseRate<0?`${item.RevenueINC.increaseRate}%`
:'':''}}</view> :'':''}}</view>
</view> </view>
<view class="listItemBottom"> <!-- <view class="listItemBottom">-->
<view class="bottomValue name" style="width: 56rpx">车流</view> <!-- <view class="bottomValue name" style="width: 56rpx">车流</view>-->
<view class="bottomValue value" style="width: 124rpx">{{res.BayonetINC.lYearData?$util.getMoney(res.BayonetINC.lYearData/10000):'-'}}</view> <!-- <view class="bottomValue value" style="width: 124rpx">{{res.BayonetINC.lYearData?$util.getMoney(res.BayonetINC.lYearData/10000):'-'}}</view>-->
<view class="bottomValue value" style="width: 124rpx">{{res.BayonetINC.curYearData?$util.getMoney(res.BayonetINC.curYearData/10000):'-'}}</view> <!-- <view class="bottomValue value" style="width: 124rpx">{{res.BayonetINC.curYearData?$util.getMoney(res.BayonetINC.curYearData/10000):'-'}}</view>-->
<view class="bottomValue value" style="width: 84rpx">{{res.BayonetINC.increaseData?$util.getMoney(res.BayonetINC.increaseData/10000):'-'}}</view> <!-- <view class="bottomValue value" style="width: 84rpx">{{res.BayonetINC.increaseData?$util.getMoney(res.BayonetINC.increaseData/10000):'-'}}</view>-->
<view :class="res.BayonetINC.increaseRate<0?'bottomValue greenAdd':res.BayonetINC.increaseRate>0?'bottomValue add':''" style="width: 124rpx">{{res.BayonetINC.increaseRate?res.BayonetINC.increaseRate>0?`+${res.BayonetINC.increaseRate}%`:res.BayonetINC.increaseRate<0?`${res.BayonetINC.increaseRate}%`:'':''}}</view> <!-- <view :class="res.BayonetINC.increaseRate<0?'bottomValue greenAdd':res.BayonetINC.increaseRate>0?'bottomValue add':''" style="width: 124rpx">{{res.BayonetINC.increaseRate?res.BayonetINC.increaseRate>0?`+${res.BayonetINC.increaseRate}%`:res.BayonetINC.increaseRate<0?`${res.BayonetINC.increaseRate}%`:'':''}}</view>-->
</view> <!-- </view>-->
</view> </view>
</view> </view>
</view> </view>
</view> </view>
</template> </template>
<script> <script>
import {wrapTreeNode} from "../../util/dateTime";
import request from '@/util/index.js'
export default { export default {
name: "detail", name: "detail",
data(){ data(){
@ -199,6 +217,13 @@
4000: "业主自营", 4000: "业主自营",
}, },
date: '',// date: '',//
SETTLEMENT_MODESOBJ:{},
dataList:[],
sortName: 4,// 12023 22024 3 4
sortType: 1,// 1 2
selectType: 0,//
otherList:[],//
ownerShop:{},//
} }
}, },
onLoad(query){ onLoad(query){
@ -213,15 +238,134 @@
if (query.date){ if (query.date){
this.date = query.date this.date = query.date
} }
if (query.type){
this.selectType = Number(query.type)
}
console.log('this.res',this.res) console.log('this.res',this.res)
this.handleGetSETTLEMENT_MODES()
this.handleChangeList()
// this.dataList = this.handleSortList(this.res.ShopINCList)
}, },
methods:{ methods:{
//
handleChangeList(){
let obj = {}
let otherList = []
this.res.ShopINCList.forEach(item=>{
if (item.ServerpartShopName === '自营超市'){
obj = item
}else{
otherList.push(item)
}
})
this.ownerShop = obj
this.otherList = otherList
let resList = this.handleSortList(otherList)
let list = [obj,...resList]
this.dataList = list
},
// //
handleBack(){ handleBack(){
uni.navigateBack({ uni.navigateBack({
delta: 1 delta: 1
}) })
}, },
// SETTLEMENT_MODES
async handleGetSETTLEMENT_MODES(){
const req = {
FieldExplainField: 'SETTLEMENT_MODES'
}
const data = await request.$webGet('/EShangApiMain/FrameWork/GetFieldEnumByField',req)
let list = data.Result_Data.List
let obj = {}
if (list && list.length>0){
list.forEach(item=>{
obj[item.value] = item.label
})
}
console.log('data231231',obj)
this.SETTLEMENT_MODESOBJ = obj
},
//
handleChangeSortName(value){
if (value===this.sortName){
if (this.sortType===1){
this.sortType=0
}else{
this.sortType=1
}
}else{
this.sortName = value
this.sortType=1
}
let res = this.handleSortList(this.otherList)
this.dataList = [this.ownerShop,...res]
},
//
handleSortList(list){
var len = list.length;
for (var i = 0; i < len - 1; i++) {
for (var j = 0; j < len - 1 - i; j++) {
if (this.sortType === 1){
if (this.sortName ===1){
if (list[j].RevenueINC.lYearData < list[j + 1].RevenueINC.lYearData) { //
var temp = list[j];
list[j] = list[j + 1];
list[j + 1] = temp;
}
}else if(this.sortName===2){
if (list[j].RevenueINC.curYearData < list[j + 1].RevenueINC.curYearData) { //
var temp = list[j];
list[j] = list[j + 1];
list[j + 1] = temp;
}
}else if(this.sortName===3){
if (list[j].RevenueINC.increaseData < list[j + 1].RevenueINC.increaseData) { //
var temp = list[j];
list[j] = list[j + 1];
list[j + 1] = temp;
}
}else if(this.sortName===4){
if (list[j].RevenueINC.increaseRate < list[j + 1].RevenueINC.increaseRate) { //
var temp = list[j];
list[j] = list[j + 1];
list[j + 1] = temp;
}
}
}else{
if (this.sortName ===1){
if (list[j].RevenueINC.lYearData > list[j + 1].RevenueINC.lYearData) { //
var temp = list[j];
list[j] = list[j + 1];
list[j + 1] = temp;
}
}else if(this.sortName===2){
if (list[j].RevenueINC.curYearData > list[j + 1].RevenueINC.curYearData) { //
var temp = list[j];
list[j] = list[j + 1];
list[j + 1] = temp;
}
}else if(this.sortName===3){
if (list[j].RevenueINC.increaseData > list[j + 1].RevenueINC.increaseData) { //
var temp = list[j];
list[j] = list[j + 1];
list[j + 1] = temp;
}
}else if(this.sortName===4){
if (list[j].RevenueINC.increaseRate > list[j + 1].RevenueINC.increaseRate) { //
var temp = list[j];
list[j] = list[j + 1];
list[j + 1] = temp;
}
}
}
}
}
return list
}
} }
} }
</script> </script>
@ -242,10 +386,13 @@
} }
.headerBox{ .headerBox{
width: 100%; width: 100%;
position: absolute; position: fixed;
left: 0; left: 0;
top: 0;
z-index: 20;
box-sizing: border-box; box-sizing: border-box;
padding: 32rpx; background: linear-gradient( 180deg, #D8E3FF 0%, #E5EBF9 100%);
//padding: 32rpx;
display: flex; display: flex;
align-items: center; align-items: center;
.backIconBox{ .backIconBox{
@ -384,7 +531,7 @@
.valueAdd{ .valueAdd{
font-family: DINAlternate, DINAlternate; font-family: DINAlternate, DINAlternate;
font-weight: bold; font-weight: bold;
font-size: 46rpx; font-size: 42rpx;
color: #E83944; color: #E83944;
line-height: 64rpx; line-height: 64rpx;
text-align: left; text-align: left;
@ -393,7 +540,7 @@
.valueGreen{ .valueGreen{
font-family: DINAlternate, DINAlternate; font-family: DINAlternate, DINAlternate;
font-weight: bold; font-weight: bold;
font-size: 46rpx; font-size: 42rpx;
color: #127E5B; color: #127E5B;
line-height: 40rpx; line-height: 40rpx;
text-align: left; text-align: left;
@ -459,6 +606,39 @@
background: #F5F4F4; background: #F5F4F4;
margin: 24rpx 0 24rpx 0; margin: 24rpx 0 24rpx 0;
} }
.descBox{
width: 100%;
background: #F8F8F8;
border-radius: 16rpx;
box-sizing: border-box;
padding: 16rpx;
margin-top: 24rpx;
.monthText{
font-family: PingFangSC, PingFang SC;
font-weight: 400;
font-size: 24rpx;
color: #FFFFFF;
line-height: 24rpx;
text-align: left;
font-style: normal;
padding: 6rpx 8rpx;
background: #F2792E;
border-radius: 4rpx;
margin-right: 6rpx;
display: inline-block;
margin-bottom: 8rpx;
}
.descTitle{
font-family: PingFangSC, PingFang SC;
font-weight: 400;
font-size: 24rpx;
color: gray;
.desc{
color: red;
}
}
}
} }
} }
} }
@ -469,6 +649,7 @@
border-radius: 32rpx 32rpx 0rpx 0rpx; border-radius: 32rpx 32rpx 0rpx 0rpx;
box-sizing: border-box; box-sizing: border-box;
padding: 24rpx 32rpx; padding: 24rpx 32rpx;
margin-top: 32rpx;
.contentTop{ .contentTop{
display: flex; display: flex;
align-items: center; align-items: center;
@ -478,13 +659,11 @@
margin-right: 12rpx; margin-right: 12rpx;
} }
.topTitle{ .topTitle{
font-size: 32rpx;
font-family: PingFangSC, PingFang SC; font-family: PingFangSC, PingFang SC;
font-weight: 600; font-weight: 600;
font-size: 28rpx; color: #160002;
color: #212226; line-height: 44rpx;
line-height: 40rpx;
text-align: left;
font-style: normal;
margin-left: 12rpx; margin-left: 12rpx;
} }
} }
@ -500,13 +679,11 @@
align-items: center; align-items: center;
justify-content: flex-start; justify-content: flex-start;
.topName{ .topName{
font-size: 24rpx;
font-family: PingFangSC, PingFang SC; font-family: PingFangSC, PingFang SC;
font-weight: 400; font-weight: 400;
font-size: 28rpx; color: #9A9A9A;
color: #786B6C; line-height: 36rpx;
line-height: 40rpx;
text-align: left;
font-style: normal;
} }
.sortIconBox{ .sortIconBox{
display: flex; display: flex;
@ -542,14 +719,15 @@
align-items: center; align-items: center;
justify-content: space-between; justify-content: space-between;
.listItemLeft{ .listItemLeft{
width: 80%; width: 100%;
display: flex; display: flex;
align-items: center; align-items: flex-start;
.logoBox{ .logoBox{
width: 80rpx; width: 80rpx;
height: 80rpx; height: 80rpx;
border-radius: 16rpx; border-radius: 16rpx;
overflow: hidden; overflow: hidden;
margin-right: 16rpx;
.logo{ .logo{
width: 100%; width: 100%;
height: 100%; height: 100%;
@ -558,20 +736,36 @@
.titleBox{ .titleBox{
width: calc(100% - 96rpx); width: calc(100% - 96rpx);
flex: 1;
.itemTitle{ .itemTitle{
font-family: PingFangSC, PingFang SC;
font-weight: 600;
font-size: 28rpx; font-size: 28rpx;
font-family: PingFangSC, PingFang SC;
font-weight: 400;
color: #160002; color: #160002;
line-height: 40rpx; line-height: 40rpx;
text-align: left;
font-style: normal;
display: inline-block; display: inline-block;
width: 60%; width: 50%;
white-space: nowrap; white-space: nowrap;
text-overflow: ellipsis; text-overflow: ellipsis;
overflow: hidden; overflow: hidden;
} }
.MERCHANTS_NAME{
font-family: PingFangSC, PingFang SC;
font-weight: 400;
font-size: 24rpx;
color: #571519;
line-height: 44rpx;
text-align: left;
font-style: normal;
padding: 4rpx 16rpx;
background: #FCF1D3;
border-radius: 4rpx;
display: inline-block;
width: 50%;
text-overflow: ellipsis;
overflow: hidden;
white-space: nowrap;
}
.itemTypeBox{ .itemTypeBox{
.mode{ .mode{
display: inline-block; display: inline-block;
@ -579,7 +773,7 @@
border-radius: 4rpx; border-radius: 4rpx;
font-family: PingFangSC, PingFang SC; font-family: PingFangSC, PingFang SC;
font-weight: 400; font-weight: 400;
font-size: 20rpx; font-size: 24rpx;
color: #FF6531; color: #FF6531;
line-height: 28rpx; line-height: 28rpx;
text-align: left; text-align: left;
@ -591,7 +785,7 @@
border-radius: 4rpx; border-radius: 4rpx;
font-family: PingFangSC, PingFang SC; font-family: PingFangSC, PingFang SC;
font-weight: 400; font-weight: 400;
font-size: 20rpx; font-size: 24rpx;
color: #1979FE; color: #1979FE;
line-height: 28rpx; line-height: 28rpx;
text-align: left; text-align: left;
@ -616,22 +810,20 @@
.bottomValue{ .bottomValue{
} }
.name{ .name{
font-size: 24rpx;
font-family: PingFangSC, PingFang SC; font-family: PingFangSC, PingFang SC;
font-weight: 400; font-weight: 400;
font-size: 28rpx; color: #9A9A9A;
color: #A69E9F; line-height: 36rpx;
line-height: 40rpx; margin-left: 4rpx;
text-align: left; white-space: nowrap;
font-style: normal;
} }
.value{ .value{
font-size: 28rpx;
font-family: DINAlternate, DINAlternate; font-family: DINAlternate, DINAlternate;
font-weight: bold; font-weight: bold;
font-size: 28rpx;
color: #160002; color: #160002;
line-height: 40rpx; line-height: 32rpx;
text-align: left;
font-style: normal;
} }
.add{ .add{
font-family: DINAlternate, DINAlternate; font-family: DINAlternate, DINAlternate;

View File

@ -2,7 +2,9 @@
<view class="earlyWarningBox"> <view class="earlyWarningBox">
<view class="earlyTop"> <view class="earlyTop">
<view class="earlyTopBg"></view> <view class="earlyTopBg"></view>
<view class="headerBox" :style="{top:menu.top + 'px',height:menu.height+'px'}"> <!-- top:menu.top + 'px',-->
<view class="headerBox" :style="{paddingTop: menu.top + 'px',height:menu.bottom + 4 +'px'}">
<view :style="{height:menu.height +'px',display: 'flex',alignItems: 'center',paddingLeft:'32rpx'}">
<view class="backIconBox" @click="handleBack"> <view class="backIconBox" @click="handleBack">
<image class="backIcon" src="https://eshangtech.com/ShopICO/ahyd-BID/commercial/navigation-left.svg"/> <image class="backIcon" src="https://eshangtech.com/ShopICO/ahyd-BID/commercial/navigation-left.svg"/>
</view> </view>
@ -10,22 +12,23 @@
<view class="timeIconBox"> <view class="timeIconBox">
<image class="timeIcon" src="https://eshangtech.com/ShopICO/ahyd-BID/merchantAccount/selectIcon.svg"/> <image class="timeIcon" src="https://eshangtech.com/ShopICO/ahyd-BID/merchantAccount/selectIcon.svg"/>
</view> </view>
<text class="timeText" @click="handleShowPopup">{{`${startDate}-${endDate}`}}</text> <text class="timeText" @click="handleShowPopup">{{`${startDate}${endDate===startDate?'':`-${endDate}`}`}}</text>
<!-- <uni-datetime-picker v-model="datetimerange" type="daterange"/>--> <!-- <uni-datetime-picker v-model="datetimerange" type="daterange"/>-->
<!-- <picker class="timeSelect" mode="date" fields="month" :end="end" onChange="handleGetStartTime(e)">{{startDate}}</picker>--> <!-- <picker class="timeSelect" mode="date" fields="month" :end="end" onChange="handleGetStartTime(e)">{{startDate}}</picker>-->
<!-- <span class="timeSelect" style="margin: 0 4rpx">-</span>--> <!-- <span class="timeSelect" style="margin: 0 4rpx">-</span>-->
<!-- <picker class="timeSelect" mode="date" fields="month" :end="end">{{endDate}}</picker>--> <!-- <picker class="timeSelect" mode="date" fields="month" :end="end">{{endDate}}</picker>-->
<image class="downIcon" src="https://eshangtech.com/ShopICO/ahyd-BID/merchantAccount/downIcon.svg"/> <image class="downIcon" src="https://eshangtech.com/ShopICO/ahyd-BID/merchantAccount/downIcon.svg"/>
</view> </view>
</view> </view>
</view>
<view class="errorWarning" :style="{top: menu.bottom + 18 + 'px'}"> <view class="errorWarning" :style="{top: menu.bottom + 18 + 'px'}">
<view class="errorTitle"> <view class="errorTitle">
<image class="warningIcon" src="https://eshangtech.com/ShopICO/ahyd-BID/warning/warningIcon.png"/> <image class="warningIcon" src="https://eshangtech.com/ShopICO/ahyd-BID/warning/warningIcon.png"/>
<text class="title">经营异常预警</text> <text class="title">经营过程预警</text>
</view> </view>
<view class="errorContent"> <view class="errorContent">
<view class="contentItem"> <view :class="selectTab===1?'contentItem selectItem':'contentItem'">
<view style="display: flex;align-items: center"> <view style="display: flex;align-items: center">
<image class="itemIcon" src="https://eshangtech.com/ShopICO/ahyd-BID/merchantAccount/accountIcon.svg"/> <image class="itemIcon" src="https://eshangtech.com/ShopICO/ahyd-BID/merchantAccount/accountIcon.svg"/>
<text class="contentText">车流增加服务区营收减少</text> <text class="contentText">车流增加服务区营收减少</text>
@ -33,7 +36,7 @@
<text class="value">{{ sumObj['车流增加,服务区营收减少'] || 0 }}</text> <text class="value">{{ sumObj['车流增加,服务区营收减少'] || 0 }}</text>
</view> </view>
<view class="contentItem"> <view :class="selectTab===2?'contentItem selectItem':'contentItem'">
<view style="display: flex;align-items: center"> <view style="display: flex;align-items: center">
<image class="itemIcon" src="https://eshangtech.com/ShopICO/ahyd-BID/merchantAccount/entryIcon.svg"/> <image class="itemIcon" src="https://eshangtech.com/ShopICO/ahyd-BID/merchantAccount/entryIcon.svg"/>
<text class="contentText">车流增加门店的营收减少</text> <text class="contentText">车流增加门店的营收减少</text>
@ -41,15 +44,15 @@
<text class="value">{{ sumObj['车流增加,门店的营收减少'] || 0 }}</text> <text class="value">{{ sumObj['车流增加,门店的营收减少'] || 0 }}</text>
</view> </view>
<view class="contentItem"> <view :class="selectTab===3?'contentItem selectItem':'contentItem'">
<view style="display: flex;align-items: center"> <view style="display: flex;align-items: center">
<image class="itemIcon" src="https://eshangtech.com/ShopICO/ahyd-BID/merchantAccount/payIcon.svg"/> <image class="itemIcon" src="https://eshangtech.com/ShopICO/ahyd-BID/merchantAccount/payIcon.svg"/>
<text class="contentText">车流增加营收增长不匹配</text> <text class="contentText">车流增加营收增长不匹配</text>
</view> </view>
<text class="value">{{ sumObj['车流增加,营收增长不匹配 '] || 0 }}</text> <text class="value">{{ sumObj['车流增加,营收增长不匹配'] || 0 }}</text>
</view> </view>
<view class="contentItem" style="margin-bottom: 0"> <view :class="selectTab===4?'contentItem selectItem':'contentItem'" style="margin-bottom: 0">
<view style="display: flex;align-items: center"> <view style="display: flex;align-items: center">
<image class="itemIcon" src="https://eshangtech.com/ShopICO/ahyd-BID/warning/dataIcon.png"/> <image class="itemIcon" src="https://eshangtech.com/ShopICO/ahyd-BID/warning/dataIcon.png"/>
<text class="contentText">车流减少营收降低不匹配</text> <text class="contentText">车流减少营收降低不匹配</text>
@ -62,44 +65,72 @@
<view class="servicepartContent"> <view class="servicepartContent">
<view class="contentTitle"> <view class="contentTitle">
<view class="contentTitleLeft">
<image class="contentIcon" src="https://eshangtech.com/ShopICO/ahyd-BID/warning/foodIcon.png"/> <image class="contentIcon" src="https://eshangtech.com/ShopICO/ahyd-BID/warning/foodIcon.png"/>
<view class="titleBox"> <view class="titleBox">
<text class="title">服务区数据</text> <text class="title">服务区数据</text>
<text class="desc">/同比去年</text> <text class="desc">/同比去年</text>
</view> </view>
</view> </view>
<view class="contentTitleRight">
<view class="fixedRight" @click="handleShowPopup">
<view v-if="searchCount>0" class="searchCountBox">{{searchCount}}</view>
<image v-else class="filterIcon" src="https://eshangtech.com/ShopICO/ahyd-BID/warning/filter.png"/>
筛选
</view>
</view>
</view>
<view class="selectBox"> <view class="selectBox">
<scroll-view scroll-x="true" class="scrollBox"> <view class="scrollBox">
<view style="display: inline-block">
<view :class="selectTab===1?'scrollItem selectScroll':'scrollItem'" @click="handleChangeWarningTab(1)"> <view :class="selectTab===1?'scrollItem selectScroll':'scrollItem'" @click="handleChangeWarningTab(1)">
<image class="itemImg" src="https://eshangtech.com/ShopICO/ahyd-BID/merchantAccount/accountIcon.svg"/> <image class="itemImg" src="https://eshangtech.com/ShopICO/ahyd-BID/merchantAccount/accountIcon.svg"/>
<text class="text">经营</text> <text class="text">经营</text>
</view> </view>
</view>
<view style="display: inline-block">
<view :class="selectTab===2?'scrollItem selectScroll':'scrollItem'" @click="handleChangeWarningTab(2)"> <view :class="selectTab===2?'scrollItem selectScroll':'scrollItem'" @click="handleChangeWarningTab(2)">
<image class="itemImg" src="https://eshangtech.com/ShopICO/ahyd-BID/merchantAccount/entryIcon.svg"/> <image class="itemImg" src="https://eshangtech.com/ShopICO/ahyd-BID/merchantAccount/entryIcon.svg"/>
<text class="text">营收</text> <text class="text">营收</text>
</view> </view>
</view>
<view style="display: inline-block">
<view :class="selectTab===3?'scrollItem selectScroll':'scrollItem'" @click="handleChangeWarningTab(3)"> <view :class="selectTab===3?'scrollItem selectScroll':'scrollItem'" @click="handleChangeWarningTab(3)">
<image class="itemImg" src="https://eshangtech.com/ShopICO/ahyd-BID/merchantAccount/payIcon.svg"/> <image class="itemImg" src="https://eshangtech.com/ShopICO/ahyd-BID/merchantAccount/payIcon.svg"/>
<text class="text">增长</text> <text class="text">增长</text>
</view> </view>
</view>
<view style="display: inline-block">
<view :class="selectTab===4?'scrollItem selectScroll':'scrollItem'" @click="handleChangeWarningTab(4)"> <view :class="selectTab===4?'scrollItem selectScroll':'scrollItem'" @click="handleChangeWarningTab(4)">
<image class="itemImg" src="https://eshangtech.com/ShopICO/ahyd-BID/warning/dataIcon.png"/> <image class="itemImg" src="https://eshangtech.com/ShopICO/ahyd-BID/warning/dataIcon.png"/>
<text class="text">减少</text> <text class="text">减少</text>
</view> </view>
</view> </view>
</scroll-view> <!-- <scroll-view scroll-x="true" class="scrollBox">-->
<view class="fixedRight" @click="handleShowPopup"> <!-- <view style="display: inline-block">-->
<image class="filterIcon" src="https://eshangtech.com/ShopICO/ahyd-BID/warning/filter.png"/> <!-- <view :class="selectTab===1?'scrollItem selectScroll':'scrollItem'" @click="handleChangeWarningTab(1)">-->
筛选 <!-- <image class="itemImg" src="https://eshangtech.com/ShopICO/ahyd-BID/merchantAccount/accountIcon.svg"/>-->
</view> <!-- <text class="text">经营</text>-->
<!-- </view>-->
<!-- </view>-->
<!-- <view style="display: inline-block">-->
<!-- <view :class="selectTab===2?'scrollItem selectScroll':'scrollItem'" @click="handleChangeWarningTab(2)">-->
<!-- <image class="itemImg" src="https://eshangtech.com/ShopICO/ahyd-BID/merchantAccount/entryIcon.svg"/>-->
<!-- <text class="text">营收</text>-->
<!-- </view>-->
<!-- </view>-->
<!-- <view style="display: inline-block">-->
<!-- <view :class="selectTab===3?'scrollItem selectScroll':'scrollItem'" @click="handleChangeWarningTab(3)">-->
<!-- <image class="itemImg" src="https://eshangtech.com/ShopICO/ahyd-BID/merchantAccount/payIcon.svg"/>-->
<!-- <text class="text">增长</text>-->
<!-- </view>-->
<!-- </view>-->
<!-- <view style="display: inline-block">-->
<!-- <view :class="selectTab===4?'scrollItem selectScroll':'scrollItem'" @click="handleChangeWarningTab(4)">-->
<!-- <image class="itemImg" src="https://eshangtech.com/ShopICO/ahyd-BID/warning/dataIcon.png"/>-->
<!-- <text class="text">减少</text>-->
<!-- </view>-->
<!-- </view>-->
<!-- </scroll-view>-->
<!-- <view class="fixedRight" @click="handleShowPopup">-->
<!-- <view v-if="searchCount>0" class="searchCountBox">{{searchCount}}</view>-->
<!-- <image v-else class="filterIcon" src="https://eshangtech.com/ShopICO/ahyd-BID/warning/filter.png"/>-->
<!-- 筛选-->
<!-- </view>-->
</view> </view>
<view class="dataList"> <view class="dataList">
@ -108,18 +139,18 @@
<text class="sortName">服务区名称</text> <text class="sortName">服务区名称</text>
</view> </view>
<view class="sortItem" style="width: 25%"> <view class="sortItem" style="width: 25%" @click="handleChangeSortName(1)">
<text class="sortName">对客销售</text> <text class="sortName">对客销售</text>
<view class="sortIconBox"> <view class="sortIconBox">
<image class="upIcon" src="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" src="https://eshangtech.com/ShopICO/ahyd-BID/car/downDesc.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> </view>
<view class="sortItem" style="width: 25%"> <view class="sortItem" style="width: 25%" @click="handleChangeSortName(2)">
<text class="sortName">入区车流</text> <text class="sortName">入区车流</text>
<view class="sortIconBox"> <view class="sortIconBox">
<image class="upIcon" src="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" src="https://eshangtech.com/ShopICO/ahyd-BID/car/downDesc.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> </view>
</view> </view>
@ -136,9 +167,9 @@
</view> </view>
<view class="itemTopRight" @click="handleGoDetail(item)"> <view class="itemTopRight" @click="handleGoDetail(item)">
<view class="warningNotice" v-if="item.ShopINCList && item.ShopINCList.length>0"> <view class="warningNotice" v-if="item.showWarning">
<image class="notice" src="https://eshangtech.com/ShopICO/ahyd-BID/warning/warningIcon.png"/> <image class="notice" src="https://eshangtech.com/ShopICO/ahyd-BID/warning/warningIcon.png"/>
<text class="shopNumber">{{ `${item.ShopINCList.length}个门店` }}</text> <!-- <text class="shopNumber">{{ `${item.ShopINCList.length}个门店` }}</text>-->
</view> </view>
<image class="moreIcon" src="https://eshangtech.com/ShopICO/ahyd-BID/newIndex3/goMore.svg"/> <image class="moreIcon" src="https://eshangtech.com/ShopICO/ahyd-BID/newIndex3/goMore.svg"/>
</view> </view>
@ -150,16 +181,21 @@
<image class="bg" src="https://eshangtech.com/ShopICO/ahyd-BID/warning/revenueBg.png"/> <image class="bg" src="https://eshangtech.com/ShopICO/ahyd-BID/warning/revenueBg.png"/>
</view> </view>
<view class="secondItemTop"> <view class="secondItemTop">
<view>
<text class="itemTopName">对客销售</text> <text class="itemTopName">对客销售</text>
<text class="itemTopUnit">/万元</text> <text class="itemTopUnit">/万元</text>
</view> </view>
<view :class="item.RevenueINC.curYearData<item.RevenueINC.lYearData?'itemGreenValue':'itemValue' ">{{ item.RevenueINC.curYearData?$util.getMoney(item.RevenueINC.curYearData / 10000):'-' }}</view> <image class="addReduce" :src="Number(item.RevenueINC.increaseRate)>0?'https://eshangtech.com/ShopICO/ahyd-BID/examine/add.svg':Number(item.RevenueINC.increaseRate)<0?'https://eshangtech.com/ShopICO/ahyd-BID/examine/reduce.svg':''"/>
<view class="addRate">
</view>
<!-- <view :class="item.RevenueINC.curYearData<item.RevenueINC.lYearData?'itemGreenValue':'itemValue' ">{{ item.RevenueINC.curYearData?item.RevenueINC.curYearData>0?`+${$util.getMoney(item.RevenueINC.curYearData / 10000)}`:item.RevenueINC.curYearData<0?`${$util.getMoney(item.RevenueINC.curYearData / 10000)}`:'0':'-' }}</view>-->
<view class="normalValue">{{ item.RevenueINC.curYearData?item.RevenueINC.curYearData>0?`+${$util.getMoney(item.RevenueINC.curYearData / 10000)}`:item.RevenueINC.curYearData<0?`${$util.getMoney(item.RevenueINC.curYearData / 10000)}`:'0':'-' }}</view>
<view class="addRate" style="display: flex;align-items: center;justify-content: space-between">
<!-- 增长--> <!-- 增长-->
<text :class="item.RevenueINC.increaseData>0?'redValue':item.RevenueINC.increaseData<0?'greenValue':''" style="margin-right: 8rpx">{{item.RevenueINC.increaseData?$util.getMoney(item.RevenueINC.increaseData / 10000):'-' }}</text> <!-- <text :class="item.RevenueINC.increaseData>0?'redValue':item.RevenueINC.increaseData<0?'greenValue':''" style="margin-right: 8rpx">{{item.RevenueINC.increaseData?item.RevenueINC.increaseData>0?`+${$util.getMoney(item.RevenueINC.increaseData / 10000)}`:item.RevenueINC.increaseData<0?`${$util.getMoney(item.RevenueINC.increaseData / 10000)}`:'0':'-' }}</text>-->
<text class="normalValue" style="margin-right: 8rpx">{{item.RevenueINC.increaseData?item.RevenueINC.increaseData>0?`+${$util.getMoney(item.RevenueINC.increaseData / 10000)}`:item.RevenueINC.increaseData<0?`${$util.getMoney(item.RevenueINC.increaseData / 10000)}`:'0':'-' }}</text>
<!-- 增幅--> <!-- 增幅-->
<text :class="item.RevenueINC.increaseRate>0?'redValue':item.RevenueINC.increaseRate<0?'greenValue':''">{{item.RevenueINC.increaseRate?`${item.RevenueINC.increaseRate}%`:'-' }}</text> <text :class="item.RevenueINC.increaseRate>0?'redValue':item.RevenueINC.increaseRate<0?'greenValue':''">{{item.RevenueINC.increaseRate?item.RevenueINC.increaseRate>0?`+${item.RevenueINC.increaseRate}%`:item.RevenueINC.increaseRate<0?`${item.RevenueINC.increaseRate}%`:'0':'-' }}</text>
<text class="unit">同比</text>
</view> </view>
</view> </view>
@ -168,16 +204,21 @@
<image class="bg" src="https://eshangtech.com/ShopICO/ahyd-BID/warning/carBg.png"/> <image class="bg" src="https://eshangtech.com/ShopICO/ahyd-BID/warning/carBg.png"/>
</view> </view>
<view class="secondItemTop"> <view class="secondItemTop">
<view>
<text class="itemTopName">入区车流</text> <text class="itemTopName">入区车流</text>
<text class="itemTopUnit">/万辆</text> <text class="itemTopUnit">/万辆</text>
</view> </view>
<view :class="item.BayonetINC.curYearData<item.BayonetINC.lYearData?'itemGreenValue':'itemValue' ">{{ item.BayonetINC.curYearData?$util.getMoney(item.BayonetINC.curYearData / 10000):'-' }}</view> <image class="addReduce" :src="Number(item.BayonetINC.increaseRate)>0?'https://eshangtech.com/ShopICO/ahyd-BID/examine/add.svg':Number(item.BayonetINC.increaseRate)<0?'https://eshangtech.com/ShopICO/ahyd-BID/examine/reduce.svg':''"/>
<view class="addRate">
</view>
<!-- <view :class="item.BayonetINC.curYearData<item.BayonetINC.lYearData?'itemGreenValue':'itemValue' ">{{ item.BayonetINC.curYearData?item.BayonetINC.curYearData>0?`+${$util.getMoney(item.BayonetINC.curYearData / 10000)}`:item.BayonetINC.curYearData<0?`${$util.getMoney(item.BayonetINC.curYearData / 10000)}`:'0':'-' }}</view>-->
<view class="normalValue">{{ item.BayonetINC.curYearData?item.BayonetINC.curYearData>0?`+${$util.getMoney(item.BayonetINC.curYearData / 10000)}`:item.BayonetINC.curYearData<0?`${$util.getMoney(item.BayonetINC.curYearData / 10000)}`:'0':'-' }}</view>
<view class="addRate" style="display: flex;align-items: center;justify-content: space-between">
<!-- 增长--> <!-- 增长-->
<text :class="item.BayonetINC.increaseData>0?'redValue':item.BayonetINC.increaseData<0?'greenValue':''" style="margin-right: 8rpx">{{item.BayonetINC.increaseData?$util.getMoney(item.BayonetINC.increaseData / 10000):'-' }}</text> <!-- <text :class="item.BayonetINC.increaseData>0?'redValue':item.BayonetINC.increaseData<0?'greenValue':''" style="margin-right: 8rpx">{{item.BayonetINC.increaseData?item.BayonetINC.increaseData>0?`+${$util.getMoney(item.BayonetINC.increaseData / 10000)}`:item.BayonetINC.increaseData<0?`${$util.getMoney(item.BayonetINC.increaseData / 10000)}`:'0':'-' }}</text>-->
<text class="normalValue" style="margin-right: 8rpx">{{item.BayonetINC.increaseData?item.BayonetINC.increaseData>0?`+${$util.getMoney(item.BayonetINC.increaseData / 10000)}`:item.BayonetINC.increaseData<0?`${$util.getMoney(item.BayonetINC.increaseData / 10000)}`:'0':'-' }}</text>
<!-- 增幅--> <!-- 增幅-->
<text :class="item.BayonetINC.increaseRate>0?'redValue':item.BayonetINC.increaseRate<0?'greenValue':''">{{item.BayonetINC.increaseRate?`${item.BayonetINC.increaseRate}%`:'-' }}</text> <text :class="item.BayonetINC.increaseRate>0?'redValue':item.BayonetINC.increaseRate<0?'greenValue':''">{{item.BayonetINC.increaseRate?item.BayonetINC.increaseRate>0?`+${item.BayonetINC.increaseRate}%`:item.BayonetINC.increaseRate<0?`${item.BayonetINC.increaseRate}%`:'':'-' }}</text>
<text class="unit">同比</text>
</view> </view>
</view> </view>
</view> </view>
@ -246,8 +287,8 @@
// datetimerange:[moment().format('YYYY/MM'),moment().format('YYYY/MM')] // datetimerange:[moment().format('YYYY/MM'),moment().format('YYYY/MM')]
startDate: moment().subtract(1,'months').format('YYYY/MM'),// startDate: moment().subtract(1,'months').format('YYYY/MM'),//
endDate: moment().subtract(1,'months').format('YYYY/MM'),// endDate: moment().subtract(1,'months').format('YYYY/MM'),//
start: moment().subtract(1,'months').format('YYYY/MM'),// start: moment().subtract(1,'months').format('YYYY-MM'),//
end: moment().format('YYYY/MM'),// end: moment().format('YYYY-MM-DD'),//
useInfo:{},// useInfo:{},//
statisticsType: 0,// statisticsType: 0,//
shopTrade: 0,// shopTrade: 0,//
@ -256,6 +297,10 @@
selectTab: 1,// tab selectTab: 1,// tab
dataList: [],// dataList: [],//
sumObj:{},// sumObj:{},//
searchCount: 0,//
sortName: 1,// 1 2
sortType: 1,// 1 2
allServerPartId:'',//
} }
}, },
onLoad(query){ onLoad(query){
@ -265,12 +310,42 @@
let userInfo = uni.getStorageSync('vuex') let userInfo = uni.getStorageSync('vuex')
userInfo = JSON.parse(userInfo) userInfo = JSON.parse(userInfo)
this.useInfo = JSON.parse(JSON.stringify(userInfo)) this.useInfo = JSON.parse(JSON.stringify(userInfo))
let serverList = this.useInfo.userData.serverPartList
let serverPartId = ''
if (serverList && serverList.length>0){
serverList.forEach(item=>{
if (serverPartId){
serverPartId +=`,${item.value}`
}else{
serverPartId = item.value
}
})
}
this.allServerPartId = serverPartId
this.handleBrandType() this.handleBrandType()
this.handleGetWarningNumber() this.handleGetWarningNumber()
this.handleGetPageData() this.handleGetPageData()
this.handleGetSearchCount()
}, },
methods:{ methods:{
//
handleChangeSortName(value){
if (value===this.sortName){
if (this.sortType===1){
this.sortType=0
}else{
this.sortType=1
}
}else{
this.sortName = value
this.sortType=1
}
this.dataList = this.handleSortList(this.dataList)
},
// //
handleShowPopup(){ handleShowPopup(){
this.showPop = true this.showPop = true
@ -287,7 +362,9 @@
}, },
// //
handleGetEndTime(e){ handleGetEndTime(e){
console.log('e',e)
this.endDate = moment(e.detail.value).format('YYYY/MM') this.endDate = moment(e.detail.value).format('YYYY/MM')
console.log('this.endDate',this.endDate)
}, },
// //
async handleBrandType(){ async handleBrandType(){
@ -329,22 +406,45 @@
this.sorterType = e this.sorterType = e
} }
}, },
//
handleGetSearchCount(){
//
let num = 0
if (this.startDate || this.endDate){
num+=1
}
if (this.statisticsType>0){
num+=1
}
if (this.shopTrade>0){
num+=1
}
if (this.sorterType>0){
num+=1
}
this.searchCount = num
console.log('searchCount',this.searchCount)
},
// //
handleSubmit(){ handleSubmit(){
this.handleGetSearchCount()
this.showPop = false this.showPop = false
this.handleGetWarningNumber()
this.handleGetPageData() this.handleGetPageData()
}, },
// //
handleGoDetail(obj){ handleGoDetail(obj){
let date = '' let date = ''
if (this.startDate === this.endDate){ if (this.startDate === this.endDate){
let month = new Date(this.startDate).getMonth() + 1 console.log('this.startDate',this.startDate)
let month = new Date(this.startDate.replace('/','-')).getMonth() + 1
console.log('month',month)
date = `${month<10?'0'+month:month}` date = `${month<10?'0'+month:month}`
}else{ }else{
date = `${moment(this.startDate).format('YYYYMM')}-${moment(this.endDate).format('YYYYMM')}` date = `${moment(this.startDate.replace('/','-')).format('YYYYMM')}-${moment(this.endDate.replace('/','-')).format('YYYYMM')}`
} }
this.$util.toNextRoute('navigateTo', `/pages/earlyWarning/detail?obj=${JSON.stringify(obj)}&date=${date}`) this.$util.toNextRoute('navigateTo', `/pages/earlyWarning/detail?obj=${JSON.stringify(obj)}&date=${date}&type=${this.selectTab}`)
}, },
// //
handleBack(){ handleBack(){
@ -355,8 +455,8 @@
// //
async handleGetWarningNumber(){ async handleGetWarningNumber(){
const req = { const req = {
StatisticsStartMonth: moment(this.startDate).format('YYYYMM'), StatisticsStartMonth: this.startDate.replace('/',''),
StatisticsEndMonth: moment(this.endDate).format('YYYYMM'), StatisticsEndMonth: this.endDate.replace('/',''),
BusinessTradeType: this.statisticsType || '', BusinessTradeType: this.statisticsType || '',
shopTrade: this.shopTrade || '' shopTrade: this.shopTrade || ''
} }
@ -378,18 +478,19 @@
}) })
const params = { const params = {
pushProvinceCode: this.useInfo.userData.ProvinceCode || '340000', pushProvinceCode: this.useInfo.userData.ProvinceCode || '340000',
StatisticsStartMonth: moment(this.startDate).format('YYYYMM'), StatisticsStartMonth: this.startDate.replace('/',''),
StatisticsEndMonth: moment(this.endDate).format('YYYYMM'), StatisticsEndMonth: this.endDate.replace('/',''),
businessRegion:1, // businessRegion:1,
calcQOQ: false, calcQOQ: false,
calcYOY: true, calcYOY: true,
calcBayonet: true, calcBayonet: true,
// showLevel: 1, sorterType: this.sorterType || '',
BusinessTradeType: this.statisticsType || '', BusinessTradeType: this.statisticsType || '',
shopTrade: this.shopTrade || '', // shopTrade: this.shopTrade || '',
showLevel: this.sorterType || '', // showLevel: this.sorterType || '',
waringType: this.selectTab,
ServerpartId: this.allServerPartId || ''
} }
let req = {} let req = {}
if (this.selectTab===1){ if (this.selectTab===1){
req = { req = {
@ -418,6 +519,7 @@
showRevenue: 2, showRevenue: 2,
} }
} }
console.log('req2312312',req)
const data = await request.$webGet('CommercialApi/Revenue/GetMonthINCAnalysis',req) const data = await request.$webGet('CommercialApi/Revenue/GetMonthINCAnalysis',req)
if (data.Result_Data.List && data.Result_Data.List.length>0){ if (data.Result_Data.List && data.Result_Data.List.length>0){
let list = wrapTreeNode(data.Result_Data.List) let list = wrapTreeNode(data.Result_Data.List)
@ -429,6 +531,13 @@
item.children.forEach((subItem)=>{ item.children.forEach((subItem)=>{
if (subItem.children && subItem.children.length>0){ if (subItem.children && subItem.children.length>0){
subItem.children.forEach((thirdItem)=>{ subItem.children.forEach((thirdItem)=>{
if (thirdItem.ShopINCList && thirdItem.ShopINCList.length>0){
thirdItem.ShopINCList.forEach(fourth=>{
if (fourth.ServerpartShopName==='自营超市' && fourth.RevenueINC.increaseRate>0){
thirdItem.showWarning = true
}
})
}
res.push(thirdItem) res.push(thirdItem)
}) })
} }
@ -436,9 +545,47 @@
} }
}) })
console.log('res',res) console.log('res',res)
this.dataList = res this.dataList = this.handleSortList(res)
} }
uni.hideLoading() uni.hideLoading()
},
//
handleSortList(list){
var len = list.length;
for (var i = 0; i < len - 1; i++) {
for (var j = 0; j < len - 1 - i; j++) {
if (this.sortType === 1){
if (this.sortName ===1){
if (list[j].RevenueINC.curYearData < list[j + 1].RevenueINC.curYearData) { //
var temp = list[j];
list[j] = list[j + 1];
list[j + 1] = temp;
}
}else if(this.sortName===2){
if (list[j].BayonetINC.curYearData < list[j + 1].BayonetINC.curYearData) { //
var temp = list[j];
list[j] = list[j + 1];
list[j + 1] = temp;
}
}
}else{
if (this.sortName ===1){
if (list[j].RevenueINC.curYearData > list[j + 1].RevenueINC.curYearData) { //
var temp = list[j];
list[j] = list[j + 1];
list[j + 1] = temp;
}
}else if(this.sortName===2){
if (list[j].BayonetINC.curYearData > list[j + 1].BayonetINC.curYearData) { //
var temp = list[j];
list[j] = list[j + 1];
list[j + 1] = temp;
}
}
}
}
}
return list
} }
} }
} }
@ -459,10 +606,13 @@
} }
.headerBox{ .headerBox{
width: 100%; width: 100%;
position: absolute; position: fixed;
left: 0; left: 0;
top: 0;
z-index: 20;
box-sizing: border-box; box-sizing: border-box;
padding: 32rpx; background: linear-gradient( 180deg, #D8E3FF 0%, #E5EBF9 100%);
//padding: 32rpx;
display: flex; display: flex;
align-items: center; align-items: center;
.backIconBox{ .backIconBox{
@ -549,12 +699,15 @@
border-bottom-right-radius: 16rpx; border-bottom-right-radius: 16rpx;
border-bottom-left-radius: 16rpx; border-bottom-left-radius: 16rpx;
box-sizing: border-box; box-sizing: border-box;
padding: 24rpx; padding: 12rpx 12rpx;
.contentItem{ .contentItem{
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: space-between; justify-content: space-between;
margin-bottom: 24rpx; padding: 12rpx 12rpx;
border-radius: 12rpx;
//margin-bottom: 24rpx;
.itemIcon{ .itemIcon{
width: 48rpx; width: 48rpx;
height: 48rpx; height: 48rpx;
@ -563,7 +716,7 @@
.contentText{ .contentText{
font-family: PingFangSC, PingFang SC; font-family: PingFangSC, PingFang SC;
font-weight: 400; font-weight: 400;
font-size: 28rpx; font-size: 26rpx;
color: #160002; color: #160002;
line-height: 40rpx; line-height: 40rpx;
text-align: left; text-align: left;
@ -571,27 +724,34 @@
} }
.value{ .value{
font-family: DINAlternate, DINAlternate; font-family: DINAlternate, DINAlternate;
font-size: 28rpx;
font-weight: bold; font-weight: bold;
font-size: 36rpx;
color: #160002; color: #160002;
line-height: 42rpx; line-height: 42rpx;
text-align: center; text-align: center;
font-style: normal; font-style: normal;
} }
} }
.selectItem{
background: #D9E9FF;
}
} }
} }
} }
.servicepartContent{ .servicepartContent{
width: 100%; width: 100%;
height: calc(100vh - 616rpx); //height: calc(100vh - 616rpx);
border-top-left-radius: 32rpx; border-top-left-radius: 32rpx;
border-top-right-radius: 32rpx; border-top-right-radius: 32rpx;
background: #fff; background: #fff;
box-sizing: border-box; box-sizing: border-box;
padding: 32rpx 0 32rpx 32rpx; padding: 32rpx 0 32rpx 32rpx;
.contentTitle{ .contentTitle{
display: flex;
align-items: center;
justify-content: space-between;
.contentTitleLeft{
display: flex; display: flex;
align-items: center; align-items: center;
.contentIcon{ .contentIcon{
@ -601,68 +761,25 @@
.titleBox{ .titleBox{
margin-left: 12rpx; margin-left: 12rpx;
.title{ .title{
font-size: 32rpx;
font-family: PingFangSC, PingFang SC; font-family: PingFangSC, PingFang SC;
font-weight: 600; font-weight: 600;
font-size: 28rpx; color: #160002;
color: #212226; line-height: 44rpx;
line-height: 40rpx;
text-align: left;
font-style: normal;
} }
.desc{ .desc{
font-size: 24rpx;
font-family: PingFangSC, PingFang SC; font-family: PingFangSC, PingFang SC;
font-weight: 400; font-weight: 400;
font-size: 28rpx; color: #9A9A9A;
color: #786B6C; line-height: 36rpx;
line-height: 40rpx;
text-align: left;
font-style: normal;
margin-left: 8rpx; margin-left: 8rpx;
} }
} }
} }
.selectBox{ .contentTitleRight{
width: 100%;
height: 72rpx;
display: flex;
align-items: center;
margin-top: 28rpx;
.scrollBox{
width: calc(100% - 132rpx);
height: 72rpx;
display: flex;
white-space: nowrap;
.scrollItem{
background: #F5F5F5;
border-radius: 8rpx;
margin-right: 16rpx;
padding: 16rpx;
display: flex;
align-items: center;
.itemImg{
width: 48rpx;
height: 48rpx;
margin-right: 8rpx;
}
.text{
font-family: PingFangSC, PingFang SC;
font-weight: 400;
font-size: 28rpx;
color: #786B6C;
line-height: 40rpx;
text-align: right;
font-style: normal;
}
}
.selectScroll{
background: #ECF2FF!important;
.text{
color: #2363FF!important;
}
}
}
.fixedRight{ .fixedRight{
width: 132rpx; width: 138rpx;
height: 72rpx; height: 72rpx;
background: #fff; background: #fff;
box-sizing: border-box; box-sizing: border-box;
@ -681,12 +798,113 @@
height: 28rpx; height: 28rpx;
margin-right: 4rpx; margin-right: 4rpx;
} }
.searchCountBox{
width: 28rpx;
height: 28rpx;
background: #2363FF;
border-radius: 15rpx;
font-family: PingFangSC, PingFang SC;
font-weight: 400;
font-size: 24rpx;
color: #FFFFFF;
line-height: 24rpx;
text-align: left;
font-style: normal;
display: flex;
align-items: center;
justify-content: center;
margin-right: 6rpx;
}
}
}
}
.selectBox{
width: 100%;
height: 72rpx;
display: flex;
align-items: center;
margin-top: 28rpx;
.scrollBox{
//width: calc(100% - 140rpx);
width: 100%;
height: 72rpx;
display: flex;
justify-content: space-between;
//white-space: nowrap;
.scrollItem{
background: #F5F5F5;
border-radius: 8rpx;
margin-right: 16rpx;
padding: 16rpx;
display: flex;
align-items: center;
.itemImg{
width: 48rpx;
height: 48rpx;
margin-right: 8rpx;
}
.text{
font-family: PingFangSC, PingFang SC;
font-weight: 400;
font-size: 26rpx;
color: #786B6C;
line-height: 40rpx;
text-align: right;
font-style: normal;
}
}
.selectScroll{
background: #ECF2FF!important;
.text{
color: #2363FF!important;
}
}
}
.fixedRight{
width: 138rpx;
height: 72rpx;
background: #fff;
box-sizing: border-box;
padding: 22rpx;
display: flex;
align-items: center;
font-family: PingFangSC, PingFang SC;
font-weight: 400;
font-size: 28rpx;
color: #160002;
line-height: 40rpx;
text-align: left;
font-style: normal;
.filterIcon{
width: 24rpx;
height: 28rpx;
margin-right: 4rpx;
}
.searchCountBox{
width: 28rpx;
height: 28rpx;
background: #2363FF;
border-radius: 15rpx;
font-family: PingFangSC, PingFang SC;
font-weight: 400;
font-size: 24rpx;
color: #FFFFFF;
line-height: 24rpx;
text-align: left;
font-style: normal;
display: flex;
align-items: center;
justify-content: center;
margin-right: 6rpx;
}
} }
} }
.dataList{ .dataList{
width: calc(100% - 32rpx); width: calc(100% - 32rpx);
height: calc(100% - 200rpx); background: #fff;
//height: calc(100% - 200rpx);
margin-top: 24rpx; margin-top: 24rpx;
.listTitle{ .listTitle{
display: flex; display: flex;
@ -694,25 +912,21 @@
border-bottom: 1px solid #F1F1F1; border-bottom: 1px solid #F1F1F1;
padding-bottom: 16rpx; padding-bottom: 16rpx;
.titleName{ .titleName{
font-size: 24rpx;
font-family: PingFangSC, PingFang SC; font-family: PingFangSC, PingFang SC;
font-weight: 400; font-weight: 400;
font-size: 28rpx; color: #9A9A9A;
color: #786B6C; line-height: 36rpx;
line-height: 40rpx;
text-align: left;
font-style: normal;
} }
.sortItem{ .sortItem{
display: flex; display: flex;
align-items: center; align-items: center;
.sortName{ .sortName{
font-size: 24rpx;
font-family: PingFangSC, PingFang SC; font-family: PingFangSC, PingFang SC;
font-weight: 400; font-weight: 400;
font-size: 28rpx; color: #9A9A9A;
color: #786B6C; line-height: 36rpx;
line-height: 40rpx;
text-align: left;
font-style: normal;
} }
.sortIconBox{ .sortIconBox{
display: flex; display: flex;
@ -767,23 +981,20 @@
font-style: normal; font-style: normal;
} }
.name{ .name{
font-family: PingFangSC, PingFang SC;
font-weight: 600;
font-size: 28rpx; font-size: 28rpx;
color: #160002;
line-height: 40rpx;
text-align: left;
font-style: normal;
}
.unit{
font-family: PingFangSC, PingFang SC; font-family: PingFangSC, PingFang SC;
font-weight: 400; font-weight: 400;
color: #160002;
line-height: 40rpx;
}
.unit{
font-size: 24rpx; font-size: 24rpx;
font-family: PingFangSC, PingFang SC;
font-weight: 400;
color: #9A9A9A; color: #9A9A9A;
line-height: 32rpx; line-height: 36rpx;
text-align: left;
font-style: normal;
margin-left: 4rpx; margin-left: 4rpx;
white-space: nowrap;
} }
.message{ .message{
width: 32rpx; width: 32rpx;
@ -846,31 +1057,44 @@
} }
} }
.secondItemTop{ .secondItemTop{
margin-bottom: 16rpx; margin-bottom: 4rpx;
display: flex;
justify-content: space-between;
align-items: center;
.itemTopName{ .itemTopName{
font-size: 28rpx;
font-family: PingFangSC, PingFang SC; font-family: PingFangSC, PingFang SC;
font-weight: 400; font-weight: 400;
font-size: 28rpx;
color: #160002; color: #160002;
line-height: 40rpx; line-height: 40rpx;
text-align: left;
font-style: normal;
} }
.itemTopUnit{ .itemTopUnit{
font-size: 24rpx;
font-family: PingFangSC, PingFang SC; font-family: PingFangSC, PingFang SC;
font-weight: 400; font-weight: 400;
font-size: 28rpx; color: #9A9A9A;
line-height: 36rpx;
margin-left: 4rpx;
}
.addReduce{
width: 28rpx;
height: 28rpx;
margin-right: 4px;
border-radius: 50%;
}
}
.normalValue{
font-family: DINAlternate, DINAlternate;
font-size: 24rpx;
color: #9A9A9A; color: #9A9A9A;
line-height: 40rpx; line-height: 40rpx;
text-align: left; text-align: left;
font-style: normal; font-style: normal;
margin-left: 4rpx;
}
} }
.itemValue{ .itemValue{
font-family: DINAlternate, DINAlternate; font-family: DINAlternate, DINAlternate;
font-weight: bold; font-weight: bold;
font-size: 36rpx; font-size: 28rpx;
color: #E83944; color: #E83944;
line-height: 40rpx; line-height: 40rpx;
text-align: left; text-align: left;
@ -879,13 +1103,22 @@
.itemGreenValue{ .itemGreenValue{
font-family: DINAlternate, DINAlternate; font-family: DINAlternate, DINAlternate;
font-weight: bold; font-weight: bold;
font-size: 36rpx; font-size: 28rpx;
color: #127E5B; color: #127E5B;
line-height: 40rpx; line-height: 40rpx;
text-align: left; text-align: left;
font-style: normal; font-style: normal;
} }
.addRate{ .addRate{
margin-top: 4rpx;
.normalValue{
font-family: DINAlternate, DINAlternate;
font-size: 24rpx;
color: #9A9A9A;
line-height: 32rpx;
text-align: left;
font-style: normal;
}
.redValue{ .redValue{
font-family: DINAlternate, DINAlternate; font-family: DINAlternate, DINAlternate;
font-weight: bold; font-weight: bold;
@ -913,6 +1146,7 @@
text-align: left; text-align: left;
font-style: normal; font-style: normal;
margin-left: 8rpx; margin-left: 8rpx;
white-space: nowrap;
} }
} }
} }
@ -945,6 +1179,7 @@
width: 40rpx; width: 40rpx;
height: 40rpx; height: 40rpx;
} }
} }
.filterBox{ .filterBox{

View File

@ -2,7 +2,8 @@
<view class="projectWarningBox"> <view class="projectWarningBox">
<view class="earlyTop" :style="{height: `calc(${menu.bottom}px + 636rpx)`}"> <view class="earlyTop" :style="{height: `calc(${menu.bottom}px + 636rpx)`}">
<view class="earlyTopBg"></view> <view class="earlyTopBg"></view>
<view class="headerBox" :style="{top:menu.top + 'px',height:menu.height+'px'}"> <view class="headerBox" :style="{paddingTop: menu.top + 'px',height:menu.bottom + 4 +'px'}">
<view :style="{height:menu.height +'px',display: 'flex',alignItems: 'center',paddingLeft:'32rpx'}">
<view class="backIconBox" @click="handleBack"> <view class="backIconBox" @click="handleBack">
<image class="backIcon" src="https://eshangtech.com/ShopICO/ahyd-BID/commercial/navigation-left.svg"/> <image class="backIcon" src="https://eshangtech.com/ShopICO/ahyd-BID/commercial/navigation-left.svg"/>
</view> </view>
@ -18,11 +19,12 @@
<image class="downIcon" src="https://eshangtech.com/ShopICO/ahyd-BID/merchantAccount/downIcon.svg"/> <image class="downIcon" src="https://eshangtech.com/ShopICO/ahyd-BID/merchantAccount/downIcon.svg"/>
</view> </view>
</view> </view>
</view>
<view class="errorWarning" :style="{top: menu.bottom + 18 + 'px'}"> <view class="errorWarning" :style="{top: menu.bottom + 18 + 'px'}">
<view class="errorTitle"> <view class="errorTitle">
<image class="warningIcon" src="https://eshangtech.com/ShopICO/ahyd-BID/warning/warningIcon.png"/> <image class="warningIcon" src="https://eshangtech.com/ShopICO/ahyd-BID/warning/warningIcon.png"/>
<text class="title">经营异常预警</text> <text class="title">项目异常预警</text>
</view> </view>
<view class="errorContent"> <view class="errorContent">
<view class="errorItem"> <view class="errorItem">
@ -30,7 +32,7 @@
<image class="itemLogo" src="https://eshangtech.com/ShopICO/ahyd-BID/warning/error1st.png"/> <image class="itemLogo" src="https://eshangtech.com/ShopICO/ahyd-BID/warning/error1st.png"/>
</view> </view>
<view class="itemRight"> <view class="itemRight">
<text class="itemValue">15</text> <text class="itemValue">{{sumObj[1] || '-'}}</text>
<text class="itemLabel">项目未有营业</text> <text class="itemLabel">项目未有营业</text>
</view> </view>
</view> </view>
@ -40,37 +42,39 @@
<image class="itemLogo" src="https://eshangtech.com/ShopICO/ahyd-BID/warning/error2st.png"/> <image class="itemLogo" src="https://eshangtech.com/ShopICO/ahyd-BID/warning/error2st.png"/>
</view> </view>
<view class="itemRight"> <view class="itemRight">
<text class="itemValue">15</text> <text class="itemValue">{{sumObj[2] || '-'}}</text>
<text class="itemLabel">项目利润过低</text> <text class="itemLabel">项目利润过低</text>
</view> </view>
</view> </view>
<view class="errorItem">
<view class="itemLeft">
<image class="itemLogo" src="https://eshangtech.com/ShopICO/ahyd-BID/warning/error3st.png"/>
</view>
<view class="itemRight">
<text class="itemValue">15</text>
<text class="itemLabel">项目预亏预警</text>
</view>
</view>
<view class="errorItem"> <view class="errorItem">
<view class="itemLeft"> <view class="itemLeft">
<image class="itemLogo" src="https://eshangtech.com/ShopICO/ahyd-BID/warning/error4st.png"/> <image class="itemLogo" src="https://eshangtech.com/ShopICO/ahyd-BID/warning/error4st.png"/>
</view> </view>
<view class="itemRight"> <view class="itemRight">
<text class="itemValue">15</text> <text class="itemValue">{{sumObj[3] || '-'}}</text>
<text class="itemLabel">商家退场告警</text> <text class="itemLabel">商家退场告警</text>
</view> </view>
</view> </view>
<view class="errorItem">
<view class="itemLeft">
<image class="itemLogo" src="https://eshangtech.com/ShopICO/ahyd-BID/warning/error3st.png"/>
</view>
<view class="itemRight">
<text class="itemValue">{{sumObj[4] || '-'}}</text>
<text class="itemLabel">项目预亏预警</text>
</view>
</view>
<view class="errorItem"> <view class="errorItem">
<view class="itemLeft"> <view class="itemLeft">
<image class="itemLogo" src="https://eshangtech.com/ShopICO/ahyd-BID/warning/error5st.png"/> <image class="itemLogo" src="https://eshangtech.com/ShopICO/ahyd-BID/warning/error5st.png"/>
</view> </view>
<view class="itemRight"> <view class="itemRight">
<text class="itemValue">15</text> <text class="itemValue">{{sumObj[5] || '-'}}</text>
<text class="itemLabel">商家退场预警</text> <text class="itemLabel">商家退场预警</text>
</view> </view>
</view> </view>
@ -80,7 +84,7 @@
<image class="itemLogo" src="https://eshangtech.com/ShopICO/ahyd-BID/warning/error6st.png"/> <image class="itemLogo" src="https://eshangtech.com/ShopICO/ahyd-BID/warning/error6st.png"/>
</view> </view>
<view class="itemRight"> <view class="itemRight">
<text class="itemValue">15</text> <text class="itemValue">{{sumObj[6] || '-'}}</text>
<text class="itemLabel">租金提成偏低</text> <text class="itemLabel">租金提成偏低</text>
</view> </view>
</view> </view>
@ -90,7 +94,7 @@
<image class="itemLogo" src="https://eshangtech.com/ShopICO/ahyd-BID/warning/error7st.png"/> <image class="itemLogo" src="https://eshangtech.com/ShopICO/ahyd-BID/warning/error7st.png"/>
</view> </view>
<view class="itemRight"> <view class="itemRight">
<text class="itemValue">15</text> <text class="itemValue">{{sumObj[7] || '-'}}</text>
<text class="itemLabel">保底租金过高</text> <text class="itemLabel">保底租金过高</text>
</view> </view>
</view> </view>
@ -100,7 +104,7 @@
<image class="itemLogo" src="https://eshangtech.com/ShopICO/ahyd-BID/warning/error8st.png"/> <image class="itemLogo" src="https://eshangtech.com/ShopICO/ahyd-BID/warning/error8st.png"/>
</view> </view>
<view class="itemRight"> <view class="itemRight">
<text class="itemValue">15</text> <text class="itemValue">{{sumObj[8] || '-'}}</text>
<text class="itemLabel">业态缺失告警</text> <text class="itemLabel">业态缺失告警</text>
</view> </view>
</view> </view>
@ -110,11 +114,19 @@
<view class="servicepartContent"> <view class="servicepartContent">
<view class="contentTitle"> <view class="contentTitle">
<view style="display: flex;align-items: center">
<image class="contentIcon" src="https://eshangtech.com/ShopICO/ahyd-BID/warning/foodIcon.png"/> <image class="contentIcon" src="https://eshangtech.com/ShopICO/ahyd-BID/warning/foodIcon.png"/>
<view class="titleBox"> <view class="titleBox">
<text class="title">商家数据</text> <text class="title">商家数据</text>
</view> </view>
</view> </view>
<view class="fixedRight" @click="handleShowPopup">
<view v-if="searchCount>0" class="searchCountBox">{{searchCount}}</view>
<image v-else class="filterIcon" src="https://eshangtech.com/ShopICO/ahyd-BID/warning/filter.png"/>
筛选
</view>
</view>
<view class="selectBox"> <view class="selectBox">
<scroll-view scroll-x="true" class="scrollBox"> <scroll-view scroll-x="true" class="scrollBox">
@ -167,10 +179,11 @@
</view> </view>
</view> </view>
</scroll-view> </scroll-view>
<view class="fixedRight" @click="handleShowPopup"> <!-- <view class="fixedRight" @click="handleShowPopup">-->
<image class="filterIcon" src="https://eshangtech.com/ShopICO/ahyd-BID/warning/filter.png"/> <!-- <view v-if="searchCount>0" class="searchCountBox">{{searchCount}}</view>-->
筛选 <!-- <image v-else class="filterIcon" src="https://eshangtech.com/ShopICO/ahyd-BID/warning/filter.png"/>-->
</view> <!-- 筛选-->
<!-- </view>-->
</view> </view>
<view class="dataList"> <view class="dataList">
@ -179,18 +192,18 @@
<text class="sortName">门店名称</text> <text class="sortName">门店名称</text>
</view> </view>
<view class="sortItem" style="width: 25%"> <view class="sortItem" style="width: 25%" @click="handleChangeSortName(1)">
<text class="sortName">营收金额</text> <text class="sortName">营收金额</text>
<view class="sortIconBox"> <view class="sortIconBox">
<image class="upIcon" src="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" src="https://eshangtech.com/ShopICO/ahyd-BID/car/downDesc.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> </view>
<view class="sortItem" style="width: 25%"> <view class="sortItem" style="width: 25%" @click="handleChangeSortName(2)">
<text class="sortName">盈利金额</text> <text class="sortName">盈利金额</text>
<view class="sortIconBox"> <view class="sortIconBox">
<image class="upIcon" src="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" src="https://eshangtech.com/ShopICO/ahyd-BID/car/downDesc.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> </view>
</view> </view>
@ -199,7 +212,7 @@
<view class="listItem" v-for="(item,index) in dataList" :key="index" @click="handleGoDetail(item)"> <view class="listItem" v-for="(item,index) in dataList" :key="index" @click="handleGoDetail(item)">
<image class="bg" src="https://eshangtech.com/ShopICO/ahyd-BID/warning/shopItemBg.png"/> <image class="bg" src="https://eshangtech.com/ShopICO/ahyd-BID/warning/shopItemBg.png"/>
<view class="listItemLeft"> <view class="listItemLeft">
<image class="shopLogo"/> <image class="shopLogo" :src="item.Brand_ICO"/>
</view> </view>
<view class="listItemRight"> <view class="listItemRight">
<view class="rightTop"> <view class="rightTop">
@ -212,6 +225,7 @@
<image class="moreIcon" src="https://eshangtech.com/ShopICO/ahyd-BID/newIndex3/goMore.svg"/> <image class="moreIcon" src="https://eshangtech.com/ShopICO/ahyd-BID/newIndex3/goMore.svg"/>
</view> </view>
</view> </view>
<text class="MERCHANTS_NAME">{{item.MERCHANTS_NAME || ''}}</text>
<view class="rightBottom"> <view class="rightBottom">
<text class="type" style="margin-right: 12rpx">{{ businessTypeObj[item.BUSINESS_TYPE] }}</text> <text class="type" style="margin-right: 12rpx">{{ businessTypeObj[item.BUSINESS_TYPE] }}</text>
<text class="endTime">{{ `${item.ENDDATE}结束` }}</text> <text class="endTime">{{ `${item.ENDDATE}结束` }}</text>
@ -246,9 +260,9 @@
<view class="filterBox"> <view class="filterBox">
<view class="filterTitle">统计时间</view> <view class="filterTitle">统计时间</view>
<view class="filterTimeBox"> <view class="filterTimeBox">
<picker class="timeSelect" mode="date" fields="month" :end="end" @change="handleGetStartTime">{{startDate}}</picker> <picker class="timeSelect" mode="date" fields="month" :value="$moment(startDate).format('YYYY-MM')" :end="end" @change="handleGetStartTime">{{startDate}}</picker>
<span class="timeSelect" style="margin: 0 4rpx">-</span> <span class="timeSelect" style="margin: 0 4rpx">-</span>
<picker class="timeSelect" mode="date" fields="month" :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> </view>
@ -303,7 +317,11 @@ export default {
2000: "固定租金", 2000: "固定租金",
3000: "保底采购", 3000: "保底采购",
4000: "业主自营", 4000: "业主自营",
} },
searchCount: 0,//
sortName: 1,// 1 2
sortType: 1,// 1 2
sumObj:{},
} }
}, },
onLoad(){ onLoad(){
@ -326,13 +344,46 @@ export default {
} }
this.allServerPartId = serverPartId this.allServerPartId = serverPartId
console.log('this.allServerPartId',this.allServerPartId) console.log('this.allServerPartId',this.allServerPartId)
this.handleGetWarningSum()
this.handleGetPageData() this.handleGetPageData()
this.handleGetSearchCount()
}, },
methods:{ methods:{
//
handleChangeSortName(value){
if (value===this.sortName){
if (this.sortType===1){
this.sortType=0
}else{
this.sortType=1
}
}else{
this.sortName = value
this.sortType=1
}
this.dataList = this.handleSortList(this.dataList)
},
//
handleGetSearchCount(){
//
let num = 0
if (this.startDate || this.endDate){
num+=1
}
if (this.businessStatus>0){
num+=1
}
if (this.businessType>0){
num+=1
}
this.searchCount = num
},
handleSubmit(){ handleSubmit(){
this.handleGetSearchCount()
this.showPop = false this.showPop = false
this.handleGetWarningSum()
this.handleGetPageData() this.handleGetPageData()
}, },
// tab // tab
@ -395,10 +446,68 @@ export default {
BusinessState: this.businessStatus || '', BusinessState: this.businessStatus || '',
WarningType: this.selectTab WarningType: this.selectTab
} }
const data = await request.$webGet('/EShangApiMain/BusinessProject/GetAccountWarningList',req) const data = await request.$webGet('EShangApiMain/BusinessProject/GetAccountWarningList',req)
this.dataList = data.Result_Data.List this.dataList = this.handleSortList(data.Result_Data.List)
console.log('this.dataList',this.dataList) console.log('this.dataList',this.dataList)
uni.hideLoading() uni.hideLoading()
},
//
async handleGetWarningSum(){
const req = {
ServerpartId: this.allServerPartId,
Business_Type: this.businessType || '',
// SettlementMode:'',
BusinessState: this.businessStatus || '',
WarningType: this.selectTab
}
const data = await request.$webGet('EShangApiMain/BusinessProject/GetAccountWarningListSummary',req)
console.log('data2312312',data)
let list = data.Result_Data.List
let obj = {}
if (list && list.length>0){
list.forEach(item=>{
obj[item.pid] = item.value
})
}
this.sumObj = obj
},
//
handleSortList(list){
var len = list.length;
for (var i = 0; i < len - 1; i++) {
for (var j = 0; j < len - 1 - i; j++) {
if (this.sortType === 1){
if (this.sortName ===1){
if (list[j].REVENUE_AMOUNT < list[j + 1].REVENUE_AMOUNT) { //
var temp = list[j];
list[j] = list[j + 1];
list[j + 1] = temp;
}
}else if(this.sortName===2){
if (list[j].PROFIT_AMOUNT < list[j + 1].PROFIT_AMOUNT) { //
var temp = list[j];
list[j] = list[j + 1];
list[j + 1] = temp;
}
}
}else{
if (this.sortName ===1){
if (list[j].REVENUE_AMOUNT > list[j + 1].REVENUE_AMOUNT) { //
var temp = list[j];
list[j] = list[j + 1];
list[j + 1] = temp;
}
}else if(this.sortName===2){
if (list[j].PROFIT_AMOUNT > list[j + 1].PROFIT_AMOUNT) { //
var temp = list[j];
list[j] = list[j + 1];
list[j + 1] = temp;
}
}
}
}
}
return list
} }
} }
} }
@ -417,10 +526,13 @@ export default {
} }
.headerBox{ .headerBox{
width: 100%; width: 100%;
position: absolute; position: fixed;
left: 0; left: 0;
top: 0;
z-index: 20;
box-sizing: border-box; box-sizing: border-box;
padding: 32rpx; background: linear-gradient( 180deg, #D8E3FF 0%, #E5EBF9 100%);
//padding: 32rpx;
display: flex; display: flex;
align-items: center; align-items: center;
.backIconBox{ .backIconBox{
@ -567,6 +679,7 @@ export default {
.contentTitle{ .contentTitle{
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: space-between;
.contentIcon{ .contentIcon{
width: 48rpx; width: 48rpx;
height: 48rpx; height: 48rpx;
@ -574,23 +687,58 @@ export default {
.titleBox{ .titleBox{
margin-left: 12rpx; margin-left: 12rpx;
.title{ .title{
font-size: 32rpx;
font-family: PingFangSC, PingFang SC; font-family: PingFangSC, PingFang SC;
font-weight: 600; font-weight: 600;
font-size: 28rpx; color: #160002;
color: #212226; line-height: 44rpx;
line-height: 40rpx;
text-align: left;
font-style: normal;
} }
.desc{ .desc{
font-size: 24rpx;
font-family: PingFangSC, PingFang SC;
font-weight: 400;
color: #9A9A9A;
line-height: 36rpx;
margin-left: 8rpx;
}
}
.fixedRight{
width: 138rpx;
height: 72rpx;
background: #fff;
box-sizing: border-box;
padding: 22rpx;
display: flex;
align-items: center;
font-family: PingFangSC, PingFang SC; font-family: PingFangSC, PingFang SC;
font-weight: 400; font-weight: 400;
font-size: 28rpx; font-size: 28rpx;
color: #786B6C; color: #160002;
line-height: 40rpx; line-height: 40rpx;
text-align: left; text-align: left;
font-style: normal; font-style: normal;
margin-left: 8rpx; .filterIcon{
width: 24rpx;
height: 28rpx;
margin-right: 4rpx;
}
.searchCountBox{
width: 28rpx;
height: 28rpx;
background: #2363FF;
border-radius: 15rpx;
font-family: PingFangSC, PingFang SC;
font-weight: 400;
font-size: 24rpx;
color: #FFFFFF;
line-height: 24rpx;
text-align: left;
font-style: normal;
display: flex;
align-items: center;
justify-content: center;
margin-right: 6rpx;
} }
} }
} }
@ -601,7 +749,8 @@ export default {
align-items: center; align-items: center;
margin-top: 28rpx; margin-top: 28rpx;
.scrollBox{ .scrollBox{
width: calc(100% - 132rpx); //width: calc(100% - 140rpx);
width: calc(100% - 32rpx);
height: 72rpx; height: 72rpx;
display: flex; display: flex;
white-space: nowrap; white-space: nowrap;
@ -635,7 +784,7 @@ export default {
} }
} }
.fixedRight{ .fixedRight{
width: 132rpx; width: 138rpx;
height: 72rpx; height: 72rpx;
background: #fff; background: #fff;
box-sizing: border-box; box-sizing: border-box;
@ -654,6 +803,23 @@ export default {
height: 28rpx; height: 28rpx;
margin-right: 4rpx; margin-right: 4rpx;
} }
.searchCountBox{
width: 28rpx;
height: 28rpx;
background: #2363FF;
border-radius: 15rpx;
font-family: PingFangSC, PingFang SC;
font-weight: 400;
font-size: 24rpx;
color: #FFFFFF;
line-height: 24rpx;
text-align: left;
font-style: normal;
display: flex;
align-items: center;
justify-content: center;
margin-right: 6rpx;
}
} }
} }
.dataList{ .dataList{
@ -678,13 +844,11 @@ export default {
display: flex; display: flex;
align-items: center; align-items: center;
.sortName{ .sortName{
font-size: 24rpx;
font-family: PingFangSC, PingFang SC; font-family: PingFangSC, PingFang SC;
font-weight: 400; font-weight: 400;
font-size: 28rpx; color: #9A9A9A;
color: #786B6C; line-height: 36rpx;
line-height: 40rpx;
text-align: left;
font-style: normal;
} }
.sortIconBox{ .sortIconBox{
display: flex; display: flex;
@ -714,7 +878,7 @@ export default {
box-sizing: border-box; box-sizing: border-box;
padding: 24rpx; padding: 24rpx;
display: flex; display: flex;
align-items: center; align-items: flex-start;
position: relative; position: relative;
margin-bottom: 24rpx; margin-bottom: 24rpx;
.bg{ .bg{
@ -727,11 +891,12 @@ export default {
.listItemLeft{ .listItemLeft{
width: 96rpx; width: 96rpx;
height: 96rpx; height: 96rpx;
border-radius: 16rpx;
margin-right: 16rpx; margin-right: 16rpx;
overflow: hidden; overflow: hidden;
.shopLogo{ .shopLogo{
width: 100%; width: 96rpx;
height: 100%; height: 96rpx;
} }
} }
.listItemRight{ .listItemRight{
@ -768,13 +933,11 @@ export default {
margin-right: 12rpx; margin-right: 12rpx;
} }
.shopName{ .shopName{
font-family: PingFangSC, PingFang SC;
font-weight: 600;
font-size: 28rpx; font-size: 28rpx;
font-family: PingFangSC, PingFang SC;
font-weight: 400;
color: #160002; color: #160002;
line-height: 40rpx; line-height: 40rpx;
text-align: left;
font-style: normal;
} }
} }
.rightTopRight{ .rightTopRight{
@ -784,6 +947,18 @@ export default {
} }
} }
} }
.MERCHANTS_NAME{
font-family: PingFangSC, PingFang SC;
font-weight: 400;
font-size: 24rpx;
color: #571519;
line-height: 44rpx;
text-align: left;
font-style: normal;
padding: 4rpx 16rpx;
background: #FCF1D3;
border-radius: 4rpx;
}
.rightBottom{ .rightBottom{
.type{ .type{
font-family: PingFangSC, PingFang SC; font-family: PingFangSC, PingFang SC;
@ -819,22 +994,19 @@ export default {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
.value{ .value{
font-size: 28rpx;
font-family: DINAlternate, DINAlternate; font-family: DINAlternate, DINAlternate;
font-weight: bold; font-weight: bold;
font-size: 32rpx;
color: #160002; color: #160002;
line-height: 40rpx; line-height: 32rpx;
text-align: left; margin-top: 8rpx;
font-style: normal;
} }
.unit{ .unit{
font-size: 24rpx;
font-family: PingFangSC, PingFang SC; font-family: PingFangSC, PingFang SC;
font-weight: 400; font-weight: 400;
font-size: 24rpx;
color: #9A9A9A; color: #9A9A9A;
line-height: 36rpx; line-height: 36rpx;
text-align: left;
font-style: normal;
} }
} }
} }

View File

@ -1,20 +1,25 @@
<template> <template>
<view class="projectWarningDetail"> <view class="projectWarningDetail">
<view class="earlyTop" :style="{height: `calc(${menu.bottom}px + 472rpx)`}"> <view class="meng" v-if="showNotice || showQuestion" @click="handleCloseNotice"></view>
<view class="earlyTop" :style="{height: `calc(${menu.bottom}px + 510rpx)`}">
<view class="earlyTopBg"></view> <view class="earlyTopBg"></view>
<view class="headerBox" :style="{top:menu.top + 'px',height:menu.height+'px'}"> <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 class="backIconBox" @click="handleBack"> <view class="backIconBox" @click="handleBack">
<image class="backIcon" src="https://eshangtech.com/ShopICO/ahyd-BID/commercial/navigation-left.svg"/> <image class="backIcon" src="https://eshangtech.com/ShopICO/ahyd-BID/commercial/navigation-left.svg"/>
</view> </view>
<view class="pageTitle">商家详情</view> <view class="pageTitle">商家详情</view>
<view class="default"></view> <view class="default"></view>
</view> </view>
</view>
<view class="detailBox" :style="{top: `calc(${menu.bottom}px + 38rpx)`}"> <view class="detailBox" :style="{top: `calc(${menu.bottom}px + 38rpx)`}">
<view class="contentBox"> <view class="contentBox">
<view class="contentTop"> <view class="contentTop">
<view class="topLeft"> <view class="topLeft">
<image class="logo"/> <image class="logo" :src="detail.Brand_ICO"/>
</view> </view>
<view class="topRight"> <view class="topRight">
<view class="rightTop"> <view class="rightTop">
@ -24,6 +29,7 @@
<text class="serverPartName">{{ detail.SERVERPART_NAME || '' }}</text> <text class="serverPartName">{{ detail.SERVERPART_NAME || '' }}</text>
</view> </view>
</view> </view>
<text class="MERCHANTS_NAME">{{detail.MERCHANTS_NAME || ''}}</text>
<view class="rightBottom"> <view class="rightBottom">
<text class="type">{{ businessTypeObj[detail.BUSINESS_TYPE] }}</text> <text class="type">{{ businessTypeObj[detail.BUSINESS_TYPE] }}</text>
<text class="type" style="margin-left: 12rpx">{{ `${detail.ENDDATE}结束` }}</text> <text class="type" style="margin-left: 12rpx">{{ `${detail.ENDDATE}结束` }}</text>
@ -47,8 +53,8 @@
</view> </view>
<view class="messageBox"> <view class="messageBox">
<image class="messageIcon" src="https://eshangtech.com/ShopICO/ahyd-BID/warning/error6st.png"/> <image class="messageIcon" src="https://eshangtech.com/ShopICO/ahyd-BID/warning/error6st.png"/>
<text class="messageType">保底租金偏低</text> <text class="messageType">{{ warningNameObj[detail.WARNING_TYPE] }}</text>
<text class="messageDesc">商家利润超过100万</text> <text class="messageDesc">{{ warningDescObj[detail.WARNING_TYPE] }}</text>
</view> </view>
<view class="line"></view> <view class="line"></view>
@ -58,14 +64,14 @@
</view> </view>
</view> </view>
<view class="detailContentBox" :style="{height: `calc(100vh - ${menu.bottom}px - 472rpx)`}"> <view class="detailContentBox" :style="{height: `calc(100vh - ${menu.bottom}px - 510rpx)`}">
<view class="contentBox"> <view class="contentBox">
<view class="tabBox"> <view class="tabBox">
<view :class="selectTab===1?'tabItem selectItem':'tabItem'" @click="handleChangeTab(1)"> <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> <text class="tabText">综合分析</text>
</view> </view>
<view :class="selectTab===2?'tabItem selectItem':'tabItem'" @click="handleChangeTab(2)"> <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> <text class="tabText">经营情况</text>
</view> </view>
@ -93,8 +99,14 @@
}} }}
</text> </text>
<view style="display: inline-block"> <view style="display: inline-block">
<view class="noticeBox"> <view class="noticeBox" @click="handleShowNotice">
<image class="noticeIcon" src="https://eshangtech.com/ShopICO/ahyd-BID/warning/noticeIcon.png"/> <image class="noticeIcon" src="https://eshangtech.com/ShopICO/ahyd-BID/warning/noticeIcon.png"/>
<view class="noticeDesc" v-if="showNotice" @click.stop="handleCloseNotice">
<view>{{ `1、预计盈利<${0}万元,商家存在退场风险,请密切关注此项目经营状态!`}}</view>
<view>{{ `2、预计盈利=<${10}万元且>${0}万元,商家存在较大经营风险,请关注此项目经营状态!` }}</view>
<view>{{ `3、预计盈利>${10}万元且<${100}万元,商家经营状态良好,能较好的进行持续经营!` }}</view>
<view>{{ `4、预计盈利>=${100}万元,商家存在较大的盈利优势,建议后期项目调整保底提成!` }}</view>
</view>
</view> </view>
</view> </view>
</view> </view>
@ -159,12 +171,12 @@
firstTabDetail.ACCOUNT_RATE< 50?'请关注此项目经营状况!':'' firstTabDetail.ACCOUNT_RATE< 50?'请关注此项目经营状况!':''
}}</text> }}</text>
<view class="questionBox"> <view class="questionBox">
<image class="questionIcon" 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">--> <view class="questionContent" @click="handleCloseNotice" v-if="showQuestion">
<!-- <view>{{ `>=80 %,优秀` }}</view>--> <view>{{ `>=${80} %,优秀` }}</view>
<!-- <view>{{ `<= 80 % 且 >= 50 %,良好` }}</view>--> <view>{{ `<= ${80} % 且 >= ${50} %,良好` }}</view>
<!-- <view>{{ `<50 %,请关注此项目经营状态` }}</view>--> <view>{{ `<${50} %,请关注此项目经营状态` }}</view>
<!-- </view>--> </view>
</view> </view>
</view> </view>
</view> </view>
@ -206,7 +218,7 @@
</view> </view>
<view class="secondContent" v-if="selectTab===2"> <view class="secondContent" v-if="selectTab===2">
<view v-for="(item,index) in secondTabList" :key="index"> <view v-for="(item,index) in secondTabList" :key="index" style="margin-bottom: 48rpx">
<view class="contentItem" style="display: flex;align-items: center;margin-bottom: 16rpx"> <view class="contentItem" style="display: flex;align-items: center;margin-bottom: 16rpx">
<text class="indexDesc">{{ item.BUSINESS_PERIOD || ''}}</text> <text class="indexDesc">{{ item.BUSINESS_PERIOD || ''}}</text>
<view class="timeBox"> <view class="timeBox">
@ -254,7 +266,7 @@
<view class="contentItem"> <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>
<view class="contentItem"> <view class="contentItem">
@ -317,9 +329,13 @@ import {wrapTreeNode} from "../../util/dateTime";
BusinessTradeIdsObj:{},// BusinessTradeIdsObj:{},//
BusinessTradeIdsBigObj:{},// BusinessTradeIdsBigObj:{},//
SERVERPARTTYPEOBJ:{},// SERVERPARTTYPEOBJ:{},//
warningNameObj:{},//
warningDescObj:{},//
showNotice: false,//
showQuestion: false,//
} }
}, },
onLoad(query){ async onLoad(query){
let systemInfo = uni.getSystemInfoSync() let systemInfo = uni.getSystemInfoSync()
this.menu = uni.getMenuButtonBoundingClientRect() this.menu = uni.getMenuButtonBoundingClientRect()
let seat = uni.getStorageSync('currentService') let seat = uni.getStorageSync('currentService')
@ -328,17 +344,52 @@ import {wrapTreeNode} from "../../util/dateTime";
this.detail = JSON.parse(query.obj) this.detail = JSON.parse(query.obj)
} }
console.log('this.detail',this.detail) console.log('this.detail',this.detail)
uni.showLoading({
title: '正在加载...'
})
this.handleGetField() this.handleGetField()
this.handleGetSERVERPART_TYPE() this.handleGetSERVERPART_TYPE()
this.handleGetWarningType()
await this.handleGetFirstTab()
await this.handleGetSecondTab()
this.handleGetFirstTab() uni.hideLoading()
this.handleGetSecondTab()
}, },
methods:{ methods:{
//
handleShowNotice(){
this.showNotice = true
},
handleShowQuestion(){
this.showQuestion = true
},
//
handleCloseNotice(){
this.showNotice = false
this.showQuestion = false
},
async handleGetWarningType(){
const req = {
FieldexPlain_Field: 'WARNING_TYPE'
}
const data = await request.$webGet('/EShangApiMain/Dictionary/GetFieEnumList',req)
let list = data.Result_Data.List
console.log('list',list)
let nameObj = {}
let descObj = {}
if (list && list.length>0){
list.forEach(item=>{
nameObj[Number(item.FieldEnum_Value)] = item.FieldEnum_Name
descObj[Number(item.FieldEnum_Value)] = item.FieldEnum_Desc
})
}
this.warningNameObj = nameObj
this.warningDescObj = descObj
console.log('nameObj',nameObj)
console.log('descObj',descObj)
},
// //
handleBack(){ handleBack(){
uni.navigateBack({ uni.navigateBack({
@ -395,8 +446,6 @@ import {wrapTreeNode} from "../../util/dateTime";
} }
const bottomData = await request.$webGet('/EShangApiMain/Revenue/GetBusinessTradeAnalysis',req) const bottomData = await request.$webGet('/EShangApiMain/Revenue/GetBusinessTradeAnalysis',req)
const bottomData2 = await request.$webGet('/EShangApiMain/Revenue/GetBrandAnalysis',req) const bottomData2 = await request.$webGet('/EShangApiMain/Revenue/GetBrandAnalysis',req)
console.log('bottomData',bottomData)
console.log('bottomData2',bottomData2)
let thirdObj = {} let thirdObj = {}
let fourthObj = {} let fourthObj = {}
if (bottomData.Result_Data.List && bottomData.Result_Data.List.length>0){ if (bottomData.Result_Data.List && bottomData.Result_Data.List.length>0){
@ -405,13 +454,10 @@ import {wrapTreeNode} from "../../util/dateTime";
if (bottomData2.Result_Data.List && bottomData2.Result_Data.List.length>0){ if (bottomData2.Result_Data.List && bottomData2.Result_Data.List.length>0){
fourthObj = bottomData2.Result_Data.List[0] fourthObj = bottomData2.Result_Data.List[0]
} }
console.log('thirdObj',thirdObj)
console.log('fourthObj',fourthObj)
this.firstTabDetail = { this.firstTabDetail = {
...thirdObj, ...thirdObj,
...fourthObj, ...fourthObj,
} }
console.log('this.firstTabDetail',this.firstTabDetail)
}, },
async handleGetSecondTab(){ async handleGetSecondTab(){
const req = { const req = {
@ -421,6 +467,7 @@ import {wrapTreeNode} from "../../util/dateTime";
const data = await request.$webGet('/EShangApiMain/BusinessProject/GetAnnualSplit',req) const data = await request.$webGet('/EShangApiMain/BusinessProject/GetAnnualSplit',req)
const shopTime = await request.$webGet('/EShangApiMain/Revenue/GetBusinessDate',{ServerpartShopIds:this.detail.BUSINESSPROJECT_ID}) const shopTime = await request.$webGet('/EShangApiMain/Revenue/GetBusinessDate',{ServerpartShopIds:this.detail.BUSINESSPROJECT_ID})
let list = data.Result_Data.List let list = data.Result_Data.List
list.reverse()
const shopEndTime = shopTime.Result_Data.value const shopEndTime = shopTime.Result_Data.value
console.log('shopEndTime',shopEndTime) console.log('shopEndTime',shopEndTime)
let beforeList = [] let beforeList = []
@ -464,6 +511,13 @@ import {wrapTreeNode} from "../../util/dateTime";
.projectWarningDetail{ .projectWarningDetail{
width: 100%; width: 100%;
background: #F3F3F3; background: #F3F3F3;
.meng{
width: 100vw;
height: 100vh;
position: fixed;
top: 0;left: 0;
z-index: 21;
}
.earlyTop{ .earlyTop{
width: 100%; width: 100%;
background: #F3F3F3; background: #F3F3F3;
@ -474,10 +528,14 @@ import {wrapTreeNode} from "../../util/dateTime";
background: linear-gradient( 180deg, #D8E3FF 0%, #F3F3F3 100%); background: linear-gradient( 180deg, #D8E3FF 0%, #F3F3F3 100%);
} }
.headerBox{ .headerBox{
width: calc(100% - 32rpx); width: 100%;
position: absolute; position: fixed;
left: 16rpx; left: 0;
top: 0;
z-index: 20;
box-sizing: border-box; box-sizing: border-box;
background: linear-gradient( 180deg, #D8E3FF 0%, #E5EBF9 100%);
//padding: 32rpx;
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: space-between; justify-content: space-between;
@ -515,7 +573,7 @@ import {wrapTreeNode} from "../../util/dateTime";
padding: 2rpx; padding: 2rpx;
.contentBox{ .contentBox{
width: 100%; width: 100%;
height: 438rpx; height: 480rpx;
background: linear-gradient( 180deg, #CDE1FF 0%, #FFFFFF 100%); background: linear-gradient( 180deg, #CDE1FF 0%, #FFFFFF 100%);
border-radius: 14rpx; border-radius: 14rpx;
box-sizing: border-box; box-sizing: border-box;
@ -569,6 +627,18 @@ import {wrapTreeNode} from "../../util/dateTime";
} }
} }
} }
.MERCHANTS_NAME{
font-family: PingFangSC, PingFang SC;
font-weight: 400;
font-size: 24rpx;
color: #571519;
line-height: 44rpx;
text-align: left;
font-style: normal;
padding: 4rpx 16rpx;
background: #FCF1D3;
border-radius: 4rpx;
}
.rightBottom{ .rightBottom{
.type{ .type{
font-family: PingFangSC, PingFang SC; font-family: PingFangSC, PingFang SC;
@ -682,6 +752,9 @@ import {wrapTreeNode} from "../../util/dateTime";
align-items: center; align-items: center;
border-radius: 32rpx 32rpx 0rpx 0rpx; border-radius: 32rpx 32rpx 0rpx 0rpx;
overflow: hidden; overflow: hidden;
background-image: url("https://eshangtech.com/ShopICO/ahyd-BID/warning/grayBg.png");
background-repeat: no-repeat;
background-size: 100% 100%;
.tabItem{ .tabItem{
width: 50%; width: 50%;
height: 108rpx; height: 108rpx;
@ -704,9 +777,24 @@ import {wrapTreeNode} from "../../util/dateTime";
font-style: normal; font-style: normal;
} }
} }
.selectItem{ .selectItemLeft{
background: linear-gradient( 180deg, #DCE5FA 0%, rgba(255,255,255,0) 100%); background-image: url("https://eshangtech.com/ShopICO/ahyd-BID/warning/selectLeft.png");
border-top-right-radius: 24rpx; background-repeat: no-repeat;
background-size: 100% 100%;
.tabText{
font-family: PingFangSC, PingFang SC;
font-weight: 600;
font-size: 32rpx;
color: #160002;
line-height: 44rpx;
text-align: left;
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{ .tabText{
font-family: PingFangSC, PingFang SC; font-family: PingFangSC, PingFang SC;
font-weight: 600; font-weight: 600;
@ -749,12 +837,33 @@ import {wrapTreeNode} from "../../util/dateTime";
} }
} }
.noticeBox{ .noticeBox{
position: relative;
display: flex; display: flex;
align-items: center; align-items: center;
.noticeIcon{ .noticeIcon{
width: 32rpx; width: 32rpx;
height: 32rpx; height: 32rpx;
} }
.noticeDesc{
position: absolute;
top: 32rpx;left: 0;
display: inline-block;
transform: translateX(-40px);
width: 70vw;
border-radius: 32rpx;
box-sizing: border-box;
padding: 32rpx;
background: #fff;
z-index: 22;
font-family: PingFangSC, PingFang SC;
font-weight: 400;
font-size: 24rpx;
color: #786B6C;
line-height: 40rpx;
text-align: left;
font-style: normal;
box-shadow: 0rpx 0rpx 40rpx 0rpx rgba(61, 48, 50, 0.21);
}
} }
} }
} }
@ -904,7 +1013,24 @@ import {wrapTreeNode} from "../../util/dateTime";
height: 20px; height: 20px;
} }
.questionContent{ .questionContent{
display: none; position: absolute;
top: 32rpx;right: 0;
display: inline-block;
transform: translateX(40px);
width: 70vw;
border-radius: 32rpx;
box-sizing: border-box;
padding: 32rpx;
background: #fff;
z-index: 22;
font-family: PingFangSC, PingFang SC;
font-weight: 400;
font-size: 24rpx;
color: #786B6C;
line-height: 40rpx;
text-align: left;
font-style: normal;
box-shadow: 0rpx 0rpx 40rpx 0rpx rgba(61, 48, 50, 0.21);
} }
} }
} }