update
This commit is contained in:
parent
a069709f76
commit
918e83d73f
@ -201,6 +201,13 @@
|
||||
"navigationStyle": "custom"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "serviceMessage",
|
||||
"style": {
|
||||
"navigationBarTitleText": "",
|
||||
"navigationStyle": "custom"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "planMonth",
|
||||
"style": {
|
||||
|
||||
@ -7,7 +7,7 @@
|
||||
:serverpartName="serviceInfo.SERVERPART_NAME" :spregionTypeName="serviceInfo.SPREGIONTYPE_NAME" :serviceInfo="serviceInfo"
|
||||
:topLeftBg="topLeftBg" :topLeftColor="topLeftColor" :iconObj="iconObj" :haveIconObj="haveIconObj" :detailBoxBg="detailBoxBg"
|
||||
:haveFun="haveFun" :serviceTypeObj="serviceTypeObj" :serviceInfoObj="serviceInfoObj" :pageType="pageType"/>
|
||||
|
||||
<SliderPage :index="4"/>
|
||||
<div class="charts">
|
||||
<div class="chartsItem">
|
||||
<div style="display: flex;justify-content: space-between;align-items: center">
|
||||
@ -30,7 +30,7 @@
|
||||
</div>
|
||||
<div class="chartsItem" style="margin-top: 32px">
|
||||
<p class="title">{{month}}月消费转化对比图</p>
|
||||
<div v-if="compareList.series[0].data.length>0">
|
||||
<div v-if="compareList.series && compareList.series.length>0 && compareList.series[0].data && compareList.series[0].data.length>0">
|
||||
<consumption-compare :data="compareList"/>
|
||||
<analyse :analyseInfo="{analysisins_type: 1406,analysisins_format: 2000}" />
|
||||
</div>
|
||||
@ -39,7 +39,7 @@
|
||||
|
||||
<div class="chartsItem" style="margin-top: 32px">
|
||||
<p class="title">{{month}}月消费时段分析</p>
|
||||
<div v-if="timePeriodList.series.length>0">
|
||||
<div v-if="timePeriodList.series && timePeriodList.series.length>0">
|
||||
<time-period-analysis :data="timePeriodList"/>
|
||||
<analyse :analyseInfo="{analysisins_type: 1403,analysisins_format: 2000}" />
|
||||
</div>
|
||||
@ -47,7 +47,7 @@
|
||||
</div>
|
||||
<div class="chartsItem" style="margin-top: 32px">
|
||||
<p class="title">{{month}}月消费水平<text class="unit"></text></p>
|
||||
<div v-if="levelTopList.series.length">
|
||||
<div v-if="levelTopList.series && levelTopList.series.length">
|
||||
<level-top :data="levelTopList"></level-top>
|
||||
<analyse :analyseInfo="{analysisins_type: 1404,analysisins_format: 2000}" />
|
||||
</div>
|
||||
@ -55,7 +55,7 @@
|
||||
</div>
|
||||
<div class="chartsItem" style="margin-top: 32px">
|
||||
<p class="title">{{month}}月品牌消费水平<text class="unit"></text></p>
|
||||
<div v-if="bandLevelList.length>0">
|
||||
<div v-if="bandLevelList && bandLevelList.length>0">
|
||||
<band-level :data="bandLevelList"/>
|
||||
<analyse :analyseInfo="{analysisins_type: 1503,analysisins_format: 2000}" />
|
||||
</div>
|
||||
@ -63,7 +63,7 @@
|
||||
</div>
|
||||
<div class="chartsItem" style="margin-top: 32px">
|
||||
<p class="title">{{month}}月业态交易值占比</p>
|
||||
<div v-if="businessTypeList.series[0].data.length>0">
|
||||
<div v-if="businessTypeList.series && businessTypeList.series.length>0 && businessTypeList.series[0].data && businessTypeList.series[0].data.length>0">
|
||||
<business-format :data="businessTypeList"/>
|
||||
<analyse :analyseInfo="{analysisins_type: 1405,analysisins_format: 2000}" />
|
||||
</div>
|
||||
@ -92,10 +92,12 @@ import NoData from "./components/noData.vue";
|
||||
import BandLevel from "./components/format/bandLevel.vue";
|
||||
import commercialType from "./commercialType.vue";
|
||||
import {getFieldEnum} from "../../util/dateTime";
|
||||
import SliderPage from "./components/sliderPage.vue";
|
||||
|
||||
export default {
|
||||
name: "businessPortrait",
|
||||
components: {
|
||||
SliderPage,
|
||||
BandLevel,
|
||||
NoData,
|
||||
BestsellerShop,
|
||||
@ -126,7 +128,7 @@ export default {
|
||||
},
|
||||
time: '',//跳转携带的时间
|
||||
menu: {},//手机配置信息
|
||||
transactionList:[],//交易分析数据
|
||||
transactionList:{},//交易分析数据
|
||||
timePeriodList:[],//消费时段分析
|
||||
levelTopList:[],//消费水平排行
|
||||
bandLevelList:[],//品牌消费水平
|
||||
@ -370,12 +372,21 @@ export default {
|
||||
console.log('this.transactionList',this.transactionList)
|
||||
},
|
||||
async getTimePeriodList(){
|
||||
let req = {
|
||||
let req
|
||||
if (this.serviceInfo.SERVERPART_NAME==='安徽驿达'){
|
||||
req = {
|
||||
Province_Code:'340000',
|
||||
Statistics_Date:this.time,
|
||||
Serverpart_ID:this.serviceInfo.Serverpart_ID|| '',
|
||||
TimeSpan:1
|
||||
}
|
||||
}else{
|
||||
req = {
|
||||
Province_Code:'340000',
|
||||
Statistics_Date:this.time,
|
||||
Serverpart_ID:this.serviceInfo.Serverpart_ID || '',
|
||||
TimeSpan:1
|
||||
}
|
||||
}
|
||||
let totalData = await request.$webGet('CommercialApi/Revenue/GetTransactionTimeAnalysis',req)
|
||||
let list = [] //客单占比
|
||||
let numberList = [] //数量数组
|
||||
@ -421,12 +432,21 @@ export default {
|
||||
|
||||
},
|
||||
async getLevelTopList(){
|
||||
let req = {
|
||||
let req
|
||||
if (this.serviceInfo.SERVERPART_NAME==='安徽驿达'){
|
||||
req = {
|
||||
ProvinceCode:'340000',
|
||||
StatisticsDate:this.time,
|
||||
ShowWholeTrade:false
|
||||
}
|
||||
}else{
|
||||
req = {
|
||||
ProvinceCode:'340000',
|
||||
StatisticsDate:this.time,
|
||||
ServerpartId:this.serviceInfo.Serverpart_ID|| '',
|
||||
ShowWholeTrade:false
|
||||
}
|
||||
}
|
||||
let res = {
|
||||
categories:[],
|
||||
series:[]
|
||||
@ -464,12 +484,21 @@ export default {
|
||||
|
||||
},
|
||||
async getBandLevelList(){
|
||||
let req = {
|
||||
let req
|
||||
if (this.serviceInfo.SERVERPART_NAME==='安徽驿达'){
|
||||
req = {
|
||||
ProvinceCode:'340000',
|
||||
StatisticsDate:this.time,
|
||||
ShowWholeBrand:false
|
||||
}
|
||||
}else{
|
||||
req = {
|
||||
ProvinceCode:'340000',
|
||||
StatisticsDate:this.time,
|
||||
ServerpartId:this.serviceInfo.Serverpart_ID|| '',
|
||||
ShowWholeBrand:false
|
||||
}
|
||||
}
|
||||
let res =[]
|
||||
let totalData = await request.$webGet('CommercialApi/Revenue/GetBusinessBrandLevel',req)
|
||||
if (totalData.Result_Data){
|
||||
@ -498,12 +527,21 @@ export default {
|
||||
|
||||
},
|
||||
async getBusinessTypeList(){
|
||||
const req = {
|
||||
let req
|
||||
if (this.serviceInfo.SERVERPART_NAME==='安徽驿达'){
|
||||
req = {
|
||||
ProvinceCode:'340000',
|
||||
StatisticsDate:this.time,
|
||||
BusinessTradeIds:-1
|
||||
}
|
||||
}else{
|
||||
req = {
|
||||
ProvinceCode:'340000',
|
||||
StatisticsDate:this.time,
|
||||
serverpartId:this.serviceInfo.Serverpart_ID|| '',
|
||||
BusinessTradeIds:-1
|
||||
}
|
||||
}
|
||||
const data = await request.$webGet('CommercialApi/Revenue/GetBusinessTradeRevenue',req)
|
||||
let res = []
|
||||
let all = 0
|
||||
@ -532,10 +570,18 @@ export default {
|
||||
|
||||
},
|
||||
async getCompareList(){
|
||||
const req = {
|
||||
let req
|
||||
if (this.serviceInfo.SERVERPART_NAME==='安徽驿达'){
|
||||
req = {
|
||||
Province_Code:'340000',
|
||||
Statistics_Date:this.time,
|
||||
Serverpart_ID:this.serviceInfo.Serverpart_ID|| ''
|
||||
}
|
||||
}else{
|
||||
req = {
|
||||
Province_Code:'340000',
|
||||
Statistics_Date:this.time,
|
||||
Serverpart_ID:this.serviceInfo.Serverpart_ID || ''
|
||||
}
|
||||
}
|
||||
const data = await request.$webGet('CommercialApi/Revenue/GetTransactionConvert',req)
|
||||
let customerOrder = []
|
||||
|
||||
@ -149,6 +149,7 @@
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
<SliderPage :index="1"/>
|
||||
<div class="charts" v-if="!isShowAllProvince">
|
||||
<div class="chartsItem">
|
||||
<div style="display: flex;align-items: center;justify-content: space-between">
|
||||
@ -244,7 +245,7 @@
|
||||
<no-data v-if="!percentEntryData " :type="'car'"/>
|
||||
</div>
|
||||
</div>
|
||||
<div v-else class="otherCharts">
|
||||
<div v-if="isShowAllProvince" class="otherCharts">
|
||||
<div class="list">
|
||||
<span class="itemTitle">车流数据</span>
|
||||
<div class="listItem" v-for="(item,index) in regionList" :key="index" @click="handleNoneChild(item)">
|
||||
@ -386,12 +387,13 @@ import HomePlace from "./components/car/homePlace.vue";
|
||||
import CarTypeTime from "./components/car/carTypeTime.vue";
|
||||
import timeAnalysis from "./components/car/timeAnalysis.vue";
|
||||
import PercentEntry from "./components/car/percentEntry.vue";
|
||||
import MonthTotal from "./components/car/monthTotal.vue";
|
||||
// import MonthTotal from "./components/car/monthTotal.vue";
|
||||
import NoData from "./components/noData.vue";
|
||||
import Analyse from "./components/analyse.vue";
|
||||
import CommercialType from "./commercialType.vue";
|
||||
// import shopCell from "../everdayRenven/components/listUnit.vue";
|
||||
import EntryRate from "./components/car/entryRate.vue";
|
||||
import SliderPage from "./components/sliderPage.vue";
|
||||
import anhuiYestodayRevenueData from "../everdayRenven/components/anhuiYestodayRevenueData";
|
||||
import {getFieldEnum} from "../../util/dateTime";
|
||||
export default {
|
||||
@ -455,7 +457,7 @@ export default {
|
||||
components: {
|
||||
// shopCell,
|
||||
CommercialType,EntryRate,
|
||||
Analyse, NoData, PercentEntry, CarTypeTime, HomePlace, EntryZone,timeAnalysis,MonthTotal},
|
||||
Analyse, NoData, PercentEntry, CarTypeTime, HomePlace, EntryZone,timeAnalysis,SliderPage},
|
||||
computed:{
|
||||
isHaveData(){
|
||||
return true
|
||||
@ -1000,6 +1002,7 @@ export default {
|
||||
let moneyCountYes = []
|
||||
let monetCountMaxYes = 0
|
||||
let infoYes = []
|
||||
console.log('dataYes.Result_Data',dataYes.Result_Data)
|
||||
dataYes.Result_Data.List.forEach(item=>{
|
||||
monthListYes.push(item.Statistics_Month + '月')
|
||||
if (carCountMaxYes<item.Vehicle_Count){
|
||||
@ -1032,6 +1035,7 @@ export default {
|
||||
{name:`${yerYear}年交易额`,data:moneyCountYes,type:'line',index:1,info:infoYes,max:monetCountMaxYes / 10000,year:yerYear}]
|
||||
}
|
||||
this.monthTotalList = res
|
||||
console.log('this.monthTotalList',this.monthTotalList)
|
||||
// categories: ["小型车","中型车","大货车","新能源车"],
|
||||
// series: [{name:'新能源',data:[30,38,20,10]},
|
||||
// {name:'燃油车',data:[20,17,23,32]},
|
||||
|
||||
@ -55,8 +55,10 @@ export default {
|
||||
// 处理传入的数据
|
||||
handleCarData(value) {
|
||||
let res = value
|
||||
if (res && res.length>0){
|
||||
this.drawCharts('hotSales', res[0],{color:["#1E80FF","#E5E8EF"],title:'39.8%',subTitle:'热销商品'})
|
||||
this.drawCharts('unsalableGoods', res[1],{color:["#00C2FF","#E5E8EF"],title:'21.6%',subTitle:'滞销商品'})
|
||||
}
|
||||
},
|
||||
drawCharts(id, data,config) {
|
||||
const ctx = uni.createCanvasContext(id, this);
|
||||
|
||||
97
pages/commercialBI/components/sliderPage.vue
Normal file
97
pages/commercialBI/components/sliderPage.vue
Normal file
@ -0,0 +1,97 @@
|
||||
<template>
|
||||
<!-- <view class="sliderPage">-->
|
||||
<!-- <view class="slider">-->
|
||||
<!-- <view class="rate" :style="{left: (index*15) + 'rpx'}"></view>-->
|
||||
<!-- </view>-->
|
||||
<!-- </view>-->
|
||||
|
||||
<view class="scrollPage">
|
||||
<scroll-view class="scrollBox" scroll-x="true">
|
||||
<view :id="'item'+i" :class="index===i?`scrollItem selectScroll${index}`:'scrollItem'" v-for="(item,i) in pageList" :key="i">{{item}}</view>
|
||||
</scroll-view>
|
||||
</view>
|
||||
</template>
|
||||
<script>
|
||||
export default {
|
||||
name: "sliderPage",
|
||||
data(){
|
||||
return {
|
||||
pageList:["基础信息","车流画像","经营画像","客群画像","交易画像","业态品牌","考核考评","日常巡检"]
|
||||
}
|
||||
},
|
||||
props:{
|
||||
index:{
|
||||
type: Number,
|
||||
default: 0
|
||||
}
|
||||
},
|
||||
onLoad(){
|
||||
|
||||
},
|
||||
methods:{
|
||||
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
.sliderPage{
|
||||
width: 100%;
|
||||
height: 16rpx;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
padding-top: 8rpx;
|
||||
background: #fff;
|
||||
.slider{
|
||||
width: 120rpx;
|
||||
height: 8rpx;
|
||||
background: #e0dfdf;
|
||||
border-radius: 4rpx;
|
||||
position: relative;
|
||||
.rate{
|
||||
position: absolute;
|
||||
top: 0;
|
||||
height: 100%;
|
||||
background: #786B6C;
|
||||
border-radius: 4rpx;
|
||||
width: calc(100% / 8);
|
||||
}
|
||||
}
|
||||
}
|
||||
.scrollPage{
|
||||
width: 100%;
|
||||
height: 30px;
|
||||
box-sizing: border-box;
|
||||
padding: 0 16rpx;
|
||||
.scrollBox{
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
white-space: nowrap;
|
||||
.scrollItem{
|
||||
display: inline-block;
|
||||
height: 100%;
|
||||
box-sizing: border-box;
|
||||
padding: 8rpx 16rpx;
|
||||
font-size: 32rpx;
|
||||
font-family: PingFangSC-Semibold, PingFang SC;
|
||||
font-weight: 600;
|
||||
color: #786B6C;
|
||||
line-height: 40rpx;
|
||||
}
|
||||
.selectScroll1{
|
||||
color: #1E67FF;
|
||||
position: relative;
|
||||
}
|
||||
.selectScroll1:after{
|
||||
content:'';
|
||||
position: absolute;
|
||||
display: inline-block;
|
||||
bottom: 0rpx;
|
||||
left: 10rpx;
|
||||
width: 80%;
|
||||
height: 8rpx;
|
||||
background: #1E67FF;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@ -7,7 +7,7 @@
|
||||
:serverpartName="serviceInfo.SERVERPART_NAME" :spregionTypeName="serviceInfo.SPREGIONTYPE_NAME" :serviceInfo="serviceInfo"
|
||||
:topLeftBg="topLeftBg" :topLeftColor="topLeftColor" :iconObj="iconObj" :haveIconObj="haveIconObj" :detailBoxBg="detailBoxBg"
|
||||
:haveFun="haveFun" :serviceTypeObj="serviceTypeObj" :serviceInfoObj="serviceInfoObj" :pageType="pageType"/>
|
||||
|
||||
<SliderPage :index="5"/>
|
||||
<div class="charts">
|
||||
<div class="chartsItem" >
|
||||
<p class="title">品牌指数</p>
|
||||
@ -74,10 +74,13 @@ import BandNumber from "./components/format/bandNumber.vue";
|
||||
import NoData from "./components/noData.vue";
|
||||
import commercialType from "./commercialType.vue";
|
||||
import {getFieldEnum} from "../../util/dateTime";
|
||||
import SliderPage from "./components/sliderPage.vue";
|
||||
|
||||
export default {
|
||||
name: "businessPortrait",
|
||||
components: {NoData, BandNumber, ConsumptionLevel, BandLevel, FillingDegree, analyse, headerTop,commercialType},
|
||||
components: {
|
||||
SliderPage,
|
||||
NoData, BandNumber, ConsumptionLevel, BandLevel, FillingDegree, analyse, headerTop,commercialType},
|
||||
data() {
|
||||
return {
|
||||
topBg:'linear-gradient(180deg, #C6C1F0 0%, #CECBF3 100%);',//顶部组件的悬浮背景色
|
||||
@ -262,12 +265,17 @@ export default {
|
||||
}
|
||||
const total = await request.$webGet('CommercialApi/BaseInfo/GetServerpartInfo',req)
|
||||
this.serviceInfoObj = total.Result_Data
|
||||
if (total.Result_Data){
|
||||
this.haveFun = {
|
||||
car:total.Result_Data.HASPILOTLOUNGE,
|
||||
charge:total.Result_Data.HASCHARGE ,
|
||||
bady:total.Result_Data.HASMOTHER ,
|
||||
gusetHome:total.Result_Data.HASGUESTROOM
|
||||
}
|
||||
}else{
|
||||
this.haveFun = {}
|
||||
}
|
||||
|
||||
},
|
||||
async changeLabel(item){
|
||||
console.log('item',item)
|
||||
@ -412,12 +420,21 @@ export default {
|
||||
uni.setStorageSync('currentService',res)
|
||||
},
|
||||
async getFillDegreeList(){
|
||||
const req = {
|
||||
let req
|
||||
if (this.serviceInfo.SERVERPART_NAME==='安徽驿达'){
|
||||
req = {
|
||||
ProvinceCode:'340000',
|
||||
StatisticsDate:this.time,
|
||||
BusinessTradeIds:-1
|
||||
}
|
||||
}else{
|
||||
req = {
|
||||
ProvinceCode:'340000',
|
||||
StatisticsDate:this.time,
|
||||
serverpartId:this.serviceInfo.Serverpart_ID,
|
||||
BusinessTradeIds:-1
|
||||
}
|
||||
}
|
||||
const data = await request.$webGet('CommercialApi/Revenue/GetBusinessTradeRevenue',req)
|
||||
let res = []
|
||||
let all = 0
|
||||
@ -526,16 +543,24 @@ export default {
|
||||
this.consumLevelList = res
|
||||
},
|
||||
async getBrandInfoList(){
|
||||
let req = {
|
||||
let req
|
||||
if (this.serviceInfo.SERVERPART_NAME==='安徽驿达'){
|
||||
req = {
|
||||
ProvinceCode:'340000',
|
||||
Statistics_Date:this.time
|
||||
}
|
||||
}else{
|
||||
req = {
|
||||
ProvinceCode:'340000',
|
||||
Serverpart_ID:this.serviceInfo.Serverpart_ID,
|
||||
Statistics_Date:this.time
|
||||
}
|
||||
}
|
||||
let totalData = await request.$webGet('CommercialApi/BaseInfo/GetBrandAnalysis',req)
|
||||
this.brandLabelList = totalData.Result_Data.BrandTag
|
||||
this.brandLabelListNoChange = totalData.Result_Data.BrandTag
|
||||
this.brandInfoList =totalData.Result_Data.ShopBrandList
|
||||
this.brandInfoListNoChange = totalData.Result_Data.ShopBrandList
|
||||
this.brandLabelList = totalData && totalData.Result_Data && totalData.Result_Data.BrandTag?totalData.Result_Data.BrandTag:''
|
||||
this.brandLabelListNoChange = totalData && totalData.Result_Data && totalData.Result_Data.BrandTag?totalData.Result_Data.BrandTag:''
|
||||
this.brandInfoList = totalData && totalData.Result_Data && totalData.Result_Data.ShopBrandList?totalData.Result_Data.ShopBrandList:''
|
||||
this.brandInfoListNoChange = totalData && totalData.Result_Data && totalData.Result_Data.ShopBrandList?totalData.Result_Data.ShopBrandList:''
|
||||
console.log('this.brandInfoList',this.brandInfoList)
|
||||
|
||||
// let res = [{icon:'',name:'老娘舅',company:'老娘舅餐饮股份有限公司',type:0,time:'2019.03-2022.03',label:["中式快餐","30-40岁男性"],info:[9,8,8]},
|
||||
|
||||
@ -7,7 +7,7 @@
|
||||
:serverpartName="serviceInfo.SERVERPART_NAME" :spregionTypeName="serviceInfo.SPREGIONTYPE_NAME" :serviceInfo="serviceInfo"
|
||||
:topLeftBg="topLeftBg" :topLeftColor="topLeftColor" :iconObj="iconObj" :haveIconObj="haveIconObj" :detailBoxBg="detailBoxBg"
|
||||
:haveFun="haveFun" :serviceTypeObj="serviceTypeObj" :serviceInfoObj="serviceInfoObj" :pageType="pageType"/>
|
||||
|
||||
<SliderPage :index="2"/>
|
||||
<div class="charts">
|
||||
<div class="chartsItem">
|
||||
<div style="display: flex;align-items: center;justify-content: space-between">
|
||||
@ -33,7 +33,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<p class="title">{{thisMonth?thisMonth:'-'}}月客群特征分析</p>
|
||||
<div v-if="genderBubbleList.res.length>0">
|
||||
<div v-if="genderBubbleList.res && genderBubbleList.res.length>0">
|
||||
<customer-second :data="genderBubbleList" />
|
||||
<analyse :analyseInfo="{analysisins_type: 1203,analysisins_format: 2000}" />
|
||||
</div>
|
||||
@ -41,7 +41,7 @@
|
||||
</div>
|
||||
<div class="chartsItem" style="margin-top: 32px">
|
||||
<p class="title">{{thisMonth?thisMonth:'-'}}月客群消费偏好</p>
|
||||
<div v-if="consterPreferList.series.length>0">
|
||||
<div v-if="consterPreferList.series && consterPreferList.series.length>0">
|
||||
<consum-prefer :data="consterPreferList" />
|
||||
<analyse :analyseInfo="{analysisins_type: 1204,analysisins_format: 2000}" />
|
||||
</div>
|
||||
@ -49,7 +49,7 @@
|
||||
</div>
|
||||
<div class="chartsItem" style="margin-top: 32px">
|
||||
<p class="title">{{thisMonth?thisMonth:'-'}}月客群消费水平</p>
|
||||
<div v-if="consumptionLevelList.length>0">
|
||||
<div v-if="consumptionLevelList && consumptionLevelList.length>0">
|
||||
<consumption-level :data="consumptionLevelList"/>
|
||||
<analyse :analyseInfo="{analysisins_type: 1205,analysisins_format: 2000}" />
|
||||
</div>
|
||||
@ -57,7 +57,7 @@
|
||||
</div>
|
||||
<div class="chartsItem" style="margin-top: 32px">
|
||||
<p class="title">{{thisMonth?thisMonth:'-'}}月业态客单偏好</p>
|
||||
<div v-if="businessTypeList.length>0">
|
||||
<div v-if="businessTypeList && businessTypeList.length>0">
|
||||
<business-type :data="businessTypeList"></business-type>
|
||||
<analyse :analyseInfo="{analysisins_type: 1206,analysisins_format: 2000}" />
|
||||
</div>
|
||||
@ -79,9 +79,12 @@ import BusinessType from "./components/guest/businessType.vue";
|
||||
import NoData from "./components/noData.vue";
|
||||
import commercialType from "./commercialType.vue";
|
||||
import {getFieldEnum} from "../../util/dateTime";
|
||||
import SliderPage from "./components/sliderPage.vue";
|
||||
export default {
|
||||
name: "guestPortrait",
|
||||
components:{NoData, BusinessType, ConsumptionLevel, ConsumPrefer, analyse, headerTop,customerFirst,customerSecond,commercialType},
|
||||
components:{
|
||||
SliderPage,
|
||||
NoData, BusinessType, ConsumptionLevel, ConsumPrefer, analyse, headerTop,customerFirst,customerSecond,commercialType},
|
||||
data() {
|
||||
return {
|
||||
topBg:'linear-gradient(180deg, #A1D0C1 0%, #B1D9CD 100%);',//顶部组件的悬浮背景色
|
||||
@ -273,7 +276,7 @@ export default {
|
||||
const req = {
|
||||
Province_Code:'340000',
|
||||
Statistics_Date:time,
|
||||
Serverpart_ID:this.serviceInfo.Serverpart_ID || '',
|
||||
Serverpart_ID:this.serviceInfo.SERVERPART_NAME==='安徽驿达'?null:this.serviceInfo.Serverpart_ID,
|
||||
ShowConsumptionLevel:true,
|
||||
ShowConvertRate:true
|
||||
}
|
||||
@ -304,7 +307,7 @@ export default {
|
||||
const req = {
|
||||
statisticsType:1,
|
||||
provinceCode:'340000',
|
||||
serverpartId:this.serviceInfo.Serverpart_ID||'',
|
||||
serverpartId:this.serviceInfo.SERVERPART_NAME==='安徽驿达'?null:this.serviceInfo.Serverpart_ID,
|
||||
statisticsMonth:this.$util.getThisMonth(time)
|
||||
}
|
||||
let totalData = await request.$webGet('CommercialApi/Customer/GetCustomerRatio',req)
|
||||
@ -318,7 +321,7 @@ export default {
|
||||
})
|
||||
const bubbleReq = {
|
||||
provinceCode:'340000',
|
||||
serverpartId:this.serviceInfo.Serverpart_ID||'',
|
||||
serverpartId:this.serviceInfo.SERVERPART_NAME==='安徽驿达'?null:this.serviceInfo.Serverpart_ID,
|
||||
statisticsMonth:this.$util.getThisMonth(time)
|
||||
}
|
||||
|
||||
@ -350,13 +353,22 @@ export default {
|
||||
}else{
|
||||
time = this.endTime
|
||||
}
|
||||
|
||||
const req = {
|
||||
let req
|
||||
if (this.serviceInfo.SERVERPART_NAME==='安徽驿达'){
|
||||
req = {
|
||||
statisticsType:1,
|
||||
startMonth:this.$util.getThisMonth(time),
|
||||
endMonth:this.$util.getThisMonth(time),
|
||||
provinceCode: '340000',
|
||||
serverpartId: this.serviceInfo.Serverpart_ID||''
|
||||
}
|
||||
}else{
|
||||
req = {
|
||||
statisticsType:1,
|
||||
startMonth:this.$util.getThisMonth(time),
|
||||
endMonth:this.$util.getThisMonth(time),
|
||||
provinceCode: '340000',
|
||||
serverpartId: this.serviceInfo.Serverpart_ID || ''
|
||||
}
|
||||
}
|
||||
const data = await request.$webGet('CommercialApi/Customer/GetCustomerSaleRatio',req)
|
||||
let res = {
|
||||
@ -403,7 +415,7 @@ export default {
|
||||
}
|
||||
const req = {
|
||||
provinceCode:'340000',
|
||||
serverpartId:this.serviceInfo.Serverpart_ID||'',
|
||||
serverpartId:this.serviceInfo.SERVERPART_NAME==='安徽驿达'?null:this.serviceInfo.Serverpart_ID,
|
||||
statisticsMonth:this.$util.getThisMonth(time)
|
||||
}
|
||||
const data = await request.$webGet('CommercialApi/Customer/GetCustomerConsumeRatio',req)
|
||||
@ -430,10 +442,18 @@ export default {
|
||||
}else{
|
||||
time = this.endTime
|
||||
}
|
||||
const req = {
|
||||
let req
|
||||
if (this.serviceInfo.SERVERPART_NAME==='安徽驿达'){
|
||||
req = {
|
||||
ProvinceCode:'340000',
|
||||
StatisticsDate:time,
|
||||
serverpartId:this.serviceInfo.Serverpart_ID || ''
|
||||
}
|
||||
}else{
|
||||
req = {
|
||||
ProvinceCode:'340000',
|
||||
StatisticsDate:time,
|
||||
serverpartId:this.serviceInfo.Serverpart_ID
|
||||
}
|
||||
}
|
||||
const data = await request.$webGet('CommercialApi/Revenue/GetBusinessTradeRevenue',req)
|
||||
let res = []
|
||||
|
||||
@ -7,7 +7,7 @@
|
||||
:serverpartName="serviceInfo.SERVERPART_NAME" :spregionTypeName="serviceInfo.SPREGIONTYPE_NAME" :serviceInfo="serviceInfo"
|
||||
:topLeftBg="topLeftBg" :topLeftColor="topLeftColor" :iconObj="iconObj" :haveIconObj="haveIconObj" :detailBoxBg="detailBoxBg"
|
||||
:haveFun="haveFun" :serviceTypeObj="serviceTypeObj" :serviceInfoObj="serviceInfoObj" :pageType="pageType"/>
|
||||
|
||||
<SliderPage :index="3"/>
|
||||
<div class="charts">
|
||||
<div class="chartsItem">
|
||||
<p class="title">营收分析<span class="dateText">{{lastDay}}</span></p>
|
||||
@ -141,7 +141,7 @@
|
||||
<text v-if="selectTab===1" style="margin-top: 12px">单位: 笔</text>
|
||||
<text v-if="selectTab===2" style="margin-top: 12px">单位: 元</text>
|
||||
</div>
|
||||
<div v-if="moneyCompareList.series.length>0">
|
||||
<div v-if="moneyCompareList.series && moneyCompareList.series.length>0">
|
||||
<money-compare :data="moneyCompareList"/>
|
||||
</div>
|
||||
<no-data v-else/>
|
||||
@ -151,7 +151,7 @@
|
||||
<p class="title" style="margin-top: 20px">营收同比分析</p>
|
||||
<text style="margin-top: 12px">单位: 万元</text>
|
||||
</div>
|
||||
<div v-if="trendsList.series.length>0">
|
||||
<div v-if="trendsList.series && trendsList.series.length>0">
|
||||
<revenue-trends :data="trendsList"/>
|
||||
</div>
|
||||
<no-data v-else/>
|
||||
@ -198,10 +198,13 @@ import request from '@/util/index.js'
|
||||
import NoData from "./components/noData.vue";
|
||||
import commercialType from "./commercialType.vue";
|
||||
import {getFieldEnum} from "../../util/dateTime";
|
||||
import SliderPage from "./components/sliderPage.vue";
|
||||
|
||||
export default {
|
||||
name: "businessPortrait",
|
||||
components: {NoData, RevenueTrends, MoneyCompare, ContractGuarantee, RevenueAnalysis, headerTop,analyse,commercialType},
|
||||
components: {
|
||||
SliderPage,
|
||||
NoData, RevenueTrends, MoneyCompare, ContractGuarantee, RevenueAnalysis, headerTop,analyse,commercialType},
|
||||
data() {
|
||||
return {
|
||||
topBg:'linear-gradient(180deg, #D9CCEF 0%, #DED3F2 100%);',
|
||||
@ -415,7 +418,9 @@ export default {
|
||||
PageSize:10
|
||||
}
|
||||
const data = await request.$webPost('CommercialApi/Analysis/GetANALYSISINSList',req)
|
||||
if (data.Result_Data.List && data.Result_Data.List.length>0){
|
||||
this.monthNoticeText = data.Result_Data.List[0].ANALYSIS_CONTENT
|
||||
}
|
||||
|
||||
|
||||
},
|
||||
@ -437,7 +442,9 @@ export default {
|
||||
PageSize:10
|
||||
}
|
||||
const totalData = await request.$webPost('CommercialApi/Analysis/GetANALYSISINSList',reqYear)
|
||||
if (totalData.Result_Data.List && totalData.Result_Data.List.length>0){
|
||||
this.yearNoticeText = totalData.Result_Data.List[0].ANALYSIS_CONTENT
|
||||
}
|
||||
},
|
||||
async nearestService(){
|
||||
let seat = uni.getStorageSync('seatInfo');
|
||||
@ -469,7 +476,7 @@ export default {
|
||||
this.showNoticeYear = false
|
||||
},
|
||||
async getSummaryMonth(){
|
||||
let currentService = uni.getStorageSync('currentService')
|
||||
// let currentService = uni.getStorageSync('currentService')
|
||||
console.log('this.time',this.time)
|
||||
const date = new Date(this.time)
|
||||
let y = date.getFullYear()
|
||||
@ -485,7 +492,7 @@ export default {
|
||||
pushProvinceCode:'340000',
|
||||
Statistics_StartDate:`${y}-${m}-01`,
|
||||
Statistics_Date:`${y}-${m}-${d}`,
|
||||
Serverpart_ID:currentService.Serverpart_ID
|
||||
Serverpart_ID:this.serviceInfo.SERVERPART_NAME==='安徽驿达'?null:this.serviceInfo.Serverpart_ID
|
||||
}
|
||||
const data = await request.$webGet('CommercialApi/Revenue/GetSummaryRevenue',req)
|
||||
console.log('data22222',data)
|
||||
@ -542,10 +549,18 @@ export default {
|
||||
this.moneyCompareList = this.revenue.list
|
||||
},
|
||||
async getMoneyCompareList(){
|
||||
let req = {
|
||||
let req
|
||||
if (this.serviceInfo.SERVERPART_NAME==='安徽驿达'){
|
||||
req = {
|
||||
StatisticsDate:this.time,
|
||||
ServerpartId:this.serviceInfo.Serverpart_ID || ''
|
||||
}
|
||||
}else{
|
||||
req = {
|
||||
StatisticsDate:this.time,
|
||||
ServerpartId:this.serviceInfo.Serverpart_ID ||''
|
||||
}
|
||||
}
|
||||
|
||||
const data = await request.$webGet('CommercialApi/Revenue/GetRevenueCompare',req)
|
||||
let RevenueAmount = [] //营收金额 除以10000的金额
|
||||
let normalAmount = [] //不除以10000的金额
|
||||
@ -555,6 +570,7 @@ export default {
|
||||
let TicketMax = 0
|
||||
let AvgTicketAmountList = [] // 客单均价
|
||||
let AvgTicketMax = 0
|
||||
if (data.Result_Data.RevenueAmountList && data.Result_Data.RevenueAmountList.length>0){
|
||||
data.Result_Data.RevenueAmountList.forEach(item=>{
|
||||
let list = []
|
||||
let listNormal = []
|
||||
@ -571,6 +587,8 @@ export default {
|
||||
normalAmount.push({name:item.name,data:listNormal})
|
||||
RevenueAmount.push({name:item.name,data:list,qoqAdd:qoqAddList,holiday: item.value})
|
||||
})
|
||||
}
|
||||
if (data.Result_Data.TicketCountList && data.Result_Data.TicketCountList.length>0){
|
||||
data.Result_Data.TicketCountList.forEach(item=>{
|
||||
let list = []
|
||||
let qoqAddList = [] //环比增加
|
||||
@ -584,6 +602,8 @@ export default {
|
||||
})
|
||||
TicketCountList.push({name:item.name,data:list,qoqAdd:qoqAddList,holiday: item.value})
|
||||
})
|
||||
}
|
||||
if (data.Result_Data.AvgTicketAmountList && data.Result_Data.AvgTicketAmountList.length>0){
|
||||
data.Result_Data.AvgTicketAmountList .forEach(item=>{
|
||||
let list = []
|
||||
let qoqAddList = [] //环比增加
|
||||
@ -597,6 +617,7 @@ export default {
|
||||
})
|
||||
AvgTicketAmountList.push({name:item.name,data:list,qoqAdd:qoqAddList,holiday: item.value})
|
||||
})
|
||||
}
|
||||
// 因为有三个选项卡 把三种情况要展示的内容 放在一个对象里面 三个对象放一个数组里面 点击选项卡切换显示的对象就可以了
|
||||
this.revenueAll = [
|
||||
{
|
||||
@ -655,18 +676,37 @@ export default {
|
||||
let date = new Date(this.time)
|
||||
let y = date.getFullYear()
|
||||
// 查今年去年两年的数据
|
||||
let req = {
|
||||
let req
|
||||
let yesReq
|
||||
if (this.serviceInfo.SERVERPART_NAME==='安徽驿达'){
|
||||
req={
|
||||
ProvinceCode:'340000',
|
||||
StatisticsDate:y,
|
||||
StatisticsType:1,
|
||||
ServerpartId:this.serviceInfo.Serverpart_ID || ''
|
||||
}
|
||||
let yesReq = {
|
||||
}else{
|
||||
req ={
|
||||
ProvinceCode:'340000',
|
||||
StatisticsDate:y,
|
||||
StatisticsType:1,
|
||||
ServerpartId:this.serviceInfo.Serverpart_ID ||''
|
||||
}
|
||||
}
|
||||
if (this.serviceInfo.SERVERPART_NAME==='安徽驿达'){
|
||||
yesReq={
|
||||
ProvinceCode:'340000',
|
||||
StatisticsDate:y - 1,
|
||||
StatisticsType:1,
|
||||
ServerpartId:this.serviceInfo.Serverpart_ID || ''
|
||||
}
|
||||
}else{
|
||||
yesReq = {
|
||||
ProvinceCode:'340000',
|
||||
StatisticsDate:y - 1,
|
||||
StatisticsType:1,
|
||||
ServerpartId:this.serviceInfo.Serverpart_ID ||''
|
||||
}
|
||||
}
|
||||
|
||||
const data = await request.$webGet('CommercialApi/Revenue/GetRevenueTrend',req)
|
||||
const yesData = await request.$webGet('CommercialApi/Revenue/GetRevenueTrend',yesReq)
|
||||
let list = []
|
||||
@ -714,10 +754,11 @@ export default {
|
||||
pushProvinceCode:'340000',
|
||||
Statistics_StartDate:`${y}-${m}-01`,
|
||||
Statistics_Date:this.time,
|
||||
Serverpart_ID:this.serviceInfo.Serverpart_ID || ''
|
||||
Serverpart_ID:this.serviceInfo.SERVERPART_NAME==='安徽驿达'?null:this.serviceInfo.Serverpart_ID
|
||||
}
|
||||
const data = await request.$webGet('CommercialApi/Revenue/GetSummaryRevenue',req)
|
||||
let all = 0
|
||||
if (data.Result_Data && data.Result_Data.BusinessTypeList && data.Result_Data.BusinessTypeList.length>0){
|
||||
data.Result_Data.BusinessTypeList.forEach(item=>{
|
||||
all +=Number(item.value)
|
||||
})
|
||||
@ -729,19 +770,27 @@ export default {
|
||||
ectocyst:data.Result_Data.BusinessTypeList[0].rate
|
||||
}
|
||||
this.revenueType = res
|
||||
}else{
|
||||
this.revenueType = null
|
||||
}
|
||||
},
|
||||
monthYearPlan(){
|
||||
const monthDate= {
|
||||
Province_Code:'340000',
|
||||
Serverpart_ID:this.serviceInfo.Serverpart_ID || '',
|
||||
Serverpart_ID:this.serviceInfo.SERVERPART_NAME==='安徽驿达'?null:this.serviceInfo.Serverpart_ID,
|
||||
Statistics_Date:this.time
|
||||
}
|
||||
request.$webGet('CommercialApi/Revenue/GetRevenueBudget',monthDate).then(res=>{
|
||||
// 赋值给data中的这个对象 在请求完之后会进行统一的数据处理
|
||||
this.plan = res.Result_Data
|
||||
if (this.plan){
|
||||
if (this.plan && this.plan.RevenueMonth_Amount){
|
||||
this.plan.percentageMonth = (res.Result_Data.RevenueMonth_Amount / res.Result_Data.BudgetMonth_Amount*100).toFixed(2)
|
||||
// this.plan.percentageMonth = 80
|
||||
}
|
||||
if (this.plan && this.plan.RevenueYear_Amount){
|
||||
this.plan.percentageYear = (res.Result_Data.RevenueYear_Amount / res.Result_Data.BudgetYear_Amount*100).toFixed(2)
|
||||
}
|
||||
// this.plan.percentageMonth = 80
|
||||
// let date = new Date(this.time)
|
||||
// let nowDay = date.getDate()
|
||||
// let day = this.$util.getThisMonthDay(this.time)
|
||||
@ -757,6 +806,7 @@ export default {
|
||||
this.plan.BudgetMonth_Amount = this.$util.fmoney(res.Result_Data.BudgetMonth_Amount)
|
||||
this.plan.RevenueYear_Amount = this.$util.fmoney(res.Result_Data.RevenueYear_Amount)
|
||||
this.plan.BudgetYear_Amount = this.$util.fmoney(res.Result_Data.BudgetYear_Amount)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
500
pages/commercialBI/serviceMessage.vue
Normal file
500
pages/commercialBI/serviceMessage.vue
Normal file
@ -0,0 +1,500 @@
|
||||
<template>
|
||||
<view class="main">
|
||||
<div class="headerTopBox" >
|
||||
<div class="header" :style="{height:menu.height + 'px',top:menu.top+'px'}">
|
||||
<image class="backArrow" src="https://eshangtech.com/ShopICO/ahyd-BID/examine/leftArrowWhite.svg" @click="handleBack"/>
|
||||
<div class="timeSelect">
|
||||
<img class="selectIcon" src="https://eshangtech.com/ShopICO/ahyd-BID/newCommercial/selectDateIcon.svg"/>
|
||||
<picker mode="date" :value="searchText" :end="lastDay" @change="changeAllProvinceSearch" >
|
||||
<view class="time">
|
||||
<view class="text">{{ searchText }}</view>
|
||||
<image class="icon" src="https://eshangtech.com/ShopICO/ahyd-BID/newCommercial/arrow_bottom.svg"></image>
|
||||
</view>
|
||||
</picker>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="picker" :style="{top:(menu.bottom + 24)+'px'}" @click="handleGoSelectService">
|
||||
<div class="selectService" >
|
||||
<image class="img" src="https://eshangtech.com/ShopICO/ahyd-BID/commercial/fixed.svg"></image>
|
||||
<view class="select">
|
||||
<view class="content">
|
||||
<view class="uni-input">{{serviceInfo.SERVERPART_NAME}}</view>
|
||||
<p class="area" v-if="serviceInfo.Serverpart_ID">{{serviceInfo.SPREGIONTYPE_NAME}}</p>
|
||||
<image class="rightArrow" src="https://eshangtech.com/ShopICO/ahyd-BID/commercial/rightArrow.svg"></image>
|
||||
</view>
|
||||
</view>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="otherCharts">
|
||||
<div class="list">
|
||||
<span class="itemTitle">车流数据</span>
|
||||
<div class="listItem" v-for="(item,index) in regionList" :key="index" @click="handleNoneChild(item)">
|
||||
<div class="listBox" :style="{borderBottom:item.showChild?'1px solid #D9DBE0':'0px solid #D9DBE0'}">
|
||||
<div class="itemTop">
|
||||
<div class="itemLeft">
|
||||
<div style="display: flex;align-items: center">
|
||||
<img class="itemFixed" src="https://eshangtech.com/ShopICO/ahyd-BID/newCommercial/fixedIcon.svg"/>
|
||||
<span class="serverName">{{serviceInfo.SERVERPART_NAME?serviceInfo.SERVERPART_NAME.split('服务区')[0]:''}}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="itemRight">
|
||||
<div class="entryRate">
|
||||
<text class="entryValue">{{item.Entry_Rate ||''}}%</text>
|
||||
<text class="entryLabel">入区率</text>
|
||||
</div>
|
||||
<img class="img" :style="{transform:item.showChild?'':'rotate(-90deg)'}" src="https://eshangtech.com/ShopICO/ahyd-BID/newCommercial/arrow_bottom.svg"/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="childList" v-if="item.showChild" >
|
||||
<view class="childItem">
|
||||
<text class="childValue">{{item.RevenueAmount?$util.fmoney($util.getMoney(item.RevenueAmount/10000)):''}}</text>
|
||||
<text class="childLabel">营收 /万元</text>
|
||||
</view>
|
||||
<view class="childItem">
|
||||
<text class="childValue">{{item.AvgVehicleAmount ||''}}</text>
|
||||
<text class="childLabel">单车 /元</text>
|
||||
</view>
|
||||
<view class="childItem">
|
||||
<text class="childValue">{{item.Vehicle_Count?$util.fmoney($util.getMoney(item.Vehicle_Count/10000)):''}}</text>
|
||||
<text class="childLabel">入区 /万辆</text>
|
||||
</view>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</view>
|
||||
</template>
|
||||
<script>
|
||||
import request from '@/util/index.js'
|
||||
export default {
|
||||
name: "serviceMessage",
|
||||
data(){
|
||||
const lastDay = this.$util.cutDate(new Date(), 'YYYY-MM-DD', -1)
|
||||
return {
|
||||
menu:{}, //手机参数
|
||||
serviceInfo:{},
|
||||
lastDay:lastDay,
|
||||
searchText:'',
|
||||
regionList:[]
|
||||
}
|
||||
},
|
||||
onLoad(){
|
||||
this.menu = uni.getMenuButtonBoundingClientRect()
|
||||
let storeServiceInfo = uni.getStorageSync('currentService')
|
||||
let nearServiceInfo = uni.getStorageSync('nearService')
|
||||
if (!storeServiceInfo){
|
||||
this.serviceInfo = nearServiceInfo
|
||||
}else{
|
||||
this.serviceInfo = storeServiceInfo
|
||||
}
|
||||
let storeTime = uni.getStorageSync('lastDay')
|
||||
if (storeTime){
|
||||
this.time = storeTime
|
||||
}
|
||||
this.searchText = this.time
|
||||
console.log('this.serviceInfo',this.serviceInfo)
|
||||
this.getCarData()
|
||||
},
|
||||
methods:{
|
||||
handleBack(){
|
||||
uni.switchTab({
|
||||
url: '/pages/index/index'
|
||||
})
|
||||
},
|
||||
async changeAllProvinceSearch(e){
|
||||
this.searchText = e.detail.value
|
||||
},
|
||||
handleGoSelectService() {
|
||||
uni.navigateTo({
|
||||
url:`/pages/map/index?chartType=${true}&page=/pages/commercialBI/carPortrait&serviceInfo=${JSON.stringify(this.serviceInfo)}`
|
||||
})
|
||||
},
|
||||
getCarData(){
|
||||
request.$webGet('CommercialApi/BigData/GetMonthAnalysis',{
|
||||
// StatisticsDate: this.time,
|
||||
StartDate:this.time,
|
||||
EndDate:this.time,
|
||||
// Serverpart_ID :this.serviceInfo.Serverpart_ID!==0?this.serviceInfo.Serverpart_ID:null,
|
||||
// Serverpart_ID :419,
|
||||
}).then(res=>{
|
||||
this.carData = res.Result_Data.List
|
||||
this.carData.forEach(item=>{
|
||||
item.Serverpart_ID = this.serviceInfo.Serverpart_ID
|
||||
item.showChild = false
|
||||
})
|
||||
this.regionList = this.carData
|
||||
console.log('this.carData',this.carData)
|
||||
// let sumObj = {
|
||||
// Serverpart_Name:'',
|
||||
// Serverpart_Region:'',
|
||||
// SectionFlow_Count:0,
|
||||
// Vehicle_Count:0,
|
||||
// showChild:false
|
||||
// }
|
||||
// this.carData.forEach(item=>{
|
||||
// sumObj.Serverpart_Name = item.Serverpart_Name
|
||||
// sumObj.Serverpart_Region = item.Serverpart_Region
|
||||
// sumObj.SectionFlow_Count += item.SectionFlow_Count
|
||||
// sumObj.Vehicle_Count += item.Vehicle_Count
|
||||
// })
|
||||
// if (sumObj.Vehicle_Count && sumObj.SectionFlow_Count){
|
||||
// sumObj.Entry_Rate = ((sumObj.Vehicle_Count / sumObj.SectionFlow_Count)*100).toFixed(2)
|
||||
// }
|
||||
// console.log('sumObj',sumObj)
|
||||
// sumObj.Vehicle_Count = this.$util.fmoney(this.$util.getMoney(sumObj.Vehicle_Count / 10000),2)
|
||||
// this.regionList = [sumObj]
|
||||
})
|
||||
},
|
||||
handleNoneChild(obj){
|
||||
this.regionList.forEach(item=>{
|
||||
if (item.name === obj.name){
|
||||
item.showChild = !item.showChild
|
||||
}
|
||||
})
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
.main {
|
||||
width: 100%;
|
||||
background: #fff;
|
||||
min-height: 100vh;
|
||||
overflow: hidden;
|
||||
.headerTopBox{
|
||||
width: 100%;
|
||||
//height: 152px;
|
||||
height: 324px;
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
background: linear-gradient(90deg, #60AAFF 0%,#3E74FF 100%);
|
||||
.header{
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
padding: 0 16px;
|
||||
box-sizing: border-box;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
.backArrow{
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
margin-right: 16px;
|
||||
}
|
||||
.timeSelect{
|
||||
display: flex;
|
||||
align-items: center;
|
||||
.selectIcon{
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
}
|
||||
.time{
|
||||
display: flex;
|
||||
align-items: center;
|
||||
.text{
|
||||
margin: 0 5px;
|
||||
color: #fff;
|
||||
}
|
||||
.icon{
|
||||
width: 18px;
|
||||
height: 18px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.picker{
|
||||
position: absolute;
|
||||
left: 16px;
|
||||
.selectService{
|
||||
display: flex;
|
||||
align-items: center;
|
||||
.img{
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
z-index: 2;
|
||||
}
|
||||
.select{
|
||||
height: 32px;
|
||||
background: #F8F8FA;
|
||||
border-radius: 0 16px 16px 0;
|
||||
transform: translateX(-20px);
|
||||
box-sizing: border-box;
|
||||
padding-left: 25px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
.content{
|
||||
display: flex;
|
||||
align-items: center;
|
||||
.uni-input{
|
||||
padding: 0;
|
||||
background: transparent;
|
||||
font-size: 14px;
|
||||
font-family: PingFangSC-Semibold, PingFang SC;
|
||||
font-weight: 600;
|
||||
color: #160002;
|
||||
}
|
||||
.area{
|
||||
font-size: 12px;
|
||||
font-family: PingFangSC-Regular, PingFang SC;
|
||||
font-weight: 400;
|
||||
color: #786B6C;
|
||||
line-height: 40px;
|
||||
margin-left: 4px;
|
||||
}
|
||||
.rightArrow{
|
||||
width: 24px;
|
||||
height: 12px;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.otherCharts{
|
||||
width: 100%;
|
||||
box-sizing: border-box;
|
||||
padding: 0 16px;
|
||||
/*日结上传*/
|
||||
.chartsTop {
|
||||
width: 100%;
|
||||
box-sizing: border-box;
|
||||
padding: 0 16px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
.left{
|
||||
display: flex;
|
||||
justify-content: flex-start;
|
||||
.serviceArea{
|
||||
box-sizing: border-box;
|
||||
.picker{
|
||||
.selectService{
|
||||
display: flex;
|
||||
align-items: center;
|
||||
.img{
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
z-index: 2;
|
||||
}
|
||||
.select{
|
||||
height: 32px;
|
||||
background: #F8F8FA;
|
||||
border-radius: 0 16px 16px 0;
|
||||
transform: translateX(-20px);
|
||||
box-sizing: border-box;
|
||||
padding-left: 25px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
.content{
|
||||
display: flex;
|
||||
align-items: center;
|
||||
.uni-input{
|
||||
padding: 0;
|
||||
background: transparent;
|
||||
font-size: 14px;
|
||||
font-family: PingFangSC-Semibold, PingFang SC;
|
||||
font-weight: 600;
|
||||
color: #160002;
|
||||
}
|
||||
.area{
|
||||
font-size: 12px;
|
||||
font-family: PingFangSC-Regular, PingFang SC;
|
||||
font-weight: 400;
|
||||
color: #786B6C;
|
||||
line-height: 40px;
|
||||
margin-left: 4px;
|
||||
}
|
||||
.rightArrow{
|
||||
width: 24px;
|
||||
height: 12px;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
.right{
|
||||
.time {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
margin-right: 4px;
|
||||
.day {
|
||||
font-size: 32rpx;
|
||||
font-family: PingFangSC-Regular, PingFang SC;
|
||||
font-weight: 400;
|
||||
color: #782717;
|
||||
line-height: 44rpx;
|
||||
margin-right: 4px;
|
||||
}
|
||||
.uni-input {
|
||||
font-size: 14px;
|
||||
font-family: PingFangSC-Regular, PingFang SC;
|
||||
font-weight: 400;
|
||||
color: #ae664e;
|
||||
line-height: 36rpx;
|
||||
}
|
||||
.icon {
|
||||
width: 24px;
|
||||
height: 16px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.list{
|
||||
margin-top: 24px;
|
||||
box-sizing: border-box;
|
||||
padding-bottom: 12px;
|
||||
.itemTitle{
|
||||
display: block;
|
||||
font-size: 16px;
|
||||
font-family: PingFangSC-Semibold, PingFang SC;
|
||||
font-weight: 600;
|
||||
color: #160002;
|
||||
margin-bottom: 12px;
|
||||
}
|
||||
.listItem{
|
||||
margin-bottom: 12px;
|
||||
border: 1px solid #D9DBE0;
|
||||
border-radius: 8px;
|
||||
position: relative;
|
||||
.bg{
|
||||
position: absolute;
|
||||
right: 0;top: 0;
|
||||
width: 97px;
|
||||
height: 97px;
|
||||
}
|
||||
.listBox{
|
||||
width: 100%;
|
||||
box-sizing: border-box;
|
||||
padding: 12px 16px;
|
||||
background: linear-gradient(314deg, #EAEFFF 0%, #F3F5FF 32%, #F5FCFF 50%, #F0F7FF 67%, #DBE5FF 100%);
|
||||
border-bottom: 1px solid #D9DBE0;
|
||||
border-radius: 8px;
|
||||
.itemTop{
|
||||
width: 100%;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
.itemLeft{
|
||||
display: inline-block;
|
||||
padding: 4px 12px;
|
||||
background: rgba(26, 95, 255, 0.1);
|
||||
border-radius: 14px;
|
||||
.itemFixed{
|
||||
width: 12px;
|
||||
height: 14px;
|
||||
margin-right: 4px;
|
||||
}
|
||||
.serverName{
|
||||
font-size: 20px;
|
||||
font-family: DINAlternate-Bold, DINAlternate;
|
||||
font-weight: bold;
|
||||
white-space: nowrap;
|
||||
color: #1A5FFF;
|
||||
line-height: 22px
|
||||
}
|
||||
}
|
||||
.itemRight{
|
||||
display: flex;
|
||||
align-items: center;
|
||||
.entryRate{
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
.entryValue{
|
||||
font-size: 18px;
|
||||
font-family: DINAlternate-Bold, DINAlternate;
|
||||
font-weight: bold;
|
||||
color: red;
|
||||
line-height: 24px;
|
||||
white-space: nowrap;
|
||||
}
|
||||
.entryLabel{
|
||||
font-size: 14px;
|
||||
font-family: PingFangSC-Regular, PingFang SC;
|
||||
font-weight: 400;
|
||||
color: #786B6C;
|
||||
line-height: 20px;
|
||||
}
|
||||
}
|
||||
.img{
|
||||
width: 26px;
|
||||
height: 14px;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
.itemDetail{
|
||||
margin-top: 16px;
|
||||
width: 100%;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
.message{
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
.cirRate{
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
}
|
||||
.label{
|
||||
font-size: 14px;
|
||||
font-family: PingFangSC-Regular, PingFang SC;
|
||||
font-weight: 400;
|
||||
color: #786B6C;
|
||||
line-height: 20px
|
||||
}
|
||||
.value{
|
||||
font-size: 20px;
|
||||
font-family: DINAlternate-Bold, DINAlternate;
|
||||
font-weight: bold;
|
||||
color: #160002;
|
||||
line-height: 24px;
|
||||
white-space: nowrap;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.childList{
|
||||
border-radius: 8px 8px 0 0;
|
||||
box-sizing: border-box;
|
||||
margin-left: 16px;
|
||||
width: calc(100% - 32px);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
padding: 8px;
|
||||
.childItem{
|
||||
width: calc(100% / 3);
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
.childLabel{
|
||||
font-size: 14px;
|
||||
font-family: PingFangSC-Regular, PingFang SC;
|
||||
font-weight: 400;
|
||||
color: #786B6C;
|
||||
line-height: 20px
|
||||
}
|
||||
.childValue{
|
||||
font-size: 18px;
|
||||
font-family: DINAlternate-Bold, DINAlternate;
|
||||
font-weight: bold;
|
||||
color: #160002;
|
||||
line-height: 24px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@ -24,7 +24,9 @@
|
||||
<swiper class="swiperBox" :current="currentSwiper" @change="changeSwiper">
|
||||
<swiper-item class="swiperItem" v-for="(item,index) in carSwiperList" :key="index">
|
||||
<view v-if="item!=='previous' && item!=='next'" class="header" :style="{background:`url(${item})`}">
|
||||
|
||||
<view class="sliderBox">
|
||||
<SliderPage :index="type===1?1:0"/>
|
||||
</view>
|
||||
</view>
|
||||
</swiper-item>
|
||||
</swiper>
|
||||
@ -37,7 +39,7 @@
|
||||
</view>
|
||||
<view class="content">
|
||||
<view v-if="type===1" class="serviceList" style="height:calc(100vh - 260px);">
|
||||
<view v-if="serviceList.length>0">
|
||||
<view v-if="serviceList && serviceList.length>0">
|
||||
<view class="serviceItem" v-for="(item,index) in serviceList" :key="index" >
|
||||
<view class="itemTitle">
|
||||
<span class="title">{{item.SERVERPART_NAME}}</span>
|
||||
@ -78,7 +80,7 @@
|
||||
</view>
|
||||
</view>
|
||||
<view v-if="type===2" class="serviceList" style="height:calc(100vh - 300px);">
|
||||
<view v-if="inspectionList.length && inspectionList.length>0 ">
|
||||
<view v-if="inspectionList && inspectionList.length>0 ">
|
||||
<view class="dailyInspection" v-for="(item,index) in inspectionList" :key="index">
|
||||
<view class="itemTitle">
|
||||
<span class="title">{{item.SERVERPART_NAME}}</span>
|
||||
@ -219,8 +221,10 @@
|
||||
import request from '@/util/index.js'
|
||||
import uniPopup from '@/components/uni-popup'
|
||||
import CommercialType from "./commercialType.vue";
|
||||
import SliderPage from "./sliderPage.vue";
|
||||
export default {
|
||||
components:{
|
||||
SliderPage,
|
||||
CommercialType,
|
||||
uniPopup
|
||||
},
|
||||
@ -342,11 +346,19 @@ export default {
|
||||
if (d<10){
|
||||
d = '0'+d
|
||||
}
|
||||
const req = {
|
||||
let req
|
||||
if (this.currentService.SERVERPART_NAME==='安徽驿达'){
|
||||
req = {
|
||||
SearchStartDate:`${y}-${m}-01`,
|
||||
SearchEndDate:`${y}-${m}-${d}`,
|
||||
}
|
||||
}else{
|
||||
req = {
|
||||
SearchStartDate:`${y}-${m}-01`,
|
||||
SearchEndDate:`${y}-${m}-${d}`,
|
||||
Serverpart_ID:this.currentService.Serverpart_ID
|
||||
}
|
||||
}
|
||||
const total = await request.$webGet(`CommercialApi/Examine/WeChat_GetExamineList`,req)
|
||||
this.serviceList = total.Result_Data
|
||||
uni.hideLoading()
|
||||
@ -426,14 +438,25 @@ export default {
|
||||
if (d<10){
|
||||
d = '0'+d
|
||||
}
|
||||
const res = await request.$webGet(`CommercialApi/Examine/WeChat_GetPatrolList`,{
|
||||
let req
|
||||
if (this.currentService.SERVERPART_NAME==='安徽驿达'){
|
||||
req = {
|
||||
SearchStartDate:`${y}-${m}-01`,// 巡检日期(开始时间)
|
||||
SearchEndDate:`${y}-${m}-${d}`,// 巡检日期(结束时间)
|
||||
SPRegionType_ID:'',// 片区内码,多个片区用","隔开
|
||||
}
|
||||
}else{
|
||||
req = {
|
||||
SearchStartDate:`${y}-${m}-01`,// 巡检日期(开始时间)
|
||||
SearchEndDate:`${y}-${m}-${d}`,// 巡检日期(结束时间)
|
||||
SPRegionType_ID:'',// 片区内码,多个片区用","隔开
|
||||
Serverpart_ID:this.currentService.Serverpart_ID,// 服务区内码,多个服务区用","隔开
|
||||
})
|
||||
this.inspectionList = res.Result_Data
|
||||
}
|
||||
}
|
||||
|
||||
const res = await request.$webGet(`CommercialApi/Examine/WeChat_GetPatrolList`,req)
|
||||
this.inspectionList = res.Result_Data
|
||||
if (this.inspectionList && this.inspectionList.length>0){
|
||||
this.inspectionList.forEach(item=>{
|
||||
item.list.forEach(subItem=>{
|
||||
let i = 0
|
||||
@ -449,6 +472,7 @@ export default {
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
console.log('inspectionList',this.inspectionList)
|
||||
uni.hideLoading()
|
||||
},
|
||||
@ -536,7 +560,11 @@ export default {
|
||||
position: absolute;
|
||||
top: 0;left: 0;
|
||||
z-index:1;
|
||||
|
||||
.sliderBox{
|
||||
width: 100%;
|
||||
position: absolute;
|
||||
bottom: 20px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
54
pages/examine/sliderPage.vue
Normal file
54
pages/examine/sliderPage.vue
Normal file
@ -0,0 +1,54 @@
|
||||
<template>
|
||||
<view class="sliderPage">
|
||||
<view class="slider">
|
||||
<view class="rate" :style="{right: (index*15) + 'rpx'}"></view>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
<script>
|
||||
export default {
|
||||
name: "sliderPage",
|
||||
data(){
|
||||
return {
|
||||
|
||||
}
|
||||
},
|
||||
props:{
|
||||
index:{
|
||||
type: Number,
|
||||
default: 0
|
||||
}
|
||||
},
|
||||
onLoad(){
|
||||
|
||||
},
|
||||
methods:{
|
||||
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
.sliderPage{
|
||||
width: 100%;
|
||||
height: 16rpx;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
margin-top: 8rpx;
|
||||
.slider{
|
||||
width: 120rpx;
|
||||
height: 8rpx;
|
||||
background: #e0dfdf;
|
||||
border-radius: 4rpx;
|
||||
position: relative;
|
||||
.rate{
|
||||
position: absolute;
|
||||
top: 0;
|
||||
height: 100%;
|
||||
background: #786B6C;
|
||||
border-radius: 4rpx;
|
||||
width: calc(100% / 8);
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@ -1246,6 +1246,15 @@ export default {
|
||||
...mapActions(['memberLogin','getLoginCode']),
|
||||
// 点击服务区信息跳转
|
||||
handleGoServiceMessage(){
|
||||
let YD = {
|
||||
SERVERPART_NAME: "安徽驿达",
|
||||
SPREGIONTYPE_NAME: "",
|
||||
SPRegionType_ID: null,
|
||||
Serverpart_ID: 424,
|
||||
latitude: 32,
|
||||
longitude: 117,
|
||||
}
|
||||
uni.setStorageSync('currentService',YD)
|
||||
this.$util.toNextRoute('navigateTo', `/pages/map/detail?isPicker=${true}&come=index`)
|
||||
|
||||
// let _this = this
|
||||
@ -1469,6 +1478,15 @@ export default {
|
||||
}
|
||||
},
|
||||
handleGoTab(item){
|
||||
let YD = {
|
||||
SERVERPART_NAME: "安徽驿达",
|
||||
SPREGIONTYPE_NAME: "",
|
||||
SPRegionType_ID: null,
|
||||
Serverpart_ID: 424,
|
||||
latitude: 32,
|
||||
longitude: 117,
|
||||
}
|
||||
uni.setStorageSync('currentService',YD)
|
||||
if (!this.isReturn){
|
||||
this.$util.toNextRoute('navigateTo', `${item.path}?time=${this.lastDay}&serviceInfo=${JSON.stringify(this.nearServiceInfo)}`)
|
||||
} else{
|
||||
|
||||
0
pages/index/new_file.html
Normal file
0
pages/index/new_file.html
Normal file
@ -34,6 +34,9 @@
|
||||
<swiper v-if="topBg && topBg.length>0" :current="currentImg" class="carousel" @change="changeSwiper">
|
||||
<swiper-item class="imgIndex" v-for="(item,index) in topBg" :key="index" :style="{backgroundImage:`url(${item})`}">
|
||||
<!-- <image class="img" :src="item"></image>-->
|
||||
<view class="sliderPage" v-if="item.key!=='previous' && item.key!=='next'">
|
||||
<SliderPage :index="0"/>
|
||||
</view>
|
||||
</swiper-item>
|
||||
</swiper>
|
||||
<div v-if="topBg && topBg.length>0" class="picNumber" @click="handlePreview">
|
||||
@ -179,9 +182,10 @@
|
||||
<script>
|
||||
import request from '@/util/index.js'
|
||||
import commercialType from "./commercialType.vue";
|
||||
import SliderPage from "./sliderPage.vue";
|
||||
export default {
|
||||
name: "detail",
|
||||
components: {commercialType},
|
||||
components: {SliderPage, commercialType},
|
||||
data(){
|
||||
return {
|
||||
info:{},
|
||||
@ -466,6 +470,22 @@ export default {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background-size: 100% 100%;
|
||||
.sliderPage{
|
||||
width: 100%;
|
||||
height: 16rpx;
|
||||
z-index: 9;
|
||||
position: absolute;
|
||||
bottom: 20px;
|
||||
left: 0;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
.sliderBg{
|
||||
width: 120rpx;
|
||||
background: #fff;
|
||||
border-radius: 8rpx;
|
||||
}
|
||||
}
|
||||
//.img{
|
||||
// width: 100%;
|
||||
// height: 324px;
|
||||
|
||||
@ -3,7 +3,12 @@
|
||||
<div class="leftArrow" :style="{top:(menu.top + ((menu.height - 24)/2) )+ 'px'}" @click="handleBack">
|
||||
<image class="img" src="https://eshangtech.com/ShopICO/ahyd-BID/commercial/navigation-left.svg"></image>
|
||||
</div>
|
||||
<map v-if="isShowMap" id="myMap" :longitude="longitude" :latitude="latitude" :markers="markers" class="map" show-location></map>
|
||||
<view class="mapBox" v-if="isShowMap">
|
||||
<map id="myMap" :longitude="longitude" :latitude="latitude" :markers="markers" class="map" show-location></map>
|
||||
<view class="ydBox" @click="handleClickYD">
|
||||
<image class="ydIcon" src="/static/images/tabBar/company_active.png"/>
|
||||
</view>
|
||||
</view>
|
||||
<view v-else class="map"></view>
|
||||
<div class="list" :style="{transform:isMoveUp?`translateY(calc(-40vh + ${menu.bottom + 5}px))`:''}">
|
||||
<div class="top">
|
||||
@ -170,6 +175,21 @@ export default {
|
||||
}
|
||||
},
|
||||
methods:{
|
||||
// 点击驿达表示 默认选择驿达
|
||||
handleClickYD(){
|
||||
let YD = {
|
||||
SERVERPART_NAME: "安徽驿达",
|
||||
SPREGIONTYPE_NAME: "",
|
||||
SPRegionType_ID: null,
|
||||
Serverpart_ID: 424,
|
||||
latitude: 32,
|
||||
longitude: 117,
|
||||
}
|
||||
uni.setStorageSync('currentService',YD)
|
||||
uni.navigateBack({
|
||||
delta: 1
|
||||
})
|
||||
},
|
||||
// 枚举服务区类型 SERVERPART_TYPE
|
||||
async handleServiceType(){
|
||||
const data = await getFieldEnum({ FieldExplainField: 'SERVERPART_TYPE' });
|
||||
@ -351,9 +371,11 @@ export default {
|
||||
this.serviceList = data.Result_Data.List
|
||||
console.log(' this.serviceList', this.serviceList)
|
||||
if (this.serviceMessage && this.serviceMessage.SERVERPART_NAME){
|
||||
if (this.serviceList && this.serviceList.length>0){
|
||||
this.longitude = this.serviceList[0].SERVERPART_X
|
||||
this.latitude = this.serviceList[0].SERVERPART_Y
|
||||
}
|
||||
}
|
||||
},
|
||||
//点击向上移动
|
||||
handleChangeUp(){
|
||||
@ -412,16 +434,41 @@ export default {
|
||||
height: 100%;
|
||||
}
|
||||
}
|
||||
.mapBox{
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 40vh;
|
||||
.map{
|
||||
width: 100%;
|
||||
height: 40vh;
|
||||
}
|
||||
.ydBox{
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
background: #fff;
|
||||
border-radius: 50%;
|
||||
position: absolute;
|
||||
bottom: 40px;
|
||||
left: 16px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
.ydIcon{
|
||||
width: 30px;
|
||||
height: 30px;
|
||||
}
|
||||
}
|
||||
}
|
||||
.list{
|
||||
width: 100%;
|
||||
height: calc(60vh + 20px);
|
||||
box-sizing: border-box;
|
||||
transform: translateY(-20px);
|
||||
background: #F2F4F5;
|
||||
position: absolute;
|
||||
top: 40vh;
|
||||
.top{
|
||||
width: 100%;
|
||||
height: 74px;
|
||||
|
||||
50
pages/map/sliderPage.vue
Normal file
50
pages/map/sliderPage.vue
Normal file
@ -0,0 +1,50 @@
|
||||
<template>
|
||||
<view class="sliderPage">
|
||||
<view class="slider">
|
||||
<view class="rate"></view>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
<script>
|
||||
export default {
|
||||
name: "sliderPage",
|
||||
data(){
|
||||
return {
|
||||
|
||||
}
|
||||
},
|
||||
props:{
|
||||
},
|
||||
onLoad(){
|
||||
|
||||
},
|
||||
methods:{
|
||||
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
.sliderPage{
|
||||
width: 100%;
|
||||
height: 16rpx;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
.slider{
|
||||
width: 120rpx;
|
||||
height: 8rpx;
|
||||
background: #e0dfdf;
|
||||
border-radius: 4rpx;
|
||||
position: relative;
|
||||
.rate{
|
||||
position: absolute;
|
||||
top: 0;
|
||||
height: 100%;
|
||||
background: #786B6C;
|
||||
border-radius: 4rpx;
|
||||
width: calc(100% / 8);
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
Loading…
x
Reference in New Issue
Block a user