tangning 1 dzień temu
rodzic
commit
afc0062bcf

+ 3 - 3
.env.yunnan

@@ -1,10 +1,10 @@
 VITE_APP_APP="criminal"
-VITE_SEVER_URL="http://192.168.0.93"
-VITE_DEVCODE_URL="http://192.168.0.93/code"
+VITE_SEVER_URL="https://192.168.0.93"
+VITE_DEVCODE_URL="https://192.168.0.93/code"
 VITE_SWKK_URL="https://test.4dkankan.com"
 VITE_SERVICE_URL="https://test.4dkankan.com"
 VITE_SWSS_URL="https://uat-laser.4dkankan.com/uat"
 VITE_LASER_URL="https://uat-laser.4dkankan.com"
 VITE_FDKK_URL="https://uat-laser.4dkankan.com/uat"
 VITE_DOC_URL="https://192.168.0.25/docs/#/product/huodiao/README"
-VITE_DRAW_URL="http://192.168.0.93"
+VITE_DRAW_URL="https://192.168.0.93"

+ 3 - 3
index.html

@@ -11,11 +11,11 @@
 <body>
   <script type="text/javascript">
     window._AMapSecurityConfig = {
-      securityJsCode: "fbf0a0f9d5cf8a65b385822dd98536b8",
+      securityJsCode: "83f86b85dc8700d4f38c42423cbebc39",
     };
   </script>
-  <script type="text/javascript" src='//webapi.amap.com/maps?v=2.0&key=655ac083de961ed970f2be4ba23b3c9f'></script>
-  <script src="//webapi.amap.com/ui/1.1/main.js?v=1.1.1&key=655ac083de961ed970f2be4ba23b3c9f"></script>
+  <script type="text/javascript" src='//webapi.amap.com/maps?v=2.0&key=15ae4f26585b9f111fa6c3f2a0eb1c03'></script>
+  <script src="//webapi.amap.com/ui/1.1/main.js?v=1.1.1"></script>
   <div id="app"></div>
   <script type="module" src="/src/main.ts"></script>
 </body>

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

@@ -4,9 +4,9 @@
       <el-form-item label="标题:">
         <el-input v-model="state.query.caseTitle" placeholder="请输入"></el-input>
       </el-form-item>
-      <el-form-item label="承办单位:">
+      <!-- <el-form-item label="承办单位:">
         <com-company v-model="state.query.deptId" />
-      </el-form-item>
+      </el-form-item> -->
       <el-form-item class="searh-btns" style="grid-area: 1 / 4 / 2 / 6">
         <el-button type="primary" @click="refresh">查询</el-button>
         <el-button type="primary" plain @click="queryReset">重置</el-button>

+ 2 - 2
src/app/ga/view/example/index.vue

@@ -4,9 +4,9 @@
       <el-form-item label="标题:">
         <el-input v-model="state.query.caseTitle" placeholder="请输入"></el-input>
       </el-form-item>
-      <el-form-item label="承办单位:">
+      <!-- <el-form-item label="承办单位:">
         <com-company v-model="state.query.deptId" />
-      </el-form-item>
+      </el-form-item> -->
       <el-form-item class="searh-btns" style="grid-area: 1 / 4 / 2 / 6">
         <el-button type="primary" @click="refresh">查询</el-button>
         <el-button type="primary" plain @click="queryReset">重置</el-button>

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

@@ -30,7 +30,13 @@ body {
   overflow   : auto;
 
 }
-
+.amap_lib_placeSearch{
+  width: 100%;
+  padding: 55px 10px 2px !important;
+}
+.amap_lib_placeSearch .poibox .poi-title .poi-name{
+  max-width: 250px !important;
+}
 #app {
   position  : relative;
   min-width : 1280px;

+ 2 - 2
src/view/mediaLibrary/index.vue

@@ -74,10 +74,10 @@
         </template>
       </el-table-column>
       <el-table-column label="操作" width="240px" v-slot:default="{ row }">
-        <span class="oper-span" :class="{ disable: row.status == 1 }" v-if="row.useType != 'animation'" @click="downloadMediaHandler(row)" v-pdpath="'view'">下载</span>
+        <span class="oper-span" :class="{ disable: row.status != 1 }" v-if="row.useType != 'animation'" @click="downloadMediaHandler(row)" v-pdpath="'view'">下载</span>
         <!-- <span class="oper-span" :class="{ disable: row.status == 1 }" v-if="row.useType != 'animation'" @click="downloadHashHandler(row)" v-pdpath="'view'">hash</span> -->
         <span class="oper-span" :class="{ disable: row.status == 0 }" v-if="row.useType != 'animation'" @click="editMediaHandler(row)" v-pdpath="'view'">编辑</span>
-        <span class="oper-span delBtn delete-oper" :class="{ disable: row.status === 1 }" v-if="row.useType != 'animation'" @click="confirmDelete(row)" v-pdpath="'view'"> 删除 </span>
+        <span class="oper-span delBtn delete-oper" :class="{ disable: row.status === 0 }" v-if="row.useType != 'animation'" @click="confirmDelete(row)" v-pdpath="'view'"> 删除 </span>
       </el-table-column>
     </el-table>
 

+ 1 - 1
src/view/newFireCase/dyManager/list.vue

@@ -52,7 +52,7 @@ const canShowAll = computed(() => {
 const listOptions = computed(() => {
   const options = [
     { name: "场景列表", value: "0" },
-    { name: "场景共享", value: "1" },
+    // { name: "场景共享", value: "1" },
   ];
   return canShowAll.value ? [{ name: "全部", value: "2" }] : options;
 });

+ 2 - 2
src/view/newFireCase/dyManager/sceneContent.vue

@@ -50,9 +50,9 @@
         <span v-pdpath="['gen']" v-if="pagging.state.query.searchType != '1' && row.status == 2 && row.location != 6" class="oper-span" @click="getMeshScene(row)">
           生成obj
         </span>
-        <span class="oper-span" v-pdpath="['del']" v-if="pagging.state.query.searchType === '0' && row.status == 2" @click="openSceneShareDialog(row)">
+        <!-- <span class="oper-span" v-pdpath="['del']" v-if="pagging.state.query.searchType === '0' && row.status == 2" @click="openSceneShareDialog(row)">
           权限
-        </span>
+        </span> -->
         <span class="oper-span" v-if="pagging.state.query.searchType != '1' && row.status == 2" v-pdpath="['down']" @click="sceneDownloadHandler(row)">
           下载
         </span>

+ 15 - 15
src/view/newFireCase/dyManager/uploadScene.vue

@@ -7,13 +7,6 @@
     :close-on-click-modal="false"
   >
     <div class="upload-container">
-      <!-- <div class="group-select">
-        <span style="margin-right: 10px"><span class="required">*</span>资源包类型</span>
-        <el-radio-group v-model="sourceType">
-        <el-radio value="orig">原始数据</el-radio>
-        <el-radio value="offline">离线包</el-radio>
-      </el-radio-group>
-      </div> -->
       <div class="upload-area" style="display: flex;">
         <p class="upload-title"><span class="required">*</span>文件</p>
         <el-upload
@@ -33,6 +26,10 @@
           </div>
         </el-upload>
       </div>
+      <div class="group-select">
+        <span style="margin-right: 10px;    opacity: 0;">资源包类型</span>
+        <el-checkbox v-model="genGs">生成3DGS数据</el-checkbox>
+      </div>
     </div>
     
     <template #footer>
@@ -59,7 +56,8 @@ const props = defineProps({
 
 const selectedGroup = ref('');
 const sourceType = ref('orig');
-const filePath = ref(null);
+const genGs = ref(false);
+const filePath = ref('');
 const emit = defineEmits(['update:visible', 'refresh']);
 const acceptType = computed(() => {
   if (selectedGroup.value == 1) {
@@ -87,14 +85,14 @@ const handleChange = async (file, files) => {
       }else{
         files.status = 'fail'
         fileList.value = [];
-        filePath.value = null;
+        filePath.value = '';
       }
 
   } else {
     ElMessage.error(file.message || `不支持的文件类型`);
     files.status = 'fail'
     fileList.value = [];
-    filePath.value = null;
+    filePath.value = '';
   }
 };
 
@@ -113,7 +111,7 @@ const handleFileChange = (file, files) => {
     }
   } else {
     fileList.value = [];
-    filePath.value = null;
+    filePath.value = '';
   }
 };
 
@@ -150,6 +148,8 @@ const handleFileRemove = (file, fileList) => {
 const handleClose = () => {
   dialogVisible.value = false;
   selectedGroup.value = '';
+  genGs.value = false;
+  filePath.value = '';
   fileList.value = [];
 };
 
@@ -169,15 +169,15 @@ const handleUpload = async () => {
       formData.append('file', file.raw);
     });
     
-    await uploadScene({sourceType: sourceType.value, filePath: filePath.value});
+    await uploadScene({sourceType: sourceType.value, filePath: filePath.value, genGs: genGs.value?1:0, formData });
     
     ElMessage.success('上传成功');
-    handleClose();
     emit('refresh');
+    handleClose();
   } catch (error) {
     console.error('上传失败:', error);
     fileList.value = [];
-    filePath.value = null;
+    filePath.value = '';
   }
 };
 </script>
@@ -210,7 +210,7 @@ const handleUpload = async () => {
 }
 
 .upload-area {
-  margin-bottom: 20px;
+  //margin-bottom: 20px;
   .upload-box{
     width: calc(100% - 100px);
   }

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

@@ -50,7 +50,7 @@ const canShowAll = computed(() => {
 const listOptions = computed(() => {
   const options = [
     { name: "场景列表", value: "0" },
-    { name: "场景共享", value: "1" },
+    // { name: "场景共享", value: "1" },
   ];
   return canShowAll.value ? [{ name: "全部", value: "2" }] : options;
 });

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

@@ -45,7 +45,7 @@ const listOptions = computed(() => {
   }
   return [
     { name: "多元融合列表", value: "0" },
-    { name: "多元融合共享", value: "1" },
+    // { name: "多元融合共享", value: "1" },
   ];
 });
 

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

@@ -31,9 +31,9 @@
       <span class="oper-span" v-if="row.isAuth == 2 || pagging.state.query.searchType == '1'" v-pdpath="['edit']" @click="openFusionEdit(row)">
         编辑
       </span>
-      <span class="oper-span" v-if="pagging.state.query.searchType === '0'" v-pdpath="['del']" @click="openSceneShare(row)">
+      <!-- <span class="oper-span" v-if="pagging.state.query.searchType === '0'" v-pdpath="['del']" @click="openSceneShare(row)">
         权限
-      </span>
+      </span> -->
       <span class="oper-span" v-if="pagging.state.query.searchType != '1'" v-pdpath="['down']" @click="downloadFusion(row)">
         下载
       </span>

+ 16 - 2
src/view/newFireCase/newFireDetails/components/creatMap.vue

@@ -166,6 +166,7 @@ const initMap = async () => {
       geocoder = new AMap.Geocoder();
     });
     poiPicker = new PoiPicker({
+        key: '9282fa28a0363ba8a7b3c6f7d10ee4b1', // 替换为你的API密钥
         input: 'searchInput',
         placeSearchOptions: {
             map: map,
@@ -174,6 +175,19 @@ const initMap = async () => {
         },
         searchResultsContainer: 'searchResults'
     });
+        // 监听加载成功事件
+    poiPicker.on('load', () => {
+        console.log('POI Picker 加载成功');
+        
+        // 示例:搜索附近的餐厅
+        poiPicker.searchByKeyword('餐厅');
+    });
+
+    // 监听加载失败事件
+    poiPicker.on('error', (error) => {
+        console.error('POI Picker 初始化失败:', error);
+    });
+
     poiPicker.on('poiPicked', function(poiResult) {
         selectedLocation.value = poiResult.item;//选中的信息
         poiPicker.hideSearchResults();
@@ -359,7 +373,7 @@ const debouncedSearch = (inputValue: string, searchType: string) => {
         }
       }
     } else {
-      console.log(22222)
+      console.log(22222, poiPicker)
       // 地址搜索,保持原有逻辑
       if (poiPicker) {
         poiPicker.placeSearch.opt.pageIndex = 1;        
@@ -370,7 +384,7 @@ const debouncedSearch = (inputValue: string, searchType: string) => {
 }
 
 const handleSearch = (e) => {
-    console.log('handleSearch', e.target.value)
+    console.log('handleSearch', selectedSearchAdress.value)
     const inputValue = e.target.value
     searchInputValue.value = inputValue
     

+ 1 - 1
src/view/newFireCase/newFireDetails/components/scene.vue

@@ -322,7 +322,7 @@ const fetchTableData = async () => {
   try {
     const params: any = {
       isObj: Number(query.value.type),
-      searchType: 0,
+      searchType: 2,
       modelTitle: query.value.modelTitle,
       sceneName: query.value.modelTitle,
       deptId: '',

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

@@ -112,7 +112,7 @@ const canShowAll = computed(() => {
 const head = computed(() => {
   const options = [
     { name: "案件列表", value: "0" },
-    { name: "案件共享", value: "1" },
+    // { name: "案件共享", value: "1" },
   ];
   return canShowAll.value ? [{ name: "全部", value: "2" }] : options;
 });

+ 16 - 11
src/view/user/edit.vue

@@ -75,7 +75,7 @@ import comCompany from "@/components/company-select/index.vue";
 import { UserInfo, addUser, setUser } from "@/store/user";
 import { PHONE, EPSW } from "@/constant/REG";
 import { RoleLevel, getRolesByDetpId, roleLevel } from "@/store/role";
-import { computed, ref, watchEffect } from "vue";
+import { computed, ref, watchEffect, onMounted } from "vue";
 import { ElMessage } from "element-plus";
 import { QuiskExpose } from "@/helper/mount";
 
@@ -85,16 +85,21 @@ const bindUser = ref<UserInfo>(props.user ? { ...props.user } : ({} as UserInfo)
 const plainFlag = ref(false);
 const disabledChangeDept = ref(false);
 const roleOptions = ref<{ label: string; value: string }[]>([]);
-watchEffect(async () => {
-// bindUser.value.deptId = 2
-  if (bindUser.value.deptId) {
+// watchEffect(async () => {
+// // bindUser.value.deptId = 2
+//   if (bindUser.value.deptId) {
+//     roleOptions.value = (await getRolesByDetpId(bindUser.value.deptId || 2)).map((item) => ({
+//       label: item.roleName,
+//       value: item.id,
+//     }));
+//   }
+// });
+onMounted(async () => {
     roleOptions.value = (await getRolesByDetpId(bindUser.value.deptId || 2)).map((item) => ({
       label: item.roleName,
       value: item.id,
     }));
-  }
-});
-
+})
 const deptPath = ref<string[]>([]);
 
 defineExpose<QuiskExpose>({
@@ -107,10 +112,10 @@ defineExpose<QuiskExpose>({
     //   ElMessage.error("请选择用户所属架构");
     //   throw "请选择用户所属架构";
     // }
-    if (!bindUser.value.roleId) {
-      ElMessage.error("请选择用户角色");
-      throw "请选择用户角色";
-    }
+    // if (!bindUser.value.roleId) {
+    //   ElMessage.error("请选择用户角色");
+    //   throw "请选择用户角色";
+    // }
     if (isAdd.value) {
       if (!bindUser.value.userName) {
         ElMessage.error("请输入用户账户");