|
|
@@ -12,6 +12,7 @@ import { CompLog } from "@/helpers/log.helper";
|
|
|
import type { ReportBasic } from "@/types/report.types"
|
|
|
import { routeToReportEditor } from "@/router";
|
|
|
import SpinComponent from "@/components/SpinComponent.vue";
|
|
|
+import TemplateSelect from "./components/TemplateSelect.vue";
|
|
|
|
|
|
const _componentName = 'ReportListView'
|
|
|
const logError = CompLog.logErr(_componentName)
|
|
|
@@ -38,6 +39,8 @@ const field = ref<FieldType>('title')
|
|
|
const keyword = ref('')
|
|
|
// 过滤栏选择的企业id
|
|
|
const companyIdSelected = ref<number | undefined>(undefined)
|
|
|
+// 模板选择器ref
|
|
|
+const templateSelect = ref<InstanceType<typeof TemplateSelect> | null>(null)
|
|
|
|
|
|
function fetchReports(companyId?: number, page?: number, field?: string, keyword?: string) {
|
|
|
spinning.value = true;
|
|
|
@@ -70,13 +73,17 @@ function onQuery(queryData: { field: string, keyword: string }) {
|
|
|
}
|
|
|
|
|
|
function onPaginationChange(page: number) {
|
|
|
- fetchReports(companyIdSelected.value, page)
|
|
|
+ fetchReports(companyIdSelected.value, page, field.value, keyword.value)
|
|
|
}
|
|
|
|
|
|
function onCreateReport() {
|
|
|
- reportService.create().then((id) => {
|
|
|
+ templateSelect.value?.show()
|
|
|
+}
|
|
|
+
|
|
|
+function onTemplateSelected(templateId: number | null) {
|
|
|
+ reportService.create({templateId}).then((id) => {
|
|
|
routeToReportEditor(id);
|
|
|
- }).catch((err) => console.log(err));
|
|
|
+ }).catch(logError);
|
|
|
}
|
|
|
|
|
|
onMounted(() => {
|
|
|
@@ -97,14 +104,17 @@ onMounted(() => {
|
|
|
|
|
|
<template>
|
|
|
<div class="reports-wrap">
|
|
|
- <a-row type="flex" justify="space-between">
|
|
|
+ <PageHeader title="我的报告">
|
|
|
+ <a-button type="primary" @click="onCreateReport"><plus-outlined />新建报告</a-button>
|
|
|
+ </PageHeader>
|
|
|
+ <!-- <a-row type="flex" justify="space-between">
|
|
|
<a-col>
|
|
|
<PageHeader title="我的报告" />
|
|
|
</a-col>
|
|
|
<a-col>
|
|
|
<a-button type="primary" @click="onCreateReport"><plus-outlined />新建报告</a-button>
|
|
|
</a-col>
|
|
|
- </a-row>
|
|
|
+ </a-row> -->
|
|
|
|
|
|
<div class="query-box-wrap">
|
|
|
<QueryBox v-model:field="field" v-model:keyword="keyword" @search="onQuery" />
|
|
|
@@ -124,6 +134,7 @@ onMounted(() => {
|
|
|
<a-pagination v-model:current="currentPage" :total="total" @change="onPaginationChange" />
|
|
|
</div>
|
|
|
</div>
|
|
|
+ <TemplateSelect ref="templateSelect" @ok="onTemplateSelected" />
|
|
|
</template>
|
|
|
|
|
|
<style scoped lang="scss">
|