Commit 2a70fb3e authored by Gakki's avatar Gakki

首页老界面 + 跳转

parent ab89cac7
<template>
<div id="home" class="layoutPadding">
<a-row type="flex" class="align-stretch" style="">
<div>
<!-- 浦东 -->
<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-row type="flex" style="height:100%;">
<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.community}}</span>
</div>
<span class="top-count" >{{data.community}}</span>
</div>
</a-col>
<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">
<div class="align-center" >
<img src="@/assets/icon/xqs.png" style="width:50px;" alt="">
</div>
</div>
</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 :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.building}}</span>
</div>
<div class="align-center" >
<img src="@/assets/icon/mpzs.png" style="width:50px;" alt="">
</div>
</div>
</div>
</a-col>
</a-row>
<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-right:10px;">
<div class="home-card topBox" style="margin-left:10px;">
<a-row>
<a-col :span='9'>
<a-col :span='6'>
<div class="justify-between topBox" >
<div>
<p class="top-font" >门牌幢</p>
<span class="top-count" >{{baseData.building}}</span>
<p class="top-font" >业委会数</p>
<span class="top-count" >{{data.ic}}</span>
</div>
</div>
</a-col>
<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 :span='13'>
<a-row style="border-left: 1px solid lightgrey; border-bottom: 1px solid lightgrey; padding-left: 10px; padding-bottom: 5px;">
<a-col :span='16'>
<span class="top-font" >已过期</span>
</a-col>
<a-col :span='8' v-show="1==2">
<span class="top-count-extra" style="cursor: pointer;" >{{0}}</span>
<a-col :span='8'>
<span class="top-count-extra" style="cursor: pointer;" @click="handleExpired">{{expired}}</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-row style="border-left: 1px solid lightgrey; padding-left: 10px;padding-top: 10px;">
<a-col :span='16'>
<span class="top-font" >5个月内到期</span>
</a-col>
<a-col :span='8' v-show="1==2">
<span class="top-count-extra" style="cursor: pointer;">{{4}}</span>
<a-col :span='8'>
<span class="top-count-extra" style="cursor: pointer;" @click="handleWillExpire">{{expireInFiveMonth}}</span>
</a-col>
</a-row>
</a-col>
<a-col :span='1' />
<a-col :span='1'></a-col>
<a-col :span='4'>
<div class="align-center" style="margin-top: 0px">
<img src="@/assets/icon/mpzs.png" style="width:50px;" alt="">
<div class="align-center" style="margin-top: 10px">
<img src="@/assets/icon/ywhs.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}}
</div>
</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'>
<!-- <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" >{{baseData.company}}</span>
<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='10' />
<a-col :span='1' />
<a-col :span='4'>
<div class="align-center" style="margin-top: 0px">
<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 v-if="$store.state.userInfos && $store.state.userInfos.isAllPerm" class="align-stretch" style="margin-top:20px;">
<a-col :span="8">
<div class="month">
<div class="home-card monthTitle">
<span>房办月查</span>
<span>
<span style="font-size:12px;">{{nowMonth}} </span>
<span class="monthTitleNum">
{{checkStreet}} <span style="color:#000;">/{{totStreet}}</span>
</span>
</span>
</div>
<div class="home-card monthBox">
<span style="font-weight:600;">全年情况</span>
<a-row>
<a-col :span="4" class="hoverTest" v-for="item in mounth" :key="item.name">
<div v-if="item.check" @click="checkMonth(item)" :class="'monthImg green '+item.class" :style="'background:url('+ok+') no-repeat center center /cover; '">
{{item.name}}
<div class="monthHover" @click="hoverMonth(item)">
<div>
<span>明细</span>
</div>
</div>
</div>
<div v-else @click="checkMonth(item)" :class="'monthImg blue '+item.class" :style="'background:url('+nm+') no-repeat center center /cover; '">
{{item.name}}
<div class="monthHover" @click="hoverMonth(item)">
<div>
<span>明细</span>
</div>
</div>
</div>
</a-col>
</a-row>
<a-row style="border-top:1px solid lightgrey;padding-top: 10px;">
<a-col :span='12'>
区属物业 : {{111}}
</div>
</div>
</a-col>
<a-col :span="13" class="zxjc">
<div class="jiancha">
<div class="home-card jianchaTitle">
<span>专项检查</span>
<img src="@/assets/icon/tp.png" style="height:20px;" @click="openOutUrl2" alt="">
</div>
<div style="height: calc(100% - 55px);">
<a-row class="jianchaBox">
<a-col :span="12" class="home-card jianchaTheme">
<!-- <div class="justify-between" style="align-items:baseline;">
<span style="font-weight:600;">已查/应查</span>
<span style="font-size:20px;font-weight:600;"><span style="color:#0477FF;">68</span>/124</span>
</div>
<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='12'>
本市注册 : {{222}}
<a-col :span="6">
<span class="jianchaThemeNum">{{theme}}</span>
<!-- <span class="jianchaThemeNum">0</span> -->
</a-col>
</a-row>
</div>
<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">
<div class="home-card topBox" style="">
<span class="jianchaThemeNum">{{sect}}</span>
<!-- <span class="jianchaThemeNum">0</span> -->
</a-col>
</a-row>
<a-row>
<a-col :span='9'>
<div class="justify-between topBox" >
<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>
<p class="top-font" >业委会</p>
<span class="top-count" >{{baseData.ic}}</span>
</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 :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="">
</div>
<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-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-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>
<a-progress :percent="68/124*100" size="small" :showInfo="false" :strokeWidth="10" strokeColor="#11C3C4"/>
</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>
</a-col>
<a-col :span="3">
<div style="height:100%;margin-left:10px;">
<a-row>
<div class="home-card middle-right" style="margin-bottom: 20px" @click="toFangXunFangTai">
<img src="@/assets/icon/fxft.png" style="width:40px;" alt="">
<p>灾情上报</p>
</div>
</a-row>
</a-col>
<a-row>
<div class="home-card middle-right" @click="$router.push({path: '/houseData/basicInfo'})">
<img src="@/assets/icon/xqda.png" style="width:40px;" alt="">
<p>小区档案</p>
</div>
</a-row>
<a-row class="align-stretch" style="margin-top:10px;">
<a-col :span="6">
<div class="month">
<div class="home-card monthTitle">
<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>
<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>
<div class="home-card monthBox">
<p class="monthBoxTitle">今年完成情况</p>
<div class="monthBoxContent" >
<div class="hoverTest" v-for="item in FB_month" :key="item.name">
<div @click="checkMonth(item)" :class="'monthImg blue '" :style="`background:${item.backgroundColor}; color:${item.color}`">
{{item.name}}
<div class="monthHover" @click="hoverMonthToFB(item)">
<div>
<span>明细</span>
</a-row>
</div>
</a-col>
</a-row>
<a-row v-if="$store.state.userInfos&&$store.state.userInfos.isAllPerm" class="align-stretch" style="margin-top:20px;">
<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-col class="justify-between">
<span style="font-size:16px;font-weight:600;">风险场景</span>
<!-- <img src="@/assets/icon/ddd.png" style="height:16px;" alt=""> -->
</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>
</a-col>
</a-row>
<a-row>
<a-col :span="8">
<div style="height:100%">
<span>物业处置</span>
<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 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>
</a-col>
</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>
</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>
<a-col :span="8">
<div class="baoxiu">
<div class="home-card baoxiuTitle">
<span>应急报修</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}}
<div class="monthHover" @click="hoverMonthToWY(item)">
<div>
<span>明细</span>
<div class="baoxiuBox">
<div class="repair-top">
<div class="baoxiuSecondTitle">
<p>转派区应急维修中心</p>
<img src="@/assets/icon/ddd.png" alt="" @click="toRepair('1', '2')">
</div>
<div class="baoxiuMiddleBox">
<div>
<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 class="baoxiuBottomBox">
<div>
<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 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>
</a-col>
<a-col :span="6">
<div class="month" style="height:100%">
<div class="home-card monthTitle">
<span>物业经理自查</span>
<div class="repair-btm">
<div class="baoxiuSecondTitle">
<p>转派物业企业报修</p>
<img src="@/assets/icon/ddd.png" alt="" @click="toRepair('2', '1')">
</div>
<div class="home-card monthBox">
<p class="monthBoxTitle" > {{!showMonthOrYear? '本月':'今年'}}完成情况 <span @click="showMonthOrYear=!showMonthOrYear" style="float:right;fontSize:12px;cursor:pointer;color:rgb(80,150,250)">切换今年</span></p>
<div class="monthBoxContent" v-show="showMonthOrYear">
<div class="hoverTest" v-for="item in manager_month" :key="item.name">
<div @click="checkMonth(item)" :class="'monthImg blue'" :style="`background:${item.backgroundColor}; color:${item.color}`">
{{item.name}}
<div class="monthHover" @click="hoverMonthToManager(item)">
<div class="baoxiuMiddleBox">
<div>
<span>明细</span>
<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 v-show="!showMonthOrYear" class="calendar">
<!-- <a-calendar id="calendar" :validRange="validRange" :fullscreen="false" /> -->
<table border=0 style="width:100%;height:100%;text-align:center;marginTop:10px">
<thead>
<tr>
<th>周一</th> <th>周二</th> <th>周三</th> <th>周四</th> <th>周五</th> <th>周六</th> <th>周日</th>
</tr>
</thead>
<tbody ref='calendar'>
</tbody>
</table>
</div>
</div>
<div class="home-card monthBottom">
<span>整改执行</span>
<span style="fontSize:13px"><span class="monthBottomNum">{{secRowInfos.COMMUNITY_MANAGER_YEAR.count.rectifiedCount}}/</span>{{secRowInfos.COMMUNITY_MANAGER_YEAR.count.rectifyCount}}</span>
</div>
</div>
</a-col>
<a-col :span="6">
<div class="sec-right">
<div style="">
<a-row>
<a-col :span="24" >
<div class="home-card middle-right" @click="$router.push({path: '/houseData/basicInfo'})">
<img src="@/assets/icon/xqda.png" style="width:40px;margin:0 10%" alt="">
<p style="color:rgb(80,150,250)"> 小区档案</p>
<a-col :span="8">
<div class="tousu">
<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>
<a-row>
<a-col :span="24" >
<div class="home-card middle-right" @click="$router.push({path: '/houseData/propertyInfo'})">
<img src="@/assets/icon/wyqyda.png" style="width:40px;margin:0 10%" alt="">
<p style="color:rgb(80,150,250)"> 物业企业档案</p>
</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>
<div style="flex:1;marginTop:10px; display:flex;flex-direction:column" class="home-card">
<div class="home-card" style="border-bottom:1px solid #ccc;font-weight:550;">
<span>专项检查</span>
</div >
<div style="flex:1;display:flex;flex-direction:column;justify-content:space-around;paddingLeft:10%;font-weight:600;fontSize:15px">
<div style="">
<span ><img src="@/assets/icon/yyzt.png" alt="" style="width:20px;margin-right:3px;"> 已有主题</span>
<span style="float:right;paddingRight:50px;color:rgb(80,150,250)">{{theme}}</span>
</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>
<div>
<span ><img src="@/assets/icon/ywcjcxq.png" alt="" style="width:20px;margin-right:3px;"> 已完成小区</span>
<span style="float:right;paddingRight:50px;color:rgb(80,150,250)">{{sect}}</span>
</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>
<div>
<span ><img src="@/assets/icon/zt.png" alt="" style="width:20px;margin-right:3px;"> 已开整改单</span>
<span style="float:right;paddingRight:50px;color:rgb(80,150,250)">{{receipts}}</span>
</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>
<div>
<span ><img src="@/assets/icon/zt.png" alt="" style="width:20px;margin-right:3px;"> 已完成整改</span>
<span style="float:right;paddingRight:50px;color:rgb(80,150,250)">0</span>
</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>
<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="投诉问题" />
</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>
</a-col>
<a-col :span="12">
<div class="home-card" style="margin-top:10px;height:96%">
<ComplaintsTrain moduletitle="报修" />
</template>
</a-tab-pane>
</a-tabs>
</a-tab-pane>
</a-tabs>
</div>
</a-col>
</a-row>
</div>
</div>
</template>
<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 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 {
name: 'HomePage',
components: {
ComplaintsTrain
ComplaintsTrain,
EmergencyRepair,
IndustrySupervision,
ManagementModule,
RetrofitElevator,
RiskDisposal,
FileModule,
},
data() {
return{
sect: 0, //已完成小区
theme: 0, //已有主题
receipts: 0, //已开整改单
baseData: {},
showMonthOrYear: false,
ok,
nm,
date: new Date(),
titleData: {},
data: {},
openConfig: false,
disposal: {},
nowMonth: '本月',
checkStreet: 0,
totStreet: 0,
FB_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);' },
],
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);' },
mounth: [
{name: '1月', check: false, hover: false, totStreet: 0, checkStreet: 0, class: '', },
{name: '2月', check: false, hover: false, totStreet: 0, checkStreet: 0, class: '', },
{name: '3月', check: false, hover: false, totStreet: 0, checkStreet: 0, class: '', },
{name: '4月', check: false, hover: false, totStreet: 0, checkStreet: 0, class: '', },
{name: '5月', check: false, hover: false, totStreet: 0, checkStreet: 0, class: '', },
{name: '6月', check: false, hover: false, totStreet: 0, checkStreet: 0, class: '', },
{name: '7月', check: false, hover: false, totStreet: 0, checkStreet: 0, class: '', },
{name: '8月', check: false, hover: false, totStreet: 0, checkStreet: 0, class: '', },
{name: '9月', check: false, hover: false, totStreet: 0, checkStreet: 0, class: '', },
{name: '10月', check: false, hover: false, totStreet: 0, checkStreet: 0, class: '', },
{name: '11月', check: false, hover: false, totStreet: 0, checkStreet: 0, class: '', },
{name: '12月', check: false, hover: false, totStreet: 0, checkStreet: 0, class: '', },
],
expired: 0,
secRowInfos: {
HOUSING_OFFICE: {
data: [],
count: {
rectifyCount: 0,
rectifiedCount: 0
}
expireInFiveMonth: 0,
theme: 0,
sect: 0,
receipts: 0,
people: [],
tousuQuestionList: {
M: [],
Y: [],
S: [],
},
PROPERTY_BIWEEKLY: {
data: [],
count: {
rectifyCount: 0,
rectifiedCount: 0
}
},
COMMUNITY_MANAGER_YEAR: {
data: [],
count: {
rectifyCount: 0,
rectifiedCount: 0
}
},
COMMUNITY_MANAGER_MATH: {
data: [],
count: {
rectifyCount: 0,
rectifiedCount: 0
}
tousuDensityList: {
M: [],
Y: [],
S: [],
},
repair: {
yjwhtotal: 0, //应急维护总数
yjwhcomplete: 0, //应急维护已完成数
yjwhreceiveratio: 0, //应急维护接单率
yjwhhandleratio: 0, //应急维护处置率
wybxtotal: 0, //物业保修总数
wybxcomplete: 0, //物业报修已完成率
wybxreceiveratio: 0, //物业保修接单率
wybxhandleratio: 0, //物业报修处置率
},
activeKey: '1',
activeKey2: '1',
}
},
created(){},
mounted(){
this.getFBCheck()
this.getConfig()
this.getList()
this.$ajax.get({
url: this.$api.GET_USER_INFO,
}).then(res => {
if(res.code == 200) {
if(!!res.data.content.isAllPerm) {
this.getDisposal()
this.getHouthMonth()
this.getCheckData()
this.getCheckPeople()
this.getSectNum()
this.getbaseInfo()
this.getReceiptsNum()
},
updated(){
this.$nextTick(() => {
this.myCanlendar()
})
},
created() {
let _this = this
window.clickDate=_this.clickDate
},
computed: {
validRange(){ //限制日历只展示当前月的日期
let year = this.$moment(new Date()).format('YYYY')
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'
this.getRepair()
this.getTousuQuestion('M')
this.getTousuQuestion('Y')
this.getTousuQuestion('S')
this.getTousuDensity('M')
this.getTousuDensity('Y')
this.getTousuDensity('S')
}
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: {
//日历组件
myCanlendar(){
let dateArr = [...this.$moment(new Date()).format('YYYY-MM-DD').split('-')]
// console.log('获取当前日期:'dateArr)
// 获取当前月对应的最大天数
let maxDayObj = new Date(dateArr[0], dateArr[1], 0)
let maxDay = maxDayObj.getDate()
// console.log('当前月对应的最大天数:'+maxDay)
// 获取当前日期第一天对应周几
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>'
}
checkMonth(item){
this.nowMonth = item.name
this.checkStreet = item.checkStreet
for(let i=0;i<this.mounth.length;i++){
if(this.mounth[i].name == item.name){
this.mounth[i].class='hadCheckMonth'
}else{
this.mounth[i].class=''
}
}
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
let finalDate = (new Date().getFullYear() + '-' + month)
hoverMonth(item){
let time = new Date().getFullYear()
// console.log(time+'-'+parseInt(item.name))
this.$router.push({
'path': '/documents/fiveSearch/managerSelfCheckList',
name: 'month',
query: {
month: finalDate + ',' + finalDate
// month: time+'-'+parseInt(item.name) > 10 ? parseInt(item.name): '0' + parseInt(item.name)
month: time+'-'+parseInt(item.name)
}
})
},
/**
* 获取dashboard数据
*/
getbaseInfo(){
getList(){
this.$ajax.get({
url: this.$api.GET_RESOURE_LIST,
}).then(res => {
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 {
})
},
/**
* 获房办月查完成情况
* 获取房办月查统计
*/
getFBCheck(){
getHouthMonth(){
this.$ajax.get({
url: this.$api.GET_FB_WY_MANAGE_CHECK,
url: this.$api.GET_HOUSE_MONTH,
}).then(res => {
if (res.code === '200') {
this.secRowInfos = this.$com.confirm(res, 'data.content', {})
// 处理房办的月份颜色
this.secRowInfos.HOUSING_OFFICE.data.forEach((ele, i) => {
if (ele.rectifiedCount/ele.rectifyCount == 1 ) { // 完成率100 绿色
this.FB_month[i].backgroundColor = '#6EB629'
this.FB_month[i].color = '#fff'
}else if(ele.rectifiedCount/ele.rectifyCount <.9){ // 完成率90以下 红色
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'
let cont = this.$com.confirm(res, 'data.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.mounth[cont[i].month-1].check=true
this.mounth[cont[i].month-1].checkStreet=cont[i].checkStreet
this.mounth[cont[i].month-1].totStreet=cont[i].totStreet
}
})
// 处理物企双周查月份颜色
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 {
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)
})
},
/**
* 获取已完成检查小区
*/
......@@ -715,170 +973,197 @@ export default {
someday: this.$moment(this.date).format('YYYY')+this.$moment(this.date).format('MM')+this.$moment(this.date).format('DD'),
hpb_id: '310104000000'
}
config = Object.assign(config, { data: qs.stringify(params) })
Axios(config)
.then(res => {
this.receipts =res.data.data.totalRows
}).catch(err => {
this.$message.error(err.data.msg)
config = Object.assign(config, { data: qs.stringify(params) })
Axios(config)
.then(res => {
this.receipts =res.data.data.totalRows
}).catch(err => {
this.$message.error(err.data.msg)
})
},
/**
* 获取处置单统计
*/
getDisposal(){
this.$ajax.get({
url: this.$api.GET_HOME_DISPOSAL,
}).then(res => {
if (res.code === '200') {
this.disposal = this.$com.confirm(res, 'data.content', [])
}
})
},
/**
* 点击月份
* 判断是否开启自定义字段
*/
checkMonth(item){
this.nowMonth = item.name
this.checkStreet = item.checkStreet
for(let i=0;i<this.FB_month.length;i++){
if(this.FB_month[i].name == item.name){
this.FB_month[i].class='hadCheckMonth'
}else{
this.FB_month[i].class=''
}
getConfig(){
this.$ajax.get({
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')
}
})
},
hoverMonthToFB(item){
let time = new Date().getFullYear()
// console.log(time+'-'+parseInt(item.name))
this.$router.push({
path: '/documents/fiveSearch/monthList',
query: {
month: time+'-'+parseInt(item.name)
}
//调接口跳转专项检查页面
toFangXunFangTai(){
this.$ajax.get({
url: this.$api.GET_JIANCHADIZHI,
}).then(res => {
window.open(res)
})
},
hoverMonthToWY(item){
let time = new Date().getFullYear()
// console.log(time+'-'+parseInt(item.name))
this.$router.push({
'path': '/documents/fiveSearch/doubleWeekCheckList',
query: {
month: time+'-'+parseInt(item.name)
}
openOutUrl1(){
window.open('http://962121.fgj.sh.gov.cn/wyweb/shanghaiwuye/web/dataV/riskmanagement/#/')
},
openOutUrl2(){
this.$ajax.get({
url: this.$api.GET_WYGENERATE,
}).then(res => {
window.open(res)
})
},
hoverMonthToManager(item){
let time = new Date().getFullYear()
const bigdays = 31
const middledays = 30
const smalldays = 28
let days = parseInt(item.name)
let dayType = null
// if(days == 1)
switch (days) {
case 1:
dayType = bigdays
break
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')
/**
* 去应急报修
* @params {bxmaintainType} string
*/
toRepair(bxmaintainType, signStatus){
this.$router.push({
'path': '/documents/fiveSearch/managerSelfCheckList',
name: 'repairList',
query: {
month: parseDateInfo
// month: time+'-'+parseInt(item.name) > 10 ? parseInt(item.name): '0' + parseInt(item.name)
bxmaintainType: bxmaintainType,
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({
url: this.$api.GET_HOUSE_MONTH,
url: this.$api.GET_TOUSUQUESTION_LIST,
params: params
}).then(res => {
if (res.code === '200') {
let cont = this.$com.confirm(res, 'data.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
this.tousuQuestionList[type] = this.$com.confirm(res, 'data.content.content', [])
}
})
},
/**
* 获取处置单统计
* 获取投诉密度排行
*/
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({
url: this.$api.GET_HOME_DISPOSAL,
url: this.$api.GET_TOUSUDENSITY_LIST,
params: params
}).then(res => {
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>
<style scoped>
<style>
#home {
width: 100%;
height:100%;
display: flex;
flex-direction: column;
}
.home-card{
background: #fff;
padding: 15px;
......@@ -905,78 +1190,43 @@ export default {
line-height:24px;
}
.sec-right{
height: 100%;
display:flex;
flex-direction: column;
}
.middle-right{
text-align:center;
height: calc(50% - 10px);
display:flex;
align-items: center;
flex-direction:column;
justify-content:space-around;
align-items:center;
cursor: pointer;
}
.middle-right p{
font-size:14px;
margin:5px ;
margin:5px 0px 0px 0px;
font-weight:600;
}
.month{
height:100%;
background:#fff;
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-size:16px;
}
.monthBottom>span{
font-weight:500;
font-size:14px;
}
.monthBottom .monthBottomNum{
color: rgb(0,103,251);
font-size: 20px;
.monthTitleNum{
font-size:16px;
color:#0E7CFF;
font-weight:600;
vertical-align: baseline;
}
.monthBox{
height:calc(100% - 55px);
display:flex;
flex-direction:column;
flex:1;
justify-content: space-between;
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;
justify-content:space-around;
align-items: stretch;
}
.monthBoxContent .hoverTest{
width: 21%;
}
.monthImg{
margin:10%;
padding-top: calc(40% - 11px);
......@@ -1008,15 +1258,26 @@ export default {
justify-content: center;
}
.monthImg:hover .monthHover{
/* height: 50%;
color:#000; */
display: block;
}
.zxjc .ant-progress-inner{
background: #F4F5F6;
}
#home .ant-progress-inner{
border: none;
}
#home .ant-tabs-tab-active.ant-tabs-tab{
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{
padding: 0px 15px 10px 15px;
}
......@@ -1051,31 +1312,241 @@ export default {
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>
#calendar{
width:100%;
.jianchaThemeNum{
color:#0477FF;
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{
display: none;
.fengxian{
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%;
/* 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{
display: none;
.thirdBox{
margin-top: 1rem;
width: 100%;
display:flex;
justify-content: space-between;
}
/* 第四行 */
.fourthBox{
margin-top: 1rem;
width: 100%;
display:flex;
justify-content: space-between;
}
</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