|                                                                                                                                                                            |  | <!-- 报修列表(学生) --><template>	<view class="repairList reserveSpace">		<view class="tab">			<uv-tabs :list="list" lineWidth="60" lineHeight="10" @click="selectTag"></uv-tabs>		</view>
		<view class="repairList-main">			<view v-for="item in repairList" :key="item.id" class="repairItem">				<view class="repairMain">					<!-- <view class="userName">用户名</view> -->					<view class="build">						<view>							<text style="margin-right: 10rpx;">{{ item.building }}</text>							<text> {{ item.room }}</text>						</view>						<text style="font-size: 26rpx;">{{ item.createTime }}</text>					</view>					<view class="desc">						<uv-read-more :shadowStyle="shadowStyle" show-height="80rpx" fontSize="30rpx" :toggle="true">							<view>								{{ item.context }}							</view>						</uv-read-more>					</view>					<view class="repairImages">						<view v-for="(image,index) in item.image" :key="index" class="image-item">							<image @click="viewImageAsList(index,item.image)" :src="image" mode="widthFix"></image>						</view>					</view>					<!-- <view class="btns">						<view v-if="userInfo.isDai == '1' && !item.cleckState" @click="toReject(item.id)" class="btn">驳回						</view>						<view v-if="userInfo.isDai == '1' && !item.cleckState" @click="toFinish(item.id)" class="btn">结单						</view>					</view> -->				</view>			</view>		</view>	</view></template>
<script>	import {		mapState,	} from 'vuex'	export default {		data() {			return {				list: [{					name: '待完成',				}, {					name: '已完成',				}],				current: 0,				currentIndex: 0,				repairList: [], //报修列表
				queryParams: {					pageNo: 1,					pageSize: 3,					state: 0				},				total: 0			}		},		onShow() {			this.getRepairList()		},		//滚动到屏幕底部
		onReachBottom() {			if (this.queryParams.pageSize <= this.total) {				this.queryParams.pageSize += 3				this.getRepairList()			}		},		methods: {			//跳转驳回
			toReject(id) {				uni.navigateTo({					url: `/pages/reject/reject?orderId=${id}`				})			},
			//跳转结单页面
			toFinish(id) {				uni.navigateTo({					url: `/pages/finish/finish?orderId=${id}`				})			},
			//查看图片
			viewImageAsList(index, imgArr) {				this.currentIndex = index				this.$utils.previewImage({					current: this.currentIndex,					urls: imgArr				})			},
			//选择了顶部的标签
			selectTag(tag) {				this.queryParams.state = tag.index				this.getRepairList()			},
			//获取报修列表
			getRepairList() {				this.$api('getSchoolOrderPage', this.queryParams, res => {					if (res.code == 200) {						res.result.records.forEach(item => {							item.image ? item.image = item.image.split(',') : item.image = []						})						this.repairList = res.result.records						this.total = res.result.total					}				})			}		},		computed: {			shadowStyle() {				return {					// #ifndef APP-NVUE
					backgroundImage: "linear-gradient(-180deg, rgba(255, 255, 255, 0) 0%, #fff 80%)",					// #endif
					// #ifdef APP-NVUE
					// nvue上不支持设置复杂的backgroundImage属性
					backgroundImage: "linear-gradient(to top, #fff, rgba(255, 255, 255, 0.5))",					// #endif
					paddingTop: "50px",					marginTop: "-50px",				}			},			...mapState(['userInfo']),		}	}</script>
<style scoped>	.repairList {		background: #f8f8f8;	}
	.tab {		display: flex;		align-items: center;		height: 80rpx;		background: white;		margin-bottom: 20rpx;	}
	.repairList-main {		min-height: 100vh;	}
	.repairItem {		display: flex;		background: white;		width: 96%;		margin: 0rpx auto;		border-radius: 20rpx;		margin-bottom: 20rpx;	}
	.repairMain {		width: 100%;		box-sizing: border-box;		padding-left: 20rpx;	}
	/* 	.userName {		font-size: 32rpx;		margin: 10rpx 0rpx;	} */
	.build {		display: flex;		justify-content: space-between;		font-size: 28rpx;		margin: 20rpx 0rpx;	}
	.desc {		overflow-y: scroll;		margin-bottom: 20rpx;	}
	.repairImages {		display: flex;		flex-wrap: wrap;		margin: 10rpx 0rpx;	}
	.image-item {		width: 24%;		margin-left: 1%;		height: 180rpx;		overflow: hidden;		display: flex;		align-items: center;		justify-content: center;		padding: 20rpx;		background: #f5f5f5;		border-radius: 20rpx;	}
	.image-item image {		width: 100%;	}
	.btns {		margin: 20rpx 0rpx;		display: flex;		justify-content: flex-end;	}
	.btn {		width: 200rpx;		height: 50rpx;		display: flex;		align-items: center;		justify-content: center;		border-radius: 50rpx;		margin-left: 15rpx;		font-size: 30rpx;		color: white;		background: #f9ae3d;	}
	.btn:nth-child(2) {		background: #3c9cff;	}</style>
 |