Browse Source

加一个公共的搜索

dev
wangmingyong@163.com 2 months ago
parent
commit
e551d60c2e
  1. 31
      zdxt-web-client/zdxt-efcode-enforcement-app/src/views/enforcement/enforce/enforcementNoticeList.vue
  2. 75
      zdxt-web-client/zdxt-efcode-enforcement-app/src/views/enforcement/message/enforcementReserveList.vue
  3. 2
      zdxt-web-client/zdxt-efcode-enforcement-app/src/views/enforcement/message/enforcementTaskList.vue

31
zdxt-web-client/zdxt-efcode-enforcement-app/src/views/enforcement/enforce/enforcementNoticeList.vue

@ -14,12 +14,7 @@
</van-nav-bar>
<!-- 搜索栏 -->
<van-search v-model="searchText" show-action placeholder="请输入关键字查询" clearable clear-trigger="always"
@clear="onClear" @search="onSearch">
<template #action>
<div @click="onSearch">搜索</div>
</template>
</van-search>
<SearchFilterBar :search-value="searchText" @search="onSearch" @clear="onClear" />
<!-- 列表区域 -->
<div class="list-container">
@ -66,6 +61,7 @@ import { useRouter } from 'vue-router';
import { showToast } from 'vant';
import 'vant/es/toast/style';
import { getLawNoticeList } from '@/api/enforcement';
import SearchFilterBar from '@/components/common/SearchFilterBar.vue';
const router = useRouter();
@ -140,7 +136,10 @@ const onClickLeft = () => {
};
// ========== ==========
const onSearch = () => {
const onSearch = ({ searchValue } = {}) => {
if (searchValue !== undefined) {
searchText.value = searchValue;
}
pageNum.value = 1;
list.value = [];
finished.value = false;
@ -283,22 +282,4 @@ const onFeedback = (item) => {
}
}
}
/* ===== Vant 搜索框样式覆盖 ===== */
:deep(.van-search__content) {
height: 0.9rem;
border: 1px solid #ececec;
border-radius: 0.15rem 0 0 0.15rem;
}
:deep(.van-search__action) {
margin: 0 3% 0 0;
width: 10%;
height: 0.9rem;
background: #1367fe;
border: 0.01rem solid #1367fe;
border-radius: 0 0.15rem 0.15rem 0;
color: #fff;
text-align: center;
line-height: 0.9rem;
}
</style>

75
zdxt-web-client/zdxt-efcode-enforcement-app/src/views/enforcement/message/enforcementReserveList.vue

@ -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 {

2
zdxt-web-client/zdxt-efcode-enforcement-app/src/views/enforcement/message/enforcementTaskList.vue

@ -72,7 +72,6 @@ const fetchTaskList = () => {
pageNum: pageNum.value,
pageSize: pageSize.value,
};
console.log(searchText.value);
if (searchText.value) {
params.searchValue = searchText.value;
}
@ -164,6 +163,7 @@ onMounted(() => {
flex: 1;
overflow-y: auto;
padding: 12px;
padding-top: 0px;
}
.task-item {

Loading…
Cancel
Save