10 changed files with 381 additions and 3 deletions
			
			
		| After Width: | Height: | Size: 418 B | 
| @ -0,0 +1,127 @@ | |||
| import {event12345Rates} from "../../../../utils/statisticsApi"; | |||
| import {formatTime} from "../../../../utils/util"; | |||
| const formatDay2 = date => { | |||
|     const year = date.getFullYear() | |||
|     const month = date.getMonth() + 1 | |||
|     const day = date.getDay()  | |||
|     return [year, month, day].map(formatNumber).join('-') | |||
|   } | |||
|   const formatDay = date => { | |||
|     const year = date.getFullYear() | |||
|     const month = date.getMonth()  | |||
|     const day = date.getDay()  | |||
|     return [year, month, day].map(formatNumber).join('-') | |||
|   } | |||
|   const formatNumber = n => { | |||
|     n = n.toString() | |||
|     return n[1] ? n : '0' + n | |||
|   } | |||
| Component({ | |||
|     properties: { | |||
|         curVal: { | |||
|             type: String, | |||
|             value: '1', | |||
|             observer: function () { | |||
|                 this.getList(); | |||
|             } | |||
|         } | |||
|     }, | |||
|     data: { | |||
|         list: [], | |||
|         day: '', | |||
|         day2: '', | |||
|         showitem: 3, | |||
|     }, | |||
|     ready() { | |||
|         this.setData({ | |||
|             day: formatDay(new Date()), | |||
|           }) | |||
|           this.setData({ | |||
|             day2: formatDay2(new Date()) | |||
|           }) | |||
|            | |||
|         this.getList() | |||
|     }, | |||
|     methods: { | |||
|         onChange(e) { | |||
|             this.setData({ | |||
|                 day: e.detail.value | |||
|               }) | |||
|           }, | |||
|           onChange2(e) { | |||
|             this.setData({ | |||
|                 day2: e.detail.value | |||
|               }) | |||
|           }, | |||
|           onSearch(){ | |||
|             if(this.data.day>this.data.day2){ | |||
|                 wx.showToast({ | |||
|                     title: '起止日期错误', | |||
|                     icon: 'error', | |||
|                     duration: 2000 | |||
|                   }) | |||
|                   return false | |||
|             } | |||
|             this.getList() | |||
|           }, | |||
|           showall(){ | |||
|             if(this.data.showitem==99999){ | |||
|                 this.setData({ | |||
|                     showitem: 3 | |||
|                   }) | |||
|             }else{ | |||
|                 this.setData({ | |||
|                     showitem: 99999 | |||
|                   }) | |||
|             } | |||
|           }, | |||
|         getList() { | |||
|             if (this.data.curVal == '1') { | |||
|                 this.getEventList(false) | |||
|             } else { | |||
|                 this.getEventList(false) | |||
|             } | |||
|         }, | |||
|         getEventList(deptFlag) { | |||
| 
 | |||
| 
 | |||
|             event12345Rates({ | |||
|                 startDate: this.data.day.toString() + ' ' + '00:00:00', | |||
|                 endDate: this.data.day2.toString()  + ' ' +  '23:59:59', | |||
|                 usableFlag: true, | |||
|                 deptFlag: deptFlag, | |||
|             }).then(res => { | |||
|                 console.log('++++++++++++',res.data) | |||
|                 // res.data.list.forEach(item => {
 | |||
|                 //     item.reportTime = this.formatTime(item.reportTime)
 | |||
|                 // })
 | |||
|                 this.setData({ | |||
|                     list: res.data | |||
|                 }) | |||
|             }) | |||
|         }, | |||
|         formatTime(date) { | |||
|             if (date) { | |||
|                 let _date = new Date(date) | |||
|                 let M = _date.getMonth() - 0 + 1 > 10 ? _date.getMonth() - 0 + 1 : '0' + (_date.getMonth() - 0 + 1) | |||
|                 let D = _date.getDate() > 10 ? _date.getDate() : '0' + _date.getDate() | |||
|                 return M + '-' +D | |||
|             } | |||
|             return '' | |||
| 
 | |||
|         }, | |||
|          | |||
|         gotopage(e) { | |||
|             if (this.data.stayVal === '1') { | |||
|                 wx.navigateTo({ | |||
|                     url: '/subpages/statistics/pages/event/detail/detail?id=' + e.currentTarget.dataset.id+'&is12345=2', | |||
|                 }) | |||
|             } else { | |||
|                 wx.navigateTo({ | |||
|                     url: '/subpages/statistics/pages/demand/detail/detail?id=' + e.currentTarget.dataset.id+'&type=1', | |||
|                 }) | |||
|             } | |||
| 
 | |||
|         } | |||
|     } | |||
| }); | |||
| @ -0,0 +1,6 @@ | |||
| { | |||
|   "component": true, | |||
|   "usingComponents": { | |||
|     "no-data": "../../../../components/noData/nodata" | |||
|   } | |||
| } | |||
| @ -0,0 +1,84 @@ | |||
| <view class="container"> | |||
| <view class="screen"> | |||
|     <picker | |||
|             mode="date" | |||
|             model:value="{{ day }}" | |||
|             fields="day" | |||
|             bind:change="onChange" | |||
|     > | |||
|         <view class="picker"> | |||
|             <text>{{ day }}</text> | |||
|             <image src="../../../../images/statistics/down.png" mode="widthFix"/> | |||
|         </view> | |||
| 
 | |||
|     </picker> | |||
|     <picker | |||
|             mode="date" | |||
|             model:value="{{ day2 }}" | |||
|             fields="day" | |||
|             bind:change="onChange2" | |||
|     > | |||
|         <view class="picker"> | |||
|             <text>{{ day2 }}</text> | |||
|             <image src="../../../../images/statistics/down.png" mode="widthFix"/> | |||
|         </view> | |||
| 
 | |||
|     </picker> | |||
|      | |||
|     <view class="btn" bindtap="onSearch"> | |||
|         查询 | |||
|     </view> | |||
| </view> | |||
|     <view class="stay-list" wx:if="{{list.length}}"> | |||
|         <!-- <view class="stay-item" wx:for="{{list}}" bind:tap="gotopage" data-id="{{item.icEventId || item.demandRecId}}"> | |||
|             <view class="date">{{item.happenTime || item.reportTime}}</view> | |||
|             <view class="tit-text">{{item.eventContent || item.content}}</view> | |||
|         </view> --> | |||
|         <view class="hotline-rate"  wx:for="{{list}}" wx:for-index="idx" wx-if="{{idx<showitem}}"> | |||
|             <view class="name"> | |||
|                 <view class="ranking">{{idx+1}}</view> | |||
|                 <view class="leader-name" wx-if="{{curVal=='1'}}">{{item.assignOrgLeader || item.assignOrgName}}</view> | |||
|                 <view class="leader-name" wx-if="{{curVal=='2'}}">{{item.assignOrgName}}</view> | |||
|             </view> | |||
|             <view class="num"> | |||
|                 <view class="child"> | |||
|                     <view class="lab">收件数</view> | |||
|                     <view class="val">{{item.total}}</view> | |||
|                 </view> | |||
|                 <view class="child"> | |||
|                     <view class="lab">未回复</view> | |||
|                     <view class="val">0</view> | |||
|                 </view> | |||
|                 <view class="child"> | |||
|                     <view class="lab">不满意</view> | |||
|                     <view class="val">{{item.notSatisfiedTotal}}</view> | |||
|                 </view> | |||
|                 <view class="child"> | |||
|                     <view class="lab">未解决</view> | |||
|                     <view class="val">{{item.unresolveTotal}}</view> | |||
|                 </view> | |||
|             </view> | |||
|             <view class="num"> | |||
|                 <view class="child"> | |||
|                     <view class="lab">按时办理率</view> | |||
|                     <view class="val">{{item.replyRate}}%</view> | |||
|                 </view> | |||
|                 <view class="child"> | |||
|                     <view class="lab">响应率</view> | |||
|                     <view class="val">{{item.responseRate}}%</view> | |||
|                 </view> | |||
|                 <view class="child"> | |||
|                     <view class="lab">满意度</view> | |||
|                     <view class="val">{{item.satisfiedRate}}%</view> | |||
|                 </view> | |||
|                 <view class="child"> | |||
|                     <view class="lab">解决率</view> | |||
|                     <view class="val">{{item.resolveRate}}%</view> | |||
|                 </view> | |||
|             </view> | |||
|         </view> | |||
|         <view class="showall" bind:tap="showall" wx-if="{{list.length>3}}" >{{showitem==99999?"收起":"展开"}}</view> | |||
|     </view> | |||
| 
 | |||
|     <no-data wx:else isShow="{{true}}"/> | |||
| </view> | |||
| @ -0,0 +1,120 @@ | |||
| .container { | |||
|     padding: 0rpx 24rpx; | |||
| } | |||
| .hotline-rate { | |||
|     display: flex; | |||
|     flex-wrap: wrap; | |||
|     border-bottom: 2px solid #FFFFFF; | |||
|     padding: 0rpx 0; | |||
| } | |||
| .name{ | |||
|     display: flex; | |||
| } | |||
| .ranking{ | |||
|     font-size:16px; | |||
|     margin-right: 10px; | |||
|     font-weight:bold; | |||
| } | |||
| .leader-name{ | |||
|     font-size:16px; | |||
|     font-weight:bold; | |||
|     margin-bottom: 10px; | |||
| } | |||
| .num{ | |||
|     width:100%; | |||
|     display: flex; | |||
|     height:56px; | |||
| } | |||
| .child{ | |||
|     flex:1; | |||
|     height:56px; | |||
|     text-align:center; | |||
| } | |||
| .lab{ | |||
|     font-size:12px; | |||
|     height:20px; | |||
|     color:#999999; | |||
|     line-height:20px; | |||
| } | |||
| .val{ | |||
|     height:36px; | |||
|     line-height:36px; | |||
|     font-size:18px; | |||
| } | |||
| .screen { | |||
|     display: flex; | |||
|     justify-content: space-between; | |||
|     background: #fff; | |||
|     padding: 0rpx 0rpx 40rpx 0rpx ; | |||
| } | |||
| 
 | |||
| .picker { | |||
|     width: 236rpx; | |||
|     margin-right: 10rpx; | |||
|     height: 56rpx; | |||
|     background: rgba(58, 128, 231, 0.16); | |||
|     border: 1px solid #3A80E7; | |||
|     border-radius: 28rpx; | |||
|     font-size: 30rpx; | |||
|     font-weight: 500; | |||
|     color: #3A80E7; | |||
|     line-height: 56rpx; | |||
|     display: flex; | |||
|     align-items: center; | |||
|     justify-content: space-between; | |||
|     padding: 0 20rpx; | |||
|     box-sizing: border-box; | |||
|     white-space: nowrap; | |||
| } | |||
| 
 | |||
| .picker-type image, | |||
| .picker image { | |||
|     width: 28rpx; | |||
|     height: 28rpx; | |||
| } | |||
| 
 | |||
| .picker-type text { | |||
|     white-space: nowrap; | |||
|     text-overflow: ellipsis; | |||
|     overflow: hidden; | |||
|     width: calc(100% - 24rpx); | |||
| } | |||
| .picker-type { | |||
|     display: flex; | |||
|     align-items: center; | |||
|     justify-content: space-between; | |||
|     padding: 0 30rpx; | |||
|     margin-right: 10rpx; | |||
|     box-sizing: border-box; | |||
|     width: 180rpx; | |||
|     height: 56rpx; | |||
|     background: rgba(193, 193, 193, 0.16); | |||
|     border: 1px solid #DBDBDB; | |||
|     border-radius: 28rpx; | |||
|     font-size: 30rpx; | |||
|     font-weight: 500; | |||
|     color: #C1C1C1; | |||
|     line-height: 56rpx; | |||
|     text-align: center; | |||
| 
 | |||
| } | |||
| 
 | |||
| .btn { | |||
|     width: 120rpx; | |||
|     height: 56rpx; | |||
|     line-height: 56rpx; | |||
|     background: #3A80E7; | |||
|     border-radius: 28rpx; | |||
|     font-size: 28rpx; | |||
|     font-weight: 500; | |||
|     color: #FFFFFF; | |||
|     text-align: center; | |||
| } | |||
| .showall{ | |||
|     text-align: center; | |||
|     background:#f7f7f7; | |||
|     margin:10px 0 10px 0; | |||
|     height:40px; | |||
|     line-height:40px; | |||
|     color:blue; | |||
| } | |||
					Loading…
					
					
				
		Reference in new issue