Browse Source

报告保存是判断类型是否为空,为空自动focus

Kevin Jiang 2 years ago
parent
commit
56c570d227

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

@@ -38,6 +38,12 @@ export const ChapterTypeLabels = [
   },
 ]
 
+export interface ReportMetadataItem {
+  name: string;
+  value: string;
+  type: 'text' | 'date';
+}
+
 export interface Chapter {
   title: string;
   fullTitle?: string;

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

@@ -13,10 +13,12 @@ import { ChapterManager } from "@/models/report.model";
 import ChapterEditor from "./components/ChapterEditor.vue";
 import * as reportService from "@/services/report.service";
 import { CompLog } from "@/helpers/log.helper";
+import { message } from "ant-design-vue";
 
 const route = useRoute();
 
 const report: Ref<ReportSaveRequest | null> = ref(null);
+const reportCategoryEl = ref<HTMLInputElement | null>(null);
 
 const companyId = computed(() => report.value?.companyId || 0)
 
@@ -53,6 +55,12 @@ const saveLoading = ref(false);
 
 function onSave() {
   if (report.value) {
+    const reportName = (report.value.name || '').trim();
+    if (reportName == '') {
+      message.warning("请填写报告类型!");
+      reportCategoryEl.value?.focus();
+      return;
+    }
     saveLoading.value = true;
     reportService.save(report.value).then(() => {
       saveLoading.value = false;
@@ -78,7 +86,7 @@ onMounted(() => {
     <a-col :span="12">
       <div class="metadata-wrap">
         <RelationCompanyInput v-model:id="companyId" @change="onCompanyChange" />
-        <ReportCategory />
+        <ReportCategory ref="reportCategoryEl" />
         <DynamicMeta @change="onMetaChange" />
       </div>
     </a-col>

+ 11 - 1
src/views/report/components/report-create/ReportCategory.vue

@@ -2,6 +2,16 @@
 import { ref } from "vue";
 
 const value = ref('');
+
+const input = ref<HTMLInputElement | null>(null);
+
+function focus() {
+  input.value?.focus();
+}
+
+defineExpose({
+  focus
+});
 </script>
 
 <template>
@@ -10,7 +20,7 @@ const value = ref('');
       报告类型:
     </a-col>
     <a-col flex="1">
-      <a-input v-model="value" placeholder="请输入报告类型" />
+      <a-input v-model="value" placeholder="请输入报告类型" ref="input" />
     </a-col>
   </a-row>
 </template>