Переглянути джерело

Merge branch 'bug/1000227' into 'main'

bug/1000227

See merge request zhcqdn00001/front!16
Kevin 2 роки тому
батько
коміт
b4fddd7734

+ 12 - 3
src/client/reports.client.ts

@@ -8,12 +8,21 @@ import type { Response } from "@/types/response.types";
 
 const _url = withPrefix("/gw/user")
 
-export async function query(page: number, companyId?: number, field?: string, keyword?: string): Promise<ReportsResponse> {
-  const params: any = { page, companyId, field, keyword }
+export async function query(page: number, companyIds?: number[], field?: string, keyword?: string): Promise<ReportsResponse> {
+  //const params: any = { page, companyIds, field, keyword }
   // if (companyId) {
   //   params['companyId'] = companyId;
   // }
-  const resp = await httpClient.get<Response<ReportsResponse>>(_url("/reports"), { params })
+
+  let param = ''
+  if (companyIds && companyIds.length > 0) {
+    param = companyIds.map((id: number)=>`companyIds=${id}`).join('&');
+  }
+  if (field && keyword && keyword.length > 0 && field.length > 0) {
+    param += `&field=${field}&keyword=${keyword}`
+  }
+
+  const resp = await httpClient.get<Response<ReportsResponse>>(_url(`/reports/?page=${page}&${param}`))
   return resp.data.data
 }
 

+ 2 - 2
src/services/reports.service.ts

@@ -1,7 +1,7 @@
 import * as reportsClient from "@/client/reports.client"
 
-export async function query(page?: number, companyId?: number, field?: string, keyword?: string) {
-  return reportsClient.query(page || 1, companyId, field, keyword);
+export async function query(page?: number, companyIds?: number[], field?: string, keyword?: string) {
+  return reportsClient.query(page || 1, companyIds, field, keyword);
 }
 
 export async function agg() {

+ 18 - 9
src/views/report/ReportListView.vue

@@ -38,13 +38,13 @@ const field = ref<FieldType>('title')
 // 查询关键词
 const keyword = ref('')
 // 过滤栏选择的企业id
-const companyIdSelected = ref<number | undefined>(undefined)
+const companyIdSelected = ref<Array<number>>([])
 // 模板选择器ref
 const templateSelect = ref<InstanceType<typeof TemplateSelect> | null>(null)
 
-function fetchReports(companyId?: number, page?: number, field?: string, keyword?: string) {
+function fetchReports(companyIds?: Array<number>, page?: number, field?: string, keyword?: string) {
   spinning.value = true;
-  reportsService.query(page, companyId, field, keyword).then((resp) => {
+  reportsService.query(page, companyIds, field, keyword).then((resp) => {
     total.value = resp.total;
     reports.value = resp.reports;
     spinning.value = false;
@@ -59,16 +59,25 @@ function onCompanySelectChange(event: {index: number, checked: boolean}) {
   const company = companies.value[event.index];
   company.checked = event.checked;
 
-  if (event.checked) {
-    companyIdSelected.value = company.id;
-    fetchReports(company.id)
-  } else {
-    companyIdSelected.value = undefined;
-    fetchReports()
+  if (company.id || company.id == 0) {
+    if (!event.checked) {
+      companyIdSelected.value.splice(companyIdSelected.value.indexOf(company.id), 1);
+    } else {
+      companyIdSelected.value.push(company.id);
+    }
+  }
+
+  if (companyIdSelected.value) {
+    if (companyIdSelected.value.length > 0) {
+      fetchReports(companyIdSelected.value)
+    } else {
+      fetchReports()
+    }
   }
 }
 
 function onQuery(queryData: { field: string, keyword: string }) {
+  currentPage.value = 1
   fetchReports(companyIdSelected.value, currentPage.value, queryData.field, queryData.keyword)
 }