From f89638b3f01be8a7ef2aabf6e2edda601d2d0e09 Mon Sep 17 00:00:00 2001 From: v6ole Date: Mon, 13 Jul 2026 01:06:56 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=A1=8C=E9=9D=A2=E7=AB=AF=E5=B7=A5?= =?UTF-8?q?=E4=BD=9C=E8=AE=A1=E5=88=92/=E5=95=86=E6=9C=BA/=E8=A6=81?= =?UTF-8?q?=E5=AE=A2=E5=88=97=E8=A1=A8=E6=96=B0=E5=A2=9E=E6=90=9C=E7=B4=A2?= =?UTF-8?q?=E6=A1=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude --- frontend/src/views/desktop/KeyVisits.vue | 9 ++++++++- frontend/src/views/desktop/MiniBusiness.vue | 9 ++++++++- frontend/src/views/desktop/WorkPlans.vue | 10 +++++++++- 3 files changed, 25 insertions(+), 3 deletions(-) diff --git a/frontend/src/views/desktop/KeyVisits.vue b/frontend/src/views/desktop/KeyVisits.vue index 6434e3d..33e4773 100644 --- a/frontend/src/views/desktop/KeyVisits.vue +++ b/frontend/src/views/desktop/KeyVisits.vue @@ -30,6 +30,8 @@ const keyStatuses = ['未开始', '进行中', '已完成'] // ── Filters ── const filterManager = ref('') const filterStatus = ref('') +const searchText = ref('') +function onSearch() { loadItems() } const managerOptions = computed(() => { const seen = new Set() @@ -128,7 +130,9 @@ async function handleQuickCreate() { async function loadItems() { loading.value = true try { - const res = await api.get('/key-visits/') + const params: any = {} + if (searchText.value) params.search = searchText.value + const res = await api.get('/key-visits/', { params }) keyVisits.value = res.data } catch (e: any) { ElMessage.error('加载失败') } finally { loading.value = false } @@ -227,6 +231,9 @@ async function quickStatusChange(row: any, newStatus: string) {
+
+ +
diff --git a/frontend/src/views/desktop/MiniBusiness.vue b/frontend/src/views/desktop/MiniBusiness.vue index 84fcd1c..07120d4 100644 --- a/frontend/src/views/desktop/MiniBusiness.vue +++ b/frontend/src/views/desktop/MiniBusiness.vue @@ -40,6 +40,8 @@ const logSaving = ref(false) // ── Filters ── const filterManager = ref('') const filterStatus = ref('跟进中') +const searchText = ref('') +function onSearch() { loadItems() } const managerOptions = computed(() => { const seen = new Set() @@ -120,7 +122,9 @@ async function handleQuickCreate() { async function loadItems() { loading.value = true try { - const res = await api.get('/mini-business/') + const params: any = {} + if (searchText.value) params.search = searchText.value + const res = await api.get('/mini-business/', { params }) miniBusiness.value = res.data } catch (e: any) { ElMessage.error('加载失败') } finally { loading.value = false } @@ -254,6 +258,9 @@ async function quickStatusChange(row: any, newStatus: string) {
+
+ +
diff --git a/frontend/src/views/desktop/WorkPlans.vue b/frontend/src/views/desktop/WorkPlans.vue index da19bc1..d3c929e 100644 --- a/frontend/src/views/desktop/WorkPlans.vue +++ b/frontend/src/views/desktop/WorkPlans.vue @@ -27,6 +27,9 @@ const planStatuses = ['计划中', '已完成', '已取消'] // ── Filters ── const filterManager = ref('') const filterStatus = ref('') +const searchText = ref('') + +function onSearch() { loadPlans() } const isLight = computed(() => themeStore.currentTheme === 'light') @@ -107,7 +110,9 @@ async function handleQuickCreate() { async function loadPlans() { loading.value = true try { - const res = await api.get('/work-plans/') + const params: any = {} + if (searchText.value) params.search = searchText.value + const res = await api.get('/work-plans/', { params }) workPlans.value = res.data } catch (e: any) { ElMessage.error('加载失败') } finally { loading.value = false } @@ -200,6 +205,9 @@ async function quickStatusChange(row: any, newStatus: string) {
+
+ +