bill 1 年間 前
コミット
5b55cb7c42

+ 2 - 2
.env.development

@@ -1,6 +1,6 @@
 VITE_APP_APP="fire"
-# VITE_SEVER_URL="https://192.168.0.25"
-VITE_SEVER_URL="https://xj-mix3d.4dkankan.com"
+VITE_SEVER_URL="https://192.168.0.25"
+# VITE_SEVER_URL="https://xj-mix3d.4dkankan.com"
 VITE_DEVCODE_URL="https://192.168.0.25/code"
 VITE_SWKK_URL="https://test.4dkankan.com"
 VITE_SERVICE_URL="https://test.4dkankan.com"

+ 1 - 0
src/app/criminal/view/example/index.vue

@@ -46,6 +46,7 @@
       >
         <CaseEditMenu
           :caseId="row.caseId"
+          :title="row.caseTitle"
           :prevMenu="[
             { key: 'info', label: '编辑案件', onClick: () => editHandler(row) },
           ]"

+ 1 - 0
src/app/fire/view/dispatch/index.vue

@@ -54,6 +54,7 @@
         </template>
         <template v-else>
           <CaseEditMenu
+            :title="row.projectSn"
             :prev-menu="[
               {
                 key: 'info',

+ 6 - 1
src/request/config.ts

@@ -27,6 +27,7 @@ import {
   getCaseScriptSaveOrUpdateUrl,
   cameraVersionUpload,
   cameraVersionAppUpload,
+  getCaseHasDownloadProcess,
 } from "./urls";
 
 // 不需要登录就能请求的接口
@@ -73,4 +74,8 @@ export const successCode = [0, "000000", 200];
 // baseURL
 export const baseURL = import.meta.env.DEV ? "/api" : "";
 
-export const notOpenUrls: string[] = [uploadModel, getDownloadProcess];
+export const notOpenUrls: string[] = [
+  uploadModel,
+  getDownloadProcess,
+  getCaseHasDownloadProcess,
+];

+ 6 - 5
src/request/urls.ts

@@ -199,7 +199,6 @@ export const caseExtractDetailExport = "/fusion-xj/caseExtractDetail/downDocx";
 export const getCaseImgTag = "/fusion-xj/caseImgTag/info";
 export const saveCaseImgTag = "/fusion-xj/caseImgTag/saveOrUpdate";
 
-
 // 火调链接地址设置密码
 export const setCasePsw = "/fusion-xj/web/fireProject/updateRandomCode";
 export const getCasePsw = "/fusion-xj/web/fireProject/getRandCode";
@@ -227,6 +226,10 @@ export const uploadAttachFile = "/web/fireProject/uploadFile";
 export const uploadAttachImage = "/web/fireProject/uploadImage";
 /** ------------------------------------------ */
 
+export const checkCaseHasDownload = `/fusion-xj/offlinePackage/checkDown`;
+export const getCaseHasDownloadProcess = `/fusion-xj/offlinePackage/process`;
+export const downloadCaseScene = "/fusion-xj/offlinePackage/down";
+
 // 下载校验
 export const checkHasDownload = "/fusion-xj/sceneDownLog/checkDownLoad";
 // 下载获取进度条
@@ -248,12 +251,10 @@ export const caseApiUpdateSort = "/fusion-xj/caseImg/updateSort";
 export const getSysSetting = `/fusion-xj/systemSetting/info`;
 export const updateSysSetting = `/fusion-xj/systemSetting/save`;
 
-
 // 脚本管理
 export const getCaseScriptInfoUrl = `/fusion-xj/caseScript/info`;
 export const getCaseScriptSaveOrUpdateUrl = `/fusion-xj/caseScript/saveOrUpdate`;
-export const getVideoCover = `/fusion-xj/caseScript/ffmpegVideoImage`
-
+export const getVideoCover = `/fusion-xj/caseScript/ffmpegVideoImage`;
 
 // 固件管理
 export const cameraVersionUpload = `/fusion-xj/cameraVersion/addAndUpload`;
@@ -265,4 +266,4 @@ export const cameraVersionList = `/fusion-xj/cameraVersion/list`;
 export const cameraVersionAppUpload = `/fusion-xj/cameraVersionApp/addAndUpload`;
 export const cameraVersionAppUpdate = `/fusion-xj/cameraVersionApp/update`;
 export const cameraVersionAppDelete = `/fusion-xj/cameraVersionApp/delete`;
-export const cameraVersionAppList = `/fusion-xj/cameraVersionApp/list`;
+export const cameraVersionAppList = `/fusion-xj/cameraVersionApp/list`;

+ 13 - 9
src/view/case/download.vue

@@ -26,12 +26,17 @@
 <script setup lang="ts">
 import { computed, onMounted, onUnmounted, ref } from "vue";
 import saveAs from "@/util/file-serve";
-import { checkHasDownload, getDownloadProcess, downloadScene, axios } from "@/request";
+import {
+  checkCaseHasDownload as checkHasDownload,
+  getCaseHasDownloadProcess as getDownloadProcess,
+  downloadCaseScene as downloadScene,
+  axios,
+} from "@/request";
 import { ElLoading, ElMessage } from "element-plus";
 import { QuoteScene, SceneType } from "@/store/scene";
 import { QuiskExpose } from "@/helper/mount";
 
-const props = defineProps<{ scene: QuoteScene }>();
+const props = defineProps<{ caseId: number; title: string }>();
 enum State {
   uncreate,
   package,
@@ -51,19 +56,18 @@ const getState = (type: number) => {
 
 const state = ref<State>(State.uncreate);
 const count = ref<number>(0);
-const filename = ref<string>(props.scene.title + ".zip");
+const filename = ref<string>(props.title + ".zip");
 const downloadURL = ref<string>();
 const percent = ref(0);
 
 const stateTitle = {
-  [State.uncreate]: "下载场景离线数据包,可在本地运行查看。",
-  [State.package]: "正在打包场景离线数据",
+  [State.uncreate]: "下载案件离线数据包,可在本地运行查看。",
+  [State.package]: "正在打包案件离线数据",
   [State.readDown]: filename.value,
 };
 
 const params = {
-  num: props.scene.num,
-  isObj: Number(![SceneType.SWSS, SceneType.SWYDSS].includes(props.scene.type)),
+  caseId: props.caseId,
 };
 // 初始化
 const initial = async () => {
@@ -110,7 +114,8 @@ const requestUpdateURL = async (callback: () => void) => {
   const res = await axios.get(getDownloadProcess, { params });
 
   percent.value = parseInt(res.data.percent);
-  downloadURL.value = res.data.url;
+
+  downloadURL.value = percent.value === 100 ? res.data.url : null;
   if (downloadURL.value) {
     state.value = State.readDown;
     callback();
@@ -135,4 +140,3 @@ defineExpose<QuiskExpose>({
   },
 });
 </script>
-

+ 3 - 2
src/view/case/editMenu.vue

@@ -20,13 +20,14 @@
 <script setup lang="ts">
 import { computed } from "vue";
 import { getFuseCodeLink, checkScenesOpen, MenuItem, getSWKKSyncLink } from "./help";
-import { showCaseScenes, addCaseScenes, shareCase } from "./quisk";
+import { showCaseScenes, addCaseScenes, shareCase, downloadCase } from "./quisk";
 import { RouteName, router } from "@/router";
 import { copyCase, getCaseSceneList } from "@/store/case";
 import { alert } from "@/helper/message";
 
 const props = defineProps<{
   caseId: number;
+  title: string;
   prevMenu?: MenuItem[];
   lastMenu?: MenuItem[];
 }>();
@@ -111,7 +112,7 @@ const menus = computed(() => {
         if (!scenes.length) {
           alert("当前案件下无场景,请先添加场景。");
         } else {
-          shareCase({ caseId: caseId });
+          downloadCase({ caseId, title: props.title });
         }
       },
     },

+ 8 - 9
src/view/case/quisk.ts

@@ -11,6 +11,8 @@ import SelectFuseImage, { FuseImage } from "./draw/selectFuseImage.vue";
 import SelectMapImage, { MapImage } from "./draw/selectMapImage.vue";
 import { quiskMountFactory } from "@/helper/mount";
 import { nextTick } from "vue";
+import { axios, checkCaseHasDownload, checkHasDownload } from "@/request";
+import CaseDownload from "./download.vue";
 
 export const addCaseFile = quiskMountFactory(AddCaseFile, {
   title: "上传附件",
@@ -64,19 +66,16 @@ export const shareCase = quiskMountFactory(ShareCase, {
   enterText: "复制链接及密码",
 })<string>;
 
-export type SceneDpwnloadProps = { scene: QuoteScene };
-export const downloadCase = async (props: SceneDpwnloadProps) => {
+export type caseDownloadProps = { caseId: number; title: string };
+export const downloadCase = async (props: caseDownloadProps) => {
   const params = {
-    num: props.scene.num,
-    isObj: Number(
-      ![SceneType.SWSS, SceneType.SWYDSS].includes(props.scene.type)
-    ),
+    caseId: props.caseId,
   };
-  const res = await axios.get(checkHasDownload, { params });
+  const res = await axios.get(checkCaseHasDownload, { params });
   const hideFloor = Number(res.data.downloadStatus) !== 3;
 
-  const sceneDownloadDialog = quiskMountFactory(SceneDownload, {
-    title: "场景离线包下载",
+  const sceneDownloadDialog = quiskMountFactory(CaseDownload, {
+    title: "案件离线包下载",
     width: 500,
     hideFloor: hideFloor,
     enterText: "下 载",