tangning 3 settimane fa
parent
commit
ce3e3ef218

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

@@ -38,7 +38,7 @@
       </el-table-column>
       </el-table-column>
       <el-table-column label="标题" prop="caseTitle">
       <el-table-column label="标题" prop="caseTitle">
         <template #default="{ row }">
         <template #default="{ row }">
-          <p class="oper-span tip clickable" @click="gotoQuery(row.caseId)" v-pdpath="['view']">{{ row.caseTitle }}</p>
+          <p class="oper-span tip clickable text-ellipsis-2" @click="gotoQuery(row.caseId)" v-pdpath="['view']">{{ row.caseTitle }}</p>
         </template>
         </template>
       </el-table-column>
       </el-table-column>
       <el-table-column label="承办单位" prop="deptName"></el-table-column>
       <el-table-column label="承办单位" prop="deptName"></el-table-column>

+ 21 - 1
src/assets/style/public.scss

@@ -313,6 +313,15 @@ body {
   display: none;
   display: none;
 }
 }
 
 
+/* ========== 关键补全:火狐浏览器 专属兼容代码 (完美适配你的样式) ========== */
+* {
+  /* 火狐核心1:设置滚动条为极细,和你的5px视觉完全一致 */
+  scrollbar-width: thin;
+  /* 火狐核心2:滑块颜色=你的主题色  + 轨道颜色=透明,和webkit样式完全匹配 */
+  scrollbar-color: var(--bgColor) transparent;
+  /* 兼容Edge旧版本 */
+  -ms-overflow-style: auto;
+}
 .el-message-box__message {
 .el-message-box__message {
   min-height : 50px;
   min-height : 50px;
   padding    : 0 30px;
   padding    : 0 30px;
@@ -604,4 +613,15 @@ html .el-input-group__append button.el-button {
 }
 }
 // :root {
 // :root {
 //   --el-color-primary: green;
 //   --el-color-primary: green;
-// }
+// }
+/* 超出两行显示省略号 核心样式 */
+.text-ellipsis-2 {
+  /* 5. 可选:兼容非webkit内核浏览器,兜底隐藏 */
+  text-overflow: ellipsis;
+  width: 100%;
+  flex: 1; /* ✅ 关键修复:flex子元素强制占满剩余宽度 */
+  overflow: hidden;
+  display: -webkit-box;
+  -webkit-line-clamp: 2;
+  -webkit-box-orient: vertical;
+}

+ 1 - 1
src/store/case.ts

@@ -113,7 +113,7 @@ export const getCaseScenes = (scenes: Scene[]) => {
   console.log(scenes, 'scene.type')
   console.log(scenes, 'scene.type')
   for (const scene of scenes) {
   for (const scene of scenes) {
     const typeIdent = typeIdents.find((ident) => ident.type === scene.type)!;
     const typeIdent = typeIdents.find((ident) => ident.type === scene.type)!;
-  console.log(typeIdent, 'scene.typeIdent')
+    console.log(typeIdent, 'scene.typeIdent')
     typeIdent.numList.push(getSceneKey(scene));
     typeIdent.numList.push(getSceneKey(scene));
   }
   }
   return typeIdents;
   return typeIdents;

+ 3 - 1
src/store/scene.ts

@@ -197,8 +197,10 @@ type ScenePaggingParams = PaggingReq<
   }
   }
 >;
 >;
 export const getScenePagging = async (params: ScenePaggingParams) => {
 export const getScenePagging = async (params: ScenePaggingParams) => {
+  if(params.isObj == 2){
+    return (await axios.post(getMix3dList, params)).data as PaggingRes<Scene>;;
+  }
   const data = (await axios.get(getSceneList,{params})).data as PaggingRes<Scene>;
   const data = (await axios.get(getSceneList,{params})).data as PaggingRes<Scene>;
-
   return data;
   return data;
 };
 };
 
 

+ 1 - 1
src/view/newFireCase/meshManager/sceneContent.vue

@@ -17,7 +17,7 @@
     </el-table-column>
     </el-table-column>
     <el-table-column label="场景标题" prop="name" width="120">
     <el-table-column label="场景标题" prop="name" width="120">
       <template v-slot:default="{ row }">
       <template v-slot:default="{ row }">
-        <span class="oper-span" @click="openSceneUrl(row, OpenType.query)">
+        <span :title="row.name" class="oper-span text-ellipsis-2" @click="openSceneUrl(row, OpenType.query)">
           {{ row.name }}
           {{ row.name }}
         </span>
         </span>
       </template>
       </template>

+ 1 - 1
src/view/newFireCase/mix3dManager/sceneContent.vue

@@ -11,7 +11,7 @@
   >
   >
     <el-table-column label="标题" prop="name">
     <el-table-column label="标题" prop="name">
       <template v-slot:default="{ row }">
       <template v-slot:default="{ row }">
-        <span class="oper-span" @click="openFusionView(row)">{{ row.fusionTitle }}</span>
+        <span :title="row.fusionTitle" class="oper-span text-ellipsis-2" @click="openFusionView(row)">{{ row.fusionTitle }}</span>
       </template>
       </template>
     </el-table-column>
     </el-table-column>
 
 

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

@@ -4,12 +4,12 @@
       <el-icon v-if="showSave" class="back-icon" @click="$emit('back')">
       <el-icon v-if="showSave" class="back-icon" @click="$emit('back')">
         <ArrowLeft />
         <ArrowLeft />
       </el-icon>
       </el-icon>
-      <span v-if="isPreview != 'abstract' && editOrShow === 'edit'" class="edit-title" style="min-width: 151px">{{ typeName || '编辑' }}<span v-if="isPreview != 'abstract' && editOrShow === 'edit'" class="line">|</span></span>
+      <span v-if="isPreview != 'abstract' && editOrShow === 'edit'" class="edit-title" :style="{minWidth: typeName && typeName.length >3 ?'151px':'none'}">{{ typeName || '编辑' }}<span v-if="isPreview != 'abstract' && editOrShow === 'edit'" class="line">|</span></span>
       <div class="space-ellipsis">{{ headerTitle }}</div>
       <div class="space-ellipsis">{{ headerTitle }}</div>
     </div>
     </div>
     <div class="right-title" v-if="editOrShow === 'edit'">
     <div class="right-title" v-if="editOrShow === 'edit'">
       <span class="change-btn" v-if="!showSave" @click="openRenameDialog"><i class="iconfont icon-rename" /></span>
       <span class="change-btn" v-if="!showSave" @click="openRenameDialog"><i class="iconfont icon-rename" /></span>
-      <el-button type="primary" class="preview-btn" v-if="!showSave"  @click="preview">预览</el-button>
+      <el-button type="primary" class="preview-btn" v-if="!showSave"  @click="preview">预览{{ typeName }}</el-button>
       <el-button type="primary" class="preview-btn" v-if="showSave" @click="$emit('save')">保存</el-button>
       <el-button type="primary" class="preview-btn" v-if="showSave" @click="$emit('save')">保存</el-button>
       <el-button
       <el-button
         type="primary"
         type="primary"

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

@@ -87,7 +87,7 @@
          <el-table-column type="selection" width="70" :selectable="isRowSelectable" />
          <el-table-column type="selection" width="70" :selectable="isRowSelectable" />
          <el-table-column label="标题" min-width="140">
          <el-table-column label="标题" min-width="140">
            <template #default="{ row }">
            <template #default="{ row }">
-             {{ row.fusionTitle || row.title || row.name }}
+            <span class="text-ellipsis-2" :title="row.fusionTitle || row.title || row.name">{{ row.fusionTitle || row.title || row.name }}</span>
            </template>
            </template>
          </el-table-column>
          </el-table-column>
          <el-table-column label="所属组织" width="180">
          <el-table-column label="所属组织" width="180">
@@ -557,7 +557,7 @@ onMounted(async () => {
   height: 60px!important;
   height: 60px!important;
 }
 }
 .scene-edit-dialog .el-dialog__body {
 .scene-edit-dialog .el-dialog__body {
-  padding: 40px 48px;
+  padding: 24px;
 }
 }
 .el-table th .cell .el-checkbox {
 .el-table th .cell .el-checkbox {
   margin-left: 0!important;
   margin-left: 0!important;

+ 8 - 3
src/view/newFireCase/newFireDetails/components/scene.vue

@@ -106,7 +106,7 @@
         <el-table-column type="selection" width="48" :selectable="isRowSelectable" />
         <el-table-column type="selection" width="48" :selectable="isRowSelectable" />
         <el-table-column label="标题" min-width="140">
         <el-table-column label="标题" min-width="140">
           <template #default="{ row }">
           <template #default="{ row }">
-            {{ row.name }}
+            <span :title="row.name" class="text-ellipsis-2" >{{ row.name }}</span>
           </template>
           </template>
         </el-table-column>
         </el-table-column>
         <el-table-column label="场景类型" width="120">
         <el-table-column label="场景类型" width="120">
@@ -124,10 +124,13 @@
               {{ dateFormat(row.createTime, 'yyyy-MM-dd hh:mm') }}
               {{ dateFormat(row.createTime, 'yyyy-MM-dd hh:mm') }}
           </template>
           </template>
         </el-table-column>
         </el-table-column>
+        <el-table-column label="状态" v-slot:default="{ row }: { row: QuoteScene }">
+          {{ QuoteSceneStatusDesc[row.status] }}
+        </el-table-column>
       </el-table>
       </el-table>
 
 
       <!-- 分页:40条每页,切换页码保持已选中 -->
       <!-- 分页:40条每页,切换页码保持已选中 -->
-      <div style="display:flex; justify-content:flex-end; margin-top: 12px;">
+      <div style="display:flex; justify-content:flex-end; margin-top: 20px;">
         <el-pagination
         <el-pagination
           background
           background
           layout="prev, pager, next, jumper"
           layout="prev, pager, next, jumper"
@@ -156,6 +159,7 @@ import { Scene, SceneType, getSWKKSyncLink } from '@/store/scene';
 import { getScenePaggingOffline as getScenePagging, getFusionAndSceneList } from '@/store/editCsae';
 import { getScenePaggingOffline as getScenePagging, getFusionAndSceneList } from '@/store/editCsae';
 import { SceneTypeDesc, SceneTypePaths } from '@/constant/scene';
 import { SceneTypeDesc, SceneTypePaths } from '@/constant/scene';
 import { getCaseScenes, replaceCaseScenes, getSceneKey, getCaseScenesBySceneType } from '@/store/case';
 import { getCaseScenes, replaceCaseScenes, getSceneKey, getCaseScenesBySceneType } from '@/store/case';
+import { QuoteSceneStatusDesc } from "@/constant/scene";
 import { dateFormat } from "@/util";
 import { dateFormat } from "@/util";
 import { confirm } from '@/helper/message';
 import { confirm } from '@/helper/message';
 import { ElMessage } from 'element-plus';
 import { ElMessage } from 'element-plus';
@@ -203,7 +207,7 @@ const tableLoading = ref(false);
 const tableRef = ref<any>(null);
 const tableRef = ref<any>(null);
 const tableData = ref<Scene[]>([]);
 const tableData = ref<Scene[]>([]);
 const selectedRows = ref<Scene[]>([]);
 const selectedRows = ref<Scene[]>([]);
-const pager = ref({ page: 1, pageSize: 40, total: 0 });
+const pager = ref({ page: 1, pageSize: 10, total: 0 });
 let titleDebounceTimer: any = null;
 let titleDebounceTimer: any = null;
 
 
 // 已导入场景集合与辅助判断
 // 已导入场景集合与辅助判断
@@ -617,6 +621,7 @@ onMounted(async () => {
 .scene-edit-dialog {
 .scene-edit-dialog {
   :deep(.el-dialog__body) {
   :deep(.el-dialog__body) {
     padding-top: 8px;
     padding-top: 8px;
+    padding-bottom: 24px;
   }
   }
 }
 }
 .dialog-filter-row {
 .dialog-filter-row {

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

@@ -57,7 +57,7 @@
                         <i class="iconfont icon-rename_s" />
                         <i class="iconfont icon-rename_s" />
                       </span>
                       </span>
                     </el-tooltip>
                     </el-tooltip>
-                    <el-tooltip content="编辑">
+                    <el-tooltip content="编辑" v-if="img.tabulationId || img.overviewId">
                       <span class="action-icon" @click="editSelected('tabulation')">
                       <span class="action-icon" @click="editSelected('tabulation')">
                         <i class="iconfont icon-Edit" />
                         <i class="iconfont icon-Edit" />
                       </span>
                       </span>
@@ -104,7 +104,7 @@
                           <i class="iconfont icon-rename_s" />
                           <i class="iconfont icon-rename_s" />
                         </span>
                         </span>
                       </el-tooltip>
                       </el-tooltip>
-                      <el-tooltip content="编辑">
+                      <el-tooltip content="编辑" v-if="img.tabulationId || img.overviewId">
                         <span class="action-icon" @click="editSelected('overview')">
                         <span class="action-icon" @click="editSelected('overview')">
                           <i class="iconfont icon-Edit" />
                           <i class="iconfont icon-Edit" />
                         </span>
                         </span>
@@ -413,6 +413,7 @@ const loadListsFromTree = async () => {
 
 
     const drawList: any[] = Array.isArray(drawNode.caseFilesList) ? (drawNode.caseFilesList as any[]) : [];
     const drawList: any[] = Array.isArray(drawNode.caseFilesList) ? (drawNode.caseFilesList as any[]) : [];
     const mapToPic = (item: any): PicItem => ({
     const mapToPic = (item: any): PicItem => ({
+      ...item,
       url: item.listCover || item.filesUrl || item.cover || item.url,
       url: item.listCover || item.filesUrl || item.cover || item.url,
       name: item.filesTitle || item.title || '未命名',
       name: item.filesTitle || item.title || '未命名',
     });
     });

+ 1 - 1
src/view/newFireCase/newFireDetails/editFilePage.vue

@@ -386,7 +386,7 @@ const handleSave = async (): Promise<any> => {
       router.replace({
       router.replace({
         name: RouteName.fireDetails,
         name: RouteName.fireDetails,
         params: current.params,
         params: current.params,
-        query: {...current.query, id: resData.id || '' },
+        query: {...current.query, id: resData.id || '', presetKey: current.params.caseId },
       });
       });
       return
       return
     }
     }

+ 3 - 1
src/view/newFireCase/newdispatch/editFire.vue

@@ -47,6 +47,7 @@
             ref="tableRef"
             ref="tableRef"
             :data="tableData"
             :data="tableData"
             border
             border
+            show-overflow-tooltip
             height="420"
             height="420"
             style="width: 100%"
             style="width: 100%"
             :row-class-name="rowClassName"
             :row-class-name="rowClassName"
@@ -55,7 +56,7 @@
             <el-table-column type="selection" width="48" :selectable="isRowSelectable" />
             <el-table-column type="selection" width="48" :selectable="isRowSelectable" />
             <el-table-column label="标题" min-width="140">
             <el-table-column label="标题" min-width="140">
               <template #default="{ row }">
               <template #default="{ row }">
-                {{ row.name }}
+                {{ row.name || row.fusionTitle }}
               </template>
               </template>
             </el-table-column>
             </el-table-column>
             <el-table-column label="类型" width="120">
             <el-table-column label="类型" width="120">
@@ -235,6 +236,7 @@ const query = ref<{ type: number; modelTitle: string; searchType: string }>({ ty
 const typeOptions = ref([
 const typeOptions = ref([
   { label: 'Mesh场景', value: 1 },
   { label: 'Mesh场景', value: 1 },
   { label: '点云场景', value: 0 },
   { label: '点云场景', value: 0 },
+  // { label: '多元融合', value: 2 },
 ]);
 ]);
 const tableRef = ref<any>(null);
 const tableRef = ref<any>(null);
 const tableData = ref<Scene[]>([]);
 const tableData = ref<Scene[]>([]);

+ 1 - 1
src/view/newFireCase/newdispatch/example.vue

@@ -38,7 +38,7 @@
       </el-table-column>
       </el-table-column>
       <el-table-column label="标题" prop="caseTitle">
       <el-table-column label="标题" prop="caseTitle">
         <template #default="{ row }">
         <template #default="{ row }">
-          <p class="oper-span tip clickable" @click="gotoDetails(row)" v-pdpath="['view']">{{ row.caseTitle }}</p>
+          <p class="oper-span tip clickable text-ellipsis-2" @click="gotoDetails(row)" v-pdpath="['view']">{{ row.caseTitle }}</p>
         </template>
         </template>
       </el-table-column>
       </el-table-column>
       <el-table-column label="承办单位" prop="deptName"></el-table-column>
       <el-table-column label="承办单位" prop="deptName"></el-table-column>