|
|
|
@ -45,7 +45,9 @@ |
|
|
|
<script setup name="enforcementReserveList"> |
|
|
|
import { ref, onMounted } from 'vue'; |
|
|
|
import { useRouter } from 'vue-router'; |
|
|
|
import { showToast } from 'vant'; |
|
|
|
import SearchFilterBar from '@/components/common/SearchFilterBar.vue'; |
|
|
|
import { getReserveList } from '@/api/enforcement/reserve'; |
|
|
|
|
|
|
|
const router = useRouter(); |
|
|
|
|
|
|
|
@ -53,47 +55,57 @@ const reserveList = ref([]); |
|
|
|
const loading = ref(false); |
|
|
|
const finished = ref(false); |
|
|
|
const refreshing = ref(false); |
|
|
|
const pageNum = ref(1); |
|
|
|
const pageSize = ref(10); |
|
|
|
const searchText = ref(''); |
|
|
|
const dateType = ref(null); |
|
|
|
const dateSearch = ref(null); |
|
|
|
|
|
|
|
const fetchReserveList = () => { |
|
|
|
loading.value = true; |
|
|
|
setTimeout(() => { |
|
|
|
const mockData = [ |
|
|
|
{ |
|
|
|
time: '2026-02-19 16:20', |
|
|
|
enterpriseName: '深圳市新粤云有限公司', |
|
|
|
reserveUnit: '深圳市生态环境局', |
|
|
|
checkTime: '2026-02-20 上午' |
|
|
|
}, |
|
|
|
{ |
|
|
|
time: '2026-03-20 15:23', |
|
|
|
enterpriseName: '深圳市新粤云有限公司', |
|
|
|
enforcementUnit: '深圳市生态环境局', |
|
|
|
checkTime: '2026-04-21 上午' |
|
|
|
}, |
|
|
|
{ |
|
|
|
time: '2026-04-18 10:23', |
|
|
|
enterpriseName: '深圳市新粤云有限公司', |
|
|
|
enforcementUnit: '深圳市生态环境局', |
|
|
|
checkTime: '2026-04-20 上午' |
|
|
|
const params = { |
|
|
|
pageNum: pageNum.value, |
|
|
|
pageSize: pageSize.value, |
|
|
|
}; |
|
|
|
if (searchText.value) { |
|
|
|
params.searchValue = searchText.value; |
|
|
|
} |
|
|
|
if (dateType.value !== null && dateType.value !== undefined) { |
|
|
|
params.dateType = dateType.value; |
|
|
|
} |
|
|
|
if (dateSearch.value) { |
|
|
|
params.dateSearch = dateSearch.value; |
|
|
|
} |
|
|
|
getReserveList(params, (res) => { |
|
|
|
if (res.code === 200) { |
|
|
|
const rows = res.rows || res.data?.rows || res.data?.list || res.data || []; |
|
|
|
const total = res.total ?? res.data?.total ?? 0; |
|
|
|
|
|
|
|
if (refreshing.value) { |
|
|
|
reserveList.value = Array.isArray(rows) ? rows : []; |
|
|
|
refreshing.value = false; |
|
|
|
} else { |
|
|
|
reserveList.value = [...reserveList.value, ...(Array.isArray(rows) ? rows : [])]; |
|
|
|
} |
|
|
|
]; |
|
|
|
let filteredData = mockData; |
|
|
|
if (searchText.value) { |
|
|
|
const keyword = searchText.value.toLowerCase(); |
|
|
|
filteredData = filteredData.filter(item => |
|
|
|
(item.enterpriseName || '').toLowerCase().includes(keyword) || |
|
|
|
(item.reserveUnit || '').toLowerCase().includes(keyword) || |
|
|
|
(item.enforcementUnit || '').toLowerCase().includes(keyword) |
|
|
|
); |
|
|
|
|
|
|
|
if (!Array.isArray(rows) || rows.length === 0 || reserveList.value.length >= total) { |
|
|
|
finished.value = true; |
|
|
|
} else { |
|
|
|
pageNum.value++; |
|
|
|
} |
|
|
|
loading.value = false; |
|
|
|
} else { |
|
|
|
finished.value = true; |
|
|
|
loading.value = false; |
|
|
|
refreshing.value = false; |
|
|
|
showToast(res.msg || '加载失败'); |
|
|
|
} |
|
|
|
reserveList.value = filteredData; |
|
|
|
loading.value = false; |
|
|
|
}, () => { |
|
|
|
finished.value = true; |
|
|
|
loading.value = false; |
|
|
|
refreshing.value = false; |
|
|
|
}, 500); |
|
|
|
showToast('网络请求失败'); |
|
|
|
}); |
|
|
|
}; |
|
|
|
|
|
|
|
const onLoad = () => { |
|
|
|
@ -143,6 +155,7 @@ onMounted(() => { |
|
|
|
flex: 1; |
|
|
|
overflow-y: auto; |
|
|
|
padding: 12px; |
|
|
|
padding-top: 0px; |
|
|
|
} |
|
|
|
|
|
|
|
.reserve-item { |
|
|
|
|