对接报修列表和报修详情、访客列表
This commit is contained in:
@@ -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>
|
||||||
|
|||||||
@@ -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 = () => {
|
||||||
|
|||||||
@@ -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'; // 生产环境
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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) : [];
|
||||||
|
|||||||
@@ -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) {
|
||||||
|
|||||||
@@ -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 {
|
||||||
|
|||||||
Reference in New Issue
Block a user