瀏覽代碼

bug/1000227

lizi 2 年之前
父節點
當前提交
dde273278c
共有 3 個文件被更改,包括 32 次插入14 次删除
  1. 13 3
      src/client/reports.client.ts
  2. 2 2
      src/services/reports.service.ts
  3. 17 9
      src/views/report/ReportListView.vue

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

@@ -5,15 +5,25 @@ import httpClient from "@/services/httpClient";
 import type { CompanyAgg } from "@/types/company.types";
 import type { ReportsResponse } from "@/types/report.types";
 import type { Response } from "@/types/response.types";
+import qs from 'qs';
 
 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?: Array<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((_: any)=>`companyIds=${_}`).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?: Array<number>, field?: string, keyword?: string) {
+  return reportsClient.query(page || 1, companyIds, field, keyword);
 }
 
 export async function agg() {

+ 17 - 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,12 +59,20 @@ 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()
+    }
   }
 }