<template> <view class="my-report"> <image src="http://111.198.10.15:11604/png/back_ts.png" style="position:fixed;top: -4rpx;left: 0;z-index: -999; width:100%;height: 300rpx;"></image> <view class="tab-area"> <u-tabs :list="tabList" :scrollable="false" :current="currentTab" lineColor="#fff" lineWidth="50" lineHeight="5" :activeStyle="{ color: '#fff', fontWeight: 'bold', }" :inactiveStyle="{ color: '#fff', fontWeight: 'bold', }" @click="clickTab"> </u-tabs> </view> <!-- 列表 --> <scroll-view v-if="!loading && !isEmpty" class="record-area" scroll-y> <Record :list="reportList"/> </scroll-view> <!-- <u-loadmore :status="status" loadmoreText=" "/> --> <!-- 返回顶部 --> <u-back-top :scroll-top="scrollTop" icon="arrow-up" customStyle="background: rgba(67, 144, 247, .7)" :iconStyle="{ fontSize: '32rpx', color: '#fff', fontWeight: '600' }" duration="200" ></u-back-top> <!-- 空 --> <u-empty v-if="loading || isEmpty" mode="search" :text="loading ? '数据加载中' : isEmpty ? '暂无结果' : ''" :show="true" iconColor="#77797d" textColor="#77797d" marginTop="80" ></u-empty> </view> </template> <script> import Record from '../components/record.vue' import { getLocationParams, stamp2Time } from '../../common/utils.js'; import { getReportList } from '../../api/tort.js'; export default { components: { Record }, data() { return { loading:true, isEmpty: false, //数据是否为空 scrollTop: 0, status: 'loadmore', //上滑加载状态 loading加载中,nomore没有更多了 currentTab: '0', //当前选中的标签的索引 tabList: [ { name: '全部' }, { name: '待评估' }, { name: '已评估' }, ], reportList: [], // 列表数据 dataList:[], //初始数据列表 } }, watch: { reportList: { handler(val){ if(val.length) { this.isEmpty = false; } else { this.isEmpty = true; } }, deep: true, // immediate: true, } }, onShow() { const userinfo = wx.getStorageSync('userInfoxj') console.log(userinfo, 'userinfouserinfo') wx.setNavigationBarTitle({title: userinfo ? '我的举报' : '匿名举报'}); }, async mounted() { this.loading = true uni.showShareMenu({ withShareTicket: true, menus: ["shareAppMessage", "shareTimeline"] }); this.currentTab = getLocationParams('tabType') || '0'; // 当前tab // 获取举报列表 this.fetchReportData() }, //分享好友 onShareAppMessage() { return { title: ' ', // imageUrl: '../../static/share.png', // path: "/pages/messageList/messageList", }; }, //分享朋友圈 onShareTimeline() { return { title: '新疆网络举报', } }, // 监听滚动条位置 onPageScroll(e) { this.scrollTop = e.scrollTop; }, //上滑加载 onReachBottom() { }, methods: { // 获取举报列表数据 async fetchReportData() { const userinfo = wx.getStorageSync('userInfoxj') const data = { 'userInfoVo.id':userinfo.id ? userinfo.id : '', //用户id 'userInfoVo.beginTime':'2020-01-01 00:00:00', //开始时间(Date) 'userInfoVo.endTime':stamp2Time(new Date().getTime()), //结束时间 (Date) 'userInfoVo.pageIndex':'1', //页码 'userInfoVo.count':'50', //页数 'userInfoVo.attributeTable': '', //用户为监督员传“jdy” 'token':'', } getReportList(data).then(res => { this.dataList = res.reportInfoVOs // this.dataList = [] this.loading = false this.clickTab(null, getLocationParams('tabType') || '0'); }).catch((error) => { this.dataList = [] this.loading = false this.clickTab(null, getLocationParams('tabType') || '0'); }) }, clickTab(val, currentTab) { if((val && val.index === 0) || currentTab === '0') { // 全部 this.reportList = this.dataList console.log('全部') } else if((val && val.index === 1) || currentTab === '1') { // 待评估 this.reportList = this.dataList.filter(item => item.status !== 2 ) console.log('待评估') } else if((val && val.index === 2) || currentTab === '2') { // 已评估 this.reportList = this.dataList.filter(item => item.status === 2 ) console.log('已评估') } else { this.reportList = [] } } } } </script> <style lang="scss" scoped> .my-report { width: 100%; height: 100vh; box-sizing: border-box; padding-top: 146rpx; display: flex; flex-direction: column;// flex垂直布局 overflow: hidden; // justify-content: flex-end; .tab-area { position: fixed; box-sizing: border-box; top: -1rpx; left: 0; width: 100%; padding: 20rpx; // background-color: #4390f7; } .fix-bg{ background-color: #4390f7; } .record-area{ overflow: hidden; flex: 1;// 达到高度自适应 height: calc(100vh - 66px); } } </style> <style> page { background-color: #f0f0f0; } </style>