diff --git a/ahyd_DIB.zip b/ahyd_DIB.zip new file mode 100644 index 0000000..e2e8d3e Binary files /dev/null and b/ahyd_DIB.zip differ diff --git a/pages/commercialBI/carPortrait.vue b/pages/commercialBI/carPortrait.vue index ea55a02..576ce42 100644 --- a/pages/commercialBI/carPortrait.vue +++ b/pages/commercialBI/carPortrait.vue @@ -4,144 +4,241 @@ -
-
-
- 分析 - {{analyseText}} -
-
-
-
- -
- 车流画像 - -
+
+
+
+ 分析 + {{analyseText}}
-
-
-
-
- - - - {{serviceInfo.SERVERPART_NAME}} -

{{serviceInfo.SPREGIONTYPE_NAME}}

- +
+
+
+ +
+ 车流画像 + +
+
+
+
+
+
+ + + + {{serviceInfo.SERVERPART_NAME}} +

{{serviceInfo.SPREGIONTYPE_NAME}}

+ +
- +
-
-
-
-
- {{item}} +
+
+
+ {{item}} +
-
-
-
-
-

昨日入区车流

-
- {{time}} -
+ +
+
+
+
-
- - -
- + 车流画像 + +
+
- - -
-

月度车流累计

-
- - -
-
- -
-
- -
- - - {{ single }} - - - -
-
- - {{item.name}} - - -

{{thisMonth?thisMonth:'-'}}月车辆归属地

-
- -
- - - -
-
-
{{item.name}}
+
+
+
+

昨日入区车流

+
+ {{time}} +
-
+
+ + +
+
- +
+

月度车流累计

+
+ + +
+
+ +
+
+ +
+ + + {{ single }} + + + +
+
+ + {{item.name}} + + +

{{thisMonth?thisMonth:'-'}}月车辆归属地

+
+ +
+ + + +
+
+
{{item.name}}
+
+
+
+ + +
+ +
+ +
+

{{thisMonth?thisMonth:'-'}}月车型停留分析/日均

+
+ + +
+ +
+ +
+

{{thisMonth?thisMonth:'-'}}月车型停留分布图/日均

+
+ + +
+ +
+ +
+
+

{{thisMonth?thisMonth:'-'}}月入区车型占比

+
+ {{allEntry?allEntry:'-'}}% + + (较上月) + + {{addAllEntry?Math.abs(addAllEntry) + '%':'-' + '%'}} + +
+
+
+ + +
+ +
+
+
+
+ + +
+
+
+ + + + {{serviceInfo.SERVERPART_NAME}} +

{{serviceInfo.SPREGIONTYPE_NAME}}

+ +
+
+
+
+
+
+ + + + {{ searchText }} + + + + +
- -
-
-

{{thisMonth?thisMonth:'-'}}月车型停留分析/日均

-
- - -
- -
-
-

{{thisMonth?thisMonth:'-'}}月车型停留分布图/日均

-
- - -
- -
-
-
-

{{thisMonth?thisMonth:'-'}}月入区车型占比

-
- {{allEntry?allEntry:'-'}}% - - (较上月) - - {{addAllEntry?Math.abs(addAllEntry) + '%':'-' + '%'}} - +
+
+
+
+ {{item.name}} + {{item.entry}} / {{item.flow}} + +
+
+ 入区率 + {{item.flowRate}} +
+
+
+ +
+
+
+ +
+
+ + +
+
+
+
+ + {{subItem.name}} +
+
+
+ 入区流量/断面流量 +
+
+ 大/中/小车型 +
+
+
+
+
+
+ {{thirdItem.name}}区 + : + {{thirdItem.entryRate}}% +
+
+ {{thirdItem.Vehicle_Count}}/{{thirdItem.SectionFlow_Count}} +
+
+ {{thirdItem.LargeVehicle_Count}}/{{thirdItem.MediumVehicle_Count}}/{{thirdItem.MinVehicle_Count}} +
+
+
+
+
+
+
-
- - -
-
-
-
-
- -

抱歉,第三方数据未传,无法分析

-
-
@@ -156,13 +253,15 @@ 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 anhuiYestodayRevenueData from "../everdayRenven/components/anhuiYestodayRevenueData"; export default { name: "carPortrait", data(){ const lastDay = this.$util.cutDate(new Date(), 'YYYY-MM-DD', -1) return { menu:{}, //手机参数 - serviceArray:["123465","123465","123465","123465","123465"], // 选择服务区的列表 + serviceArray:[], // 选择服务区的列表 serviceIndex:0, //选中的服务区列表的第几个 area:'片区', //属于哪个片区 labelList:[], //标签 @@ -188,6 +287,7 @@ export default { serviceInfo:{}, //当前服务区信息 backType:'',//返回的页面类型 analyseText:'',//分析的文字 + statusBarHeight:'', single:'',//显示时间 lastDay:lastDay, endTime:'', @@ -200,9 +300,16 @@ export default { selectProvinceName:'',// 点击的省份名称 selectValue:'',// 点击的省份值 allProvince:true,// 是否选择了全省 + isShowAllProvince:false,// 是否展示全省的情况 + regionList: null, + theRequest: null, + headMsg:null, + searchEndTime:'', + searchText:'',// 展示全省情況时显示的日期内容 } }, components: { + shopCell, CommercialType, Analyse, NoData, PercentEntry, CarTypeTime, HomePlace, EntryZone,timeAnalysis,MonthTotal}, computed:{ @@ -234,12 +341,17 @@ export default { this.time = storeTime } this.single = this.$util.getThisMonthHave(this.time) - const date = new Date(this.single) + this.searchText = this.time + const date = new Date(this.time) //设置日期选择器的开始时间和结束时间 let m = date.getMonth() + 1 if (m<10){ m = '0' + m } + let d = date.getDate() + if (d<10){ + d = '0'+ d + } this.thisMonth = m let systemInfo = uni.getSystemInfoSync() // 获取手机参数对页面进行适配 @@ -257,6 +369,20 @@ export default { }else{ this.serviceInfo = storeServiceInfo } + this.theRequest = { + GroupType: 1000, + ProvinceCode: 340000, + ServerpartIds: "", + ShopAnalysisType: 0, + month: `${y}${m}`, + time: `${y}-${m}-${d}`, + } + if (this.serviceInfo.SERVERPART_NAME==='安徽驿达'){ + this.isShowAllProvince = true + } + if (this.isShowAllProvince === true){ + this.getDetail(this.theRequest) + }else{ //获取服务区基本信息 this.getServiceInfo() //月累计 @@ -273,9 +399,14 @@ export default { this.getPercentEntry() //获得标签 this.getLabelDetail() + } + }, onReady(){ + }, + onHide(){ + this.isShowAllProvince = false }, onUnload() { this.$util.addUserBehavior() @@ -284,8 +415,94 @@ export default { }) this.selectProvinceName = '' this.carType = '' + this.searchText='' }, methods:{ + handleNoneChild(obj){ + this.regionList.forEach(item=>{ + if (item.name === obj.name){ + item.showChild = !item.showChild + } + }) + }, + async getDetail(obj) { + uni.showLoading({ + title: '正在加载...' + }) + const requestParamas = { + Statistics_Date: obj.time , + Statistics_Month: obj.month , + Province_Code: obj.ProvinceCode , + pushProvinceCode: obj.ProvinceCode , + Serverpart_ID: obj.GroupType != 1020 ? obj.ServerpartIds : '', + SPRegionType_ID: obj.GroupType == 1020 ? obj.ServerpartIds : '', + // Revenue_Include: 1 + } + + const bayonetCount = await request.$webGet('CommercialApi/Revenue/GetSPBayonetList', requestParamas) + const res = bayonetCount.Result_Data.List + let bayonetPie = [] // 区域车流饼图统计数据 + res.map(async (n, index) => { + bayonetPie = anhuiYestodayRevenueData.getBayonetPie('Serverpart_Name', n, bayonetPie) + }) + bayonetPie.forEach((item,index)=>{ + let entryNum = 0 // 该片区总计的入区车流 + let flowNum = 0 // 该片区总计的断面流量 + let entryNumNoZero = 0 // + let flowNumNoZero = 0 // + item.spList.forEach(subItem=>{ + entryNum+=subItem.Vehicle_Count + flowNum+=subItem.SectionFlow_Count + if (subItem.regionList && subItem.regionList.length>0){ + subItem.regionList.forEach(thirdItem=>{ + if (thirdItem.SectionFlow_Count===0 || thirdItem.Vehicle_Count===0){ + thirdItem.entryRate = 0 + }else{ + thirdItem.entryRate = Number(((thirdItem.Vehicle_Count / thirdItem.SectionFlow_Count)*100).toFixed(2)) + } + + if (thirdItem.Vehicle_Count{ + for (let i=0;i<=item.spList.length-1;i++){ + for (let j=0;j<=item.spList.length - i - 1;j++){ + if (item.spList[j] && item.spList[j + 1] && item.spList[j].Vehicle_Count && item.spList[j+1].Vehicle_Count){ + if (item.spList[j].Vehicle_Count < item.spList[j+1].Vehicle_Count){ + let temp = item.spList[j] + item.spList[j] = item.spList[j + 1] + item.spList[j + 1] = temp + } + } + } + } + }) + this.regionList = bayonetPie + uni.hideLoading() + }, //车型选择 handleCarType(selectItem){ if (selectItem.value===this.carType){ @@ -337,6 +554,28 @@ export default { this.tabList = tabList } }, + async changeAllProvinceSearch(e){ + const date = new Date(e.detail.value) + const y = date.getFullYear() + let m = date.getMonth() + 1 + if (m<10){ + m = '0'+m + } + let d = date.getDate() + if (d<10){ + d = '0'+d + } + this.theRequest = { + GroupType: 1000, + ProvinceCode: 340000, + ServerpartIds: "", + ShopAnalysisType: 0, + month: `${y}${m}`, + time: `${y}-${m}-${d}`, + } + await this.getDetail(this.theRequest) + this.searchText = e.detail.value + }, // 时间选择器改变的时间 bindDateChange(e){ const date = new Date(e.detail.value) @@ -1029,6 +1268,43 @@ export default { } } } + .headerTop{ + width: 100vw; + position: fixed; + top: 0; + left: 0; + z-index: 9999999999999; + background: linear-gradient(180deg, #A2B9E8 0%, #B2C6ED 100%); + .box{ + padding: 0 16px; + position: absolute; + box-sizing: border-box; + width: 100%; + display: flex; + justify-content: space-between; + align-items: center; + transform: translateY(-50%); + .icon{ + width: 24px; + height: 24px; + .img{ + width: 100%; + height: 100%; + } + } + .title{ + font-size: 36rpx; + font-family: PingFangSC-Medium, PingFang SC; + font-weight: 600; + color: #1C2130; + line-height: 56rpx; + } + .seize{ + width: 24px; + height: 24px; + } + } + } .charts{ width: 100%; box-sizing: border-box; @@ -1212,6 +1488,233 @@ export default { padding-bottom: 32px; } } + .otherCharts{ + width: 100%; + box-sizing: border-box; + /*日结上传*/ + .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: 20px; + .listItem{ + width: 100%; + box-sizing: border-box; + .itemTop{ + width: 100%; + box-sizing: border-box; + padding: 0 16px; + position: relative; + display: flex; + .itemLeft{ + display: flex; + flex-direction: column; + align-items: flex-start; + width: 70%; + .serverName{ + color: #929292; + } + .value{ + font-weight: 700; + } + } + .itemCenter{ + display: flex; + flex-direction: column; + align-items: center; + .serverName{ + color: #929292; + } + .value{ + font-weight: 700; + } + } + .itemRight{ + display: inline-block; + height: 100%; + position: absolute; + right: 16px;bottom:0; + .rightArrow{ + width: 16px; + height: 16px; + } + } + .other{ + width: 0; + } + } + .serviceItem{ + width: 100vw; + box-sizing: border-box; + padding: 4px 16px; + .subItemTop{ + display: flex; + align-items: center; + .serviceItemLeft{ + display: inline-block; + width: 30%; + .leftIcon{ + width: 18px; + height: 18px; + } + .name{ + position: relative; + } + } + .serviceItemCenter{ + display: inline-block; + width: 40%; + text-align: center; + .title{ + color: #868686; + } + } + .serviceItemRight{ + display: inline-block; + width: 30%; + .text{ + color: #868686; + } + } + } + .subItemBottom{ + .subBottomItem{ + .subBottomItemTop{ + width: 100%; + .topLeft{ + display: inline-block; + width: 30%; + .position0{ + position: relative; + margin-left: 12px; + } + .position0:before{ + content:''; + position: absolute; + width: 4px; + height: 4px; + left: -8px;top: calc(50% - 2px); + border-radius: 50%; + background: #5596F9; + } + .position1{ + position: relative; + margin-left: 12px; + } + .position1:before{ + content:''; + position: absolute; + width: 4px; + height: 4px; + left: -8px;top: calc(50% - 2px); + border-radius: 50%; + background: #FE6D67; + } + .rate{ + color: #EF884F; + } + } + .topCenter{ + display: inline-block; + width: 40%; + text-align: center; + } + .topRight{ + display: inline-block; + width: 30%; + } + } + } + } + } + } + } + } } .noData{ width: 100%; diff --git a/pages/everdayRenven/AnhuiIndex.vue b/pages/everdayRenven/AnhuiIndex.vue index 537d5b3..b5b0c89 100644 --- a/pages/everdayRenven/AnhuiIndex.vue +++ b/pages/everdayRenven/AnhuiIndex.vue @@ -184,7 +184,6 @@