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 c5db42f1..322c24d7 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
@@ -53,8 +53,8 @@ export const getManualMatchDays = (success, error) => _get(settingBaseUrl + "/ma
const enterpriseSearchBaseUrl = "/enforcementcode/enterpriseSearch";
// 按企业名称联合检索(>=3字符)
-export const searchUnionByEnterpriseName = (enterpriseName, success, error) =>
- _get(enterpriseSearchBaseUrl + "/searchUnionByEnterpriseName", { enterpriseName }, success, error);
+export const searchUnionByEnterpriseName = (searchValue, success, error) =>
+ _post("/app-enf/enterpriseInfo/queryListAndQrInfo", { searchValue }, success, error);
// 根据企业信用代码查询联系人和联系电话
export const getEnterpriseContactInfo = (enterpriseNumber, success, error) =>
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 3c066a54..3282b950 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
@@ -260,28 +260,38 @@
选择企业
-
+
+
+ 搜索
+
-
- 检索中...
-
-
+
{{ item.enterpriseName }}
{{ item.enterpriseNumber }}
-
-
+
+
@@ -292,7 +302,8 @@
import { useRouter, useRoute } from 'vue-router';
import { showToast, showSuccessToast, showConfirmDialog } from 'vant';
import { addNotice, editNotice, getNoticeDetail } from '@/api/enforcement/notice';
-import { getPlanList, searchUnionByEnterpriseName, searchBureauUnitUsers, getEnterpriseContactInfo } from '@/api/enforcement/plan';
+import { getPlanList, searchBureauUnitUsers, getEnterpriseContactInfo } from '@/api/enforcement/plan';
+import { queryEnterpriseListAndQrInfo } from '@/api/enforcement/index';
import { maskPhone } from '@/util/util';
const router = useRouter();
const route = useRoute();
@@ -404,10 +415,16 @@ const planImportDisplay = computed(() => {
const enterpriseOptions = ref([]);
const showEnterprisePicker = ref(false);
const enterpriseSearchKeyword = ref('');
-const enterpriseSearching = ref(false);
-let enterpriseSearchTimer = null;
+const enterpriseLoading = ref(false);
+const enterpriseFinished = ref(false);
+const enterprisePageNum = ref(1);
+const enterprisePageSize = 10;
+const enterpriseSearched = ref(false);
let enterpriseSearchSeq = 0;
+const enterpriseEmptyText = computed(() => enterpriseSearched.value ? '未检索到匹配企业' : '请输入至少2个字搜索');
+const enterpriseFinishedText = computed(() => enterpriseOptions.value.length > 0 ? '没有更多了' : '');
+
// 执法人员检索
const showPersonPicker = ref(false);
const personSearchKeyword = ref('');
@@ -503,34 +520,88 @@ const onTimeConfirm = ({ selectedValues }) => {
const onOpenEnterprisePicker = () => {
enterpriseSearchKeyword.value = '';
enterpriseOptions.value = [];
+ enterprisePageNum.value = 1;
+ enterpriseFinished.value = true;
+ enterpriseLoading.value = false;
+ enterpriseSearched.value = false;
showEnterprisePicker.value = true;
};
-// 企业检索
-const onEnterpriseSearchInput = (val) => {
- if (enterpriseSearchTimer) clearTimeout(enterpriseSearchTimer);
- const keyword = (val || '').trim();
+// 企业检索(搜索按钮/回车)
+const handleEnterpriseSearch = () => {
+ const keyword = (enterpriseSearchKeyword.value || '').trim();
if (keyword.length < 2) {
+ showToast('请输入至少2个字搜索');
enterpriseOptions.value = [];
+ enterpriseFinished.value = true;
+ enterpriseSearched.value = false;
return;
}
- enterpriseSearchTimer = setTimeout(() => {
- const seq = ++enterpriseSearchSeq;
- enterpriseSearching.value = true;
- searchUnionByEnterpriseName(keyword, (res) => {
+ enterprisePageNum.value = 1;
+ enterpriseFinished.value = false;
+ enterpriseOptions.value = [];
+ enterpriseLoading.value = true;
+ enterpriseSearched.value = true;
+ fetchEnterpriseList(keyword);
+};
+
+// 清除企业搜索
+const clearEnterpriseSearch = () => {
+ enterpriseSearchKeyword.value = '';
+ enterpriseOptions.value = [];
+ enterprisePageNum.value = 1;
+ enterpriseFinished.value = true;
+ enterpriseLoading.value = false;
+ enterpriseSearched.value = false;
+};
+
+// van-list 触底加载
+const onEnterpriseLoad = () => {
+ fetchEnterpriseList(enterpriseSearchKeyword.value.trim());
+};
+
+// 实际发起企业检索(分页追加)
+const fetchEnterpriseList = (keyword) => {
+ if ((keyword || '').trim().length < 2) {
+ enterpriseFinished.value = true;
+ enterpriseLoading.value = false;
+ return;
+ }
+ const seq = ++enterpriseSearchSeq;
+ enterpriseLoading.value = true;
+ queryEnterpriseListAndQrInfo(
+ {
+ pageNum: enterprisePageNum.value,
+ pageSize: enterprisePageSize,
+ searchValue: keyword,
+ },
+ (res) => {
if (seq !== enterpriseSearchSeq) return;
- enterpriseSearching.value = false;
- if (res && res.code === 200 && Array.isArray(res.data)) {
- enterpriseOptions.value = res.data;
+ enterpriseLoading.value = false;
+ if (res && res.code === 200 && Array.isArray(res.rows)) {
+ const data = res.rows;
+ if (enterprisePageNum.value === 1) {
+ enterpriseOptions.value = data;
+ } else {
+ enterpriseOptions.value = [...enterpriseOptions.value, ...data];
+ }
+ const total = res.total || 0;
+ if (total <= enterprisePageSize * enterprisePageNum.value) {
+ enterpriseFinished.value = true;
+ } else {
+ enterprisePageNum.value++;
+ }
} else {
- enterpriseOptions.value = [];
+ if (enterprisePageNum.value === 1) enterpriseOptions.value = [];
+ enterpriseFinished.value = true;
}
- }, () => {
+ },
+ () => {
if (seq !== enterpriseSearchSeq) return;
- enterpriseSearching.value = false;
- enterpriseOptions.value = [];
- });
- }, 350);
+ enterpriseLoading.value = false;
+ enterpriseFinished.value = true;
+ }
+ );
};
const onSelectEnterprise = (item) => {
@@ -863,6 +934,20 @@ const doSubmit = (isDraft) => {
.enterprise-picker-title { font-size: 16px; font-weight: 600; color: #333; }
:deep(.van-icon) { font-size: 18px; color: #999; cursor: pointer; }
}
+ .search-bar {
+ display: flex;
+ align-items: center;
+ margin: 0.3rem;
+ :deep(.van-search) {
+ padding-right: 0px;
+ flex: 1;
+ height: 34px;
+ }
+ .search-btn {
+ flex: none;
+ height: 34px;
+ }
+ }
.enterprise-picker-body {
flex: 1;
overflow-y: auto;
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 7e183905..2bf8032e 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
@@ -222,28 +222,38 @@
选择企业
-
+
+
+ 搜索
+
-
- 检索中...
-
-
+
{{ item.enterpriseName }}
{{ item.enterpriseNumber }}
-
-
+
+
@@ -253,7 +263,8 @@