From 087f1a51b89efdf81ed87333e173d041e66006f4 Mon Sep 17 00:00:00 2001 From: "wangmingyong@163.com" Date: Mon, 17 Aug 2026 15:51:20 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AE=A1=E5=88=92=E5=92=8C=E9=A2=84=E5=91=8A?= =?UTF-8?q?=E4=BA=BA=E5=91=98=E6=9F=A5=E8=AF=A2=E8=B0=83=E6=95=B4=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E5=92=8C=E5=8F=82=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/api/enforcement/plan.js | 2 +- .../enforcement/nos/RegisterPopups.vue | 1 + .../enforcement/my/notice/cp_notice_edit.vue | 70 ++++++++++++----- .../enforcement/my/plan/cp_plan_edit.vue | 78 +++++++++++++------ 4 files changed, 108 insertions(+), 43 deletions(-) diff --git a/zdxt-web-client/zdxt-efcode-enforcement-app/src/api/enforcement/plan.js b/zdxt-web-client/zdxt-efcode-enforcement-app/src/api/enforcement/plan.js index 5ce724e0..c5db42f1 100644 --- a/zdxt-web-client/zdxt-efcode-enforcement-app/src/api/enforcement/plan.js +++ b/zdxt-web-client/zdxt-efcode-enforcement-app/src/api/enforcement/plan.js @@ -69,6 +69,6 @@ const bureauUnitBaseUrl = "/enforcementcode/bureauUnit"; // 按关键字查询执法单位内人员(分页) // params: { sysDeptId, keyword, globalSearch, pageNum, pageSize } export const searchBureauUnitUsers = (params, success, error) => - _get(bureauUnitBaseUrl + "/users", params, success, error); + _get(bureauUnitBaseUrl + "/queryUsersByPage", params, success, error); // endregion diff --git a/zdxt-web-client/zdxt-efcode-enforcement-app/src/components/enforcement/nos/RegisterPopups.vue b/zdxt-web-client/zdxt-efcode-enforcement-app/src/components/enforcement/nos/RegisterPopups.vue index 63185a46..6a6f3073 100644 --- a/zdxt-web-client/zdxt-efcode-enforcement-app/src/components/enforcement/nos/RegisterPopups.vue +++ b/zdxt-web-client/zdxt-efcode-enforcement-app/src/components/enforcement/nos/RegisterPopups.vue @@ -291,6 +291,7 @@ const loadPersonList = () => { pageNum: personPageNum.value, pageSize: personPageSize.value, dataScopeId: useCommon.userId || "", + isShowCardId: useCommon.hasLaw ? '0' : '1', }, (res) => { console.log(res) diff --git a/zdxt-web-client/zdxt-efcode-enforcement-app/src/views/enforcement/my/notice/cp_notice_edit.vue b/zdxt-web-client/zdxt-efcode-enforcement-app/src/views/enforcement/my/notice/cp_notice_edit.vue index 381e4c72..1110e90a 100644 --- a/zdxt-web-client/zdxt-efcode-enforcement-app/src/views/enforcement/my/notice/cp_notice_edit.vue +++ b/zdxt-web-client/zdxt-efcode-enforcement-app/src/views/enforcement/my/notice/cp_notice_edit.vue @@ -224,10 +224,13 @@ @update:model-value="onPersonSearchInput" />
-
-  加载中... -
- + +
@@ -378,7 +381,10 @@ let enterpriseSearchSeq = 0; const showPersonPicker = ref(false); const personSearchKeyword = ref(''); const personSearchResult = ref([]); -const personSearching = ref(false); +const personLoading = ref(false); +const personFinished = ref(false); +const personPageNum = ref(1); +const personPageSize = 10; let personSearchTimer = null; let personSearchSeq = 0; @@ -519,24 +525,39 @@ const onAddPerson = () => { } personSearchKeyword.value = ''; personSearchResult.value = []; + personPageNum.value = 1; + personFinished.value = false; + personLoading.value = false; showPersonPicker.value = true; - triggerPersonSearch(''); + // van-list 挂载后自动触发 @load 加载第一页 }; const onPersonSearchInput = (val) => { if (personSearchTimer) clearTimeout(personSearchTimer); const keyword = (val || '').trim(); - personSearchTimer = setTimeout(() => triggerPersonSearch(keyword), 300); + personSearchTimer = setTimeout(() => { + personPageNum.value = 1; + personFinished.value = false; + personSearchResult.value = []; + personLoading.value = true; + fetchPersonList(keyword); + }, 300); }; -const triggerPersonSearch = (keyword) => { +// van-list 触底加载 +const onPersonLoad = () => { + fetchPersonList(personSearchKeyword.value.trim()); +}; + +// 实际发起人员检索(分页追加) +const fetchPersonList = (keyword) => { const seq = ++personSearchSeq; - personSearching.value = true; + personLoading.value = true; searchBureauUnitUsers( - { sysDeptId: useCommon.bureauUnitId || '', keyword, globalSearch: false, pageNum: 1, pageSize: 30 }, + { sysDeptId: useCommon.bureauUnitId || '', userName: keyword, globalSearch: false, pageNum: personPageNum.value, pageSize: personPageSize, isShowCardId: '0' }, (res) => { if (seq !== personSearchSeq) return; - personSearching.value = false; + personLoading.value = false; if (res && res.code === 200 && Array.isArray(res.rows)) { let rows = res.rows; // 过滤掉已选择的执法人员 @@ -544,15 +565,26 @@ const triggerPersonSearch = (keyword) => { const selectedIds = personList.value.map(p => String(p.id || '')).filter(Boolean); rows = rows.filter(item => !selectedIds.includes(String(item.userId || ''))); } - personSearchResult.value = rows; + if (personPageNum.value === 1) { + personSearchResult.value = rows; + } else { + personSearchResult.value = [...personSearchResult.value, ...rows]; + } + const total = res.total || 0; + if (total <= personPageSize * personPageNum.value) { + personFinished.value = true; + } else { + personPageNum.value++; + } } else { - personSearchResult.value = []; + if (personPageNum.value === 1) personSearchResult.value = []; + personFinished.value = true; } }, () => { if (seq !== personSearchSeq) return; - personSearching.value = false; - personSearchResult.value = []; + personLoading.value = false; + personFinished.value = true; } ); }; diff --git a/zdxt-web-client/zdxt-efcode-enforcement-app/src/views/enforcement/my/plan/cp_plan_edit.vue b/zdxt-web-client/zdxt-efcode-enforcement-app/src/views/enforcement/my/plan/cp_plan_edit.vue index 494b3051..3cd91b1e 100644 --- a/zdxt-web-client/zdxt-efcode-enforcement-app/src/views/enforcement/my/plan/cp_plan_edit.vue +++ b/zdxt-web-client/zdxt-efcode-enforcement-app/src/views/enforcement/my/plan/cp_plan_edit.vue @@ -182,10 +182,13 @@ @update:model-value="onPersonSearchInput" />
-
-  加载中... -
- +
@@ -351,7 +354,10 @@ let enterpriseSearchSeq = 0; const showPersonPicker = ref(false); const personSearchKeyword = ref(''); const personSearchResult = ref([]); -const personSearching = ref(false); +const personLoading = ref(false); +const personFinished = ref(false); +const personPageNum = ref(1); +const personPageSize = 10; let personSearchTimer = null; let personSearchSeq = 0; @@ -594,43 +600,69 @@ const onAddPerson = () => { } personSearchKeyword.value = ''; personSearchResult.value = []; + personPageNum.value = 1; + personFinished.value = false; + personLoading.value = false; showPersonPicker.value = true; - // 默认先加载单位内人员列表(空关键字) - triggerPersonSearch(''); + // van-list 挂载后自动触发 @load 加载第一页 }; // 人员检索输入(防抖) const onPersonSearchInput = (val) => { if (personSearchTimer) clearTimeout(personSearchTimer); const keyword = (val || '').trim(); - personSearchTimer = setTimeout(() => triggerPersonSearch(keyword), 300); + personSearchTimer = setTimeout(() => { + personPageNum.value = 1; + personFinished.value = false; + personSearchResult.value = []; + personLoading.value = true; + fetchPersonList(keyword); + }, 300); +}; + +// van-list 触底加载 +const onPersonLoad = () => { + fetchPersonList(personSearchKeyword.value.trim()); }; -// 实际发起人员检索 -const triggerPersonSearch = (keyword) => { +// 实际发起人员检索(分页追加) +const fetchPersonList = (keyword) => { const seq = ++personSearchSeq; - personSearching.value = true; + personLoading.value = true; searchBureauUnitUsers( { sysDeptId: useCommon.bureauUnitId || '', - keyword, + userName: keyword, globalSearch: false, - pageNum: 1, - pageSize: 30, + pageNum: personPageNum.value, + pageSize: personPageSize, + isShowCardId: '0', }, (res) => { if (seq !== personSearchSeq) return; - personSearching.value = false; + personLoading.value = false; if (res && res.code === 200 && Array.isArray(res.rows)) { - personSearchResult.value = res.rows; + const data = res.rows; + if (personPageNum.value === 1) { + personSearchResult.value = data; + } else { + personSearchResult.value = [...personSearchResult.value, ...data]; + } + const total = res.total || 0; + if (total <= personPageSize * personPageNum.value) { + personFinished.value = true; + } else { + personPageNum.value++; + } } else { - personSearchResult.value = []; + if (personPageNum.value === 1) personSearchResult.value = []; + personFinished.value = true; } }, () => { if (seq !== personSearchSeq) return; - personSearching.value = false; - personSearchResult.value = []; + personLoading.value = false; + personFinished.value = true; } ); };