tangning недель назад: 2
Родитель
Сommit
d1a9454b6d
2 измененных файлов с 25 добавлено и 20 удалено
  1. 5 1
      src/view/mediaLibrary/index.vue
  2. 20 19
      src/view/newFireCase/newFireDetails/components/scene.vue

+ 5 - 1
src/view/mediaLibrary/index.vue

@@ -368,7 +368,11 @@ const refreshList = () => {
 // 跳转
 // 跳转
 const floadileUrl = (row: any) => {
 const floadileUrl = (row: any) => {
     if (row.fileType == 3) {
     if (row.fileType == 3) {
-      let url = `/code/index.html?fromRoute=${appId}&title=${row.fileName}&app=${appConstant.deptId.toString()}&type=${row.fileFormat}&fileUrl=${row.fileUrl}&isSample=${appConstant.isSample.toString()}#/sign-model`
+      let wgs84 = '';
+      if (row.wgs84) {
+        wgs84 = `&wgs84=${row.wgs84}&gcj02=${row.gcj02}`;
+      }
+      let url = `/code/index.html?fromRoute=${appId}&title=${row.fileName}&app=${appConstant.deptId.toString()}&type=${row.fileFormat}&fileUrl=${row.fileUrl}&isSample=${appConstant.isSample.toString()}&convertType=${row.convertType||''}${row.wgs84 ? wgs84 : ''}#/sign-model`
       return window.open(url);
       return window.open(url);
     } else {
     } else {
       return window.open(row.fileUrl);
       return window.open(row.fileUrl);

+ 20 - 19
src/view/newFireCase/newFireDetails/components/scene.vue

@@ -212,27 +212,25 @@ const pager = ref({ page: 1, pageSize: 10, total: 0 });
 let titleDebounceTimer: any = null;
 let titleDebounceTimer: any = null;
 
 
 // 已导入场景集合与辅助判断
 // 已导入场景集合与辅助判断
-const importedKeySet = computed(() => {
-  return scenes.value.length ? scenes.value.map(s => `${Number(s?.sceneType)}__${String(s?.num)}`) : [];
+const importedKeySet = computed(() => 
+{
+  const set = new Set<string>();
+    console.log(scenes.value, 'importedKeySet');
+  (scenes.value || []).forEach((s: any) => {
+    set.add(`${Number(s?.sceneType??s?.type)}__${String(s?.num)}`);
+  });
+  console.log(scenes.value, 'importedKeySet', set);
+  return scenes.value.length ? set : new Set<string>();
 });
 });
-// {
-//   const set = new Set<string>();
-//     console.log(scenes.value, 'importedKeySet');
-//   (scenes.value || []).forEach((s: any) => {
-//     set.add(`${Number(s?.sceneType)}__${String(s?.num)}`);
-//   });
-//   console.log(scenes.value, 'importedKeySet', set);
-//   return set;
-// });
 const selectedKeySet = computed(() => {
 const selectedKeySet = computed(() => {
   const set = new Set<string>();
   const set = new Set<string>();
   (selectedRows.value || []).forEach((r: any) => {
   (selectedRows.value || []).forEach((r: any) => {
-    set.add(`${Number(r?.type)}__${String(r?.num)}`);
+    set.add(`${Number(r?.sceneType??r?.type)}__${String(r?.num)}`);
   });
   });
   return set;
   return set;
 });
 });
 const rowKey = (row: any) => `${Number(row?.type)}__${String(row?.num)}`;
 const rowKey = (row: any) => `${Number(row?.type)}__${String(row?.num)}`;
-const isRowImported = (row: any) =>  importedKeySet.value.includes(rowKey(row));
+const isRowImported = (row: any) =>  importedKeySet.value.has(rowKey(row));
 const isRowSelectable = (row: any) => row.status != 2 ? false : !isRowImported(row);
 const isRowSelectable = (row: any) => row.status != 2 ? false : !isRowImported(row);
 const rowClassName = ({ row }: { row: any }) => (isRowImported(row) ? 'is-imported-row' : '');
 const rowClassName = ({ row }: { row: any }) => (isRowImported(row) ? 'is-imported-row' : '');
 const preselectRows = () => {
 const preselectRows = () => {
@@ -242,8 +240,8 @@ const preselectRows = () => {
       tableRef.value?.clearSelection?.();
       tableRef.value?.clearSelection?.();
       (tableData.value || []).forEach((r: any) => {
       (tableData.value || []).forEach((r: any) => {
         const key = rowKey(r);
         const key = rowKey(r);
-        console.log(key, importedKeySet.value, selectedKeySet.value,scenes.value, 'toggleRowSelection');
-        if (importedKeySet.value.includes(key) || selectedKeySet.value.has(key)) {
+        console.log(selectedRows.value, importedKeySet.value, selectedKeySet.value,scenes.value, 'toggleRowSelection');
+        if (importedKeySet.value.has(key) || selectedKeySet.value.has(key)) {
           tableRef.value?.toggleRowSelection?.(r, true);
           tableRef.value?.toggleRowSelection?.(r, true);
         }
         }
       });
       });
@@ -359,6 +357,7 @@ const ItemChange = (selection, row) =>  {
   let item = selection.find(ele => ele.num === row.num)
   let item = selection.find(ele => ele.num === row.num)
   if(!item){//判断为取消
   if(!item){//判断为取消
     selectedRows.value = selectedRows.value.filter(ele => !(ele.isObj == row.isObj && ele.num == row.num))
     selectedRows.value = selectedRows.value.filter(ele => !(ele.isObj == row.isObj && ele.num == row.num))
+    console.log(selectedRows.value, 'rows3')
   }
   }
 };
 };
 const listChange = (selection) =>  {
 const listChange = (selection) =>  {
@@ -372,16 +371,18 @@ const listChange = (selection) =>  {
         return true
         return true
       }
       }
     })
     })
+    console.log(selectedRows.value, 'rows2')
   }
   }
 };
 };
 const onSelectionChange = (rows: Scene[]) => {
 const onSelectionChange = (rows: Scene[]) => {
-  console.log(rows, 'rows')
   // 保证“已导入”的行始终在选中集合中,并与跨页选中合并
   // 保证“已导入”的行始终在选中集合中,并与跨页选中合并
   const map = new Map<string, any>();
   const map = new Map<string, any>();
   // 先放入全局已选中的集合(跨页保持)
   // 先放入全局已选中的集合(跨页保持)
   (selectedRows.value || []).forEach((r: any) => map.set(rowKey(r), r));
   (selectedRows.value || []).forEach((r: any) => map.set(rowKey(r), r));
   // 当前页导入的行强制选中
   // 当前页导入的行强制选中
+  console.log(selectedRows.value, 'rows4', importedKeySet.value)
   (tableData.value || []).forEach((r: any) => {
   (tableData.value || []).forEach((r: any) => {
+    console.log(isRowImported(r), 'rows2', importedKeySet.value)
     if (isRowImported(r)) {
     if (isRowImported(r)) {
       map.set(rowKey(r), r);
       map.set(rowKey(r), r);
     }
     }
@@ -391,7 +392,7 @@ const onSelectionChange = (rows: Scene[]) => {
     map.set(rowKey(r), r);
     map.set(rowKey(r), r);
   });
   });
   selectedRows.value = Array.from(map.values());
   selectedRows.value = Array.from(map.values());
-  console.log(selectedRows.value, 'selectedRows', rows)
+  console.log(selectedRows.value, 'rows4', importedKeySet.value)
 };
 };
 
 
 // 合并当前案件已有场景与新选择的场景,避免重复
 // 合并当前案件已有场景与新选择的场景,避免重复
@@ -414,14 +415,14 @@ const onConfirmEdit = async () => {
     const mergedList = mergeScenesWithSelection();
     const mergedList = mergeScenesWithSelection();
     const numList = mergedList.map((s: any) => s.num);
     const numList = mergedList.map((s: any) => s.num);
     const oldScene = scenes.value.filter(ele => !numList.includes(ele.num)).map(element => { return { ...element, num: element.num, type: element.sceneType } });
     const oldScene = scenes.value.filter(ele => !numList.includes(ele.num)).map(element => { return { ...element, num: element.num, type: element.sceneType } });
-    console.log(oldScene, 'oldScene',numList, 'numList', scenes.value, 'scenes')
     const payload = getCaseScenes([...mergedList, ...oldScene] as any[]);
     const payload = getCaseScenes([...mergedList, ...oldScene] as any[]);
     await replaceCaseScenes(caseId.value, payload);
     await replaceCaseScenes(caseId.value, payload);
     // 刷新案件场景列表
     // 刷新案件场景列表
+    selectedRows.value = [];
     scenes.value = (await getFusionAndSceneList({ caseId: caseId.value, type: 'scene' })) as unknown as Scene[];
     scenes.value = (await getFusionAndSceneList({ caseId: caseId.value, type: 'scene' })) as unknown as Scene[];
     activeId.value = scenes.value.length ? String(scenes.value[0]?.sceneNumId) : '';
     activeId.value = scenes.value.length ? String(scenes.value[0]?.sceneNumId) : '';
     editVisible.value = false;
     editVisible.value = false;
-    selectedRows.value = [];
+    console.log(selectedRows.value, 'selectedRows.value')
   } catch (e) {
   } catch (e) {
     console.error('替换案件场景失败', e);
     console.error('替换案件场景失败', e);
   }
   }