<template>
|
<view class="box">
|
<scroll-view scroll-x class="box_head">
|
<view class="box_head_list">
|
<view
|
class="box_head_item"
|
:class="{ active: status == '' }"
|
@click="tabsClick('')"
|
>全部</view
|
>
|
<view
|
class="box_head_item"
|
@click="tabsClick('0')"
|
:class="{ active: status == '0' }"
|
>待审核</view
|
>
|
<view
|
class="box_head_item"
|
@click="tabsClick('2')"
|
:class="{ active: status == '2' }"
|
>审核通过</view
|
>
|
<view
|
class="box_head_item"
|
@click="tabsClick('3')"
|
:class="{ active: status == '3' }"
|
>审核驳回</view
|
>
|
</view>
|
</scroll-view>
|
<view class="box_list">
|
<view
|
@click="handleDetail(item.id)"
|
class="box_list_item"
|
v-for="(item, index) in list"
|
:key="index"
|
>
|
<view class="box_list_item_head">
|
<text>{{ item.name }}提交的访客申请</text>
|
<text class="loading" :class="{error: item.status == 3}">{{ statusMap[item.status] }}</text>
|
</view>
|
<view class="box_list_item_nr">
|
<view class="box_list_item_nr_item">
|
<text>被访问人:</text>
|
<text
|
>{{ item.receptMemberDepartment }}-{{
|
item.receptMemberName
|
}}</text
|
>
|
</view>
|
<view class="box_list_item_nr_item">
|
<text>进厂时间:</text>
|
<text v-if="item.starttime">{{ item.starttime.slice(5, 16) }}</text>
|
</view>
|
<view class="box_list_item_nr_item">
|
<text>离园时间:</text>
|
<text v-if="item.endtime">{{ item.endtime.slice(5, 16) }}</text>
|
</view>
|
<view class="box_list_item_nr_item">
|
<text>来访事由:</text>
|
<text>{{ item.reason }}</text>
|
</view>
|
<view class="box_list_item_nr_x"></view>
|
<view v-if="item.createDate" class="box_list_item_nr_text">{{ item.createDate.slice(0, 16) }} 提交</view>
|
</view>
|
</view>
|
<view v-if="list.length === 0" style="text-align: center">
|
<image
|
src="@/static/empty.png"
|
style="width: 320rpx; margin: 120rpx auto 0"
|
mode="widthFix"
|
/>
|
<view class="placeholder9 fs24">暂无数据</view>
|
</view>
|
</view>
|
</view>
|
</template>
|
|
<script>
|
import { getVisitedRecord } from '@/api'
|
export default {
|
data() {
|
return {
|
pagination: {
|
page: 0,
|
capacity: 10
|
},
|
list: [],
|
total: 0,
|
status: '',
|
|
statusMap: {
|
0: '待审批',
|
1: '审批中',
|
2: '审核通过',
|
3: '审核驳回',
|
4: '取消',
|
5: '下发成功',
|
6: '下发失败',
|
7: '拜访中',
|
8: '已签离',
|
9: '已失效',
|
}
|
}
|
},
|
onShow() {
|
this.pagination.page = 0
|
this.list = []
|
this.getList()
|
},
|
onReachBottom() {
|
const {
|
total,
|
list
|
} = this
|
if (list.length < total) {
|
this.getList()
|
} else {
|
this.showToast('暂无更多数据')
|
}
|
},
|
methods: {
|
handleDetail(id) {
|
uni.navigateTo({
|
url: "/pages/appointmentDetails/appointmentDetails?detail=1&id=" + id
|
})
|
},
|
tabsClick(val) {
|
this.pagination.page = 0
|
this.list = []
|
this.status = val
|
this.getList()
|
},
|
getList() {
|
const { pagination, status, list } = this
|
pagination.page = pagination.page + 1
|
getVisitedRecord({
|
...pagination,
|
model: {
|
openid: this.$store.state.openId,
|
status
|
},
|
}).then(res => {
|
if (res.data.records.length > 0) {
|
if (pagination.page === 1) {
|
this.list = res.data.records
|
} else {
|
this.list = [...list, ...res.data.records]
|
}
|
this.total = res.data.total
|
}
|
})
|
}
|
|
}
|
}
|
</script>
|
<style lang="scss">
|
page {
|
background-color: #f7f7f7 !important;
|
}
|
</style>
|
<style lang="scss" scoped>
|
.box {
|
width: 100%;
|
.box_head {
|
width: 100%;
|
height: 108rpx;
|
padding: 0 30rpx;
|
box-sizing: border-box;
|
background: #ffffff;
|
position: sticky;
|
top: 0;
|
left: 0;
|
.box_head_list {
|
width: 100%;
|
height: 100%;
|
display: flex;
|
align-items: center;
|
justify-content: space-between;
|
.active {
|
border: 2rpx solid $uni-color-primary !important;
|
color: $uni-color-primary !important;
|
}
|
.box_head_item {
|
width: 156rpx;
|
text-align: center;
|
height: 60rpx;
|
display: flex;
|
align-items: center;
|
justify-content: center;
|
border-radius: 30rpx;
|
border: 2rpx solid #999999;
|
font-size: 26rpx;
|
font-weight: 400;
|
color: #333333;
|
}
|
}
|
}
|
.box_list {
|
width: 100%;
|
padding: 30rpx;
|
box-sizing: border-box;
|
.box_list_item {
|
width: 100%;
|
margin-bottom: 20rpx;
|
&:last-child {
|
margin: 0 !important;
|
}
|
.box_list_item_head {
|
width: 100%;
|
height: 100rpx;
|
padding: 0 30rpx;
|
box-sizing: border-box;
|
background: linear-gradient(270deg, #fefeff 0%, #e1f7fe 100%);
|
border-radius: 8rpx 8rpx 0rpx 0rpx;
|
display: flex;
|
align-items: center;
|
justify-content: space-between;
|
.loading {
|
color: $uni-color-primary;
|
}
|
.success {
|
color: #03c68f;
|
}
|
.error {
|
color: #e0312a;
|
}
|
text {
|
&:nth-child(1) {
|
font-size: 32rpx;
|
font-weight: 600;
|
color: #222222;
|
}
|
&:nth-child(2) {
|
font-size: 26rpx;
|
font-weight: 400;
|
}
|
}
|
}
|
.box_list_item_nr {
|
padding: 30rpx;
|
width: 100%;
|
box-sizing: border-box;
|
background-color: #ffffff;
|
/* .box_list_item_nr_x {
|
width: 100%;
|
height: 1rpx;
|
background-color: #e5e5e5;
|
} */
|
.box_list_item_nr_text {
|
width: 100%;
|
font-size: 26rpx;
|
font-weight: 400;
|
color: #999999;
|
/* margin-top: 32rpx; */
|
}
|
.box_list_item_nr_item {
|
width: 100%;
|
display: flex;
|
align-items: center;
|
margin-bottom: 20rpx;
|
text {
|
&:nth-child(1) {
|
font-size: 26rpx;
|
font-weight: 400;
|
color: #666666;
|
}
|
&:nth-child(2) {
|
font-size: 26rpx;
|
font-weight: 400;
|
color: #333333;
|
}
|
}
|
}
|
}
|
}
|
}
|
}
|
</style>
|