tangning 1 месяц назад
Родитель
Сommit
48ac1df399

+ 1 - 1
src/store/case.ts

@@ -179,7 +179,7 @@ export const getCaseDetailInfo = (
   params: number | { caseId?: number; extractId?: number }
 ) =>
   axios.get(caseExtractDetail, {
-    params: typeof params === 'number' ? { caseId: params } : params,
+    params: typeof params === 'number' ? { extractId: params } : params,
   });
 
 export const saveCaseDetailInfo = (caseId: number, data) =>

+ 2 - 2
src/view/newFireCase/newFireDetails/components/siteInspection.vue

@@ -1193,8 +1193,8 @@ const openEditOverlay = (type: 'inquest' | 'extraction', item) => {
   const current = router.currentRoute.value;
   // 勘验笔录仍走原有 records 编辑页;提取清单改为新的 editInspection 页
   const editSub = type === 'extraction' ? 'editInspection' : 'records';
-  const query: any = { ...current.query, editSub, type, filesId: item.id || '' };
-  console.log(item, 'openEditOverlay')
+  const query: any = { ...current.query, editSub, type };
+  console.log(item, 'openEditOverlay', current.query)
   if (type === 'extraction') {
     // 使用 sessionStorage 传递预填数据,避免 URL 过长
     try {

+ 22 - 12
src/view/newFireCase/newFireDetails/editFilePage.vue

@@ -203,13 +203,13 @@ import { useRoute } from 'vue-router';
 import { ElMessage } from 'element-plus';
 import { getCaseInquestInfo, saveCaseInquestInfo, getCaseDetailInfo, saveCaseDetailInfo } from '@/store/case';
 import { getCaseFileImageInfo } from '@/store/editCsae';
+import { router, RouteName } from '@/router';
 
 const props = defineProps<{ caseId: number; currentRecord: object; editOrShow: string }>();
 const route = useRoute();
 const visible = computed(() => route.query.editSub === 'records' || route.query.editSub === 'editInspection');
 const type = computed(() => (route.query.type as string) === 'extraction' ? 'extraction' : 'inquest');
 const loadingCout = ref(0)
-const filesId = ref<string | number | null>(route.query.filesId)
 
 const inquest = reactive<any>({
   count: '',
@@ -273,8 +273,9 @@ const loadInquest = async () => {
     const hasPreset = !!route.query.presetKey;
     const isNew = idParam === undefined && !hasPreset;
     if (isNew) { resetInquest(); return; }
-    const res: any = await getCaseFileImageInfo(filesId.value);
-    const data = res?.inquest ?? res ?? {};
+    // const res: any = await getCaseFileImageInfo(filesId.value);
+    const res: any = await getCaseInquestInfo(idParam);
+    const data = res?.inquest ?? res?.data ?? res ?? {};
     Object.assign(inquest, {}, data)
     console.log('loadInquest1', data, inquest, hasPreset, Array.isArray(data));
     // 新格式:数组,按路由ID选择
@@ -287,7 +288,6 @@ const loadInquest = async () => {
         Object.assign(inquest, data );
       }
     }
-    console.log('loadInquest11', data, inquest, hasPreset);
     await nextTick()
     loadingCout.value += 1;
   } catch (e) {
@@ -315,7 +315,7 @@ const loadExtract = async () => {
     const hasPreset = !!route.query.presetKey;
     const isNew = idParam === undefined && !hasPreset;
     if (isNew) { resetExtract(); return; }
-    const res: any = await getCaseDetailInfo(props.caseId);
+    const res: any = await getCaseDetailInfo(idParam);
     const data = res?.data ?? {};
     if (Array.isArray(data)) {
       const picked = idParam !== undefined ? data.find((d: any) => Number(d?.id) === idParam) : undefined;
@@ -325,6 +325,7 @@ const loadExtract = async () => {
         Object.assign(extract, { ...extract, ...(data || {}) });
       }
     }
+    console.error('获取提取清单', data, extract);
   } catch (e) {
     console.error('获取提取清单失败', e);
   }
@@ -352,35 +353,44 @@ watch([visible, type], async ([v, t]) => {
     // applyInquestPreset();
   } else {
     await loadExtract();
-    applyExtractPreset();
+    // applyExtractPreset();
   }
 }, { immediate: true });
-const setDataInfo = (data: any) => {
+const getDataInfo = () => {
   if (type.value === 'inquest') {
-    applyInquestPreset();
+    loadInquest();
   } else {
-    applyExtractPreset();
+    loadExtract();
   }
 };
 const handleSave = async (): Promise<any> => {
   try {
     let res: any;
+    const idParam = (extract as any).id || (route.query.id ? Number(route.query.id) : undefined);
     if (type.value === 'inquest') {
-      const idParam = (inquest as any).id || (route.query.id ? Number(route.query.id) : undefined);
       const payload = idParam !== undefined ? { id: idParam, ...inquest } : { ...inquest };
       res = await saveCaseInquestInfo(props.caseId, payload);
       const savedId = res?.data?.id || res?.data?.data?.id;
       // filesId.value = savedId;
       if (savedId) (inquest as any).id = savedId;
     } else {
-      const idParam = (extract as any).id || (route.query.id ? Number(route.query.id) : undefined);
       const payload = idParam !== undefined ? { id: idParam, ...extract } : { ...extract };
       res = await saveCaseDetailInfo(props.caseId, payload);
       const savedId = res?.data?.id || res?.data?.data?.id;
       if (savedId) (extract as any).id = savedId;
     }
+    let resData = res?.data;
     console.log('保存成功', res?.data);
-    return res?.data || true;
+    if(!idParam){
+      const current = router.currentRoute.value;
+      router.replace({
+        name: RouteName.fireDetails,
+        params: current.params,
+        query: {...current.query, id: resData.id || '' },
+      });
+      return
+    }
+    return resData || true;
   } catch (e) {
     console.error('保存失败', e);
     ElMessage.error('保存失败,请稍后重试');

+ 3 - 2
src/view/newFireCase/newFireDetails/index.vue

@@ -3,7 +3,7 @@
     <!-- 顶部标题栏 -->
     <headerTop :caseId="caseId" :currentRecord="currentRecord" :editOrShow="editOrShow" :showSave="showSave" @save="saveEditSub" @export="exportEditSub" @back="backEditSub" />
     <editFilePage :caseId="caseId" :currentRecord="currentRecord" :editOrShow="editOrShow" ref="editFilePageRef" />
-    <editInspection :caseId="caseId" :currentRecord="currentRecord" :editOrShow="editOrShow" ref="editInspectionRef" />
+    <!-- <editInspection :caseId="caseId" :currentRecord="currentRecord" :editOrShow="editOrShow" ref="editInspectionRef" /> -->
     <photoEdit :caseId="caseId" :title="pageTitle" ref="photoEditRef" />
     <!-- 查看页 -->
     <showIndex :caseId="caseId" :currentRecord="currentRecord" :fromRoute="fromRoute" :processingIds="processingIds" :recentAddedItem="recentAddedItem" @playVideo="playVideo" v-if="editOrShow === 'show'" />
@@ -296,9 +296,10 @@ const saveEditSub = async () => {
   // 根据当前子编辑页选择对应组件保存
   const sub = route.query.editSub as string | '';
   let comp: any = null;
-  if (sub === 'editInspection') comp = editInspectionRef.value as any;
+  if (sub === 'editInspection') comp = editFilePageRef.value as any;
   else if (sub === 'photoEdit') comp = photoEditRef.value as any;
   else comp = editFilePageRef.value as any;
+  console.log(comp, sub, 'editFilePageRef', editFilePageRef.value)
   if (!comp || typeof comp.handleSave !== 'function') {
     ElMessage.warning('当前页面不支持保存');
     return;