<template> <view class="car"> <!-- tab栏 --> <view class="cartop"> <view class="tabtop flexc"> <view class="tabt" :class="tabval==ite.val?'act':''" v-for="(ite,idx) in tablist" :key="idx" @click="getTabFn(ite.val)">{{ite.tit}}</view> </view> </view> <!-- 列表 --> <view class="carlists"> <box-list :datainfo="list" :sylist="sylist" :fkztList="fkztList" :wtdt="wtdt" type='visitor' @getDetail="getDetail" @getDelFn="getDelFn"></box-list> </view> <loading></loading> </view> </template> <script> import config from '@/config' const baseUrl = config.baseUrl import boxList from "@/work/components/box/list.vue" import { checkPermi, checkRole } from "@/utils/permission"; // 权限判断函数 import {reservList,reservDel} from "@/api/work/people.js" import {getDictionaryFn} from "@/api/system/user.js" import {houseInfolistNoPage} from "@/api/work/work.js" export default{ components:{boxList}, data(){ return{ // reset:require('@/work/static/car/reset.png'), // search:require('@/work/static/car/search.png'), // up:require('@/work/static/car/up.png'), cxrq:"", text:'', list:[], pageSize: 10, pageNum: 1, reachflag: true, wtdt:'', fkztList:[], sylist:[], tabval:"", tablist:[], userId:this.$store.state.user.userId, } }, onLoad: function(e) { this.init() }, // 上拉触底加载更多触发事件 onReachBottom() { if (this.reachflag) { this.pageNum++ this.getDataFn() } }, methods:{ checkPermi, checkRole, getDetail(id){ this.$tab.navigateTo("/work/pages/visitor/vdetail?id="+id) }, init(){ // 访客状态 getDictionaryFn('yuyetype').then(res=>{ if(res.code==200){ this.fkztList = res.data.map(v => { return { dictLabel: v.dictLabel, dictValue: v.dictValue } }) } }) // 来访事由 getDictionaryFn('visit_reason').then(res=>{ if(res.code==200){ this.sylist = res.data.map(v => { return { dictLabel: v.dictLabel, dictValue: v.dictValue } }) } }) var params={ userId:this.userId, pageSize: 100, pageNum: 1, } houseInfolistNoPage(params).then(res=>{ if(res.code==200){ if(res.rows&&res.rows.length){ var data=res.rows[0]; this.tabval=data.houseId; this.getDataFn() } this.tablist= res.rows.map(v => { return { tit: v.detailedAddress, val: v.houseId, } }) } }) }, getConfirm(){ this.getrefreshData() }, getReset(){ this.cxrq=''; this.text=''; this.getrefreshData() }, getrefreshData(){ this.pageNum=1; this.list=[]; this.reachflag=true; this.getDataFn() }, getTabFn(val){ this.tabval=val; this.getrefreshData(); }, bindDateChangea(e){ var val=e.detail.value; this.cxrq=val; }, getDelFn(data){ var that=this; reservDel(data).then(res=>{ if(res.code==200){ this.$toast("删除成功"); setTimeout(function(){ that.getrefreshData() },1500) } }) }, getDataFn(){ var params={ pageSize:this.pageSize, pageNum: this.pageNum, houseId:this.tabval } reservList(params).then(res=>{ if(res.code==200){ if (res.rows.length < this.pageSize) { this.reachflag = false this.wtdt = '到底了~'; } else { var num = parseInt(res.rows.length) + parseInt(this.pageSize) * parseInt(this.pageNum - 1) if (num < res.total) { this.reachflag = true this.wtdt = '' } else { this.reachflag = false this.wtdt = '到底了~'; } } var newArr=JSON.parse(JSON.stringify(res.rows)) newArr.forEach(ite=>{ ite.right=0; }) if (this.pageNum == 1) { this.list = newArr; } else { this.list = this.list.concat(newArr) } }else{ this.$toast(res.msg) } }) }, } } </script> <style> page{background: #F3F3F0;} </style> <style lang="scss" scoped> .car{padding: 146rpx 0 10rpx;} .cartop{position: fixed;left: 0;right: 0;top: 0;background-color: #ffffff;z-index: 2; .topa{padding: 20rpx ; .resetimg{width: 36rpx;height: 36rpx;margin-right: 24rpx;flex: 0 0 auto;} .chekt{min-width: 180rpx; view{font-weight: 500;font-size: 26rpx;color: #272727;flex: 1;} image{width: 24rpx;height: 16rpx;margin-left: 18rpx;flex: 0 0 auto;} } .search{flex: 1;margin-left: 16rpx;height: 64rpx;background: #EEEEEE;border-radius: 32rpx;border: 2rpx solid #E6E6E6;padding-left: 24rpx;box-sizing: border-box; image{width: 32rpx;height: 34rpx;margin-right: 22rpx;flex: 0 0 auto;} input{flex: 1;font-size: 26rpx;color: #272727;} .btn{width: 100rpx;height: 64rpx;background: #3565ED;border-radius: 32rpx;flex: 0 0 auto;font-weight: bold;text-align: center;line-height: 64rpx; font-size: 26rpx; color: #FFFFFF;} } } .tabtop{padding-bottom: 40rpx;padding-top: 26rpx;overflow: auto; .tabt{font-weight: 500;font-size: 32rpx;color: #666666;position: relative;line-height: 56rpx;flex: 0 0 auto;text-align: center;margin: 0 10rpx;padding: 0 20rpx; &.act{font-weight: bold;font-size: 32rpx;color: #272727; &::after{content: '';width: 40rpx;height: 10rpx;background: #0156FE;border-radius: 6rpx;position: absolute;left: 50%;margin-left: -20rpx;bottom: -10rpx;} } } } } .carlists{padding: 0 18rpx;} </style>