Commit 2a70fb3e authored by Gakki's avatar Gakki

首页老界面 + 跳转

parent ab89cac7
<template> <template>
<div id="home" class="layoutPadding"> <div>
<a-row type="flex" class="align-stretch" style=""> <!-- 浦东 -->
<div id="home" class="layoutPadding" v-if="(this.$api.BASE_URL).indexOf('pudong') > -1 || (this.$api.BASE_URL).indexOf('10.220.105.137') > -1">
<div class="topBox-l">
<div class="inner" style="">
<div>
<p class="top-font" >小区数</p>
<span class="top-count" >{{data.community}}</span>
</div>
<div class="align-center" >
<img src="@/assets/icon/xqs.png" style="width:50px;" alt="">
</div>
</div>
<div class="inner" style="">
<div>
<p class="top-font" >门牌幢数</p>
<span class="top-count" >{{data.building}}</span>
</div>
<div class="align-center" >
<img src="@/assets/icon/mpzs.png" style="width:50px;" alt="">
</div>
</div>
<div class="inner" style="">
<div>
<p class="top-font" >物业企业数</p>
<span class="top-count" >{{data.company}}</span>
</div>
<div class="align-center" >
<img src="@/assets/icon/ywhs.png" style="width:50px;" alt="">
</div>
</div>
<div class="inner" style="">
<div>
<p class="top-font" >业委会数</p>
<span class="top-count" >{{data.ic}}</span>
</div>
<div class="align-center" >
<img src="@/assets/icon/ywhs.png" style="width:50px;" alt="">
</div>
</div>
</div>
<div class="secBox" v-if="$store.state.userInfos && $store.state.userInfos.isAllPerm">
<IndustrySupervision style="width:35%" />
<ComplaintsTrain moduletitle="投诉直通车" style="width:48%" />
<FileModule style="width:13%;" />
</div>
<div class="thirdBox" v-if="$store.state.userInfos && $store.state.userInfos.isAllPerm">
<ManagementModule moduletitle="信用" style="width:32.5%" />
<ManagementModule moduletitle="风险" style="width:32.5%" />
<ManagementModule moduletitle="分类" style="width:32.5%" />
</div>
<div class="fourthBox" v-if="$store.state.userInfos && $store.state.userInfos.isAllPerm">
<RiskDisposal style="width:30%" />
<RetrofitElevator style="width:32%" />
<ComplaintsTrain moduletitle="应急报修" style="width:36%" />
</div>
</div>
<div id="home" class="layoutPadding" v-else>
<!-- <div id="home" class="layoutPadding" v-else> -->
<a-row type="flex" class="align-stretch">
<a-col :span="24"> <a-col :span="24">
<a-row type="flex" style="height:100%;"> <a-row type="flex" style="height:100%;">
<a-col :span="6"> <a-col :span="6">
<div class="home-card topBox" style="margin-right:10px;"> <div class="home-card topBox" style="margin-right:10px;">
<a-row> <div class="justify-between topBox" >
<a-col :span='9'> <div>
<div class="justify-between topBox" > <p class="top-font" >小区数</p>
<div> <span class="top-count" >{{data.community}}</span>
<p class="top-font" >小区数</p> </div>
<span class="top-count" >{{baseData.community}}</span> <div class="align-center" >
</div> <img src="@/assets/icon/xqs.png" style="width:50px;" alt="">
</div> </div>
</a-col> </div>
<a-col :span='10'>
<a-row style="border-left: 1px solid lightgrey; padding-left: 10px; ">
<a-col :span='16' v-show="1==2">
<span class="top-font"> 本月新增 : </span>
</a-col>
<a-col :span='8' v-show="1==2">
<span class="top-count-extra" style="cursor: pointer;" >{{2}}</span>
</a-col>
</a-row>
<a-row style="border-left: 1px solid lightgrey; padding-left: 10px;">
<a-col :span='16' v-show="1==2">
<span class="top-font" > 本月注销 : </span>
</a-col>
<a-col :span='8' v-show="1==2">
<span class="top-count-extra" style="cursor: pointer;">{{3}}</span>
</a-col>
</a-row>
</a-col>
<a-col :span='1' />
<a-col :span='4'>
<div class="align-center" style="margin-top: 0px">
<img src="@/assets/icon/xqs.png" style="width:50px;" alt="">
</div>
</a-col>
</a-row>
<a-row style="border-top:1px solid lightgrey;padding-top: 10px;">
<a-col :span='7'>
商品 : {{332}}
</a-col>
<a-col :span='7'>
直管 : {{224}}
</a-col>
<a-col :span='10'>
保障及其他 : {{321}}
</a-col>
</a-row>
</div> </div>
</a-col> </a-col>
<a-col :span="6"> <a-col :span="6">
<div class="home-card topBox" style="margin-right:10px;"> <div class="home-card topBox" style="margin:0px 10px;">
<div class="justify-between topBox" >
<div>
<p class="top-font" >门牌幢数</p>
<span class="top-count" >{{data.building}}</span>
</div>
<div class="align-center" >
<img src="@/assets/icon/mpzs.png" style="width:50px;" alt="">
</div>
</div>
</div>
</a-col>
<a-col :span="6">
<div class="home-card topBox" style="margin:0px 10px;">
<div class="justify-between topBox" >
<div>
<p class="top-font" >物业企业数</p>
<span class="top-count" >{{data.company}}</span>
</div>
<div class="align-center" >
<img src="@/assets/icon/wyqys.png" style="width:50px;" alt="">
</div>
</div>
</div>
</a-col>
<a-col :span="6">
<div class="home-card topBox" style="margin-left:10px;">
<a-row> <a-row>
<a-col :span='9'> <a-col :span='6'>
<div class="justify-between topBox" > <div class="justify-between topBox" >
<div> <div>
<p class="top-font" >门牌幢</p> <p class="top-font" >业委会数</p>
<span class="top-count" >{{baseData.building}}</span> <span class="top-count" >{{data.ic}}</span>
</div> </div>
</div> </div>
</a-col> </a-col>
<a-col :span='10'> <a-col :span='13'>
<a-row style="border-left: 1px solid lightgrey; padding-left: 10px; "> <a-row style="border-left: 1px solid lightgrey; border-bottom: 1px solid lightgrey; padding-left: 10px; padding-bottom: 5px;">
<a-col :span='16' v-show="1==2"> <a-col :span='16'>
<span class="top-font" > 本月增加 : </span> <span class="top-font" >已过期</span>
</a-col> </a-col>
<a-col :span='8' v-show="1==2"> <a-col :span='8'>
<span class="top-count-extra" style="cursor: pointer;" >{{0}}</span> <span class="top-count-extra" style="cursor: pointer;" @click="handleExpired">{{expired}}</span>
</a-col> </a-col>
</a-row> </a-row>
<a-row style="border-left: 1px solid lightgrey; padding-left: 10px;"> <a-row style="border-left: 1px solid lightgrey; padding-left: 10px;padding-top: 10px;">
<a-col :span='16' v-show="1==2"> <a-col :span='16'>
<span class="top-font" > 本月注销 : </span> <span class="top-font" >5个月内到期</span>
</a-col> </a-col>
<a-col :span='8' v-show="1==2"> <a-col :span='8'>
<span class="top-count-extra" style="cursor: pointer;">{{4}}</span> <span class="top-count-extra" style="cursor: pointer;" @click="handleWillExpire">{{expireInFiveMonth}}</span>
</a-col> </a-col>
</a-row> </a-row>
</a-col> </a-col>
<a-col :span='1' /> <a-col :span='1'></a-col>
<a-col :span='4'> <a-col :span='4'>
<div class="align-center" style="margin-top: 0px"> <div class="align-center" style="margin-top: 10px">
<img src="@/assets/icon/mpzs.png" style="width:50px;" alt="">
</div>
</a-col>
</a-row>
<a-row style="border-top:1px solid lightgrey;padding-top: 10px;">
<a-col :span='12'>
有电梯 : {{332}}
</a-col>
</a-row>
</div>
</a-col>
<a-col :span="6">
<div class="home-card topBox" style="margin-right:10px;">
<a-row>
<a-col :span='9'>
<div class="justify-between topBox" >
<div>
<p class="top-font" >物业企业</p>
<span class="top-count" >{{baseData.company}}</span>
</div>
</div>
</a-col>
<a-col :span='10' />
<a-col :span='1' />
<a-col :span='4'>
<div class="align-center" style="margin-top: 0px">
<img src="@/assets/icon/wyqys.png" style="width:50px;" alt="">
</div>
</a-col>
</a-row>
<a-row style="border-top:1px solid lightgrey;padding-top: 10px;">
<a-col :span='12'>
区属物业 : {{111}}
</a-col>
<a-col :span='12'>
本市注册 : {{222}}
</a-col>
</a-row>
</div>
</a-col>
<a-col :span="6">
<div class="home-card topBox" style="">
<a-row>
<a-col :span='9'>
<div class="justify-between topBox" >
<div>
<p class="top-font" >业委会</p>
<span class="top-count" >{{baseData.ic}}</span>
</div>
</div>
</a-col>
<a-col :span='10' />
<a-col :span='1' />
<a-col :span='4'>
<div class="align-center" style="margin-top: 0px">
<img src="@/assets/icon/ywhs.png" style="width:50px;" alt=""> <img src="@/assets/icon/ywhs.png" style="width:50px;" alt="">
</div> </div>
</a-col> </a-col>
</a-row> </a-row>
<a-row style="border-top:1px solid lightgrey;padding-top: 10px;">
<a-col :span='12'>
近五个月到期 : {{11}}
</a-col>
<a-col :span='12'>
已过期 : {{5}}
</a-col>
</a-row>
</div> </div>
</a-col> </a-col>
</a-row> </a-row>
</a-col> </a-col>
<!-- <a-col :span="4">
<div class="home-card topBox" style="margin-left:0px 10px; cursor: pointer" @click="handleExpired">
<div class="justify-between topBox" >
<div>
<p class="top-font" >已过期</p>
<span class="top-count" >{{expired}}</span>
</div>
<div class="align-center" >
<img src="@/assets/icon/wyqys.png" style="width:50px;" alt="">
</div>
</div>
</div>
</a-col>
<a-col :span="4">
<div class="home-card topBox" style="margin-left:10px; cursor: pointer" @click="handleWillExpire">
<div class="justify-between topBox" >
<div>
<p class="top-font" >未来5个月将到期</p>
<span class="top-count" >{{expireInFiveMonth}}</span>
</div>
<div class="align-center" >
<img src="@/assets/icon/wyqys.png" style="width:50px;" alt="">
</div>
</div>
</div>
</a-col> -->
</a-row> </a-row>
<a-row class="align-stretch" style="margin-top:10px;"> <a-row v-if="$store.state.userInfos && $store.state.userInfos.isAllPerm" class="align-stretch" style="margin-top:20px;">
<a-col :span="6"> <a-col :span="8">
<div class="month"> <div class="month">
<div class="home-card monthTitle"> <div class="home-card monthTitle">
<span>房办月查</span> <span>房办月查</span>
<span>{{ !parseInt(((secRowInfos.HOUSING_OFFICE.count.rectifiedCount/secRowInfos.HOUSING_OFFICE.count.rectifyCount)*100))? 0: parseInt(((secRowInfos.HOUSING_OFFICE.count.rectifiedCount/secRowInfos.HOUSING_OFFICE.count.rectifyCount)*100)) }}%</span> <span>
<span style="font-size:12px;">{{nowMonth}} </span>
<span class="monthTitleNum">
{{checkStreet}} <span style="color:#000;">/{{totStreet}}</span>
</span>
</span>
</div> </div>
<div class="home-card monthBox"> <div class="home-card monthBox">
<p class="monthBoxTitle">今年完成情况</p> <span style="font-weight:600;">全年情况</span>
<div class="monthBoxContent" > <a-row>
<div class="hoverTest" v-for="item in FB_month" :key="item.name"> <a-col :span="4" class="hoverTest" v-for="item in mounth" :key="item.name">
<div @click="checkMonth(item)" :class="'monthImg blue '" :style="`background:${item.backgroundColor}; color:${item.color}`"> <div v-if="item.check" @click="checkMonth(item)" :class="'monthImg green '+item.class" :style="'background:url('+ok+') no-repeat center center /cover; '">
{{item.name}} {{item.name}}
<div class="monthHover" @click="hoverMonthToFB(item)"> <div class="monthHover" @click="hoverMonth(item)">
<div> <div>
<span>明细</span> <span>明细</span>
</div> </div>
</div> </div>
</div> </div>
</div> <div v-else @click="checkMonth(item)" :class="'monthImg blue '+item.class" :style="'background:url('+nm+') no-repeat center center /cover; '">
</div>
</div>
<div class="home-card monthBottom">
<span>整改执行</span>
<span style="fontSize:13px"><span class="monthBottomNum">{{secRowInfos.HOUSING_OFFICE.count.rectifiedCount}}/</span>{{secRowInfos.HOUSING_OFFICE.count.rectifyCount}}</span>
</div>
</div>
</a-col>
<a-col :span="6">
<div class="month">
<div class="home-card monthTitle">
<span>物企双周查</span>
<span>{{ !parseInt(((secRowInfos.PROPERTY_BIWEEKLY.count.rectifiedCount/secRowInfos.PROPERTY_BIWEEKLY.count.rectifyCount)*100))?0: parseInt(((secRowInfos.PROPERTY_BIWEEKLY.count.rectifiedCount/secRowInfos.PROPERTY_BIWEEKLY.count.rectifyCount)*100)) }}%</span>
</div>
<div class="home-card monthBox">
<p class="monthBoxTitle">今年完成情况</p>
<div class="monthBoxContent" >
<div class="hoverTest" v-for="item in WQ_month" :key="item.name">
<div @click="checkMonth(item)" :class="'monthImg blue '" :style="`background:${item.backgroundColor}; color:${item.color}`">
{{item.name}} {{item.name}}
<div class="monthHover" @click="hoverMonthToWY(item)"> <div class="monthHover" @click="hoverMonth(item)">
<div> <div>
<span>明细</span> <span>明细</span>
</div> </div>
</div> </div>
</div> </div>
</div> </a-col>
</div> </a-row>
</div>
<div class="home-card monthBottom">
<span>整改执行</span>
<span style="fontSize:13px"><span class="monthBottomNum">{{secRowInfos.PROPERTY_BIWEEKLY.count.rectifiedCount}}/</span>{{secRowInfos.PROPERTY_BIWEEKLY.count.rectifyCount}}</span>
</div> </div>
</div> </div>
</a-col> </a-col>
<a-col :span="6"> <a-col :span="13" class="zxjc">
<div class="month" style="height:100%"> <div class="jiancha">
<div class="home-card monthTitle"> <div class="home-card jianchaTitle">
<span>物业经理自查</span> <span>专项检查</span>
</div> <img src="@/assets/icon/tp.png" style="height:20px;" @click="openOutUrl2" alt="">
<div class="home-card monthBox"> </div>
<p class="monthBoxTitle" > {{!showMonthOrYear? '本月':'今年'}}完成情况 <span @click="showMonthOrYear=!showMonthOrYear" style="float:right;fontSize:12px;cursor:pointer;color:rgb(80,150,250)">切换今年</span></p> <div style="height: calc(100% - 55px);">
<div class="monthBoxContent" v-show="showMonthOrYear"> <a-row class="jianchaBox">
<div class="hoverTest" v-for="item in manager_month" :key="item.name"> <a-col :span="12" class="home-card jianchaTheme">
<div @click="checkMonth(item)" :class="'monthImg blue'" :style="`background:${item.backgroundColor}; color:${item.color}`"> <!-- <div class="justify-between" style="align-items:baseline;">
{{item.name}} <span style="font-weight:600;">已查/应查</span>
<div class="monthHover" @click="hoverMonthToManager(item)"> <span style="font-size:20px;font-weight:600;"><span style="color:#0477FF;">68</span>/124</span>
<div> </div>
<span>明细</span> <a-progress :percent="68/124*100" size="small" :showInfo="false" :strokeWidth="10" strokeColor="#11C3C4"/> -->
<a-row>
<a-col :span="16" :offset="2">
<span style="font-weight:600;"><img src="@/assets/icon/yyzt.png" alt="" style="width:20px;margin-right:3px;"> 已有主题</span>
</a-col>
<a-col :span="6">
<span class="jianchaThemeNum">{{theme}}</span>
<!-- <span class="jianchaThemeNum">0</span> -->
</a-col>
</a-row>
<a-row>
<a-col :span="16" :offset="2">
<span style="font-weight:600;"><img src="@/assets/icon/ywcjcxq.png" alt="" style="width:20px;margin-right:3px;"> 已完成检查小区</span>
</a-col>
<a-col :span="6">
<span class="jianchaThemeNum">{{sect}}</span>
<!-- <span class="jianchaThemeNum">0</span> -->
</a-col>
</a-row>
<a-row>
<a-col :span="16" :offset="2">
<span style="font-weight:600;"><img src="@/assets/icon/zt.png" alt="" style="width:20px;margin-right:3px;"> 已开整改单</span>
</a-col>
<a-col :span="6">
<span class="jianchaThemeNum">{{receipts}}</span>
<!-- <span class="jianchaThemeNum">0</span> -->
</a-col>
</a-row>
</a-col>
<a-col :span="12" class="home-card jianchaBoxRight">
<div>
<span class="jianchaPeopleTitle">当前检察人员</span>
</div>
<a-row style="height:calc(100% - 34px)">
<a-col :span="12" v-for="(item,i) in people" :key="i" style="font-size:14px;height: 25%;">
<img src="@/assets/icon/peoplebj.png" style="height:16px;margin-right: 5px; margin-top: -3px;"/>{{item.TE_NAME}}
</a-col>
<a-col v-if="people.length == 7" :span="12" style="font-size:14px;height: 25%;">
<img src="@/assets/icon/ddd.png" style="height:16px;margin-right: 5px; margin-top: -3px;"/>
</a-col>
</a-row>
</a-col>
<!-- <a-col :span="8" class="home-card justify-between" style="padding:0px 10px;height:100%;flex-direction:column;">
<div>
<span style="height:30px;display:inline-block;vertical-align: sub;font-weight:600;">已完成整改/已开整改单</span>
</div>
<div>
<div class="justify-between" style="align-items:baseline;font-weight:600;font-size:20px;">
<span style="color:#0477FF;">25%</span>
<span><span style="color:#0477FF;">4</span>/16</span>
</div> </div>
<a-progress :percent="68/124*100" size="small" :showInfo="false" :strokeWidth="10" strokeColor="#11C3C4"/>
</div> </div>
</div> <div>
</div> <div class="justify-between" style="align-items:baseline;">
<span style="font-weight:600;">整改率</span>
<span style="font-size:20px;font-weight:600;color:#0477FF;">16%</span>
</div>
<a-progress :percent="68/124*100" size="small" :showInfo="false" :strokeWidth="10" strokeColor="#11C3C4"/>
</div>
</a-col> -->
</a-row>
</div> </div>
<div v-show="!showMonthOrYear" class="calendar"> </div>
<!-- <a-calendar id="calendar" :validRange="validRange" :fullscreen="false" /> --> </a-col>
<table border=0 style="width:100%;height:100%;text-align:center;marginTop:10px"> <a-col :span="3">
<thead> <div style="height:100%;margin-left:10px;">
<tr> <a-row>
<th>周一</th> <th>周二</th> <th>周三</th> <th>周四</th> <th>周五</th> <th>周六</th> <th>周日</th> <div class="home-card middle-right" style="margin-bottom: 20px" @click="toFangXunFangTai">
</tr> <img src="@/assets/icon/fxft.png" style="width:40px;" alt="">
</thead> <p>灾情上报</p>
<tbody ref='calendar'>
</tbody>
</table>
</div> </div>
</div> </a-row>
<div class="home-card monthBottom">
<span>整改执行</span> <a-row>
<span style="fontSize:13px"><span class="monthBottomNum">{{secRowInfos.COMMUNITY_MANAGER_YEAR.count.rectifiedCount}}/</span>{{secRowInfos.COMMUNITY_MANAGER_YEAR.count.rectifyCount}}</span> <div class="home-card middle-right" @click="$router.push({path: '/houseData/basicInfo'})">
</div> <img src="@/assets/icon/xqda.png" style="width:40px;" alt="">
<p>小区档案</p>
</div>
</a-row>
<a-row>
<div class="home-card middle-right" @click="$router.push({path: '/houseData/propertyInfo'})" style="margin-top:20px;">
<img src="@/assets/icon/wyqyda.png" style="width:40px;" alt="">
<p>物业企业档案</p>
</div>
</a-row>
</div> </div>
</a-col> </a-col>
<a-col :span="6"> </a-row>
<div class="sec-right"> <a-row v-if="$store.state.userInfos&&$store.state.userInfos.isAllPerm" class="align-stretch" style="margin-top:20px;">
<div style=""> <a-col :span="8">
<div class="fengxian">
<div class="home-card fengxianTitle">
<span>物业风险发现/处置</span>
<img src="@/assets/icon/qs.png" @click="openOutUrl1" style="height:20px;" alt="">
</div>
<div class="home-card fengxianBox">
<a-row> <a-row>
<a-col :span="24" > <a-col class="justify-between">
<div class="home-card middle-right" @click="$router.push({path: '/houseData/basicInfo'})"> <span style="font-size:16px;font-weight:600;">风险场景</span>
<img src="@/assets/icon/xqda.png" style="width:40px;margin:0 10%" alt=""> <!-- <img src="@/assets/icon/ddd.png" style="height:16px;" alt=""> -->
<p style="color:rgb(80,150,250)"> 小区档案</p> </a-col>
</a-row>
<a-row class="align-stretch" style="padding:10px 0px;">
<a-col :span="7">
<!-- 特殊处理百分比过大显示就像100% -->
<a-progress type="circle" :percent="(disposal.alreadyDone/disposal.thisYearTotal*100)>89 && (disposal.alreadyDone/disposal.thisYearTotal*100)<100 ? 80:(disposal.alreadyDone/disposal.thisYearTotal*100)" size="small" :showInfo="false" :strokeWidth="15" strokeColor="#46B3FF" :width="60" />
</a-col>
<a-col :span="16">
<div class="fengxianDisposalNum">
<span>已处置数/发现数</span>
<span style="color:#000;font-size:20px;font-weight:700;"><span style="color:#1890ff;">{{disposal.alreadyDone}}</span>/{{disposal.thisYearTotal}}</span>
</div> </div>
</a-col> </a-col>
</a-row> </a-row>
<a-row> <a-row>
<a-col :span="24" > <a-col :span="8">
<div class="home-card middle-right" @click="$router.push({path: '/houseData/propertyInfo'})"> <div style="height:100%">
<img src="@/assets/icon/wyqyda.png" style="width:40px;margin:0 10%" alt=""> <span>物业处置</span>
<p style="color:rgb(80,150,250)"> 物业企业档案</p> <span class="disposalDetailNum"> {{disposal.wyDone}} </span>
</div>
</a-col>
<a-col :span="8">
<div style="height:100%">
<span>居委处置</span>
<span class="disposalDetailNum"> {{disposal.jwDone}} </span>
</div>
</a-col>
<a-col :span="8">
<div style="height:100%">
<span>网格处置</span>
<span class="disposalDetailNum"> {{disposal.wgDone}} </span>
</div> </div>
</a-col> </a-col>
</a-row> </a-row>
<!-- <div class="gayLine" style="margin:10px 0px"></div>
<a-row>
<a-col style="display:flex;justify-content:space-between;">
<span style="font-weight:600;">其他委办局转派物业处置</span>
<img src="@/assets/icon/ddd.png" style="height:16px;" alt="">
</a-col>
</a-row>
<a-row style="padding:10px 0px;display:flex;align-items:stretch;">
<a-col :span="7">
<a-progress type="circle" :percent="12/58*100" size="small" :showInfo="false" :strokeWidth="15" strokeColor="#46B3FF" :width="60" />
</a-col>
<a-col :span="16">
<div style="display:flex;flex-direction:column;justify-content:space-around;height:100%">
<span>已处置数/转派总数</span>
<span style="color:#000;font-size:20px;font-weight:700;"><span style="color:#1890ff;">12</span>/58</span>
</div>
</a-col>
</a-row> -->
</div> </div>
</div>
<div style="flex:1;marginTop:10px; display:flex;flex-direction:column" class="home-card"> </a-col>
<div class="home-card" style="border-bottom:1px solid #ccc;font-weight:550;"> <a-col :span="8">
<span>专项检查</span> <div class="baoxiu">
</div > <div class="home-card baoxiuTitle">
<div style="flex:1;display:flex;flex-direction:column;justify-content:space-around;paddingLeft:10%;font-weight:600;fontSize:15px"> <span>应急报修</span>
<div style=""> </div>
<span ><img src="@/assets/icon/yyzt.png" alt="" style="width:20px;margin-right:3px;"> 已有主题</span> <div class="baoxiuBox">
<span style="float:right;paddingRight:50px;color:rgb(80,150,250)">{{theme}}</span> <div class="repair-top">
<div class="baoxiuSecondTitle">
<p>转派区应急维修中心</p>
<img src="@/assets/icon/ddd.png" alt="" @click="toRepair('1', '2')">
</div> </div>
<div> <div class="baoxiuMiddleBox">
<span ><img src="@/assets/icon/ywcjcxq.png" alt="" style="width:20px;margin-right:3px;"> 已完成小区</span> <div>
<span style="float:right;paddingRight:50px;color:rgb(80,150,250)">{{sect}}</span> <a-progress type="circle" :percent="repair.yjwhcomplete/repair.yjwhtotal*100" size="small" :showInfo="false" :strokeWidth="15" strokeColor="#46B3FF" :width="40" />
</div>
<div>
<span style="color:#555;">已完成数/已转派总数</span>
<span style="color:#000;font-size:1.3rem;font-weight:700;"><span style="color:#1890ff;">{{repair.yjwhcomplete}}</span>/{{repair.yjwhtotal}}</span>
</div>
</div> </div>
<div> <div class="baoxiuBottomBox">
<span ><img src="@/assets/icon/zt.png" alt="" style="width:20px;margin-right:3px;"> 已开整改单</span> <div>
<span style="float:right;paddingRight:50px;color:rgb(80,150,250)">{{receipts}}</span> <div class="baoxiuBottomBoxTitle"><span style="color:#555;">及时接单率</span><span style="color:#10C3C4;">{{repair.yjwhreceiveratio}}%</span></div>
<a-progress :percent="repair.yjwhreceiveratio" :showInfo="false" strokeColor="#96DDDE" :strokeWidth="7"/>
</div>
<div>
<div class="baoxiuBottomBoxTitle"><span style="color:#555;">及时处置率</span><span style="color:#10C3C4;">{{repair.yjwhhandleratio}}%</span></div>
<a-progress :percent="repair.yjwhhandleratio" :showInfo="false" strokeColor="#96DDDE" :strokeWidth="7"/>
</div>
</div> </div>
<div> </div>
<span ><img src="@/assets/icon/zt.png" alt="" style="width:20px;margin-right:3px;"> 已完成整改</span> <div class="repair-btm">
<span style="float:right;paddingRight:50px;color:rgb(80,150,250)">0</span> <div class="baoxiuSecondTitle">
<p>转派物业企业报修</p>
<img src="@/assets/icon/ddd.png" alt="" @click="toRepair('2', '1')">
</div>
<div class="baoxiuMiddleBox">
<div>
<a-progress type="circle" :percent="repair.wybxcomplete/repair.wybxtotal*100" size="small" :showInfo="false" :strokeWidth="15" strokeColor="#46B3FF" :width="40" />
</div>
<div>
<span style="color:#555;">已完成数/已转派总数</span>
<span style="color:#000;font-size:1.3rem;font-weight:700;"><span style="color:#1890ff;">{{repair.wybxcomplete}}</span>/{{repair.wybxtotal}}</span>
</div>
</div>
<div class="baoxiuBottomBox">
<div>
<div class="baoxiuBottomBoxTitle"><span style="color:#555;">及时接单率</span><span style="color:#10C3C4;">{{repair.wybxreceiveratio}}%</span></div>
<a-progress :percent="repair.wybxreceiveratio" :showInfo="false" strokeColor="#96DDDE" :strokeWidth="7"/>
</div>
<div>
<div class="baoxiuBottomBoxTitle"><span style="color:#555;">及时处置率</span><span style="color:#10C3C4;">{{repair.wybxhandleratio}}%</span></div>
<a-progress :percent="repair.wybxhandleratio" :showInfo="false" strokeColor="#96DDDE" :strokeWidth="7"/>
</div>
</div> </div>
</div> </div>
</div> </div>
</div>
</a-col>
</a-row>
<a-row class="align-stretch" style="margin-top:10px;height:100%">
<a-col :span="12" style="paddingRight:10px;">
<div class="home-card" style="margin-top:10px;height:96%">
<ComplaintsTrain moduletitle="投诉问题" />
</div> </div>
</a-col> </a-col>
<a-col :span="12"> <a-col :span="8">
<div class="home-card" style="margin-top:10px;height:96%"> <div class="tousu">
<ComplaintsTrain moduletitle="报修" /> <img class="tousuIMG" src="@/assets/icon/sz.png" alt="" @click="toTousu">
<a-tabs class="tousuQuestion" default-active-key="1" :activeKey="activeKey" @change="(key) => changeTabKey(key, 1)" style="height: 100%;" >
<a-tab-pane key="1" tab="投诉问题">
<a-tabs default-active-key="1" :activeKey="activeKey2" @change="(key) => changeTabKey(key, 2)" size="small">
<a-tab-pane key="1" tab="月排行">
<template v-if="tousuQuestionList.M&&tousuQuestionList.M.length>0">
<a-row class="tousuTabTitle">
<a-col :span="18">问题</a-col>
<a-col :span="4" :offset="2"> <span>数量</span> </a-col>
</a-row>
<a-row class="tousuContentRow" v-for="(item,i) in tousuQuestionList.M" :key="i">
<a-col class="tousuRankNum" :span="2">
<div class="row-number" :style="'background:'+(i>2?'#E5E6E7':'#000')+';line-height: 18px;color:'+(i>2?'#000':'#fff')">{{i+1}}</div>
</a-col>
<a-col :span="16">
<div class="tousuContent">
<a-tooltip>
<template slot="title">
{{item.name}}
</template>
{{item.name}}
</a-tooltip>
</div>
</a-col>
<a-col :span="4" :offset="2"> <span style="font-weight:600;">{{item.num}}</span></a-col>
</a-row>
</template>
<template v-else>
<div style="height: 100%;display:flex;align-items:center;justify-content:center;">
<div style="font-size:30px;font-weight:900;color:#ccc;">暂无数据</div>
</div>
</template>
</a-tab-pane>
<a-tab-pane key="2" tab="年度排行">
<template v-if="tousuQuestionList.Y&&tousuQuestionList.Y.length>0">
<a-row class="tousuTabTitle">
<a-col :span="18">问题</a-col>
<a-col :span="4" :offset="2"><span>数量</span></a-col>
</a-row>
<a-row v-for="(item,i) in tousuQuestionList.Y" :key="i" class="tousuContentRow">
<a-col :span="2" class="tousuRankNum">
<div class="row-number" :style="'background:'+(i>2?'#E5E6E7':'#000')+';line-height: 18px;color:'+(i>2?'#000':'#fff')">{{i+1}}</div>
</a-col>
<a-col :span="16">
<div class="tousuContent">
<a-tooltip>
<template slot="title">
{{item.name}}
</template>
{{item.name}}
</a-tooltip>
</div>
</a-col>
<a-col :span="4" :offset="2"> <span style="font-weight:600;">{{item.num}}</span></a-col>
</a-row>
</template>
<template v-else>
<div style="height: 100%;display:flex;align-items:center;justify-content:center;">
<div style="font-size:30px;font-weight:900;color:#ccc;">暂无数据</div>
</div>
</template>
</a-tab-pane>
<a-tab-pane key="3" tab="总排行">
<template v-if="tousuQuestionList.S&&tousuQuestionList.S.length>0">
<a-row class="tousuTabTitle">
<a-col :span="18">问题</a-col>
<a-col :span="4" :offset="2"><span>数量</span></a-col>
</a-row>
<a-row v-for="(item,i) in tousuQuestionList.S" :key="i" class="tousuContentRow">
<a-col :span="2" class="tousuRankNum">
<div class="row-number" :style="'background:'+(i>2?'#E5E6E7':'#000')+';line-height: 18px;color:'+(i>2?'#000':'#fff')">{{i+1}}</div>
</a-col>
<a-col :span="16">
<div class="tousuContent">
<a-tooltip>
<template slot="title">
{{item.name}}
</template>
{{item.name}}
</a-tooltip>
</div>
</a-col>
<a-col :span="4" :offset="2"> <span style="font-weight:600;">{{item.num}}</span></a-col>
</a-row>
</template>
<template v-else>
<div style="height: 100%;display:flex;align-items:center;justify-content:center;">
<div style="font-size:30px;font-weight:900;color:#ccc;">暂无数据</div>
</div>
</template>
</a-tab-pane>
</a-tabs>
</a-tab-pane>
<a-tab-pane key="2" tab="投诉密度" >
<a-tabs default-active-key="1" :activeKey="activeKey2" @change="(key) => changeTabKey(key, 2)" size="small">
<a-tab-pane key="1" tab="月排行">
<template v-if="tousuDensityList.M&&tousuDensityList.M.length>0">
<a-row class="tousuTabTitle">
<a-col :span="15">街道</a-col>
<a-col :span="7" :offset="2"><span>数量</span></a-col>
</a-row>
<a-row v-for="(item,i) in tousuDensityList.M" :key="i" class="tousuContentRow">
<a-col :span="2" class="tousuRankNum">
<div class="row-number" :style="'background:'+(i>2?'#E5E6E7':'#000')+';line-height: 18px;color:'+(i>2?'#000':'#fff')">{{i+1}}</div>
</a-col>
<a-col :span="13">
<div class="tousuContent">
<a-tooltip>
<template slot="title">
{{item.name}}
</template>
{{item.name}}
</a-tooltip>
</div>
</a-col>
<a-col :span="7" :offset="2"> <span style="font-weight:600;">{{Math.round(item.num)}}</span> <span>件/小区</span> </a-col>
</a-row>
</template>
<template v-else>
<div style="height: 100%;display:flex;align-items:center;justify-content:center;">
<div style="font-size:30px;font-weight:900;color:#ccc;">暂无数据</div>
</div>
</template>
</a-tab-pane>
<a-tab-pane key="2" tab="年度排行">
<template v-if="tousuDensityList.Y&&tousuDensityList.Y.length>0">
<a-row class="tousuTabTitle">
<a-col :span="15">街道</a-col>
<a-col :span="7" :offset="2"><span>数量</span></a-col>
</a-row>
<a-row v-for="(item,i) in tousuDensityList.Y" :key="i" class="tousuContentRow">
<a-col :span="2" class="tousuRankNum">
<div class="row-number" :style="'background:'+(i>2?'#E5E6E7':'#000')+';line-height: 18px;color:'+(i>2?'#000':'#fff')">{{i+1}}</div>
</a-col>
<a-col :span="13">
<div class="tousuContent">
<a-tooltip>
<template slot="title">
{{item.name}}
</template>
{{item.name}}
</a-tooltip>
</div>
</a-col>
<a-col :span="7" :offset="2"> <span style="font-weight:600;">{{Math.round(item.num)}}</span> <span>件/小区</span> </a-col>
</a-row>
</template>
<template v-else>
<div style="height: 100%;display:flex;align-items:center;justify-content:center;">
<div style="font-size:30px;font-weight:900;color:#ccc;">暂无数据</div>
</div>
</template>
</a-tab-pane>
<a-tab-pane key="3" tab="总排行">
<template v-if="tousuDensityList.S&&tousuDensityList.S.length>0">
<a-row class="tousuTabTitle">
<a-col :span="15">街道</a-col>
<a-col :span="7" :offset="2"><span>数量</span></a-col>
</a-row>
<a-row v-for="(item,i) in tousuDensityList.S" :key="i" class="tousuContentRow">
<a-col :span="2" class="tousuRankNum">
<div class="row-number" :style="'background:'+(i>2?'#E5E6E7':'#000')+';line-height: 18px;color:'+(i>2?'#000':'#fff')">{{i+1}}</div>
</a-col>
<a-col :span="13">
<div class="tousuContent">
<a-tooltip>
<template slot="title">
{{item.name}}
</template>
{{item.name}}
</a-tooltip>
</div>
</a-col>
<a-col :span="7" :offset="2"> <span style="font-weight:600;">{{Math.round(item.num)}}</span> <span>件/小区</span> </a-col>
</a-row>
</template>
<template v-else>
<div style="height: 100%;display:flex;align-items:center;justify-content:center;">
<div style="font-size:30px;font-weight:900;color:#ccc;">暂无数据</div>
</div>
</template>
</a-tab-pane>
</a-tabs>
</a-tab-pane>
</a-tabs>
</div> </div>
</a-col> </a-col>
</a-row> </a-row>
</div> </div>
</div>
</template> </template>
<script> <script>
import ComplaintsTrain from '@/views/home/ComplaintsTrain' import ok from '@/assets/icon/ok.png'
import nm from '@/assets/icon/nm.png'
import qs from 'qs' import qs from 'qs'
import axios from 'axios' import axios from 'axios'
import ComplaintsTrain from '@/views/home/ComplaintsTrain'
import EmergencyRepair from '@/views/home/EmergencyRepair'
import IndustrySupervision from '@/views/home/IndustrySupervision'
import ManagementModule from '@/views/home/ManagementModule'
import RetrofitElevator from '@/views/home/RetrofitElevator'
import RiskDisposal from '@/views/home/RiskDisposal'
import FileModule from '@/views/home/FileModule'
export default { export default {
name: 'HomePage', name: 'HomePage',
components: { components: {
ComplaintsTrain ComplaintsTrain,
EmergencyRepair,
IndustrySupervision,
ManagementModule,
RetrofitElevator,
RiskDisposal,
FileModule,
}, },
data() { data() {
return{ return{
sect: 0, //已完成小区 ok,
theme: 0, //已有主题 nm,
receipts: 0, //已开整改单
baseData: {},
showMonthOrYear: false,
date: new Date(), date: new Date(),
titleData: {}, data: {},
openConfig: false, openConfig: false,
disposal: {}, disposal: {},
nowMonth: '本月', nowMonth: '本月',
checkStreet: 0, checkStreet: 0,
totStreet: 0, totStreet: 0,
FB_month: [ mounth: [
{name: '1月', check: false, hover: false, totStreet: 0, checkStreet: 0, class: '', backgroundColor: 'rgb(226,235,245);'}, {name: '1月', check: false, hover: false, totStreet: 0, checkStreet: 0, class: '', },
{name: '2月', check: false, hover: false, totStreet: 0, checkStreet: 0, class: '', backgroundColor: 'rgb(226,235,245);'}, {name: '2月', check: false, hover: false, totStreet: 0, checkStreet: 0, class: '', },
{name: '3月', check: false, hover: false, totStreet: 0, checkStreet: 0, class: '', backgroundColor: 'rgb(226,235,245);'}, {name: '3月', check: false, hover: false, totStreet: 0, checkStreet: 0, class: '', },
{name: '4月', check: false, hover: false, totStreet: 0, checkStreet: 0, class: '', backgroundColor: 'rgb(226,235,245);'}, {name: '4月', check: false, hover: false, totStreet: 0, checkStreet: 0, class: '', },
{name: '5月', check: false, hover: false, totStreet: 0, checkStreet: 0, class: '', backgroundColor: 'rgb(226,235,245);'}, {name: '5月', check: false, hover: false, totStreet: 0, checkStreet: 0, class: '', },
{name: '6月', check: false, hover: false, totStreet: 0, checkStreet: 0, class: '', backgroundColor: 'rgb(226,235,245);'}, {name: '6月', check: false, hover: false, totStreet: 0, checkStreet: 0, class: '', },
{name: '7月', check: false, hover: false, totStreet: 0, checkStreet: 0, class: '', backgroundColor: 'rgb(226,235,245);'}, {name: '7月', check: false, hover: false, totStreet: 0, checkStreet: 0, class: '', },
{name: '8月', check: false, hover: false, totStreet: 0, checkStreet: 0, class: '', backgroundColor: 'rgb(226,235,245);'}, {name: '8月', check: false, hover: false, totStreet: 0, checkStreet: 0, class: '', },
{name: '9月', check: false, hover: false, totStreet: 0, checkStreet: 0, class: '', backgroundColor: 'rgb(226,235,245);'}, {name: '9月', check: false, hover: false, totStreet: 0, checkStreet: 0, class: '', },
{name: '10月', check: false, hover: false, totStreet: 0, checkStreet: 0, class: '', backgroundColor: 'rgb(226,235,245);' }, {name: '10月', check: false, hover: false, totStreet: 0, checkStreet: 0, class: '', },
{name: '11月', check: false, hover: false, totStreet: 0, checkStreet: 0, class: '', backgroundColor: 'rgb(226,235,245);' }, {name: '11月', check: false, hover: false, totStreet: 0, checkStreet: 0, class: '', },
{name: '12月', check: false, hover: false, totStreet: 0, checkStreet: 0, class: '', backgroundColor: 'rgb(226,235,245);' }, {name: '12月', check: false, hover: false, totStreet: 0, checkStreet: 0, class: '', },
],
WQ_month: [
{name: '1月', check: false, hover: false, totStreet: 0, checkStreet: 0, class: '', backgroundColor: 'rgb(226,235,245);'},
{name: '2月', check: false, hover: false, totStreet: 0, checkStreet: 0, class: '', backgroundColor: 'rgb(226,235,245);'},
{name: '3月', check: false, hover: false, totStreet: 0, checkStreet: 0, class: '', backgroundColor: 'rgb(226,235,245);'},
{name: '4月', check: false, hover: false, totStreet: 0, checkStreet: 0, class: '', backgroundColor: 'rgb(226,235,245);'},
{name: '5月', check: false, hover: false, totStreet: 0, checkStreet: 0, class: '', backgroundColor: 'rgb(226,235,245);'},
{name: '6月', check: false, hover: false, totStreet: 0, checkStreet: 0, class: '', backgroundColor: 'rgb(226,235,245);'},
{name: '7月', check: false, hover: false, totStreet: 0, checkStreet: 0, class: '', backgroundColor: 'rgb(226,235,245);'},
{name: '8月', check: false, hover: false, totStreet: 0, checkStreet: 0, class: '', backgroundColor: 'rgb(226,235,245);'},
{name: '9月', check: false, hover: false, totStreet: 0, checkStreet: 0, class: '', backgroundColor: 'rgb(226,235,245);'},
{name: '10月', check: false, hover: false, totStreet: 0, checkStreet: 0, class: '', backgroundColor: 'rgb(226,235,245);' },
{name: '11月', check: false, hover: false, totStreet: 0, checkStreet: 0, class: '', backgroundColor: 'rgb(226,235,245);' },
{name: '12月', check: false, hover: false, totStreet: 0, checkStreet: 0, class: '', backgroundColor: 'rgb(226,235,245);' },
],
manager_month: [
{name: '1月', check: false, hover: false, totStreet: 0, checkStreet: 0, class: '', backgroundColor: 'rgb(226,235,245);'},
{name: '2月', check: false, hover: false, totStreet: 0, checkStreet: 0, class: '', backgroundColor: 'rgb(226,235,245);'},
{name: '3月', check: false, hover: false, totStreet: 0, checkStreet: 0, class: '', backgroundColor: 'rgb(226,235,245);'},
{name: '4月', check: false, hover: false, totStreet: 0, checkStreet: 0, class: '', backgroundColor: 'rgb(226,235,245);'},
{name: '5月', check: false, hover: false, totStreet: 0, checkStreet: 0, class: '', backgroundColor: 'rgb(226,235,245);'},
{name: '6月', check: false, hover: false, totStreet: 0, checkStreet: 0, class: '', backgroundColor: 'rgb(226,235,245);'},
{name: '7月', check: false, hover: false, totStreet: 0, checkStreet: 0, class: '', backgroundColor: 'rgb(226,235,245);'},
{name: '8月', check: false, hover: false, totStreet: 0, checkStreet: 0, class: '', backgroundColor: 'rgb(226,235,245);'},
{name: '9月', check: false, hover: false, totStreet: 0, checkStreet: 0, class: '', backgroundColor: 'rgb(226,235,245);'},
{name: '10月', check: false, hover: false, totStreet: 0, checkStreet: 0, class: '', backgroundColor: 'rgb(226,235,245);' },
{name: '11月', check: false, hover: false, totStreet: 0, checkStreet: 0, class: '', backgroundColor: 'rgb(226,235,245);' },
{name: '12月', check: false, hover: false, totStreet: 0, checkStreet: 0, class: '', backgroundColor: 'rgb(226,235,245);' },
], ],
expired: 0, expired: 0,
secRowInfos: { expireInFiveMonth: 0,
HOUSING_OFFICE: { theme: 0,
data: [], sect: 0,
count: { receipts: 0,
rectifyCount: 0, people: [],
rectifiedCount: 0 tousuQuestionList: {
} M: [],
}, Y: [],
PROPERTY_BIWEEKLY: { S: [],
data: [], },
count: { tousuDensityList: {
rectifyCount: 0, M: [],
rectifiedCount: 0 Y: [],
} S: [],
},
COMMUNITY_MANAGER_YEAR: {
data: [],
count: {
rectifyCount: 0,
rectifiedCount: 0
}
},
COMMUNITY_MANAGER_MATH: {
data: [],
count: {
rectifyCount: 0,
rectifiedCount: 0
}
},
}, },
repair: {
yjwhtotal: 0, //应急维护总数
yjwhcomplete: 0, //应急维护已完成数
yjwhreceiveratio: 0, //应急维护接单率
yjwhhandleratio: 0, //应急维护处置率
wybxtotal: 0, //物业保修总数
wybxcomplete: 0, //物业报修已完成率
wybxreceiveratio: 0, //物业保修接单率
wybxhandleratio: 0, //物业报修处置率
},
activeKey: '1',
activeKey2: '1',
} }
}, },
created(){},
mounted(){ mounted(){
this.getFBCheck() this.getConfig()
this.getCheckData() this.getList()
this.getSectNum() this.$ajax.get({
this.getbaseInfo() url: this.$api.GET_USER_INFO,
this.getReceiptsNum() }).then(res => {
if(res.code == 200) {
}, if(!!res.data.content.isAllPerm) {
updated(){ this.getDisposal()
this.$nextTick(() => { this.getHouthMonth()
this.myCanlendar() this.getCheckData()
}) this.getCheckPeople()
this.getSectNum()
}, this.getReceiptsNum()
created() { this.getRepair()
let _this = this this.getTousuQuestion('M')
window.clickDate=_this.clickDate this.getTousuQuestion('Y')
}, this.getTousuQuestion('S')
computed: { this.getTousuDensity('M')
validRange(){ //限制日历只展示当前月的日期 this.getTousuDensity('Y')
let year = this.$moment(new Date()).format('YYYY') this.getTousuDensity('S')
let month = +this.$moment(new Date()).format('MM') }
let last = ''
let start = year+'-'+month+'-01'
let arr1 = [1, 3, 5, 7, 8, 10, 12]
let arr2 = [4, 6, 9, 11]
if (arr1.indexOf(month)!=-1) {
last = year+'-'+month+'-31'
}else if (arr2.indexOf(month)!=-1){
last = year+'-'+month+'-30'
}else if(String((year/4)).indexOf('.')!=-1 ){
last = year+'-'+month+'-28'
}else{
last = year+'-'+month+'-29'
} }
return [this.$moment(start), this.$moment(last)] })
} // })
// if (this.$store.state.userinfos && this.$store.state.userinfos.isAllPerm) { // 不是全部权限dashboard下方的模块不展示
// this.getDisposal()
// this.getHouthMonth()
// this.getCheckData()
// this.getCheckPeople()
// this.getSectNum()
// this.getReceiptsNum()
// this.getRepair()
// this.getTousuQuestion('M')
// this.getTousuQuestion('Y')
// this.getTousuQuestion('S')
// this.getTousuDensity('M')
// this.getTousuDensity('Y')
// this.getTousuDensity('S')
// }
}, },
methods: { methods: {
//日历组件 /**
myCanlendar(){ * 点击月份
let dateArr = [...this.$moment(new Date()).format('YYYY-MM-DD').split('-')] */
// console.log('获取当前日期:'dateArr) checkMonth(item){
this.nowMonth = item.name
// 获取当前月对应的最大天数 this.checkStreet = item.checkStreet
let maxDayObj = new Date(dateArr[0], dateArr[1], 0) for(let i=0;i<this.mounth.length;i++){
let maxDay = maxDayObj.getDate() if(this.mounth[i].name == item.name){
// console.log('当前月对应的最大天数:'+maxDay) this.mounth[i].class='hadCheckMonth'
}else{
// 获取当前日期第一天对应周几 this.mounth[i].class=''
let firstDayObj = new Date(dateArr[0], dateArr[1]-1, 1)
let firstDay = firstDayObj.getDay()
firstDay = firstDay == 0 ? 7 : firstDay
// console.log('获取当前日期第一天对应周几:'+firstDay)
// 打印表格
let spaceOnce = true
let tab='<tr>'
for(let i=1;i<=maxDay;i++){
// 打印最前面的空格子,确保只打印一次
if(firstDay>0 && spaceOnce){
for(let j=1;j<firstDay;j++){
tab+= '<td>&nbsp</td>'
}
spaceOnce = false
}
let info = this.secRowInfos.COMMUNITY_MANAGER_MATH && this.secRowInfos.COMMUNITY_MANAGER_MATH.data[i] ? this.secRowInfos.COMMUNITY_MANAGER_MATH.data[i].rato : 0
let color= 'rgb(226,235,245)'
if (info) {
if (info <0.9 ) {
color= '#CC4D4D'
} else if(info== 1) {
color= '#6EB629'
} else {
color= '#FFD400'
}
} }
tab+= '<td onclick=clickDate('+ i +') style="border-radius:20%;text-align:center;border:4px solid #fff; cursor: pointer; background:'+color+'">'+i+'</td>'
if((i-(8-firstDay))%7==0){
tab+='</tr><tr>'
}
/*
如果某月的第一天是周日,那么格子总数会有42个,反之35个就够了,这里按42个打印
// 打印最后几个空格子, tbody总共应有42个格子,-天数 -前面的空格子
*/
let lastSpace = 42-maxDay-(firstDay-1)
// console.log('最后总共有空格:'+lastSpace+',倒数第二行空格:'+(lastSpace-7))
if(i==maxDay && lastSpace > 0){
for(let k = 0;k<lastSpace;k++){
tab+= '<td>&nbsp</td>'
// 减7是计算倒数第二行最后有几个空格,然后换下一行.
if((lastSpace-7)>0 && k+1 == (lastSpace-7))tab+='</tr><tr>'
}
}
}
tab += '</tr>'
this.$refs.calendar.innerHTML = tab
},
clickDate(i) {
let date = ''
let month= ''
if(i > 10) {
date = i.toString()
} else {
date = '0' + i
} }
},
month = new Date().getMonth() < 10 ? '0' + (new Date().getMonth()+1) + '-' + date : (new Date().getMonth()+1) + '-' + date hoverMonth(item){
let finalDate = (new Date().getFullYear() + '-' + month) let time = new Date().getFullYear()
// console.log(time+'-'+parseInt(item.name))
this.$router.push({ this.$router.push({
'path': '/documents/fiveSearch/managerSelfCheckList', name: 'month',
query: { query: {
month: finalDate + ',' + finalDate month: time+'-'+parseInt(item.name)
// month: time+'-'+parseInt(item.name) > 10 ? parseInt(item.name): '0' + parseInt(item.name)
} }
}) })
}, },
/** /**
* 获取dashboard数据 * 获取dashboard数据
*/ */
getbaseInfo(){ getList(){
this.$ajax.get({ this.$ajax.get({
url: this.$api.GET_RESOURE_LIST, url: this.$api.GET_RESOURE_LIST,
}).then(res => { }).then(res => {
if (res.code === '200') { if (res.code === '200') {
this.baseData = this.$com.confirm(res, 'data.content', []) this.data = this.$com.confirm(res, 'data.content', [])
} }
}) })
...@@ -559,65 +800,40 @@ export default { ...@@ -559,65 +800,40 @@ export default {
}) })
}, },
/** /**
* 获房办月查完成情况 * 获取房办月查统计
*/ */
getFBCheck(){ getHouthMonth(){
this.$ajax.get({ this.$ajax.get({
url: this.$api.GET_FB_WY_MANAGE_CHECK, url: this.$api.GET_HOUSE_MONTH,
}).then(res => { }).then(res => {
if (res.code === '200') { if (res.code === '200') {
this.secRowInfos = this.$com.confirm(res, 'data.content', {}) let cont = this.$com.confirm(res, 'data.content', [])
// 处理房办的月份颜色 this.totStreet = cont[0].totStreet
this.secRowInfos.HOUSING_OFFICE.data.forEach((ele, i) => { for(let i=0;i<cont.length;i++){
if (ele.rectifiedCount/ele.rectifyCount == 1 ) { // 完成率100 绿色 if(cont[i] && cont[i].month && cont[i].month>0){
this.FB_month[i].backgroundColor = '#6EB629' this.mounth[cont[i].month-1].check=true
this.FB_month[i].color = '#fff' this.mounth[cont[i].month-1].checkStreet=cont[i].checkStreet
}else if(ele.rectifiedCount/ele.rectifyCount <.9){ // 完成率90以下 红色 this.mounth[cont[i].month-1].totStreet=cont[i].totStreet
this.FB_month[i].backgroundColor = '#CC4D4D'
this.FB_month[i].color = '#fff'
} else if(ele.rectifiedCount/ele.rectifyCount>0.9){ // 完成率90到100之间 黄色
this.FB_month[i].backgroundColor = '#FFD400'
this.FB_month[i].color = '#fff'
}else{ // 无数据状态
this.FB_month[i].backgroundColor = 'rgb(226,235,245)'
this.FB_month[i].color = '#2B87FE'
}
})
// 处理物企双周查月份颜色
this.secRowInfos.PROPERTY_BIWEEKLY.data.forEach((ele, i) => {
if (ele.rectifiedCount/ele.rectifyCount == 1 || ele.rectifyCount == 0) { // 完成率100 绿色
this.WQ_month[i].backgroundColor = '#6EB629'
this.WQ_month[i].color = '#fff'
}else if(ele.rectifiedCount/ele.rectifyCount <.9){ // 完成率90以下 红色
this.WQ_month[i].backgroundColor = '#CC4D4D'
this.WQ_month[i].color = '#fff'
} else if(ele.rectifiedCount/ele.rectifyCount>0.9){ // 完成率90到100之间 黄色
this.WQ_month[i].backgroundColor = '#FFD400'
this.WQ_month[i].color = '#fff'
}else{ // 无数据状态
this.WQ_month[i].backgroundColor = 'rgb(226,235,245)'
this.WQ_month[i].color = '#2B87FE'
}
})
// 处理小区经理自查月份颜色
this.secRowInfos.COMMUNITY_MANAGER_YEAR.data.forEach((ele, i) => {
if (ele.rectifiedCount/ele.rectifyCount == 1 ) { // 完成率100 绿色
this.manager_month[i].backgroundColor = '#6EB629'
this.manager_month[i].color = '#fff'
}else if(ele.rectifiedCount/ele.rectifyCount <.9){ // 完成率90以下 红色
this.manager_month[i].backgroundColor = '#CC4D4D'
this.manager_month[i].color = '#fff'
} else if(ele.rectifiedCount/ele.rectifyCount>0.9){ // 完成率90到100之间 黄色
this.manager_month[i].backgroundColor = '#FFD400'
this.manager_month[i].color = '#fff'
}else{ // 无数据状态
this.manager_month[i].backgroundColor = 'rgb(226,235,245)'
this.manager_month[i].color = '#2B87FE'
} }
}) }
let num = Number(this.$moment(this.date).format('MM'))
this.mounth[num-1].class='hadCheckMonth'
this.nowMonth = this.mounth[num-1].name
this.checkStreet = this.mounth[num-1].checkStreet
}
})
},
/**
* 获取以及报修统计
*/
getRepair(){
this.$ajax.get({
url: this.$api.GET_REPAIR_STATISTICS,
}).then(res => {
if (res.code === '200') {
this.repair = this.$com.confirm(res, 'data.content', [])
}else{
this.$message.error(res.msg, 10)
} }
}) })
}, },
...@@ -661,6 +877,48 @@ export default { ...@@ -661,6 +877,48 @@ export default {
this.$message.error(err.data.msg) this.$message.error(err.data.msg)
}) })
}, },
/**
* 获取检查人员数据
*/
getCheckPeople(){
let date= new Date()
let startDate=this.$moment(date).format('YYYY-MM-DD')+' 00:00:00'
let endDate=this.$moment(date).format('YYYY-MM-DD')+' 24:00:00'
const Axios = axios.create({
baseURL: this.$api.BASE_URL,
timeout: 15000,
})
let config = {
method: 'post',
url: 'http://962121.fgj.sh.gov.cn/wyweb/shanghaiwuye/propertyinspector/api/v1/sharingplatform/getInspectors',
headers: {
'X-Requested-With': 'XMLHttpRequest',
'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8',
},
}
let params= {
pageNo: 1,
pageSize: 10000,
startDate: startDate,
endDate: endDate,
hpb_id: '310104000000'
}
config = Object.assign(config, { data: qs.stringify(params) })
Axios(config)
.then(res => {
if (res.data.code === '200') {
let data = this.$com.confirm(res, 'data.data.content', [])
if(data.lenght>8){
this.people=data.slice(0, 7)
}else{
this.people=data
}
}
}).catch(err => {
this.$message.error(err.data.msg)
})
},
/** /**
* 获取已完成检查小区 * 获取已完成检查小区
*/ */
...@@ -725,160 +983,187 @@ export default { ...@@ -725,160 +983,187 @@ export default {
}) })
}, },
/** /**
* 点击月份 * 获取处置单统计
*/ */
checkMonth(item){ getDisposal(){
this.nowMonth = item.name this.$ajax.get({
this.checkStreet = item.checkStreet url: this.$api.GET_HOME_DISPOSAL,
for(let i=0;i<this.FB_month.length;i++){ }).then(res => {
if(this.FB_month[i].name == item.name){ if (res.code === '200') {
this.FB_month[i].class='hadCheckMonth' this.disposal = this.$com.confirm(res, 'data.content', [])
}else{
this.FB_month[i].class=''
} }
} })
}, },
hoverMonthToFB(item){ /**
let time = new Date().getFullYear() * 判断是否开启自定义字段
// console.log(time+'-'+parseInt(item.name)) */
this.$router.push({ getConfig(){
path: '/documents/fiveSearch/monthList',
query: { this.$ajax.get({
month: time+'-'+parseInt(item.name) url: this.$api.GET_CONFIG,
}).then(res => {
if (res.code === '200') {
this.openConfig = this.$com.confirm(res, 'data.content', []).customKeyEnable
// 是否开启自定义字段存入cookie
this.$cookie.set('customKeyEnable', this.openConfig)
let isXuHui = this.$com.confirm(res, 'data.content', [])
this.$store.commit('CHANGE_ISXUHUI', isXuHui.projectArea == 'xuhui')
} }
}) })
}, },
hoverMonthToWY(item){ //调接口跳转专项检查页面
let time = new Date().getFullYear() toFangXunFangTai(){
// console.log(time+'-'+parseInt(item.name)) this.$ajax.get({
this.$router.push({ url: this.$api.GET_JIANCHADIZHI,
'path': '/documents/fiveSearch/doubleWeekCheckList', }).then(res => {
query: { window.open(res)
month: time+'-'+parseInt(item.name)
}
}) })
}, },
hoverMonthToManager(item){ openOutUrl1(){
let time = new Date().getFullYear() window.open('http://962121.fgj.sh.gov.cn/wyweb/shanghaiwuye/web/dataV/riskmanagement/#/')
const bigdays = 31 },
const middledays = 30 openOutUrl2(){
const smalldays = 28 this.$ajax.get({
url: this.$api.GET_WYGENERATE,
let days = parseInt(item.name) }).then(res => {
let dayType = null window.open(res)
})
// if(days == 1) },
switch (days) { /**
case 1: * 去应急报修
dayType = bigdays * @params {bxmaintainType} string
break */
toRepair(bxmaintainType, signStatus){
case 2:
dayType = smalldays
break
case 3:
dayType = bigdays
break
case 4:
dayType = middledays
break
case 5:
dayType = bigdays
break
case 6:
dayType = middledays
break
case 7:
dayType = bigdays
break
case 8:
dayType = bigdays
break
case 9:
dayType = smalldays
break
case 10:
dayType = bigdays
break
case 11:
dayType = smalldays
break
case 12:
dayType = bigdays
break
default:
dayType = null
break
}
let parseDateInfo = (parseInt(item.name) > 10 ? time+'-' + parseInt(item.name) + '-01,' + time+'-' + parseInt(item.name) + '-31': time+'-' + '0' + parseInt(item.name) + '-01,' + time+'-' + '0' + parseInt(item.name) + '-31')
this.$router.push({ this.$router.push({
'path': '/documents/fiveSearch/managerSelfCheckList', name: 'repairList',
query: { query: {
month: parseDateInfo bxmaintainType: bxmaintainType,
// month: time+'-'+parseInt(item.name) > 10 ? parseInt(item.name): '0' + parseInt(item.name) signStatus: signStatus
} }
}) })
}, },
/** /**
* 获取房办月查统计 * 改变投诉的tab的key
*/ */
getHouthMonth(){ changeTabKey(key, num){
if(num == 1){
this.activeKey = key
}else if(num == 2){
this.activeKey2 = key
}
},
/**
* 获取投诉问题排行
*/
getTousuQuestion(type){
const date = new Date()
const year = date.getFullYear()
const month = date.getMonth()+1
const params = {}
if(type == 'M'){
params.type = 'A'
params.tsMonthly = year + '' + (String(month).length==1?'-0'+month:'-'+month)
}else if(type == 'Y'){
params.type = 'Y'
params.dateTime = year + ''
}else if(type == 'S'){
params.type = 'S'
}
params.tsNum_desc = 'desc'
params.pageNo = 1
params.pageSize = 8
this.$ajax.get({ this.$ajax.get({
url: this.$api.GET_HOUSE_MONTH, url: this.$api.GET_TOUSUQUESTION_LIST,
}).then(res => { params: params
}).then(res => {
if (res.code === '200') { if (res.code === '200') {
let cont = this.$com.confirm(res, 'data.content', []) this.tousuQuestionList[type] = this.$com.confirm(res, 'data.content.content', [])
this.totStreet = cont[0].totStreet
for(let i=0;i<cont.length;i++){
if(cont[i] && cont[i].month && cont[i].month>0){
this.FB_month[cont[i].month-1].check=true
this.FB_month[cont[i].month-1].checkStreet=cont[i].checkStreet
this.FB_month[cont[i].month-1].totStreet=cont[i].totStreet
}
}
let num = Number(this.$moment(this.date).format('MM'))
this.FB_month[num-1].class='hadCheckMonth'
this.nowMonth = this.FB_month[num-1].name
this.checkStreet = this.FB_month[num-1].checkStreet
} }
}) })
}, },
/** /**
* 获取处置单统计 * 获取投诉密度排行
*/ */
getDisposal(){ getTousuDensity(type){
const date = new Date()
const year = date.getFullYear()
const month = date.getMonth()+1
const params = {}
if(type == 'M'){
params.type = 'A'
params.dateTime = year + '' + (String(month).length==1?'-0'+month:'-'+month)
}else if(type == 'Y'){
params.type = 'Y'
params.dateTime = year + ''
}else if(type == 'S'){
params.type = 'S'
params.dateTime = '20'
}
params.pageNo = 1
params.pageSize = 8
this.$ajax.get({ this.$ajax.get({
url: this.$api.GET_HOME_DISPOSAL, url: this.$api.GET_TOUSUDENSITY_LIST,
}).then(res => { params: params
}).then(res => {
if (res.code === '200') { if (res.code === '200') {
this.disposal = this.$com.confirm(res, 'data.content', []) this.tousuDensityList[type] = this.$com.confirm(res, 'data.content.content', [])
} }
}) })
}, },
handleExpired() {
this.$router.push({name: 'indCous', query: {date: (this.$moment().format('L')).split('/').join('')}})
},
handleWillExpire() {
this.$router.push({name: 'indCous', query: {cdate: (this.$moment().format('L')).split('/').join(''), date: (this.$moment().add('months', 5).format('L')).split('/').join('')}})
},
/**
* 去投诉
*/
toTousu(){
const date = new Date()
const year = date.getFullYear()
const month = date.getMonth()+1
const query = {}
if(this.activeKey == '1'){
if(this.activeKey2=='1'){
query.type = 'M'
query.tsMonthly = year + '' + (String(month).length==1?'-0'+month:'-'+month)
}else if(this.activeKey2=='2'){
query.type = 'Y'
query.dateTime = year + ''
}else if(this.activeKey2=='3'){
query.type = 'S'
}
this.$router.push({
name: 'tousuQuestion',
query: query
})
}else if(this.activeKey == '2'){
if(this.activeKey2=='1'){
query.type = 'M'
query.tsMonthly = year + '' + (String(month).length==1?'-0'+month:'-'+month)
}else if(this.activeKey2=='2'){
query.type = 'Y'
query.dateTime = year + ''
}else if(this.activeKey2=='3'){
query.type = 'S'
}
this.$router.push({
name: 'tousuDensity',
query: query
})
}
},
}, },
} }
</script> </script>
<style scoped> <style>
#home { #home {
width: 100%; width: 100%;
height:100%;
display: flex;
flex-direction: column;
} }
.home-card{ .home-card{
background: #fff; background: #fff;
padding: 15px; padding: 15px;
...@@ -905,78 +1190,43 @@ export default { ...@@ -905,78 +1190,43 @@ export default {
line-height:24px; line-height:24px;
} }
.sec-right{
height: 100%;
display:flex;
flex-direction: column;
}
.middle-right{ .middle-right{
text-align:center; text-align:center;
height: calc(50% - 10px); height: calc(50% - 10px);
display:flex; display:flex;
align-items: center; flex-direction:column;
justify-content:space-around;
align-items:center;
cursor: pointer; cursor: pointer;
} }
.middle-right p{ .middle-right p{
font-size:14px; font-size:14px;
margin:5px ; margin:5px 0px 0px 0px;
font-weight:600;
} }
.month{ .month{
height:100%; height:100%;
background:#fff; background:#fff;
margin-right:10px; margin-right:10px;
display: flex;
justify-content: space-between;
flex-direction: column;
}
.monthTitle,.monthBottom{
display: flex;
justify-content: space-between;
align-items: center;
} }
.monthTitle>span{ .monthTitle>span:first-child{
font-weight:600; font-weight:600;
font-size:16px; font-size:16px;
} }
.monthBottom>span{ .monthTitleNum{
font-weight:500; font-size:16px;
font-size:14px; color:#0E7CFF;
} font-weight:600;
.monthBottom .monthBottomNum{ vertical-align: baseline;
color: rgb(0,103,251);
font-size: 20px;
} }
.monthBox{ .monthBox{
height:calc(100% - 55px);
display:flex; display:flex;
flex-direction:column; flex-direction:column;
flex:1; justify-content:space-around;
justify-content: space-between; align-items: stretch;
border-bottom: 1px dashed #ccc;
/* margin: 0 10px; */
}
.monthBoxTitle{
font-weight: 500;
font-size:14px;
margin-bottom:10px;
}
.monthBoxContent,
.calendar{
display:flex;
flex-direction: row;
flex-wrap: wrap;
justify-content: space-around;
align-items: center;
flex:1;
margin: 15px 0;
}
.monthBoxContent .hoverTest{
width: 21%;
} }
.monthImg{ .monthImg{
margin:10%; margin:10%;
padding-top: calc(40% - 11px); padding-top: calc(40% - 11px);
...@@ -1008,15 +1258,26 @@ export default { ...@@ -1008,15 +1258,26 @@ export default {
justify-content: center; justify-content: center;
} }
.monthImg:hover .monthHover{ .monthImg:hover .monthHover{
/* height: 50%;
color:#000; */
display: block; display: block;
} }
.zxjc .ant-progress-inner{
background: #F4F5F6;
}
#home .ant-progress-inner{ #home .ant-progress-inner{
border: none; border: none;
} }
#home .ant-tabs-tab-active.ant-tabs-tab{ #home .ant-tabs-tab-active.ant-tabs-tab{
line-height: 31px; line-height: 31px;
} }
/* #home .ant-tabs-bar.ant-tabs-top-bar{
margin: 0px;
} */
/* #home .ant-tabs-content.ant-tabs-content-animated.ant-tabs-top-content{
height: calc(100% - 55px);
} */
#home .ant-tabs-tabpane{ #home .ant-tabs-tabpane{
padding: 0px 15px 10px 15px; padding: 0px 15px 10px 15px;
} }
...@@ -1051,31 +1312,241 @@ export default { ...@@ -1051,31 +1312,241 @@ export default {
border-color: #2B87FE; border-color: #2B87FE;
} }
</style> .jiancha{
height:100%;
background:#fff;
margin:0px 10px;
}
.jianchaTitle>span{
font-weight:600;
font-size:16px;
}
.jianchaBox{
padding:15px 0px ;
height:100%;
}
.jianchaTheme{
border-right:1px dashed #eee;
padding:0px 10px;
display:flex;
flex-direction:column;
justify-content:space-around;
height:100%;
}
<style> .jianchaThemeNum{
#calendar{ color:#0477FF;
width:100%; font-weight:600;
}
.jianchaBoxRight{
padding:0px 10px 0px 30px;
height:100%;
}
.jianchaPeopleTitle{
height:30px;
display:inline-block;
vertical-align: sub;
font-weight:600;
} }
#calendar>.ant-fullcalendar-header{ .fengxian{
display: none; height:100%;
background:#fff;
margin-right:10px;
}
.fengxianTitle>span{
font-weight:600;
font-size:16px;
}
.fengxianBox{
display: flex;
flex-direction: column;
justify-content: space-around;
height: calc(100% - 55px);
}
.fengxianDisposalNum{
display:flex;
flex-direction:column;
justify-content:space-around;
height:100%;
}
.disposalDetailNum{
color:#000;
font-size:16px;
font-weight:700;
vertical-align:middle;
color:#11C3C4;
}
.repair-top{
margin: 0 0.7rem;
padding-top: 0.7rem;
padding-bottom: 0.3rem;
flex:1;
border-bottom: 1px dashed #eee;
}
.repair-btm{
margin: 0 0.7rem;
padding-top: 0.7rem;
padding-bottom: 0.3rem;
flex:1;
}
.baoxiu{
height:100%;
background:#fff;
margin:0px 10px;
}
.baoxiuTitle, .fengxianTitle, .monthTitle, .jianchaTitle{
display:flex;
justify-content:space-between;
border-bottom:1px solid #eee;
}
.baoxiuTitle>span{
font-weight:600;
font-size:16px
}
.baoxiuBox{
height:calc(100% - 55px);
display:flex;
flex-direction:column;
font-size:0.8rem;
}
.baoxiuSecondTitle{
display:flex;
justify-content:space-between;
}
.baoxiuSecondTitle>p{
font-size:0.8rem;
color:#000;
margin-bottom:0.3rem;
}
.baoxiuSecondTitle>img{
height:1.2rem;
margin-top:-0.3rem;
cursor:pointer;
}
.baoxiuMiddleBox{
display:flex;
}
.baoxiuMiddleBox>div:first-child{
margin-right:0.5rem;
display:flex;
align-items:center;
}
.baoxiuMiddleBox>div:last-child{
display:flex;
flex-direction:column;
justify-content:space-around;
height:100%;
}
.baoxiuBottomBox{
display:flex;
margin-top:0.3rem;
justify-content:space-between;
}
.baoxiuBottomBox>div{
width:45%;
}
.baoxiuBottomBoxTitle{
display:flex;
justify-content:space-between;
align-items:flex-end;
}
#home .tousuQuestion>div {
margin:0;
}
.tousu{
height:100%;
background:#fff;
margin-left:10px;
position:relative;
} }
#calendar .ant-fullcalendar{
border-top:0px;
width: 100%;
.tousuIMG{
height:1.2rem;
cursor:pointer;
position:absolute;
right:1rem;
top:1rem;
z-index: 10;
}
.tousuTabTitle{
font-weight:600;
margin-bottom:5px;
}
.tousuContentRow{
font-size:12px;
display:flex;
align-items:stretch;
padding:3px 0px;
text-align:left;
}
.tousuRankNum{
display:flex;
align-items:center;
}
.tousuContent{
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.topBox-l .inner{
padding:1rem;
width: 24%;
display:flex;
justify-content: space-between;
background: #fff;
} }
#calendar .ant-fullcalendar-table{
.topBox-l{
width: 100%; width: 100%;
/* margin-top: -20px; */ display:flex;
align-items:center;
justify-content: space-between;
} }
#calendar table{ /* 第二行 */
height:auto; .secBox{
margin-top: 1rem;
width: 100%;
display:flex;
justify-content: space-between;
} }
/* 第3行 */
#calendar .ant-fullcalendar-disabled-cell{ .thirdBox{
display: none; margin-top: 1rem;
width: 100%;
display:flex;
justify-content: space-between;
}
/* 第四行 */
.fourthBox{
margin-top: 1rem;
width: 100%;
display:flex;
justify-content: space-between;
} }
</style>
\ No newline at end of file </style>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment