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

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

@@ -44,7 +44,7 @@
<view class="activity-list">
<!-- 空状态 -->
<view v-if="displayedActivities.length === 0" class="empty-state">
<uni-icons type="info" size="60" color="#ccc"></uni-icons>
<uni-icons type="info" size="30" color="#ccc"></uni-icons>
<text class="empty-text">
{{ activeTab === 'list' ? '暂无活动' : '暂无参与的活动' }}
</text>

View File

@@ -117,6 +117,11 @@ export const getHouseList = (data) =>{
export const getRepairDetail = (data) =>{
return get('/repairOrder/queryRepairDetail',data)
}
// =========访客邀请===========
// 获取访客列表
export const getVisitorList = (data) =>{
return get('/api/visitor/list',data)
}
// 通用文件上传
export const uploadImage = () => {

View File

@@ -2,7 +2,7 @@ let baseUrl = '';
if (process.env.NODE_ENV === 'development') {
// http://192.168.1.215
// http://192.168.0.224
baseUrl = 'http://192.168.0.224:8080'; // 开发环境
baseUrl = 'http://192.168.1.215:8080'; // 开发环境
} else {
baseUrl = 'http://192.168.0.224:8080'; // 生产环境
}

View File

@@ -153,10 +153,9 @@ const fetchRepairList = async () => {
problemStatus: statusMap[activeStatus.value].value
};
const res = await getQueryRepair(params);
console.log('接口返回:', res);
// console.log('接口返回:', res);
if (res.code === 200) {
// 兼容多种分页返回结构
const list = res.data?.rows || [];
const list = res.data || [];
repairList.value = list.map(item => {
const statusInfo = getStatusInfo(item.problemStatus);
const images = item.problemImageUrl ? item.problemImageUrl.split(',').filter(Boolean) : [];

View File

@@ -129,7 +129,7 @@ const fetchDetail = async (id) => {
}
onLoad((option) => {
console.log("页面打开,路由参数:", option)
// console.log("页面打开,路由参数:", option)
// 传了 id 才调用接口
if (option?.id) {

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 {