Ver código fonte

修改三路材料

tangning 2 meses atrás
pai
commit
35b4c44bb6

+ 5 - 4
src/components/viewImg/index.vue

@@ -21,7 +21,7 @@
         :key="index"
       >
         <div class="demo-image__preview h-full w-full">
-          <el-image :src="urlFilter(item.filesUrl)" class="originalImg" fit="cover">
+          <el-image :src="urlFilter(item.filesUrl||item.mapUrl)" class="originalImg" fit="cover">
             <template #error>
               <div class="image-slot el-image__error">
                 <el-icon :size="30"><VideoCameraFilled /></el-icon>
@@ -33,7 +33,7 @@
           <div  class="zoomInImg" v-if="TypeFilter(item.filesUrl) == '.mp4'" @click="showVideoView(item.filesUrl)">
             <el-icon color="#fff"><VideoPlay /></el-icon>
           </div>
-          <div v-else class="zoomInImg" @click="showImgView(item.filesUrl)">
+          <div v-else class="zoomInImg" @click="showImgView(item.filesUrl||item.mapUrl)">
             <el-icon color="#fff"><zoom-in /></el-icon>
           </div>
           <div
@@ -70,6 +70,7 @@ import { router } from "@/router";
 import { ElMessage, ElMessageBox } from "element-plus";
 import fileImg from "@/assets/svg/file.svg";
 import { delCaseFile, } from "@/store/caseFile";
+import { caseOverviewDel, } from "@/store/case";
 const caseId = computed(() => {
   const caseId = router.currentRoute.value.params.caseId;
   if (caseId) {
@@ -197,8 +198,8 @@ const del = async (file) => {
     cancelButtonText: "取消",
     type: "warning",
   }).then(async () => {
-    if(props.delete){
-
+    if(props.delete){//删除绘图
+      await caseOverviewDel(file.id);
     }else{
       await delCaseFile({ caseId: caseId.value, filesId: file.filesId });
     }

+ 2 - 1
src/request/urls.ts

@@ -236,7 +236,8 @@ export const saveApiOrUpdate = "/fusion/caseImg/saveOrUpdate";
 export const uploadImagesAndSave = "/fusion/caseImg/addBatch";
 export const caseApiDel = "/fusion/caseImg/delete";
 export const caseApiUpdateSort = "/fusion/caseImg/updateSort";
-
+export const caseOverviewAdd = "/fusion/caseOverview/addOrUpdate";
+export const getByCaseId = "/fusion/caseOverview/getByCaseId";
 export const getSysSetting = `/fusion/systemSetting/info`;
 export const updateSysSetting = `/fusion/systemSetting/save`;
 

+ 10 - 0
src/store/case.ts

@@ -40,6 +40,8 @@ import {
   getTips,
   getTipsName,
   getByImage,
+  caseOverviewAdd,
+  getByCaseId,
   getFloor,
   addUserOrUpdate,
 } from "@/request";
@@ -115,6 +117,14 @@ export const getCaseInquestInfo = async (caseId: number) =>
 export const casesaveOrUpDate = async (params) =>
   (await axios.post<string>(casesaveOrUpdate, params)).data;
 
+export const overviewAdd = async (params) =>
+  (await axios.post<string>(caseOverviewAdd, params)).data;
+export const getcaseByCaseId = async (caseId) =>
+  (await axios.get(getByCaseId, { params: { caseId } })).data;
+
+export const caseOverviewDel = async (id) =>
+  (await axios.post('/fusion/caseOverview/del', { id } )).data;
+
 
 export const updateCaseInfo = async (caseFile: CaseFile) =>
   await axios.post(updateCaseFile, {

+ 4 - 1
src/store/system.ts

@@ -2,6 +2,7 @@ import {
   axios,
   userLogin,
   uploadFile as uploadFileUrl,
+  
   setLoginHook,
   newupload,
   userInfo,
@@ -156,7 +157,9 @@ export const uploadFile = async (file: File) => {
   const url = route.name != 'drawShareFile'?uploadFileUrl:newupload
   return (await axios.post<string>(url, { file })).data;
 };
-
+export const uploadOldFile = async (file: File) => {
+  return (await axios.post<string>(uploadFileUrl, { file })).data;
+};
 
 // 设置全局请求hook
 setLoginHook(() => {

+ 5 - 5
src/view/case/draw/selectMapImagess.vue

@@ -174,10 +174,10 @@ defineExpose<QuiskExpose>({
     return new Promise<MapImage>((resolve) => {
         console.log('searchInfo', searchInfo.value, mapEl.value);
         if (mapEl.value) {
-        const canvas = mapEl.value.querySelector("canvas") as HTMLCanvasElement;
-        console.log(canvas, 'canvas');
-        canvas && canvas.toBlob((blob) => resolve({ blob, search: searchInfo.value! }))// || resolve({ search: searchInfo.value! });
-        if(!canvas){
+        // const canvas = mapEl.value.querySelector("canvas") as HTMLCanvasElement;
+        // console.log(canvas, 'canvas');
+        // canvas && canvas.toBlob((blob) => resolve({ blob, search: searchInfo.value! }))// || resolve({ search: searchInfo.value! });
+        // if(!canvas){
           //div内容生成图片
           html2canvas(mapEl.value, {
             useCORS: true, // 添加这个选项以解决跨域问题
@@ -186,7 +186,7 @@ defineExpose<QuiskExpose>({
             let blob = dataURLtoBlob(imgUrl)
             resolve({ blob, search: searchInfo.value! });
           });
-        }
+        // }
       } else {
         resolve({ blob: null, search: null });
       }

+ 53 - 8
src/view/material/index.vue

@@ -28,7 +28,9 @@
           <div class="phote my-4 w-full" v-for="item,index in list.xct" :key="index" v-show="item.caseFilesList?.length">
             <p class="pb-2 title1">{{item.filesTypeName}}</p>
             <div class="pmt-phote w-full flex justify-between ">
-              <viewImg :list="item.caseFilesList || []"  @handleItem="handleItem" height="66px" />
+              <viewImg :list="item.filesTypeName=='平面图'?list.pmt:list.fwt || []" delete  @handleItem="handleoverviewItem" height="66px" />
+              <!-- <viewImg :list="item.caseFilesList || []"  @handleItem="handleItem" height="66px" /> -->
+              <!-- <viewImg :list="item.caseFilesList || []"  @handleItem="handleItem" height="66px" /> -->
             </div>
           </div>
         </div>
@@ -121,13 +123,15 @@ import { computed, ref, reactive } from "vue";
 import { addCaseFile } from "../originalPhoto/quisk";
 import { ElMessage, ElMessageBox } from "element-plus";
 import { useUpload } from "@/hook/upload";
+import { selectMapImage } from "@/view/case/quisk";
 import { RouteName, router } from "@/router";
 import { BoardType } from "@/store/caseFile";
-import { updateByTreeFileLists, getByTreeFileLists } from "@/store/case";
+import { updateByTreeFileLists, getByTreeFileLists, overviewAdd, getcaseByCaseId } from "@/store/case";
 import { Delete, Edit } from "@element-plus/icons-vue";
 import { setTypeFile } from "../originalPhoto/quisk";
 import viewImg from "@/components/viewImg/index.vue"
-import { delCaseFile, } from "@/store/caseFile";
+import { delCaseFile } from "@/store/caseFile";
+import { uploadOldFile } from "@/store/system";
 const caseId = computed(() => (router.currentRoute.value?.params?.caseId));
 const active = ref(true);
 const radio = ref(null);
@@ -137,6 +141,8 @@ const list = ref({
   xct:[],
   xczp:[],
   klbj:[],
+  pmt:[],
+  fwt:[],
 });
 getList()
 const srcList = [
@@ -159,11 +165,25 @@ const { size, fileList, upload, removeFile, previewFile, file, accept } =
 const handleClick = (tab) => {
   console.log(tab);
 };
-const gotoDraw = (type: BoardType, id: number) => {
-  router.push({
-    name: RouteName.drawCaseFile,
-    params: { caseId: caseId.value!, type, id },
-  });
+const gotoDraw = async (type: BoardType, id: number) => {
+  if(BoardType.scene == type) {
+    window.open(`/draw/#/overview?caseId=${caseId.value}`);
+  }else{
+    const {blob} = await selectMapImage({});
+    const file = new File([blob], `方位图_.jpg`)
+    const mapUrl = await uploadOldFile(file)
+    const res = await overviewAdd({
+      caseId: caseId.value,
+      title: '方位图',
+      cover: mapUrl,
+      mapUrl
+    })
+    window.open(`/draw/#/overview?caseId=${caseId.value}&overviewId=${res.id}`);
+  }
+  // router.push({
+  //   name: RouteName.drawCaseFile,
+  //   params: { caseId: caseId.value!, type, id },
+  // });
 };
 function getList() {
   updateByTreeFileLists(caseId.value).then(res => {
@@ -176,6 +196,22 @@ function getList() {
     pmtId.value = list.value.xct.find(ele => ele.filesTypeName == '方位图').filesTypeId
     console.log('list.value', list.value)
   })
+  getcaseByCaseId(caseId.value).then(res => {
+    let pmt = []
+    let fwt = []
+    res.map(ele => {
+      if(ele.type == 1) {
+        pmt.push(ele)
+      }else{
+        fwt.push(ele)
+      }
+    })
+    list.value.pmt = pmt
+    list.value.fwt = fwt
+    console.log('getcaseByCaseId', res)
+    // fileLists.value = res?.caseFilesList || []
+  })
+
 }
 const submitForm = async (formEl) => {
   if (!formEl) return;
@@ -194,6 +230,15 @@ const resetForm = (formEl) => {
 function handleActive(params) {
   console.log("handleActive", params);
 }
+function handleoverviewItem(type, item) {
+  console.log("handleoverviewItem", type, item);
+  if('edit' == type) {
+    window.open(`/draw/#/overview?caseId=${caseId.value}&overviewId=${item.id}`);
+    // gotoDraw(item.filesTypeId != pmtId.value? BoardType.scene : BoardType.map, item.filesId)
+  }else{
+    getList()
+  }
+}
 function handleItem(type, item) {
   console.log("handleItem", type, item);
   if('edit' == type) {