工程合并导入和物资管理
This commit is contained in:
		@ -20096,8 +20096,8 @@
 | 
				
			|||||||
        var testing =
 | 
					        var testing =
 | 
				
			||||||
          '<div class="compass" title="拖动外圈:旋转视图,' +
 | 
					          '<div class="compass" title="拖动外圈:旋转视图,' +
 | 
				
			||||||
          '拖动内陀螺仪:自由轨道,' +
 | 
					          '拖动内陀螺仪:自由轨道,' +
 | 
				
			||||||
          '双击:重置视图,' +
 | 
					          '双击:重置视图' +
 | 
				
			||||||
          '提示:您还可以按住CTRL键并拖动地图来释放轨道." data-bind="visible: showCompass, event: { mousedown: handleMouseDown, dblclick: handleDoubleClick }">' +
 | 
					          '" data-bind="visible: showCompass, event: { mousedown: handleMouseDown, dblclick: handleDoubleClick }">' +
 | 
				
			||||||
          '<div class="compass-outer-ring-background"></div>' +
 | 
					          '<div class="compass-outer-ring-background"></div>' +
 | 
				
			||||||
          " <div class=\"compass-rotation-marker\" data-bind=\"visible: isOrbiting, style: { transform: 'rotate(-' + orbitCursorAngle + 'rad)', '-webkit-transform': 'rotate(-' + orbitCursorAngle + 'rad)', opacity: orbitCursorOpacity }, cesiumSvgPath: { path: svgCompassRotationMarker, width: 145, height: 145 }\"></div>" +
 | 
					          " <div class=\"compass-rotation-marker\" data-bind=\"visible: isOrbiting, style: { transform: 'rotate(-' + orbitCursorAngle + 'rad)', '-webkit-transform': 'rotate(-' + orbitCursorAngle + 'rad)', opacity: orbitCursorOpacity }, cesiumSvgPath: { path: svgCompassRotationMarker, width: 145, height: 145 }\"></div>" +
 | 
				
			||||||
          " <div class=\"compass-outer-ring\" title=\"单击并拖动以旋转相机\" data-bind=\"style: { transform: 'rotate(-' + heading + 'rad)', '-webkit-transform': 'rotate(-' + heading + 'rad)' }, cesiumSvgPath: { path: svgCompassOuterRing, width: 145, height: 145 }\"></div>" +
 | 
					          " <div class=\"compass-outer-ring\" title=\"单击并拖动以旋转相机\" data-bind=\"style: { transform: 'rotate(-' + heading + 'rad)', '-webkit-transform': 'rotate(-' + heading + 'rad)' }, cesiumSvgPath: { path: svgCompassOuterRing, width: 145, height: 145 }\"></div>" +
 | 
				
			||||||
 | 
				
			|||||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							@ -1,6 +1,6 @@
 | 
				
			|||||||
export default {
 | 
					export default {
 | 
				
			||||||
  title: '实景三维电子沙盘系统',
 | 
					  title: '实景三维电子沙盘系统',
 | 
				
			||||||
  week: ['星期日', '星期一', '星期二','星期三', '星期四','星期五', '星期六'],
 | 
					  week: ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'],
 | 
				
			||||||
  tree: {
 | 
					  tree: {
 | 
				
			||||||
    title: '图层指挥舱',
 | 
					    title: '图层指挥舱',
 | 
				
			||||||
    // title: "综合信息",
 | 
					    // title: "综合信息",
 | 
				
			||||||
@ -147,6 +147,7 @@ export default {
 | 
				
			|||||||
    setting: '系统设置',
 | 
					    setting: '系统设置',
 | 
				
			||||||
    project: '工程信息',
 | 
					    project: '工程信息',
 | 
				
			||||||
    device: '设备管理',
 | 
					    device: '设备管理',
 | 
				
			||||||
 | 
					    materials: '物资管理',
 | 
				
			||||||
    modelManage: '模型管理',
 | 
					    modelManage: '模型管理',
 | 
				
			||||||
    graphLabelManage: '军标管理',
 | 
					    graphLabelManage: '军标管理',
 | 
				
			||||||
    photoManage: '图标管理',
 | 
					    photoManage: '图标管理',
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										31
									
								
								src/renderer/src/api/material/index.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										31
									
								
								src/renderer/src/api/material/index.ts
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,31 @@
 | 
				
			|||||||
 | 
					//路径规划
 | 
				
			||||||
 | 
					import request from '@/axios/request'
 | 
				
			||||||
 | 
					export const MaterialApi = {
 | 
				
			||||||
 | 
					  //获取地图列表
 | 
				
			||||||
 | 
					  getList: async (data) => {
 | 
				
			||||||
 | 
					    return await request.post({
 | 
				
			||||||
 | 
					      url: `/matter/list`,
 | 
				
			||||||
 | 
					      data: data
 | 
				
			||||||
 | 
					    })
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  add: async (data) => {
 | 
				
			||||||
 | 
					    return await request.post({
 | 
				
			||||||
 | 
					      url: `/matter/add`,
 | 
				
			||||||
 | 
					      data
 | 
				
			||||||
 | 
					    })
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  //添加路网数据
 | 
				
			||||||
 | 
					  update: async (data: any) => {
 | 
				
			||||||
 | 
					    return await request.post({
 | 
				
			||||||
 | 
					      url: `/matter/update`,
 | 
				
			||||||
 | 
					      data,
 | 
				
			||||||
 | 
					    })
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  //启用路网数据
 | 
				
			||||||
 | 
					  del: async (data: any) => {
 | 
				
			||||||
 | 
					    return await request.post({
 | 
				
			||||||
 | 
					      url: `/matter/deletes`,
 | 
				
			||||||
 | 
					      data,
 | 
				
			||||||
 | 
					    })
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@ -42,4 +42,10 @@ export const PoiApi = {
 | 
				
			|||||||
      data,
 | 
					      data,
 | 
				
			||||||
    })
 | 
					    })
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
 | 
					  importProjectConfig: async (data: any) => {
 | 
				
			||||||
 | 
					    return await request.post({
 | 
				
			||||||
 | 
					      url: `/systemService/importProjectConfig`,
 | 
				
			||||||
 | 
					      data,
 | 
				
			||||||
 | 
					    })
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -413,9 +413,9 @@ const mergeProject = () => {
 | 
				
			|||||||
  $sendElectronChanel('open-directory-dialog', option)
 | 
					  $sendElectronChanel('open-directory-dialog', option)
 | 
				
			||||||
  $recvElectronChanel('selectedItem', (e, path) => {
 | 
					  $recvElectronChanel('selectedItem', (e, path) => {
 | 
				
			||||||
    if (path.length) {
 | 
					    if (path.length) {
 | 
				
			||||||
      RouteApi.loadRoute({
 | 
					      let formData = new FormData()
 | 
				
			||||||
        path: path[0]
 | 
					      formData.append('path', path[0])
 | 
				
			||||||
      }).then((res) => {
 | 
					      PoiApi.importProjectConfig(formData).then((res) => {
 | 
				
			||||||
        if (res.code === 200) {
 | 
					        if (res.code === 200) {
 | 
				
			||||||
          setTimeout(() => {
 | 
					          setTimeout(() => {
 | 
				
			||||||
            ElMessage({
 | 
					            ElMessage({
 | 
				
			||||||
 | 
				
			|||||||
@ -66,6 +66,12 @@
 | 
				
			|||||||
            <el-button type="primary" size="small" @click="delFun(scope.row)">删除</el-button>
 | 
					            <el-button type="primary" size="small" @click="delFun(scope.row)">删除</el-button>
 | 
				
			||||||
          </template>
 | 
					          </template>
 | 
				
			||||||
        </el-table-column>
 | 
					        </el-table-column>
 | 
				
			||||||
 | 
					        <template #empty>
 | 
				
			||||||
 | 
					          <div class="custom-empty">
 | 
				
			||||||
 | 
					            <img src="@/assets/images/noData.png" alt="暂无数据" />
 | 
				
			||||||
 | 
					            <div class="noData">暂无数据</div>
 | 
				
			||||||
 | 
					          </div>
 | 
				
			||||||
 | 
					        </template>
 | 
				
			||||||
      </el-table>
 | 
					      </el-table>
 | 
				
			||||||
    </div>
 | 
					    </div>
 | 
				
			||||||
    <div>
 | 
					    <div>
 | 
				
			||||||
@ -266,7 +272,8 @@ const downloadTemp = async () => {
 | 
				
			|||||||
<style lang="scss">
 | 
					<style lang="scss">
 | 
				
			||||||
::v-deep .addDevice {
 | 
					::v-deep .addDevice {
 | 
				
			||||||
  background:
 | 
					  background:
 | 
				
			||||||
    linear-gradient(180deg, rgba(var(--color-base1), 0.2) 0%, rgba(var(--color-base1), 0) 100%), rgba(0, 0, 0, 1) !important;
 | 
					    linear-gradient(180deg, rgba(var(--color-base1), 0.2) 0%, rgba(var(--color-base1), 0) 100%),
 | 
				
			||||||
 | 
					    rgba(0, 0, 0, 1) !important;
 | 
				
			||||||
  .el-dialog__title {
 | 
					  .el-dialog__title {
 | 
				
			||||||
    color: #fff !important;
 | 
					    color: #fff !important;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
@ -461,5 +468,16 @@ const downloadTemp = async () => {
 | 
				
			|||||||
    --el-button-hover-bg-color: rgba(var(--color-base1), 0.2) !important;
 | 
					    --el-button-hover-bg-color: rgba(var(--color-base1), 0.2) !important;
 | 
				
			||||||
    border: 1px solid rgba(var(--color-base1), 0.5) !important;
 | 
					    border: 1px solid rgba(var(--color-base1), 0.5) !important;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					  .custom-empty {
 | 
				
			||||||
 | 
					    display: flex;
 | 
				
			||||||
 | 
					    justify-content: center; /* 水平居中 */
 | 
				
			||||||
 | 
					    align-items: center; /* 垂直居中 */
 | 
				
			||||||
 | 
					    flex-direction: column;
 | 
				
			||||||
 | 
					    height: 300px;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  .custom-empty img {
 | 
				
			||||||
 | 
					    display: block;
 | 
				
			||||||
 | 
					    width: 130px;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
</style>
 | 
					</style>
 | 
				
			||||||
 | 
				
			|||||||
@ -0,0 +1,385 @@
 | 
				
			|||||||
 | 
					<template>
 | 
				
			||||||
 | 
					  <div class="equipment">
 | 
				
			||||||
 | 
					    <div class="equipment_title">
 | 
				
			||||||
 | 
					      <el-button
 | 
				
			||||||
 | 
					        color="#004b4b"
 | 
				
			||||||
 | 
					        style="border: 1px solid rgba(var(--color-base1), 0.5)"
 | 
				
			||||||
 | 
					        @click="edit('添加物资', 0)"
 | 
				
			||||||
 | 
					      >
 | 
				
			||||||
 | 
					        <template #icon>
 | 
				
			||||||
 | 
					          <svg-icon name="leading_in" />
 | 
				
			||||||
 | 
					        </template>
 | 
				
			||||||
 | 
					        <span>添加物资</span>
 | 
				
			||||||
 | 
					      </el-button>
 | 
				
			||||||
 | 
					      <el-input
 | 
				
			||||||
 | 
					        v-model="input3"
 | 
				
			||||||
 | 
					        style="max-width: 250px"
 | 
				
			||||||
 | 
					        placeholder="请输入物资名称进行搜索"
 | 
				
			||||||
 | 
					        class="input-with-select"
 | 
				
			||||||
 | 
					        :suffix-icon="Search"
 | 
				
			||||||
 | 
					        @input="getTableList()"
 | 
				
			||||||
 | 
					      >
 | 
				
			||||||
 | 
					      </el-input>
 | 
				
			||||||
 | 
					    </div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <div class="nav_table">
 | 
				
			||||||
 | 
					      <el-table :data="tableData" height="40vh" style="width: 100%">
 | 
				
			||||||
 | 
					        <el-table-column type="index" label="序号" width="60" align="center" />
 | 
				
			||||||
 | 
					        <el-table-column prop="name" label="名称" />
 | 
				
			||||||
 | 
					        <el-table-column prop="num" label="总计数量" width="120" />
 | 
				
			||||||
 | 
					        <el-table-column fixed="right" label="操作" width="160">
 | 
				
			||||||
 | 
					          <template #default="scope">
 | 
				
			||||||
 | 
					            <el-button type="primary" size="small" @click="edit('编辑物资', scope.row)">
 | 
				
			||||||
 | 
					              编辑
 | 
				
			||||||
 | 
					            </el-button>
 | 
				
			||||||
 | 
					            <el-button type="primary" size="small" @click="delFun(scope.row)">删除</el-button>
 | 
				
			||||||
 | 
					          </template>
 | 
				
			||||||
 | 
					        </el-table-column>
 | 
				
			||||||
 | 
					        <template #empty>
 | 
				
			||||||
 | 
					          <div class="custom-empty">
 | 
				
			||||||
 | 
					            <img src="@/assets/images/noData.png" alt="暂无数据" />
 | 
				
			||||||
 | 
					            <div class="noData">暂无数据</div>
 | 
				
			||||||
 | 
					          </div>
 | 
				
			||||||
 | 
					        </template>
 | 
				
			||||||
 | 
					      </el-table>
 | 
				
			||||||
 | 
					    </div>
 | 
				
			||||||
 | 
					    <div>
 | 
				
			||||||
 | 
					      <Pagination
 | 
				
			||||||
 | 
					        :total="total"
 | 
				
			||||||
 | 
					        v-model:page="pages.pageNum"
 | 
				
			||||||
 | 
					        v-model:limit="pages.pageSize"
 | 
				
			||||||
 | 
					        @pagination="getTableList"
 | 
				
			||||||
 | 
					      />
 | 
				
			||||||
 | 
					    </div>
 | 
				
			||||||
 | 
					  </div>
 | 
				
			||||||
 | 
					</template>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<script setup lang="ts">
 | 
				
			||||||
 | 
					import { Search } from '@element-plus/icons-vue'
 | 
				
			||||||
 | 
					import { MaterialApi } from '@/api/material/index'
 | 
				
			||||||
 | 
					import Dialog from '@/components/dialog/baseDialog.vue'
 | 
				
			||||||
 | 
					import { ElMessage, ElMessageBox } from 'element-plus'
 | 
				
			||||||
 | 
					import {
 | 
				
			||||||
 | 
					  $sendElectronChanel,
 | 
				
			||||||
 | 
					  $recvElectronChanel,
 | 
				
			||||||
 | 
					  $removeElectronChanel
 | 
				
			||||||
 | 
					} from '@/utils/communication'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const eventBus: any = inject('bus')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const input3 = ref('')
 | 
				
			||||||
 | 
					const tableData: any = ref([])
 | 
				
			||||||
 | 
					const total = ref(100)
 | 
				
			||||||
 | 
					// 页码
 | 
				
			||||||
 | 
					let pages: any = reactive({
 | 
				
			||||||
 | 
					  pageNum: 1,
 | 
				
			||||||
 | 
					  pageSize: 10
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					// 使用循环生成10条数据
 | 
				
			||||||
 | 
					// for (let i = 0; i < 10; i++) {
 | 
				
			||||||
 | 
					//   tableData.value.push({
 | 
				
			||||||
 | 
					//     cameraName: '123',
 | 
				
			||||||
 | 
					//     type: (i % 3) + '',
 | 
				
			||||||
 | 
					//     state: ['California', 'New York', 'Texas'][i % 3],
 | 
				
			||||||
 | 
					//     city: ['Los Angeles', 'New York', 'Houston'][i % 3],
 | 
				
			||||||
 | 
					//     address: `No. ${i + 1}00, Main St`,
 | 
				
			||||||
 | 
					//     zip: ['CA 90036', 'NY 10001', 'TX 77002'][i % 3],
 | 
				
			||||||
 | 
					//     tag: ['Home', 'Work', 'Other'][i % 3]
 | 
				
			||||||
 | 
					//   })
 | 
				
			||||||
 | 
					// }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// var statusTrans = (id) => {
 | 
				
			||||||
 | 
					//   switch (id) {
 | 
				
			||||||
 | 
					//     case '1':
 | 
				
			||||||
 | 
					//       return '海康'
 | 
				
			||||||
 | 
					//     case '2':
 | 
				
			||||||
 | 
					//       return '大华'
 | 
				
			||||||
 | 
					//     case '3':
 | 
				
			||||||
 | 
					//       return '手动录入'
 | 
				
			||||||
 | 
					//   }
 | 
				
			||||||
 | 
					// }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const getTableList = async () => {
 | 
				
			||||||
 | 
					  let formData = new FormData()
 | 
				
			||||||
 | 
					  formData.append('pageNum', pages.pageNum)
 | 
				
			||||||
 | 
					  formData.append('pageSize', pages.pageSize)
 | 
				
			||||||
 | 
					  formData.append('name', input3.value)
 | 
				
			||||||
 | 
					  const res = await MaterialApi.getList(formData)
 | 
				
			||||||
 | 
					  // if (res.code === 50) {
 | 
				
			||||||
 | 
					  //   ElMessage.warning(res.message)
 | 
				
			||||||
 | 
					  //   return
 | 
				
			||||||
 | 
					  // }
 | 
				
			||||||
 | 
					  if (res.code === 200) {
 | 
				
			||||||
 | 
					    tableData.value = res.data.records
 | 
				
			||||||
 | 
					    total.value = res.data.total
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					getTableList()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					eventBus.on('addOptionResuit2', () => {
 | 
				
			||||||
 | 
					  getTableList()
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					//------------------添加--------------------
 | 
				
			||||||
 | 
					const baseDialog: any = ref(null)
 | 
				
			||||||
 | 
					var peopleFormRef: any = ref('')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const peopleRules: any = reactive({
 | 
				
			||||||
 | 
					  cameraName: [{ required: true, message: '请输入名称', trigger: 'blur' }],
 | 
				
			||||||
 | 
					  ip: [{ required: true, message: '请输入ip', trigger: 'blur' }],
 | 
				
			||||||
 | 
					  port: [{ required: true, message: '请输入设备端口号', trigger: 'blur' }],
 | 
				
			||||||
 | 
					  username: [{ required: true, message: '请输入用户名', trigger: 'blur' }],
 | 
				
			||||||
 | 
					  password: [{ required: true, message: '请输入密码', trigger: 'blur' }],
 | 
				
			||||||
 | 
					  type: [{ required: true, message: '请选择设备类型', trigger: 'blur' }]
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					var close = () => {
 | 
				
			||||||
 | 
					  baseDialog.value?.close()
 | 
				
			||||||
 | 
					  // baseDialog.value = false
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					var edit = (type, row) => {
 | 
				
			||||||
 | 
					  let addForm
 | 
				
			||||||
 | 
					  if (row) {
 | 
				
			||||||
 | 
					    addForm = JSON.parse(JSON.stringify(row))
 | 
				
			||||||
 | 
					    // addForm.areaId = +row.areaId
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  eventBus.emit('openAddMaterial', { title: type, data: addForm })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					var delFun = (row) => {
 | 
				
			||||||
 | 
					  ElMessageBox.confirm(
 | 
				
			||||||
 | 
					    `删除物资将在系统中永久消失,且添加到场景展示区的数据也将删除,您确定要执行删除操作吗?`,
 | 
				
			||||||
 | 
					    '提示',
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					      confirmButtonText: '确定',
 | 
				
			||||||
 | 
					      cancelButtonText: '取消',
 | 
				
			||||||
 | 
					      type: 'warning'
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  )
 | 
				
			||||||
 | 
					    .then(() => {
 | 
				
			||||||
 | 
					      // let formData = new FormData()
 | 
				
			||||||
 | 
					      // formData.append('id', row.id)
 | 
				
			||||||
 | 
					      MaterialApi.del({ id: row.id }).then((res) => {
 | 
				
			||||||
 | 
					        if (res.code === 200) {
 | 
				
			||||||
 | 
					          ElMessage.success('删除成功')
 | 
				
			||||||
 | 
					          getTableList()
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					      })
 | 
				
			||||||
 | 
					    })
 | 
				
			||||||
 | 
					    .catch(() => {})
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					</script>
 | 
				
			||||||
 | 
					<style lang="scss">
 | 
				
			||||||
 | 
					::v-deep .addDevice {
 | 
				
			||||||
 | 
					  background:
 | 
				
			||||||
 | 
					    linear-gradient(180deg, rgba(var(--color-base1), 0.2) 0%, rgba(var(--color-base1), 0) 100%),
 | 
				
			||||||
 | 
					    rgba(0, 0, 0, 1) !important;
 | 
				
			||||||
 | 
					  .el-dialog__title {
 | 
				
			||||||
 | 
					    color: #fff !important;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					</style>
 | 
				
			||||||
 | 
					<style scoped lang="scss">
 | 
				
			||||||
 | 
					::v-deep .el-form-item--label-right .el-form-item__label {
 | 
				
			||||||
 | 
					  color: #fff !important;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					::v-deep .el-form-item .el-input__wrapper {
 | 
				
			||||||
 | 
					  background-color: transparent !important;
 | 
				
			||||||
 | 
					  box-shadow: 0 0 0 0.5px rgba(var(--color-base1), 1) inset !important; /* 新增此行 */
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					::v-deep .el-form-item .el-select__wrapper {
 | 
				
			||||||
 | 
					  background-color: transparent !important;
 | 
				
			||||||
 | 
					  box-shadow: 0 0 0 0.5px rgba(var(--color-base1), 1) inset !important; /* 新增此行 */
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					::v-deep .el-form-item .el-input__inner {
 | 
				
			||||||
 | 
					  color: #fff !important;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					::v-deep .el-form-item .el-select__placeholder {
 | 
				
			||||||
 | 
					  color: #fff !important;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					.equipment {
 | 
				
			||||||
 | 
					  width: 100%;
 | 
				
			||||||
 | 
					  height: 100%;
 | 
				
			||||||
 | 
					  .equipment_title {
 | 
				
			||||||
 | 
					    width: 100%;
 | 
				
			||||||
 | 
					    display: flex;
 | 
				
			||||||
 | 
					    justify-content: space-between;
 | 
				
			||||||
 | 
					    padding-bottom: 20px;
 | 
				
			||||||
 | 
					    :deep(.el-input__wrapper) {
 | 
				
			||||||
 | 
					      background-color: transparent !important;
 | 
				
			||||||
 | 
					      //   border: 0.2px solid rgba(var(--color-base1), 0.5) !important;
 | 
				
			||||||
 | 
					      box-shadow: 0 0 0 0.5px rgba(var(--color-base1), 1) inset !important; /* 新增此行 */
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    :deep(.el-input__inner) {
 | 
				
			||||||
 | 
					      color: #fff;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    :deep(.el-select__wrapper) {
 | 
				
			||||||
 | 
					      background-color: transparent;
 | 
				
			||||||
 | 
					      border: 0.2px solid rgba(var(--color-base1), 0.5);
 | 
				
			||||||
 | 
					      box-shadow: 0 0 0 0.2px rgba(var(--color-base1), 1) inset !important; /* 新增此行 */
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    :deep(.el-select__placeholder),
 | 
				
			||||||
 | 
					    :deep(.el-select__tags-text) {
 | 
				
			||||||
 | 
					      color: #fff !important;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    :deep(.el-input-group__append) {
 | 
				
			||||||
 | 
					      border: none !important;
 | 
				
			||||||
 | 
					      background-color: rgba(var(--color-base1), 0.2);
 | 
				
			||||||
 | 
					      box-shadow: 0 0 0 0.2px rgba(var(--color-base1), 1) inset !important; /* 新增此行 */
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    :deep(.el-icon) {
 | 
				
			||||||
 | 
					      color: #fff !important; /* 将#00ffff替换为你想用的颜色 */
 | 
				
			||||||
 | 
					      font-size: 14px; /* 可选:调整图标大小 */
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  .input-with-select {
 | 
				
			||||||
 | 
					    margin-left: 10px;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  .nav_table {
 | 
				
			||||||
 | 
					    width: 100%;
 | 
				
			||||||
 | 
					    // height: 40vh;
 | 
				
			||||||
 | 
					    // box-sizing: border-box;
 | 
				
			||||||
 | 
					    overflow-y: auto; /* 垂直方向超出时显示滚动条 */
 | 
				
			||||||
 | 
					    :deep(.el-table, .el-table__expanded-cell) {
 | 
				
			||||||
 | 
					      background: rgba(0, 0, 0, 0);
 | 
				
			||||||
 | 
					      color: #fff;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    :deep(.el-table tr) {
 | 
				
			||||||
 | 
					      background: rgba(0, 0, 0, 0);
 | 
				
			||||||
 | 
					      //   border: 1px solid rgba(var(--color-base1), 0.5) !important;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    :deep(.el-table th.el-table__cell) {
 | 
				
			||||||
 | 
					      background: #004b4b;
 | 
				
			||||||
 | 
					      color: #fff;
 | 
				
			||||||
 | 
					      border-bottom: 1px solid rgba(var(--color-base1), 0.5) !important;
 | 
				
			||||||
 | 
					      border-right: 1px solid rgba(var(--color-base1), 0.5) !important;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    :deep(.el-table--enable-row-transition .el-table__body td.el-table__cell) {
 | 
				
			||||||
 | 
					      border-right: 1px solid rgba(var(--color-base1), 0.5) !important;
 | 
				
			||||||
 | 
					      border-bottom: 1px solid rgba(var(--color-base1), 0.5) !important;
 | 
				
			||||||
 | 
					      // background: #004b4b;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    // :deep(.el-table__header-wrapper tr th.el-table-fixed-column--left) {
 | 
				
			||||||
 | 
					    //   background-color: #004b4b !important;
 | 
				
			||||||
 | 
					    // }
 | 
				
			||||||
 | 
					    // :deep(.el-table__header-wrapper tr th.el-table-fixed-column--right) {
 | 
				
			||||||
 | 
					    //   background-color: rgba(0, 255, 255, 0.2) !important;
 | 
				
			||||||
 | 
					    //   z-index: 1000;
 | 
				
			||||||
 | 
					    // }
 | 
				
			||||||
 | 
					    // :deep(.el-table__body tr td.el-table-fixed-column--right) {
 | 
				
			||||||
 | 
					    //   background-color: rgba(0, 255, 255, 0.2) !important;
 | 
				
			||||||
 | 
					    //   z-index: 1000;
 | 
				
			||||||
 | 
					    // }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    :deep(.el-table__body tr:hover > td) {
 | 
				
			||||||
 | 
					      background-color: rgba(40, 75, 91, 0.9) !important;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    /* 表格边框颜色 */
 | 
				
			||||||
 | 
					    :deep(
 | 
				
			||||||
 | 
					      .el-table,
 | 
				
			||||||
 | 
					      .el-table__header-wrapper,
 | 
				
			||||||
 | 
					      .el-table__body-wrapper,
 | 
				
			||||||
 | 
					      .el-table__footer-wrapper,
 | 
				
			||||||
 | 
					      .el-table th,
 | 
				
			||||||
 | 
					      .el-table td
 | 
				
			||||||
 | 
					    ) {
 | 
				
			||||||
 | 
					      border: 1px solid rgba(var(--color-base1), 0.5) !important;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    :deep(.el-table__inner-wrapper:before) {
 | 
				
			||||||
 | 
					      background-color: transparent !important;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /* 固定列的边框 */
 | 
				
			||||||
 | 
					    :deep(.el-table__fixed, .el-table__fixed-right) {
 | 
				
			||||||
 | 
					      border: 1px solid rgba(var(--color-base1), 0.5) !important;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    :deep(.el-table__body-wrapper::-webkit-scrollbar) {
 | 
				
			||||||
 | 
					      width: 4px;
 | 
				
			||||||
 | 
					      height: 10px;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    :deep(.el-table__body-wrapper::-webkit-scrollbar-thumb) {
 | 
				
			||||||
 | 
					      -webkit-box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2);
 | 
				
			||||||
 | 
					      opacity: 0.2;
 | 
				
			||||||
 | 
					      background: #00c0ff;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    :deep(.el-table__body-wrapper::-webkit-scrollbar-track) {
 | 
				
			||||||
 | 
					      -webkit-box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2);
 | 
				
			||||||
 | 
					      border-radius: 0;
 | 
				
			||||||
 | 
					      background: rgba(220, 228, 245, 0.8);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    :deep(.el-icon-arrow-right:before) {
 | 
				
			||||||
 | 
					      color: rgba(var(--color-base1), 1);
 | 
				
			||||||
 | 
					      font-weight: bold;
 | 
				
			||||||
 | 
					      font-size: 16px;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  // 滚动条优化
 | 
				
			||||||
 | 
					  .nav_table::-webkit-scrollbar {
 | 
				
			||||||
 | 
					    width: 5px;
 | 
				
			||||||
 | 
					    height: 5px;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  .nav_table::-webkit-scrollbar-thumb {
 | 
				
			||||||
 | 
					    background-color: rgba(var(--color-base1), 1);
 | 
				
			||||||
 | 
					    border-radius: 5px;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  .nav_table::-webkit-scrollbar-track {
 | 
				
			||||||
 | 
					    background-color: rgba(var(--color-base1), 0.2);
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  .deviceType {
 | 
				
			||||||
 | 
					    display: inline-block;
 | 
				
			||||||
 | 
					    width: 8px;
 | 
				
			||||||
 | 
					    height: 8px;
 | 
				
			||||||
 | 
					    border-radius: 4px;
 | 
				
			||||||
 | 
					    background: red;
 | 
				
			||||||
 | 
					    margin-right: 10px;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  ::v-deep .el-select__wrapper {
 | 
				
			||||||
 | 
					    background-color: unset !important;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  ::v-deep .el-select__placeholder {
 | 
				
			||||||
 | 
					    color: #fff !important;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  ::v-deep .el-select__wrapper.is-focused {
 | 
				
			||||||
 | 
					    box-shadow: 0 0 0 1px #fff inset !important;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  ::v-deep .el-input__wrapper {
 | 
				
			||||||
 | 
					    background-color: unset !important;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  ::v-deep .el-input__inner {
 | 
				
			||||||
 | 
					    color: #fff !important;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  ::v-deep .el-input__wrapper.is-focus {
 | 
				
			||||||
 | 
					    box-shadow: 0 0 0 1px #fff inset !important;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  ::v-deep .el-pager li * {
 | 
				
			||||||
 | 
					    color: rgba(var(--color-base1), 1) !important;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  ::v-deep .el-pager li.is-active {
 | 
				
			||||||
 | 
					    color: rgba(var(--color-base1), 1) !important;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  ::v-deep .el-button--primary {
 | 
				
			||||||
 | 
					    --el-button-bg-color: rgba(var(--color-base1), 0.2) !important;
 | 
				
			||||||
 | 
					    --el-button-hover-bg-color: rgba(var(--color-base1), 0.2) !important;
 | 
				
			||||||
 | 
					    border: 1px solid rgba(var(--color-base1), 0.5) !important;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  .custom-empty {
 | 
				
			||||||
 | 
					    display: flex;
 | 
				
			||||||
 | 
					    justify-content: center; /* 水平居中 */
 | 
				
			||||||
 | 
					    align-items: center; /* 垂直居中 */
 | 
				
			||||||
 | 
					    flex-direction: column;
 | 
				
			||||||
 | 
					    height: 300px;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  .custom-empty img {
 | 
				
			||||||
 | 
					    display: block;
 | 
				
			||||||
 | 
					    width: 130px;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					</style>
 | 
				
			||||||
@ -551,7 +551,6 @@ concurrentcode.value = localStorage.getItem('concurrentcode') || 10
 | 
				
			|||||||
//系统坐标系
 | 
					//系统坐标系
 | 
				
			||||||
let tool = new YJ.Tools(window.earth)
 | 
					let tool = new YJ.Tools(window.earth)
 | 
				
			||||||
name_map.value = Array.from(tool.name_map.values())
 | 
					name_map.value = Array.from(tool.name_map.values())
 | 
				
			||||||
console.log(name_map.value, 'ooooooo')
 | 
					 | 
				
			||||||
name_map1.value = name_map.value.splice(0, 2)
 | 
					name_map1.value = name_map.value.splice(0, 2)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const sysChange = async () => {
 | 
					const sysChange = async () => {
 | 
				
			||||||
 | 
				
			|||||||
@ -1,43 +1,74 @@
 | 
				
			|||||||
<template>
 | 
					<template>
 | 
				
			||||||
  <div class="set_pup">
 | 
					  <div class="set_pup">
 | 
				
			||||||
    <el-dialog v-model="isShowPup" :modal="false" draggable :close-on-click-modal="false" :destroy-on-close="true">
 | 
					    <el-dialog
 | 
				
			||||||
 | 
					      v-model="isShowPup"
 | 
				
			||||||
 | 
					      :modal="false"
 | 
				
			||||||
 | 
					      draggable
 | 
				
			||||||
 | 
					      :close-on-click-modal="false"
 | 
				
			||||||
 | 
					      :destroy-on-close="true"
 | 
				
			||||||
 | 
					    >
 | 
				
			||||||
      <template #header>
 | 
					      <template #header>
 | 
				
			||||||
        <div class="set_pup_header">
 | 
					        <div class="set_pup_header">
 | 
				
			||||||
          <div class="system_title">
 | 
					          <div class="system_title">
 | 
				
			||||||
            <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="229" height="35"
 | 
					            <svg
 | 
				
			||||||
              viewBox="0 0 229 35" fill="none" preserveAspectRatio="none">
 | 
					              xmlns="http://www.w3.org/2000/svg"
 | 
				
			||||||
 | 
					              xmlns:xlink="http://www.w3.org/1999/xlink"
 | 
				
			||||||
 | 
					              width="229"
 | 
				
			||||||
 | 
					              height="35"
 | 
				
			||||||
 | 
					              viewBox="0 0 229 35"
 | 
				
			||||||
 | 
					              fill="none"
 | 
				
			||||||
 | 
					              preserveAspectRatio="none"
 | 
				
			||||||
 | 
					            >
 | 
				
			||||||
              <path
 | 
					              <path
 | 
				
			||||||
                d="M74 34L85 34L99.5 6L88.5 6L74 34ZM92 34L103 34L117.5 6L106.5 6L92 34ZM111 34L122 34L136.5 6L125.5 6L111 34ZM140 34L129 34L143.5 6L154.5 6L140 34ZM148 34L159 34L173.5 6L162.5 6L148 34ZM177 34L166 34L180.5 6L191.5 6L177 34ZM185 34L196 34L210.5 6L199.5 6L185 34ZM214 34L203 34L217.5 6L228.5 6L214 34ZM0 34L11 34L25.5 6.5L14.5 6.5L0 34ZM18 34L29 34L43.5 6.5L32.5 6.5L18 34ZM37 34L48 34L62.5 6.5L51.5 6.5L37 34ZM66 34L55 34L69.5 6.5L80.5 6.5L66 34Z"
 | 
					                d="M74 34L85 34L99.5 6L88.5 6L74 34ZM92 34L103 34L117.5 6L106.5 6L92 34ZM111 34L122 34L136.5 6L125.5 6L111 34ZM140 34L129 34L143.5 6L154.5 6L140 34ZM148 34L159 34L173.5 6L162.5 6L148 34ZM177 34L166 34L180.5 6L191.5 6L177 34ZM185 34L196 34L210.5 6L199.5 6L185 34ZM214 34L203 34L217.5 6L228.5 6L214 34ZM0 34L11 34L25.5 6.5L14.5 6.5L0 34ZM18 34L29 34L43.5 6.5L32.5 6.5L18 34ZM37 34L48 34L62.5 6.5L51.5 6.5L37 34ZM66 34L55 34L69.5 6.5L80.5 6.5L66 34Z"
 | 
				
			||||||
                fill-rule="evenodd" fill="url(#linear_fill_2442_1053)" />
 | 
					                fill-rule="evenodd"
 | 
				
			||||||
 | 
					                fill="url(#linear_fill_2442_1053)"
 | 
				
			||||||
 | 
					              />
 | 
				
			||||||
              <rect x="0" y="0" width="229" height="34" fill="url(#linear_fill_2442_1054)" />
 | 
					              <rect x="0" y="0" width="229" height="34" fill="url(#linear_fill_2442_1054)" />
 | 
				
			||||||
              <g clip-path="url(#clip-path-2442_1055)">
 | 
					              <g clip-path="url(#clip-path-2442_1055)">
 | 
				
			||||||
                <path
 | 
					                <path
 | 
				
			||||||
                  d="M10.3993 32.7333L10.666 33L10.666 21L9.33267 22.3333L4.66602 27L5.66602 28L10.3993 32.7333ZM9.33267 29.6667L6.73267 27L9.33267 24.3333L9.33267 29.6667Z"
 | 
					                  d="M10.3993 32.7333L10.666 33L10.666 21L9.33267 22.3333L4.66602 27L5.66602 28L10.3993 32.7333ZM9.33267 29.6667L6.73267 27L9.33267 24.3333L9.33267 29.6667Z"
 | 
				
			||||||
                  fill="rgb(var(--color-base1))" />
 | 
					                  fill="rgb(var(--color-base1))"
 | 
				
			||||||
 | 
					                />
 | 
				
			||||||
                <g opacity="0.5">
 | 
					                <g opacity="0.5">
 | 
				
			||||||
                  <path
 | 
					                  <path
 | 
				
			||||||
                    d="M7.39934 32.7333L7.66602 33L7.66602 21L6.33267 22.3333L1.66602 27L2.66602 28L7.39934 32.7333ZM6.33267 29.6667L3.73267 27L6.33267 24.3333L6.33267 29.6667Z"
 | 
					                    d="M7.39934 32.7333L7.66602 33L7.66602 21L6.33267 22.3333L1.66602 27L2.66602 28L7.39934 32.7333ZM6.33267 29.6667L3.73267 27L6.33267 24.3333L6.33267 29.6667Z"
 | 
				
			||||||
                    fill="rgb(var(--color-base1))" />
 | 
					                    fill="rgb(var(--color-base1))"
 | 
				
			||||||
 | 
					                  />
 | 
				
			||||||
                </g>
 | 
					                </g>
 | 
				
			||||||
              </g>
 | 
					              </g>
 | 
				
			||||||
              <g clip-path="url(#clip-path-2442_1059)">
 | 
					              <g clip-path="url(#clip-path-2442_1059)">
 | 
				
			||||||
                <path
 | 
					                <path
 | 
				
			||||||
                  d="M218.601 32.7333L218.334 33L218.334 21L219.667 22.3333L224.334 27L223.334 28L218.601 32.7333ZM219.667 29.6667L222.267 27L219.667 24.3333L219.667 29.6667Z"
 | 
					                  d="M218.601 32.7333L218.334 33L218.334 21L219.667 22.3333L224.334 27L223.334 28L218.601 32.7333ZM219.667 29.6667L222.267 27L219.667 24.3333L219.667 29.6667Z"
 | 
				
			||||||
                  fill="rgb(var(--color-base1))" />
 | 
					                  fill="rgb(var(--color-base1))"
 | 
				
			||||||
 | 
					                />
 | 
				
			||||||
                <g opacity="0.5">
 | 
					                <g opacity="0.5">
 | 
				
			||||||
                  <path
 | 
					                  <path
 | 
				
			||||||
                    d="M221.601 32.7333L221.334 33L221.334 21L222.667 22.3333L227.334 27L226.334 28L221.601 32.7333ZM222.667 29.6667L225.267 27L222.667 24.3333L222.667 29.6667Z"
 | 
					                    d="M221.601 32.7333L221.334 33L221.334 21L222.667 22.3333L227.334 27L226.334 28L221.601 32.7333ZM222.667 29.6667L225.267 27L222.667 24.3333L222.667 29.6667Z"
 | 
				
			||||||
                    fill="rgb(var(--color-base1))" />
 | 
					                    fill="rgb(var(--color-base1))"
 | 
				
			||||||
 | 
					                  />
 | 
				
			||||||
                </g>
 | 
					                </g>
 | 
				
			||||||
              </g>
 | 
					              </g>
 | 
				
			||||||
              <defs>
 | 
					              <defs>
 | 
				
			||||||
                <linearGradient id="linear_fill_2442_1053" x1="119.1239013671875" y1="33.99998474121094"
 | 
					                <linearGradient
 | 
				
			||||||
                  x2="119.1231689453125" y2="6" gradientUnits="userSpaceOnUse">
 | 
					                  id="linear_fill_2442_1053"
 | 
				
			||||||
 | 
					                  x1="119.1239013671875"
 | 
				
			||||||
 | 
					                  y1="33.99998474121094"
 | 
				
			||||||
 | 
					                  x2="119.1231689453125"
 | 
				
			||||||
 | 
					                  y2="6"
 | 
				
			||||||
 | 
					                  gradientUnits="userSpaceOnUse"
 | 
				
			||||||
 | 
					                >
 | 
				
			||||||
                  <stop offset="0" stop-color="rgb(var(--color-base1))" stop-opacity="0.2" />
 | 
					                  <stop offset="0" stop-color="rgb(var(--color-base1))" stop-opacity="0.2" />
 | 
				
			||||||
                  <stop offset="1" stop-color="rgb(var(--color-base1))" stop-opacity="0" />
 | 
					                  <stop offset="1" stop-color="rgb(var(--color-base1))" stop-opacity="0" />
 | 
				
			||||||
                </linearGradient>
 | 
					                </linearGradient>
 | 
				
			||||||
                <linearGradient id="linear_fill_2442_1054" x1="0" y1="17" x2="229" y2="17"
 | 
					                <linearGradient
 | 
				
			||||||
                  gradientUnits="userSpaceOnUse">
 | 
					                  id="linear_fill_2442_1054"
 | 
				
			||||||
 | 
					                  x1="0"
 | 
				
			||||||
 | 
					                  y1="17"
 | 
				
			||||||
 | 
					                  x2="229"
 | 
				
			||||||
 | 
					                  y2="17"
 | 
				
			||||||
 | 
					                  gradientUnits="userSpaceOnUse"
 | 
				
			||||||
 | 
					                >
 | 
				
			||||||
                  <stop offset="0" stop-color="rgb(var(--color-base1))" stop-opacity="0" />
 | 
					                  <stop offset="0" stop-color="rgb(var(--color-base1))" stop-opacity="0" />
 | 
				
			||||||
                  <stop offset="0.4891" stop-color="rgb(var(--color-base1))" stop-opacity="0.4" />
 | 
					                  <stop offset="0.4891" stop-color="rgb(var(--color-base1))" stop-opacity="0.4" />
 | 
				
			||||||
                  <stop offset="1" stop-color="rgb(var(--color-base1))" stop-opacity="0" />
 | 
					                  <stop offset="1" stop-color="rgb(var(--color-base1))" stop-opacity="0" />
 | 
				
			||||||
@ -68,6 +99,9 @@
 | 
				
			|||||||
          <el-tab-pane :label="t('system.device')" name="device">
 | 
					          <el-tab-pane :label="t('system.device')" name="device">
 | 
				
			||||||
            <equipment></equipment>
 | 
					            <equipment></equipment>
 | 
				
			||||||
          </el-tab-pane>
 | 
					          </el-tab-pane>
 | 
				
			||||||
 | 
					          <el-tab-pane :label="t('system.materials')" name="materials">
 | 
				
			||||||
 | 
					            <materials></materials>
 | 
				
			||||||
 | 
					          </el-tab-pane>
 | 
				
			||||||
          <el-tab-pane :label="t('system.modelManage')" name="modelManage">
 | 
					          <el-tab-pane :label="t('system.modelManage')" name="modelManage">
 | 
				
			||||||
            <modelManage></modelManage>
 | 
					            <modelManage></modelManage>
 | 
				
			||||||
          </el-tab-pane>
 | 
					          </el-tab-pane>
 | 
				
			||||||
@ -91,6 +125,7 @@ import authorize from './components/authorize.vue'
 | 
				
			|||||||
import sett from './components/setting.vue'
 | 
					import sett from './components/setting.vue'
 | 
				
			||||||
import engineering from './components/engineering.vue'
 | 
					import engineering from './components/engineering.vue'
 | 
				
			||||||
import equipment from './components/equipment.vue'
 | 
					import equipment from './components/equipment.vue'
 | 
				
			||||||
 | 
					import materials from './components/materials.vue'
 | 
				
			||||||
import version from './components/version.vue'
 | 
					import version from './components/version.vue'
 | 
				
			||||||
import modelManage from './components/modelManage.vue'
 | 
					import modelManage from './components/modelManage.vue'
 | 
				
			||||||
import graphLabelManage from './components/graphLabelManage.vue'
 | 
					import graphLabelManage from './components/graphLabelManage.vue'
 | 
				
			||||||
@ -178,7 +213,7 @@ defineExpose({
 | 
				
			|||||||
      position: relative;
 | 
					      position: relative;
 | 
				
			||||||
      z-index: 1;
 | 
					      z-index: 1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      >svg {
 | 
					      > svg {
 | 
				
			||||||
        position: absolute;
 | 
					        position: absolute;
 | 
				
			||||||
        top: 0;
 | 
					        top: 0;
 | 
				
			||||||
        left: 0;
 | 
					        left: 0;
 | 
				
			||||||
@ -193,19 +228,23 @@ defineExpose({
 | 
				
			|||||||
    box-sizing: border-box;
 | 
					    box-sizing: border-box;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // height: 50vh;
 | 
					    // height: 50vh;
 | 
				
			||||||
    :deep(.el-tabs--left .el-tabs__active-bar.is-left,
 | 
					    :deep(
 | 
				
			||||||
 | 
					      .el-tabs--left .el-tabs__active-bar.is-left,
 | 
				
			||||||
      .el-tabs--left .el-tabs__active-bar.is-right,
 | 
					      .el-tabs--left .el-tabs__active-bar.is-right,
 | 
				
			||||||
      .el-tabs--right .el-tabs__active-bar.is-left,
 | 
					      .el-tabs--right .el-tabs__active-bar.is-left,
 | 
				
			||||||
      .el-tabs--right .el-tabs__active-bar.is-right) {
 | 
					      .el-tabs--right .el-tabs__active-bar.is-right
 | 
				
			||||||
 | 
					    ) {
 | 
				
			||||||
      width: 3px;
 | 
					      width: 3px;
 | 
				
			||||||
      background: rgba(var(--color-base1), 1);
 | 
					      background: rgba(var(--color-base1), 1);
 | 
				
			||||||
      height: 40px !important;
 | 
					      height: 40px !important;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    :deep(.el-tabs--left .el-tabs__nav-wrap.is-left::after,
 | 
					    :deep(
 | 
				
			||||||
 | 
					      .el-tabs--left .el-tabs__nav-wrap.is-left::after,
 | 
				
			||||||
      .el-tabs--left .el-tabs__nav-wrap.is-right::after,
 | 
					      .el-tabs--left .el-tabs__nav-wrap.is-right::after,
 | 
				
			||||||
      .el-tabs--right .el-tabs__nav-wrap.is-left::after,
 | 
					      .el-tabs--right .el-tabs__nav-wrap.is-left::after,
 | 
				
			||||||
      .el-tabs--right .el-tabs__nav-wrap.is-right::after) {
 | 
					      .el-tabs--right .el-tabs__nav-wrap.is-right::after
 | 
				
			||||||
 | 
					    ) {
 | 
				
			||||||
      width: 3px;
 | 
					      width: 3px;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -262,29 +301,39 @@ defineExpose({
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    :deep(.el-tabs__item:hover) {
 | 
					    :deep(.el-tabs__item:hover) {
 | 
				
			||||||
      background: linear-gradient(90deg,
 | 
					      background: linear-gradient(
 | 
				
			||||||
 | 
					        90deg,
 | 
				
			||||||
        rgba(var(--color-base1), 0) 0%,
 | 
					        rgba(var(--color-base1), 0) 0%,
 | 
				
			||||||
        rgba(var(--color-base1), 0.5) 48.91%,
 | 
					        rgba(var(--color-base1), 0.5) 48.91%,
 | 
				
			||||||
          rgba(var(--color-base1), 0) 100%);
 | 
					        rgba(var(--color-base1), 0) 100%
 | 
				
			||||||
 | 
					      );
 | 
				
			||||||
      border: 1px solid;
 | 
					      border: 1px solid;
 | 
				
			||||||
      box-sizing: border-box;
 | 
					      box-sizing: border-box;
 | 
				
			||||||
      border-image: linear-gradient(90deg,
 | 
					      border-image: linear-gradient(
 | 
				
			||||||
 | 
					          90deg,
 | 
				
			||||||
          rgba(var(--color-base1), 0) 0%,
 | 
					          rgba(var(--color-base1), 0) 0%,
 | 
				
			||||||
          rgba(var(--color-base1), 1) 55.55%,
 | 
					          rgba(var(--color-base1), 1) 55.55%,
 | 
				
			||||||
          rgba(var(--color-base1), 0) 100%) 1;
 | 
					          rgba(var(--color-base1), 0) 100%
 | 
				
			||||||
 | 
					        )
 | 
				
			||||||
 | 
					        1;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    :deep(.el-tabs__item.is-active) {
 | 
					    :deep(.el-tabs__item.is-active) {
 | 
				
			||||||
      background: linear-gradient(90deg,
 | 
					      background: linear-gradient(
 | 
				
			||||||
 | 
					        90deg,
 | 
				
			||||||
        rgba(var(--color-base1), 0) 0%,
 | 
					        rgba(var(--color-base1), 0) 0%,
 | 
				
			||||||
        rgba(var(--color-base1), 0.5) 48.91%,
 | 
					        rgba(var(--color-base1), 0.5) 48.91%,
 | 
				
			||||||
          rgba(var(--color-base1), 0) 100%) !important;
 | 
					        rgba(var(--color-base1), 0) 100%
 | 
				
			||||||
 | 
					      ) !important;
 | 
				
			||||||
      border: 0.1px solid;
 | 
					      border: 0.1px solid;
 | 
				
			||||||
      // box-sizing: border-box;
 | 
					      // box-sizing: border-box;
 | 
				
			||||||
      border-image: linear-gradient(90deg,
 | 
					      border-image: linear-gradient(
 | 
				
			||||||
 | 
					          90deg,
 | 
				
			||||||
          rgba(var(--color-base1), 0) 0%,
 | 
					          rgba(var(--color-base1), 0) 0%,
 | 
				
			||||||
          rgba(var(--color-base1), 1) 55.55%,
 | 
					          rgba(var(--color-base1), 1) 55.55%,
 | 
				
			||||||
          rgba(var(--color-base1), 0) 100%) 1 !important;
 | 
					          rgba(var(--color-base1), 0) 100%
 | 
				
			||||||
 | 
					        )
 | 
				
			||||||
 | 
					        1 !important;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    :deep(.el-tabs__header) {
 | 
					    :deep(.el-tabs__header) {
 | 
				
			||||||
 | 
				
			|||||||
@ -22,10 +22,13 @@
 | 
				
			|||||||
        <div class="div-item">
 | 
					        <div class="div-item">
 | 
				
			||||||
          <div class="row">
 | 
					          <div class="row">
 | 
				
			||||||
            <div class="col">
 | 
					            <div class="col">
 | 
				
			||||||
              <span class="label">实时天气</span>
 | 
					              <span class="label">实时光照</span>
 | 
				
			||||||
              <el-switch
 | 
					              <el-switch
 | 
				
			||||||
                v-model="weatherData.currWeather"
 | 
					                v-model="weatherData.currWeather"
 | 
				
			||||||
                style="--el-switch-on-color: rgba(var(--color-base1), 1); --el-switch-off-color: rgba(var(--color-base1), 0.2)"
 | 
					                style="
 | 
				
			||||||
 | 
					                  --el-switch-on-color: rgba(var(--color-base1), 1);
 | 
				
			||||||
 | 
					                  --el-switch-off-color: rgba(var(--color-base1), 0.2);
 | 
				
			||||||
 | 
					                "
 | 
				
			||||||
                @change="weatherChange"
 | 
					                @change="weatherChange"
 | 
				
			||||||
              >
 | 
					              >
 | 
				
			||||||
              </el-switch>
 | 
					              </el-switch>
 | 
				
			||||||
@ -63,7 +66,10 @@
 | 
				
			|||||||
              <span class="label">阴影优化</span>
 | 
					              <span class="label">阴影优化</span>
 | 
				
			||||||
              <el-switch
 | 
					              <el-switch
 | 
				
			||||||
                v-model="weatherData.softShadow"
 | 
					                v-model="weatherData.softShadow"
 | 
				
			||||||
                style="--el-switch-on-color: rgba(var(--color-base1), 1); --el-switch-off-color: rgba(var(--color-base1), 0.2)"
 | 
					                style="
 | 
				
			||||||
 | 
					                  --el-switch-on-color: rgba(var(--color-base1), 1);
 | 
				
			||||||
 | 
					                  --el-switch-off-color: rgba(var(--color-base1), 0.2);
 | 
				
			||||||
 | 
					                "
 | 
				
			||||||
                @change="shadowChange"
 | 
					                @change="shadowChange"
 | 
				
			||||||
              >
 | 
					              >
 | 
				
			||||||
              </el-switch>
 | 
					              </el-switch>
 | 
				
			||||||
@ -227,6 +233,7 @@ onMounted(() => {
 | 
				
			|||||||
    weatherData.currWeather = false
 | 
					    weatherData.currWeather = false
 | 
				
			||||||
    sunshine.timeBar = item
 | 
					    sunshine.timeBar = item
 | 
				
			||||||
  })
 | 
					  })
 | 
				
			||||||
 | 
					  console.log(timeline, 'klklkl')
 | 
				
			||||||
  // timeline.updateTime()
 | 
					  // timeline.updateTime()
 | 
				
			||||||
  // timeline.setCurrBar()
 | 
					  // timeline.setCurrBar()
 | 
				
			||||||
})
 | 
					})
 | 
				
			||||||
 | 
				
			|||||||
@ -3,6 +3,7 @@
 | 
				
			|||||||
    ref="baseDialog"
 | 
					    ref="baseDialog"
 | 
				
			||||||
    class="addDevice"
 | 
					    class="addDevice"
 | 
				
			||||||
    :title="addTitle"
 | 
					    :title="addTitle"
 | 
				
			||||||
 | 
					    style="z-index: 1000"
 | 
				
			||||||
    left="calc(50% - 160px)"
 | 
					    left="calc(50% - 160px)"
 | 
				
			||||||
    top="calc(50% - 120px)"
 | 
					    top="calc(50% - 120px)"
 | 
				
			||||||
  >
 | 
					  >
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										150
									
								
								src/renderer/src/views/components/propertyBox/addMaterials.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										150
									
								
								src/renderer/src/views/components/propertyBox/addMaterials.vue
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,150 @@
 | 
				
			|||||||
 | 
					<template>
 | 
				
			||||||
 | 
					  <Dialog
 | 
				
			||||||
 | 
					    ref="baseDialog"
 | 
				
			||||||
 | 
					    class="addDevice"
 | 
				
			||||||
 | 
					    :title="addTitle"
 | 
				
			||||||
 | 
					    style="z-index: 1000"
 | 
				
			||||||
 | 
					    left="calc(50% - 160px)"
 | 
				
			||||||
 | 
					    top="calc(50% - 120px)"
 | 
				
			||||||
 | 
					  >
 | 
				
			||||||
 | 
					    <template #content>
 | 
				
			||||||
 | 
					      <el-form
 | 
				
			||||||
 | 
					        label-width="0px"
 | 
				
			||||||
 | 
					        style="width: 300px"
 | 
				
			||||||
 | 
					        :model="addForm"
 | 
				
			||||||
 | 
					        :rules="peopleRules"
 | 
				
			||||||
 | 
					        ref="peopleFormRef"
 | 
				
			||||||
 | 
					      >
 | 
				
			||||||
 | 
					        <el-form-item label="" prop="name">
 | 
				
			||||||
 | 
					          <el-input v-model="addForm.name" placeholder="请输入物资名称" clearable />
 | 
				
			||||||
 | 
					        </el-form-item>
 | 
				
			||||||
 | 
					      </el-form>
 | 
				
			||||||
 | 
					    </template>
 | 
				
			||||||
 | 
					    <template #footer>
 | 
				
			||||||
 | 
					      <el-button @click="cancel">取消</el-button>
 | 
				
			||||||
 | 
					      <el-button type="primary" @click="submitProtal"> 确定 </el-button>
 | 
				
			||||||
 | 
					    </template>
 | 
				
			||||||
 | 
					  </Dialog>
 | 
				
			||||||
 | 
					</template>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<script setup lang="ts">
 | 
				
			||||||
 | 
					import { ref } from 'vue'
 | 
				
			||||||
 | 
					import { inject } from 'vue'
 | 
				
			||||||
 | 
					import { TreeApi } from '@/api/tree'
 | 
				
			||||||
 | 
					import Dialog from '@/components/dialog/baseDialog.vue'
 | 
				
			||||||
 | 
					import { initMapData } from '../../../common/initMapData'
 | 
				
			||||||
 | 
					import { useTreeNode } from '../tree/hooks/treeNode'
 | 
				
			||||||
 | 
					import { MaterialApi } from '@/api/material/index'
 | 
				
			||||||
 | 
					import { ElMessage, ElMessageBox } from 'element-plus'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const { cusAddNodes } = useTreeNode()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const baseDialog: any = ref(null)
 | 
				
			||||||
 | 
					const eventBus: any = inject('bus')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					var addTitle = ref('')
 | 
				
			||||||
 | 
					var peopleFormRef: any = ref('')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					var addForm: any = ref({
 | 
				
			||||||
 | 
					  name: ''
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const peopleRules: any = reactive({
 | 
				
			||||||
 | 
					  name: [{ required: true, message: '请输入名称', trigger: 'blur' }]
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					var cancel = () => {
 | 
				
			||||||
 | 
					  // pDialogVisible.value = false
 | 
				
			||||||
 | 
					  baseDialog.value?.close()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  addForm.value = {
 | 
				
			||||||
 | 
					    name: ''
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					var submitProtal = () => {
 | 
				
			||||||
 | 
					  peopleFormRef.value.validate(async (valid) => {
 | 
				
			||||||
 | 
					    if (valid) {
 | 
				
			||||||
 | 
					      if (addTitle.value == '添加物资') {
 | 
				
			||||||
 | 
					        const res = await MaterialApi.add(addForm.value)
 | 
				
			||||||
 | 
					        if (res.code === 200) {
 | 
				
			||||||
 | 
					          ElMessage.success('操作成功')
 | 
				
			||||||
 | 
					          eventBus.emit('addOptionResuit2')
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					      } else {
 | 
				
			||||||
 | 
					        const res = await MaterialApi.update(addForm.value)
 | 
				
			||||||
 | 
					        if (res.code === 200) {
 | 
				
			||||||
 | 
					          ElMessage.success('操作成功')
 | 
				
			||||||
 | 
					          eventBus.emit('addOptionResuit2')
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					      baseDialog.value?.close()
 | 
				
			||||||
 | 
					      return true
 | 
				
			||||||
 | 
					    } else {
 | 
				
			||||||
 | 
					      console.log('error submit!!')
 | 
				
			||||||
 | 
					      return false
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					eventBus.on('openAddMaterial', (params) => {
 | 
				
			||||||
 | 
					  addTitle.value = params.title
 | 
				
			||||||
 | 
					  if (addTitle.value != '添加物资') {
 | 
				
			||||||
 | 
					    addForm.value.name = params.data.name
 | 
				
			||||||
 | 
					    addForm.value.id = params.data.id
 | 
				
			||||||
 | 
					  } else {
 | 
				
			||||||
 | 
					    addForm.value = {
 | 
				
			||||||
 | 
					      name: ''
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  baseDialog.value?.open()
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					const open = () => {
 | 
				
			||||||
 | 
					  baseDialog.value?.open()
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					const confirm = () => {
 | 
				
			||||||
 | 
					  baseDialog.value?.close()
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					defineExpose({
 | 
				
			||||||
 | 
					  open
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					</script>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<style lang="scss">
 | 
				
			||||||
 | 
					.YJ-custom-base-dialog.addDevice > .content input,
 | 
				
			||||||
 | 
					.YJ-custom-base-dialog.addDevice > .content textarea {
 | 
				
			||||||
 | 
					  background-color: transparent !important;
 | 
				
			||||||
 | 
					  border: unset !important;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					</style>
 | 
				
			||||||
 | 
					<style scoped lang="scss">
 | 
				
			||||||
 | 
					::v-deep .el-form-item--label-right .el-form-item__label {
 | 
				
			||||||
 | 
					  color: #fff !important;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					::v-deep .el-form-item .el-input__wrapper {
 | 
				
			||||||
 | 
					  background-color: rgba(0, 0, 0, 0.5) !important;
 | 
				
			||||||
 | 
					  box-shadow: 0 0 0 0.5px rgba(var(--color-base1), 1) inset !important; /* 新增此行 */
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					::v-deep .el-form-item .el-select__wrapper {
 | 
				
			||||||
 | 
					  background-color: rgba(0, 0, 0, 0.5) !important;
 | 
				
			||||||
 | 
					  box-shadow: 0 0 0 0.5px rgba(var(--color-base1), 1) inset !important; /* 新增此行 */
 | 
				
			||||||
 | 
					  :deep(input) {
 | 
				
			||||||
 | 
					    background-color: transparent !important;
 | 
				
			||||||
 | 
					    border: unset !important;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					::v-deep .el-form-item .el-input__inner {
 | 
				
			||||||
 | 
					  color: #fff !important;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					::v-deep .el-form-item .el-select__placeholder {
 | 
				
			||||||
 | 
					  color: #fff !important;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					::v-deep .el-input__wrapper {
 | 
				
			||||||
 | 
					  padding: 0px !important;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					::v-deep .el-button:hover {
 | 
				
			||||||
 | 
					  background-color: rgba(var(--color-base1), 0.2) !important;
 | 
				
			||||||
 | 
					  color: rgba(var(--color-base1), 1) !important;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					// ::v-deep .el-form-item__content {
 | 
				
			||||||
 | 
					//   margin-left: 0px !important;
 | 
				
			||||||
 | 
					// }
 | 
				
			||||||
 | 
					</style>
 | 
				
			||||||
@ -401,6 +401,17 @@ export const useTreeNode = () => {
 | 
				
			|||||||
      // render: renderFlyLine,
 | 
					      // render: renderFlyLine,
 | 
				
			||||||
      // detailFun: get_detail_flyLine,
 | 
					      // detailFun: get_detail_flyLine,
 | 
				
			||||||
      // allowChildren: false,
 | 
					      // allowChildren: false,
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    folder: {
 | 
				
			||||||
 | 
					      rightMenus: [
 | 
				
			||||||
 | 
					        'edit',
 | 
				
			||||||
 | 
					        'del',
 | 
				
			||||||
 | 
					        'setView',
 | 
				
			||||||
 | 
					        'resetView'
 | 
				
			||||||
 | 
					      ]
 | 
				
			||||||
 | 
					      // render: renderFlyLine,
 | 
				
			||||||
 | 
					      // detailFun: get_detail_flyLine,
 | 
				
			||||||
 | 
					      // allowChildren: false,
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
  /**
 | 
					  /**
 | 
				
			||||||
@ -440,7 +451,7 @@ export const useTreeNode = () => {
 | 
				
			|||||||
  const cusNodeIcon = async (node) => {
 | 
					  const cusNodeIcon = async (node) => {
 | 
				
			||||||
    let availablePort = await ipcRenderer.invoke('get-available-port');
 | 
					    let availablePort = await ipcRenderer.invoke('get-available-port');
 | 
				
			||||||
    let type
 | 
					    let type
 | 
				
			||||||
    if(node.sourcePath || node.sourceType === 'vector') {
 | 
					    if (node.sourcePath || node.sourceType === 'vector') {
 | 
				
			||||||
      let path = node.sourcePath ? node.sourcePath : JSON.parse(node.params).path
 | 
					      let path = node.sourcePath ? node.sourcePath : JSON.parse(node.params).path
 | 
				
			||||||
      // 获取最后一个点的位置
 | 
					      // 获取最后一个点的位置
 | 
				
			||||||
      const lastDotIndex = path.lastIndexOf('.');
 | 
					      const lastDotIndex = path.lastIndexOf('.');
 | 
				
			||||||
@ -469,7 +480,7 @@ export const useTreeNode = () => {
 | 
				
			|||||||
      name = "lineDrawing";
 | 
					      name = "lineDrawing";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    let strokeWidth = 0.1
 | 
					    let strokeWidth = 0.1
 | 
				
			||||||
      if(type === 'ellipse') {
 | 
					    if (type === 'ellipse') {
 | 
				
			||||||
      strokeWidth = 1.5;
 | 
					      strokeWidth = 1.5;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -538,7 +549,7 @@ export const useTreeNode = () => {
 | 
				
			|||||||
      allNodes = allNodes.concat(treeObj.transformToArray(node))
 | 
					      allNodes = allNodes.concat(treeObj.transformToArray(node))
 | 
				
			||||||
    })
 | 
					    })
 | 
				
			||||||
    allNodes.forEach((node: any) => {
 | 
					    allNodes.forEach((node: any) => {
 | 
				
			||||||
      if(node.sourceType !== 'FeatureCollection' && node.sourceType !== 'Feature') {
 | 
					      if (node.sourceType !== 'FeatureCollection' && node.sourceType !== 'Feature') {
 | 
				
			||||||
        _idSet.add(node.id)
 | 
					        _idSet.add(node.id)
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
      treeObj.removeNode(node)
 | 
					      treeObj.removeNode(node)
 | 
				
			||||||
 | 
				
			|||||||
@ -11,8 +11,14 @@
 | 
				
			|||||||
  <firstMenu class="absolute zIndex9" ref="firstMenuRef"></firstMenu>
 | 
					  <firstMenu class="absolute zIndex9" ref="firstMenuRef"></firstMenu>
 | 
				
			||||||
  <!--底部菜单-->
 | 
					  <!--底部菜单-->
 | 
				
			||||||
  <bottomMenu class="absolute zIndex9" ref="bottomMenuRef"></bottomMenu>
 | 
					  <bottomMenu class="absolute zIndex9" ref="bottomMenuRef"></bottomMenu>
 | 
				
			||||||
  <input type="file" id="fileInputlink" style="display: none" multiple accept=".jpeg,.png,.jpg,.mp4,.pdf"
 | 
					  <input
 | 
				
			||||||
    @input="uploadFile" />
 | 
					    type="file"
 | 
				
			||||||
 | 
					    id="fileInputlink"
 | 
				
			||||||
 | 
					    style="display: none"
 | 
				
			||||||
 | 
					    multiple
 | 
				
			||||||
 | 
					    accept=".jpeg,.png,.jpg,.mp4,.pdf"
 | 
				
			||||||
 | 
					    @input="uploadFile"
 | 
				
			||||||
 | 
					  />
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  <!-- 多点视线分析 -->
 | 
					  <!-- 多点视线分析 -->
 | 
				
			||||||
  <!-- <Visibility ref="visibility"></Visibility> -->
 | 
					  <!-- <Visibility ref="visibility"></Visibility> -->
 | 
				
			||||||
@ -45,6 +51,7 @@
 | 
				
			|||||||
  <modelObject ref="modelobject"></modelObject>
 | 
					  <modelObject ref="modelobject"></modelObject>
 | 
				
			||||||
  <graphObject ref="graphobject"></graphObject>
 | 
					  <graphObject ref="graphobject"></graphObject>
 | 
				
			||||||
  <addDevice ref="adddevice"></addDevice>
 | 
					  <addDevice ref="adddevice"></addDevice>
 | 
				
			||||||
 | 
					  <addMaterials ref="addmaterials"></addMaterials>
 | 
				
			||||||
</template>
 | 
					</template>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<script setup lang="ts">
 | 
					<script setup lang="ts">
 | 
				
			||||||
@ -121,9 +128,10 @@ import graph from '../components/propertyBox/graph.vue'
 | 
				
			|||||||
import graphSetting from '../components/propertyBox/graphSetting.vue'
 | 
					import graphSetting from '../components/propertyBox/graphSetting.vue'
 | 
				
			||||||
import photo from '../components/propertyBox/photo.vue'
 | 
					import photo from '../components/propertyBox/photo.vue'
 | 
				
			||||||
import addDevice from '../components/propertyBox/addDevice.vue'
 | 
					import addDevice from '../components/propertyBox/addDevice.vue'
 | 
				
			||||||
 | 
					import addMaterials from '../components/propertyBox/addMaterials.vue'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import { GisApi } from '@/api/gisApi'
 | 
					import { GisApi } from '@/api/gisApi'
 | 
				
			||||||
import { sysChange as utilsSysChange } from "@/utils/sysChange";
 | 
					import { sysChange as utilsSysChange } from '@/utils/sysChange'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const { rightMenus } = useRightOperate()
 | 
					const { rightMenus } = useRightOperate()
 | 
				
			||||||
const firstMenuRef = ref(null)
 | 
					const firstMenuRef = ref(null)
 | 
				
			||||||
@ -532,9 +540,9 @@ const getStatus = (time) => {
 | 
				
			|||||||
  const currentTimestamp = Date.now()
 | 
					  const currentTimestamp = Date.now()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  if (timestamp > currentTimestamp) {
 | 
					  if (timestamp > currentTimestamp) {
 | 
				
			||||||
    ; (window as any).checkAuthIsValid = true
 | 
					    ;(window as any).checkAuthIsValid = true
 | 
				
			||||||
  } else {
 | 
					  } else {
 | 
				
			||||||
    ; (window as any).checkAuthIsValid = false
 | 
					    ;(window as any).checkAuthIsValid = false
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user