Browse Source

feature/1001805

lizi 2 years ago
parent
commit
a66235853c

+ 5 - 0
src/client/report.client.ts

@@ -27,3 +27,8 @@ export async function save(reportSaveRequest: ReportSaveRequest) {
   const resp = await httpClient.post<Response<ReportSaveRequest>>(_url(), reportSaveRequest);
   return resp.data.data;
 }
+
+export async function updateStatus(id: number){
+  const resp = await httpClient.put<Response<number>>(_url(`/updateStatus/${id}`));
+  return resp.data.data;
+}

+ 4 - 0
src/services/report.service.ts

@@ -17,3 +17,7 @@ export async function create(request: ReportCreateRequest): Promise<number> {
 export async function save(reportSaveRequest: ReportSaveRequest) {
   return reportClient.save(reportSaveRequest);
 }
+
+export async function updateStatus(id: number){
+  return reportClient.updateStatus(id);
+}

+ 1 - 0
src/types/report.types.ts

@@ -149,6 +149,7 @@ export interface ReportBasic {
   userId: number;
   createAt?: string;
   updateAt?: string;
+  status:number
 }
 
 export interface ReportSaveRequest extends ReportBasic {

+ 19 - 1
src/views/report/ReportEditorView.vue

@@ -50,6 +50,8 @@ const logoUrl = ref<string | undefined>(undefined)
 const exporting = ref(false)
 // 定时保存handler
 const timeIntervalHandler = ref<number | null>(null)
+//报告状态
+const reportStatus = ref<number>(0) 
 
 function onMetaChange(data: ReportMetadataItem[]) {
   metadata.value = data;
@@ -195,11 +197,23 @@ function onSaveTemplate(modalData: ReportTemplateModal) {
   })
 }
 
+function updateStatus() {
+  if (report.value) {
+    reportService.updateStatus(report.value.id)
+    getStatus();
+  }
+}
+
+function getStatus(){
+  reportStatus.value = reportStatus.value == 0 ? 1 : 0;
+}
+
 onMounted(() => {
   const id = parseInt(route.params.id as string);
   if (id && id > 0) {
     reportService.get(id).then((data) => {
       report.value = data;
+      reportStatus.value = data.status
       const chapters = report.value.chapters;
       chapterManager.setChapters(chapters);
       // 设置Logo信息
@@ -257,7 +271,11 @@ onUnmounted(() => {
     </a-button>
   </div>
   <div class="bottom-button-group">
-    <a-space>
+    <a-space v-if="report">
+      <a-checkbox @change="updateStatus()"  :checked="reportStatus == 1">
+        <span v-if="reportStatus == 0">未完成</span>
+        <span v-if="reportStatus == 1">已完成</span>
+      </a-checkbox>
       <a-button type="primary" @click="onSave" :loading="saveLoading">保存</a-button>
       <a-button @click="onPreview">预览</a-button>
       <a-button @click="onExport" :loading="exporting">导出</a-button>