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

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 class="activity-list">
<!-- 空状态 --> <!-- 空状态 -->
<view v-if="displayedActivities.length === 0" class="empty-state"> <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"> <text class="empty-text">
{{ activeTab === 'list' ? '暂无活动' : '暂无参与的活动' }} {{ activeTab === 'list' ? '暂无活动' : '暂无参与的活动' }}
</text> </text>

View File

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

View File

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

View File

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

View File

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

View File

@@ -45,7 +45,7 @@
<!-- 有效期/到访时间 --> <!-- 有效期/到访时间 -->
<view class="item-row"> <view class="item-row">
<text class="label" :class="item.status">{{ item.status === 'waiting' ? '有效期' : '到访时间' }}</text> <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> </view>
<!-- 联系方式 --> <!-- 联系方式 -->
@@ -69,6 +69,13 @@
</view> </view>
</view> </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> </scroll-view>
<!-- 新增邀请按钮 --> <!-- 新增邀请按钮 -->
@@ -81,41 +88,50 @@
<script setup> <script setup>
import { ref, computed } from 'vue' 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=已到访) // 激活的标签waiting=等待来访visited=已到访)
const activeTab = ref('waiting') const activeTab = ref('waiting')
// 模拟访客数据(可替换为接口请求数据 // 访客列表数据
const visitorList = ref([ const visitorList = ref([])
{
name: '张三', // 后端数据映射到前端结构(根据实际字段名调整)
status: 'waiting', // waiting/visited const mapData = (list) => {
statusText: '等待来访', if (!Array.isArray(list)) return []
timeRange: '2023.06.30 10:00至2023.06.30 23:00', return list.map(item => {
phone: '13866666666', const status = item.status === 1 || item.status === '1' ? 'visited' : 'waiting'
carNumber: '京A88888', return {
createTime: '2023年06月30日 09:35' name: item.visitorName,
}, status,
{ statusText: status === 'visited' ? '已到访' : '等待来访',
name: '张三', startTime: item.startTime,
status: 'visited', endTime:item.endTime,
statusText: '已到访', phone: item.visitorPhone,
timeRange: '2023.06.30 16:32:28', carNumber: item.carNum,
phone: '13866666666', createTime: item.createTime || ''
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 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(() => { const filterdList = computed(() => {
@@ -312,6 +328,22 @@ const addInvitation = () => {
font-size: 14px; font-size: 14px;
color: #666; 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 { .add-btn {