You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

196 lines
4.2 KiB

1 year ago
<template>
<view class="app-container">
<u-navbar leftText="返回" title="脱岗记录" :autoBack="true" :placeholder="true" />
<view class="list-search">
<view class="timers">
<uni-datetime-picker v-model="timers" type="daterange" rangeSeparator='至' @change="maskClick" />
</view>
<button class="search-btn u-reset-button" @click="search"></button>
</view>
<view class="list">
<view class="list-item" v-for="(item, index) in newList" :key="index" @click="handleInfo(item.id)">
<view class="item-cell">
<view class="cell-lable">脱岗人员姓名</view>
<view class="cell-value u-line-1">{{item.userName}}</view>
</view>
<view class="item-cell">
<view class="cell-lable">所属网格</view>
<view class="cell-value">{{item.gridName}}</view>
</view>
<view class="item-cell">
<view class="cell-lable">脱岗时间</view>
<view class="cell-value">{{item.leaveTime}}</view>
</view>
<!-- <view class="item-cell">
<view class="cell-lable">脱岗路段</view>
<view class="cell-value u-line-1">xxxxx街道xxx路</view>
</view> -->
<view class="item-cell">
<view class="cell-lable">脱岗时长</view>
<view class="cell-value">{{item.leaveDuty}}</view>
</view>
</view>
<u-loadmore :status="status" :load-text="loadText" />
</view>
</view>
</template>
<script>
import {
tgwtList,
} from "@/api/jn/offDuty.js"
export default {
data() {
return {
status: 'loadmore',
show: false,
timers: null,
query: {
},
queryParams: {
type: 2,
current: 1,
size: 10,
},
newList: [],
flag: 1,
loadText: {
loading: "努力加载中...",
nomore: "已经到底了~",
},
total: 0,
isClick:false,
};
},
onLoad() {
this.getList();
},
//触底加载
onReachBottom() {
if (this.newList.length < this.total) {
if (this.status == 'loading') return
this.queryParams.current = this.queryParams.current + 1;
this.getList()
}
},
methods: {
getList() {
uni.showToast({
icon: 'loading',
title: '加载中'
});
this.status = 'loading'
if(this.timers?.length > 1 && this.isClick) {
this.queryParams.params["beginCreateTime"] = this.timers[0];
this.queryParams.params["endCreateTime"] = this.timers[1];
}
tgwtList(this.queryParams).then(res => {
this.newList = [...this.newList, ...res.data.records]
uni.hideToast();
this.total = res.data.total
this.status = 'nomore'
})
},
search() {
this.isClick = true;
this.getList();
},
maskClick(e) {
},
handleInfo(id) {
uni.navigateTo({
url: `/subViolation/TuogangList/info?id=${id}`
});
},
},
};
</script>
<style lang="scss" scoped>
.app-container {
box-sizing: border-box;
padding: 25rpx 20rpx;
}
.list-search {
display: flex;
align-items: center;
justify-content: space-between;
margin-bottom: 25rpx;
// .start-time,
// .end-time {
// width: 260rpx;
// height: 88rpx;
// background: #ffffff;
// box-shadow: 0rpx 0rpx 20rpx rgba(57, 118, 241, 0.06);
// border-radius: 16rpx;
// display: flex;
// align-items: center;
// justify-content: center;
// }
// .search-unit {
// font-size: 32rpx;
// font-weight: 500;
// color: #2e2f31;
// }
.timers {
width: 80%;
}
.search-btn {
width: 100rpx;
height: 70rpx;
line-height: 70rpx;
font-size: 30rpx;
font-weight: 500;
color: #ffffff;
text-align: center;
background: linear-gradient(90deg, #3976f1 0%, #3ca0f6 100%);
border-radius: 16rpx;
margin: 0;
margin-left: 10rpx;
}
}
.list-item {
box-sizing: border-box;
padding: 25rpx;
background: #fff;
margin-bottom: 30rpx;
box-shadow: 0rpx 0rpx 20rpx rgba(57, 118, 241, 0.06);
border-radius: 16rpx;
.item-cell {
display: flex;
align-items: center;
margin-bottom: 20rpx;
.cell-lable {
width: 200rpx;
font-size: 28rpx;
color: #9da2ab;
}
.cell-value {
flex: 1;
font-size: 28rpx;
font-weight: 400;
color: #2e2f31;
}
}
&>.item-cell:last-child {
margin-bottom: 0;
}
}
.list-item:active {
background: #f3f4f6;
}
.list>.list-item:last-child {
margin-bottom: 0;
}
</style>