对接报修列表和报修详情、访客列表

This commit is contained in:
zhouyanli
2026-04-30 17:30:34 +08:00
parent ba9ed8d700
commit d0a0b2dbaf
6 changed files with 73 additions and 37 deletions

View File

@@ -45,7 +45,7 @@
<!-- 有效期/到访时间 -->
<view class="item-row">
<text class="label" :class="item.status">{{ item.status === 'waiting' ? '有效期' : '到访时间' }}</text>
<text class="value" :class="item.status">{{ item.timeRange }}</text>
<text class="value" :class="item.status">{{ item.startTime }}{{item.endTime}}</text>
</view>
<!-- 联系方式 -->
@@ -69,6 +69,13 @@
</view>
</view>
</view>
<!-- 空状态 -->
<view v-if="filterdList.length === 0" class="empty-state">
<uni-icons type="info" size="30" color="#ccc"></uni-icons>
<text class="empty-text">
{{ activeTab === 'waiting' ? '暂无等待到访数据' : '暂无已到访数据' }}
</text>
</view>
</scroll-view>
<!-- 新增邀请按钮 -->
@@ -81,41 +88,50 @@
<script setup>
import { ref, computed } from 'vue'
// import { uniNavigateTo, uniShowToast } from '@dcloudio/uni-app'
import { onLoad } from '@dcloudio/uni-app'
import { getVisitorList } from '../api/api.js'
// 激活的标签waiting=等待来访visited=已到访)
const activeTab = ref('waiting')
// 模拟访客数据(可替换为接口请求数据
const visitorList = ref([
{
name: '张三',
status: 'waiting', // waiting/visited
statusText: '等待来访',
timeRange: '2023.06.30 10:00至2023.06.30 23:00',
phone: '13866666666',
carNumber: '京A88888',
createTime: '2023年06月30日 09:35'
},
{
name: '张三',
status: 'visited',
statusText: '已到访',
timeRange: '2023.06.30 16:32:28',
phone: '13866666666',
carNumber: '京A88888',
createTime: '2023年06月30日 09:35'
},
{
name: '张三',
status: 'waiting',
statusText: '等待来访',
timeRange: '2023.06.30 10:00至2023.06.30 23:00',
phone: '13866666666',
carNumber: '',
createTime: '2023年06月30日 09:35'
// 访客列表数据
const visitorList = ref([])
// 后端数据映射到前端结构(根据实际字段名调整)
const mapData = (list) => {
if (!Array.isArray(list)) return []
return list.map(item => {
const status = item.status === 1 || item.status === '1' ? 'visited' : 'waiting'
return {
name: item.visitorName,
status,
statusText: status === 'visited' ? '已到访' : '等待来访',
startTime: item.startTime,
endTime:item.endTime,
phone: item.visitorPhone,
carNumber: item.carNum,
createTime: item.createTime || ''
}
})
}
// 获取访客列表
const fetchVisitorList = async () => {
const userId = uni.getStorageSync('userId')
let params = {userId:userId}
try {
const res = await getVisitorList(params)
visitorList.value = mapData(res.data|| [])
// visitorList.value = res.data || []
} catch (e) {
console.error('获取访客列表失败:', e)
}
])
}
onLoad(() => {
fetchVisitorList()
})
// 根据标签筛选列表
const filterdList = computed(() => {
@@ -312,6 +328,22 @@ const addInvitation = () => {
font-size: 14px;
color: #666;
}
/* 空状态 */
.empty-state {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
padding: 100rpx 0;
color: #ccc;
}
.empty-text {
font-size: 32rpx;
color: #999;
margin-top: 20rpx;
margin-bottom: 10rpx;
}
/* 新增邀请按钮 */
.add-btn {