Browse Source

merge "feature/1001807" into "main"
feature/1001807,

Kevin 2 years ago
parent
commit
baf32c9a6b

+ 4 - 1
src/client/reports.client.ts

@@ -8,7 +8,7 @@ import type { Response } from "@/types/response.types";
 
 const _url = withPrefix("/gw/user")
 
-export async function query(page: number, companyIds?: number[], field?: string, keyword?: string): Promise<ReportsResponse> {
+export async function query(page: number, companyIds?: number[], field?: string, keyword?: string, status?: number): Promise<ReportsResponse> {
   //const params: any = { page, companyIds, field, keyword }
   // if (companyId) {
   //   params['companyId'] = companyId;
@@ -21,6 +21,9 @@ export async function query(page: number, companyIds?: number[], field?: string,
   if (field && keyword && keyword.length > 0 && field.length > 0) {
     param += `&field=${field}&keyword=${keyword}`
   }
+  if (status || status == 0) {
+     param += `&status=${status}`
+  }
 
   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, companyIds?: number[], field?: string, keyword?: string) {
-  return reportsClient.query(page || 1, companyIds, field, keyword);
+export async function query(page?: number, companyIds?: number[], field?: string, keyword?: string, status?: number) {
+  return reportsClient.query(page || 1, companyIds, field, keyword, status);
 }
 
 export async function agg() {

+ 30 - 1
src/views/report/ReportListView.vue

@@ -19,6 +19,22 @@ const logError = CompLog.logErr(_componentName)
 
 const currentPage = ref(1);
 
+const reportStatus = ref([
+  {
+    label: '全部',
+    value: undefined
+  },
+  {
+    label: '编写中',
+    value: 0
+  },{
+    label: '已完成',
+    value: 1
+  }
+])
+
+const status = ref(undefined)
+
 interface CompanyAggProp {
   id?: number;
   label: string;
@@ -44,7 +60,7 @@ const templateSelect = ref<InstanceType<typeof TemplateSelect> | null>(null)
 
 function fetchReports(companyIds?: Array<number>, page?: number, field?: string, keyword?: string) {
   spinning.value = true;
-  reportsService.query(page, companyIds, field, keyword).then((resp) => {
+  reportsService.query(page, companyIds, field, keyword, status.value).then((resp) => {
     total.value = resp.total;
     reports.value = resp.reports;
     spinning.value = false;
@@ -95,6 +111,11 @@ function onTemplateSelected(templateId: number | null) {
   }).catch(logError);
 }
 
+function onFilterChange() {
+  currentPage.value = 1
+  fetchReports(companyIdSelected.value, currentPage.value)
+}
+
 onMounted(() => {
   fetchReports()
   // 左侧企业名录统计
@@ -120,6 +141,10 @@ onMounted(() => {
     <div class="query-box-wrap">
       <QueryBox v-model:field="field" v-model:keyword="keyword" @search="onQuery" />
     </div>
+    <div class="filter-box-wrap">
+      <a-radio-group :options="reportStatus" v-model:value="status" @change="onFilterChange()"/>
+    </div>
+    
     <a-row class="main-content" :gutter="24">
       <a-col :xxl="5" :xl="6" :lg="7" :span="8" class="company-filter-wrap">
         <h3>我所服务的企业</h3>
@@ -147,6 +172,10 @@ onMounted(() => {
     margin: 0 auto;
   }
 
+  .filter-box-wrap{
+    display: flex;
+    margin: 1.5em  21.1%;
+  }
   .main-content {
     margin-top: 1.5em;