bike-ali/pages_adminSet/shgl.vue
2024-08-15 18:02:32 +08:00

335 lines
7.1 KiB
Vue

<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>