tangning 7 maanden geleden
bovenliggende
commit
b798affb6e
4 gewijzigde bestanden met toevoegingen van 82 en 25 verwijderingen
  1. 1 0
      src/request/urls.ts
  2. 9 1
      src/store/case.ts
  3. 21 6
      src/view/case/draw/index.vue
  4. 51 18
      src/view/layout/index.vue

+ 1 - 0
src/request/urls.ts

@@ -99,6 +99,7 @@ export const deleteScene = "/web/scene/delete";
 export const exampleList = "/fusion/case/list";
 export const setExample = "/fusion/case/addOrUpdate";
 export const deleteExample = "/fusion/case/delete";
+export const isdyrh = "/fusion/caseFusion/list";
 
 /**  case接口 */
 // 获取case场景列表

+ 9 - 1
src/store/case.ts

@@ -33,6 +33,7 @@ import {
   caseInquestExport,
   sceneListHasAi,
   caseaddOrUpdate,
+  isdyrh,
 } from "@/request";
 import { router } from "@/router";
 import { ModelScene, QuoteScene, Scene, SceneType } from "./scene";
@@ -115,6 +116,10 @@ export const getDictFileLists = async (type: number): Promise<Scene[]> => {
   return (await axios.get(getDictFileList, { params: { type: type } })).data;
 };
 
+export const getcaseLists = async (caseId: number): Promise<Scene[]> => {
+  return (await axios.get(isdyrh, { params: { caseId } })).data;
+};
+
 export const updateByTreeFileLists = async (caseId = router.currentRoute.value?.params?.caseId): Promise<Scene[]> => {
   let list = (await axios.get(getByTree, { params: { caseId:caseId } })).data
   treeList.value = list;
@@ -236,7 +241,10 @@ export const getSceneListHasAi = (caseId: number) =>
 export const submitMergePhotos = (data) => axios.post(ffmpegMergeImage, { ...data })
 
 export const getCaseInfoData = () => caseInfoData.value
-export const getCaseSceneListData = () => sceneList.value
+export const getCaseSceneListData = (caseId) => {
+  if(sceneList.value.length == 0) return getCaseSceneList(caseId)
+  return sceneList.value
+}
 
 export const getSceneListTree = (list = sceneList.value) => {
   let myData = {

+ 21 - 6
src/view/case/draw/index.vue

@@ -57,7 +57,13 @@ import {
   saveCaseFileImageInfo,
 } from "@/store/caseFile";
 import { uploadFile } from "@/store/system";
-
+const list = ref({
+  xct:[],
+  xczp:[],
+  klbj:[],
+});
+const fmtId = ref(0);
+const pmtId = ref(0);
 const dom = ref<HTMLCanvasElement>();
 const props = computed(() => {
   const route = router.currentRoute.value;
@@ -75,7 +81,16 @@ const props = computed(() => {
     };
   }
 });
-
+function getList() {
+  updateByTreeFileLists(props.caseId).then(res => {
+    let newlist =  res.find(ele => ele.filesTypeName == '三录材料')?.childrenList || [];
+    list.value.xct = newlist.find(ele => ele.filesTypeName == '现场图')?.childrenList || [];
+    pmtId.value = list.value.xct.find(ele => ele.filesTypeName == '平面图').filesTypeId
+    fmtId.value = list.value.xct.find(ele => ele.filesTypeName == '方面图').filesTypeId
+    console.log('list.value', list.value)
+  })
+}
+getList()
 const backPageHandler = () => {
   board.value && board.value.clear();
   router.back();
@@ -126,7 +141,7 @@ const getStore = async () => {
 const saveHandler = async () => {
   const { store, titleShape } = await getStore();
   const args = props.value!;
-
+  console.log('titleShape', store, titleShape);
   const blob = await board.value!.export();
   const body: SaveCaseFileImageInfo = {
     caseId: args.caseId,
@@ -136,9 +151,9 @@ const saveHandler = async () => {
     content: store && JSON.stringify(store),
   };
   args.inAdd || (body.filesId = props.value!.fileId);
-  console.log('args1', args, body);
   const { data } = await uploadNewFile(body);
-  const rse = await addByMediaLiBrary({ ...body, caseId: args.caseId,filesTypeId: args.type == 1 ? pmtId.value:fmtId.value, uploadId: data.id });
+  console.log('args1', args, body, data, pmtId.value, fmtId.value);
+  const rse = await addByMediaLiBrary({ ...body, caseId: args.caseId,filesTypeId: args.type == BoardType.scene ? fmtId.value : pmtId.value, uploadId: data.id });
   console.log('args2',rse, { ...body,caseId: args.caseId, type: args.type, id: data.id });
   if (args.inAdd) {
     router.replace({
@@ -148,7 +163,7 @@ const saveHandler = async () => {
   }
   await nextTick();
   setTimeout(() => {
-    location.reload();
+    // location.reload();
   }, 100);
 };
 

+ 51 - 18
src/view/layout/index.vue

@@ -20,7 +20,12 @@
             >
             <div class="poprs sceneList" v-if="sceneList.length">
               <el-dropdown placement="bottom-start" trigger="click" @command="handleCommand">
-              <el-icon size="24"><Expand /></el-icon>
+                <span class="el-dropdown-link">
+                  {{sceneListName}}
+                  <el-icon class="el-icon--right">
+                    <arrow-down />
+                  </el-icon>
+                </span>
               <template #dropdown>
                 <el-dropdown-menu>
                   <el-dropdown-item v-for="item,index in sceneList" :key="index" :command="item.id">{{ item.name || '多元融合' }}</el-dropdown-item>
@@ -55,9 +60,9 @@
 import lyTop from "./top/index.vue";
 import lySlide from "./slide/index.vue";
 import { routeIsSystem, router } from "@/router";
-import { computed, ref } from "vue";
+import { computed, ref, onMounted } from "vue";
 import { menuRouteNames } from "@/app";
-import { updateByTreeFileLists, getCaseSceneListData, getUrlSrc } from "@/store/case";
+import { updateByTreeFileLists, getCaseSceneListData, getUrlSrc, getcaseLists, getCaseSceneList  } from "@/store/case";
 console.log(menuRouteNames, 'menuRouteNames', router.currentRoute.value.name);
 const isSystem = computed(() => routeIsSystem());
 const caseId = computed(() => {
@@ -66,18 +71,41 @@ const caseId = computed(() => {
     return Number(caseId);
   }
 });
-const sceneURL = ref(`/code/index.html?caseId=${caseId.value}&single#/show`)
-const sceneList = computed(() => {
-  let mylist = getCaseSceneListData()
-  return [{ id: -1, type: 99, name: '多元融合' }, ...mylist];
-});
+const sceneList = ref([]);
+const sceneURL = ref(``)
+const sceneListName = ref('')
+const modeList = ref([])
+const init = async () => {
+  modeList.value = await getcaseLists(caseId.value as number);
+  sceneList.value = await getCaseSceneList(caseId.value as number);
+  if(modeList.value.length){
+    sceneList.value.unshift({ id: -1, type: 99, name: '多元融合' });
+  }
+  handleCommand()
+  // let url = getUrlSrc({ id: 0 }, caseId.value)
+  // sceneURL.value = url;
+}
+init()
+// const sceneList = computed(() => {
+//   let newlist = getCaseSceneListData(caseId.value as number)
+//   if(modeList.value?.length){
+//     return [{ id: -1, type: 99, name: '多元融合' }, ...newlist];
+//   }else{
+//     return newlist;
+//   }
+// });
 console.log(sceneList, 'sceneList');
+onMounted(() => {
+  // setupSDK(document.querySelector('iframe') as HTMLIFrameElement)
+})
 updateByTreeFileLists()
 const hiddenSlide = computed(
   () => !menuRouteNames.includes(router.currentRoute.value.name as string)
 );
 const handleCommand = (command) => {
-  let item = sceneList.value.find(item => item.id == command);
+  let newid = command || sceneList.value[0].id;
+  let item = sceneList.value.find(item => item.id == newid);
+  sceneListName.value = item.name;
   let url = getUrlSrc(item, caseId.value)
   sceneURL.value = url;
   console.log('handleCommand', command, item, url);
@@ -146,18 +174,23 @@ const handleClick = (command: string) => {
         position: relative;
       }
       .sceneList{
-        width: 48px;
-        height: 38px;
         position: absolute;
         left: 10px;
-        top: 10px;
-
-        padding: 6px 0;
-        line-height: 42px;
-        background: rgba(27, 27, 28, 0.80);
-        text-align: center;
-        cursor: pointer;
+        top: 30px;
       }
+      // .sceneList{
+      //   width: 48px;
+      //   height: 38px;
+      //   position: absolute;
+      //   left: 10px;
+      //   top: 10px;
+
+      //   padding: 6px 0;
+      //   line-height: 42px;
+      //   background: rgba(27, 27, 28, 0.80);
+      //   text-align: center;
+      //   cursor: pointer;
+      // }
     }
   }
 }