<template> <view class="page"> <u-navbar title="审核管理" :border-bottom="false" :background="bgc" title-color='#000' title-size='36' height='45'></u-navbar> <view class="" style="background: #FFFFFF;width: 750rpx;padding-bottom: 36rpx;"> <view class="top_box" style="margin-top: 20rpx;"> <view class="sear_ipt"> <input type="text" v-model="sn" placeholder="请输入SN码" class="input" placeholder-style="color:#C7CDD3" @input="search()"> </view> </view> </view> <view class="cont"> <view class="card" v-for="(item,index) in list " :key="index"> <view class="top"> <!-- <view class="name">张某某</view> --> <view class="phone">{{item.userName}}</view> <view class="type" v-if="item.status==1">待处理</view> <view class="type" v-if="item.status==0" style="background-color: #ccc;color: #000;">已驳回</view> <view class="type" v-if="item.status==2" style="background-color: #77B8FD;color: #fff;">维修中</view> <view class="type" v-if="item.status==3" style="background-color: #64B6A8;color: #fff;">已完成</view> </view> <view class="txt"> <span v-if="item.typeStr">【{{item.typeStr}}】 </span> {{item.detail}}</view> <view class="pic_cont"> <view class="img" v-for="(pic, idx) in parsePictures(item.picture)" :key="idx" @click="preview(pic, item)"> <image :src="pic" mode="aspectFill"></image> </view> </view> <view class="info_cont"> <view class="sn"> SN:{{item.sn}} </view> <view class="time"> 提交时间:{{item.createTime}} </view> </view> <view class="btn_cont"> <view class="btn1" v-if="item.status==1" @click="pass(item)"> 生成工单 </view> <view class="btn1" v-if="item.status==2"> 已生成工单 </view> <view class="btn2" v-if="item.status==1" @click="unpass(item)"> 忽略 </view> </view> <!-- <view class="tips" @click="todetail()"> 该车故障记录> </view> --> </view> </view> </view> </template> <script> export default { data() { return { bgc: { backgroundColor: '#fff' }, sn: '', pageNum: 1, // 当前页码 pageSize: 20, // 每页显示条数 list: [] // 数据列表 }; }, onShow() { this.getlist(); }, onReachBottom() { // 当页面滚动到底部时,触发加载更多 this.loadMore(); }, methods: { pass(item){ uni.showLoading({ title:'加载中...' }) let data =item data.status=1 this.$u.put('system/fault', data).then((res) => { if (res.code === 200) { uni.showToast({ title: '操作成功', icon: 'none', duration: 2000 }); this.pageNum = 1; this.list = []; // 清空当前列表 this.getlist(); } else { uni.showToast({ title: res.msg, icon: 'none', duration: 2000 }); } }).catch(error => { console.error("Error fetching area data:", error); }); }, unpass(item){ uni.showLoading({ title:'加载中...' }) let data =item data.status=0 this.$u.put('system/fault', data).then((res) => { if (res.code === 200) { uni.showToast({ title: '操作成功', icon: 'none', duration: 2000 }); this.pageNum = 1; this.list = []; // 清空当前列表 this.getlist(); } else { uni.showToast({ title: res.msg, icon: 'none', duration: 2000 }); } }).catch(error => { console.error("Error fetching area data:", error); }); }, parsePictures(pictureString) { if (pictureString) { return pictureString.split(','); } return []; }, preview(pic, item) { uni.previewImage({ current: pic, // 当前显示图片的链接 urls: this.parsePictures(item.picture) // 需要预览的图片链接列表 }); }, getlist() { let data = { sn: this.sn, pageSize: this.pageSize, pageNum: this.pageNum }; this.$u.get('/appVerify/fault/list?', data).then((res) => { if (res.code === 200) { this.list = [...this.list, ...res.rows]; // 拼接新数据 } else { uni.showToast({ title: res.msg, icon: 'none', duration: 2000 }); } }).catch(error => { console.error("Error fetching area data:", error); }); }, loadMore() { this.pageNum += 1; // 页码增加 this.getlist(); // 调用getlist方法获取更多数据 }, search() { clearTimeout(timerId1); timerId1 = setTimeout(() => { // 搜索时重置页码并重新获取数据 this.pageNum = 1; this.list = []; // 清空当前列表 this.getlist(); }, 500); }, todetail() { uni.navigateTo({ url: '/pages_adminSet/shDetail' }); } } }; </script> <style lang="scss" scoped> .page { width: 750rpx; } .top_box { display: flex; flex-wrap: nowrap; align-items: center; padding: 28rpx 30rpx; margin: 0 auto; width: 672rpx; height: 100rpx; background: #FFFFFF; box-shadow: 0rpx 4rpx 22rpx 0rpx rgba(0, 0, 0, 0.07); border-radius: 10rpx; } .cont { width: 100%; } .card { padding: 24rpx; margin: 20rpx auto; width: 672rpx; background: #FFFFFF; box-shadow: 0rpx 4rpx 22rpx 0rpx rgba(0, 0, 0, 0.07); border-radius: 10rpx; .btn_cont { display: flex; flex-wrap: nowrap; justify-content: flex-end; /* 添加此行使按钮靠右对齐 */ .btn1 { margin-right: 30rpx; font-weight: 400; font-size: 32rpx; color: #FEFFFE; padding: 6rpx 36rpx; background: #64B6A8; border-radius: 8rpx 8rpx 8rpx 8rpx; } .btn2 { font-weight: 400; font-size: 32rpx; color: #64B6A8; padding: 6rpx 36rpx; border-radius: 8rpx 8rpx 8rpx 8rpx; border: 2rpx solid #64B6A8; } } .tips { margin-top: 24rpx; width: 100%; // display: flex; // justify-content: center; text-align: center; font-weight: 400; font-size: 28rpx; color: #808080; } .info_cont { margin-top: 22rpx; display: flex; align-items: center; flex-wrap: nowrap; justify-content: space-between; .sn { font-weight: 400; font-size: 32rpx; color: #979797; } .time { font-weight: 400; font-size: 24rpx; color: #979797; } } .txt { margin-top: 24rpx; font-weight: 400; font-size: 32rpx; color: #3D3D3D; } .pic_cont { display: flex; flex-wrap: wrap; justify-content: space-between; width: 100%; .img { margin-top: 10rpx; background: #D8D8D8; width: 256rpx; height: 134rpx; } } } .top { border-bottom: 1rpx solid #D8D8D8; padding-bottom: 20rpx; display: flex; align-items: center; .name { width: 100rpx; font-weight: 400; font-size: 32rpx; color: #3D3D3D; } .phone { margin-left: 38rpx; font-weight: 400; font-size: 32rpx; color: #979797; } .type { margin-left: auto; display: flex; align-items: center; justify-content: center; width: 130rpx; height: 48rpx; background: #FFEEEE; border-radius: 8rpx; font-weight: 400; font-size: 28rpx; color: #FF4444; } } </style>