| src/views/job/components/SearchBox.vue | ●●●●● patch | view | raw | blame | history | |
| src/views/layerManagement/components/leftList.vue | ●●●●● patch | view | raw | blame | history | |
| src/views/layerManagement/index.vue | ●●●●● patch | view | raw | blame | history |
src/views/job/components/SearchBox.vue
@@ -94,21 +94,19 @@ @clear="handleClear" /> </el-form-item> <!-- <el-form-item label="所属部门:" v-if="isExpand"> <el-select :teleported="false" <el-form-item label="所属部门:" v-if="isExpand"> <el-tree-select popper-class="custom-tree-select" v-model="searchForm.create_dept" placeholder="请选择" :data="deptData" :default-expanded-keys="[searchForm.create_dept]" check-strictly node-key="id" :props="treeDeptProps" clearable > <el-option v-for="item in deptData" :key="item.id" :label="item.deptName" :value="item.id" /> </el-select> </el-form-item> --> @change="(id) => handleDeptNodeClick({id})" /> </el-form-item> <el-form-item label="任务状态:" v-if="isExpand"> <el-select style="z-index: 1000" @@ -149,6 +147,7 @@ import { pxToRem } from '@/utils/rem'; import { ElMessage } from 'element-plus'; import { deptsByAreaCode, getSFDictionaryTree } from '@/api/job/task'; import { getDeptLazyTree } from '@/api/system/dept' // import TaskAlgorithmBusiness from './TaskAlgorithmBusiness.vue'; import dayjs from 'dayjs'; import { useStore } from 'vuex'; @@ -213,10 +212,8 @@ let deptData = ref([]); // 所属部门信息 const getDeptsByAreaCode = () => { deptsByAreaCode(searchForm.area_code).then(res => { if (res.code !== 0) { deptData.value = res.data.data; } getDeptLazyTree({ parentId: 0, level: 0 }).then(res => { deptData.value = res.data.data; }); }; @@ -225,20 +222,43 @@ // 机巢 let machineData = ref([]); // 记录选中行政区划值 let area_code_log = ref('') // 记录选中部门 let dept_id_log = ref('') // 部门下得机巢 const requestDockInfo = () => { getRegionTreeAll({ parentCode: userAreaCode.value }).then(res => { deptTreeData.value = res.data.data ? [res.data.data] : []; handleNodeClick({ id: userAreaCode.value }); area_code_log.value = userAreaCode.value roadDroneList() }); }; function handleNodeClick(data) { area_code_log.value = data?.id roadDroneList() } // 筛选部门管理 function handleDeptNodeClick(data) { dept_id_log.value = data.id roadDroneList() } // 算法 const treePropsSF = { label: 'dictValue', value: 'id', children: 'children', } // 部门 const treeDeptProps = { label: 'title', value: 'id', children: 'children', } const dictKey = ref('') const dataList = ref([]) @@ -280,24 +300,19 @@ handleSearch() } const handleNodeClick = async data => { async function roadDroneList() { // 处理机巢数据 searchForm.device_sn = ''; machineData.value = ''; searchForm.device_sn = '' machineData.value = '' const droneList = await getDeviceRegion({ area_code: area_code_log.value, dept_id: dept_id_log.value }) const droneList = await getDeviceRegion({ areaCode: data.id }); machineData.value = droneList?.data?.data; machineData.value = droneList?.data?.data // 默认选中值 if (signDevice_sn.value) { searchForm.device_sn = signDevice_sn.value; searchForm.device_sn = signDevice_sn.value } // 所属部门重新请求值 searchForm.create_dept = ''; deptData.value = []; getDeptsByAreaCode(); handleSearch(); }; handleSearch() } // 日期 和周期 let timeList = ['today', 'week', 'month', 'year']; @@ -359,8 +374,10 @@ // 清除算法 dictKey.value = ''; // algorithmRef.value?.clear() handleNodeClick({ id: userAreaCode.value }); handleSearch(); area_code_log.value = userAreaCode.value dept_id_log.value = '' roadDroneList() // handleSearch(); }; // 新增任务 @@ -416,6 +433,7 @@ onMounted(() => { requestDockInfo(); getDeptsByAreaCode() getAlgorithmList(); // 日历传值 const calendarday = ref(route.query.day); src/views/layerManagement/components/leftList.vue
@@ -69,16 +69,18 @@ <template #default="{ node }"> <div class="tree-node"> <!-- 节点名称 --> <span>{{ node.label }}</span> <span class="nodeName">{{ node.label }}</span> <!-- 操作按钮组 --> <div class="tree-node-actions"> <el-button link icon="el-icon-location" @click.stop="handleLocation(node)" >定位</el-button> <el-button link @click.stop="handleEdit(node)">编辑</el-button> <el-button link @click.stop="handleDelete(node)">删除</el-button> :disabled="node.data.level === 2 && (!node.data.children || node.data.children.length === 0)" class="location-btn" ></el-button> <el-button icon="el-icon-edit" link @click.stop="handleEdit(node)"></el-button> <el-button icon="el-icon-delete" link @click.stop="handleDelete(node)"></el-button> </div> </div> </template> @@ -106,7 +108,7 @@ const checkedKeys = ref([]); // 存储勾选的节点key const treeRef = ref(null); // 获取tree实例 const checkedNodes = ref([]); // 存储勾选的节点数据 const props = defineProps(['activeName']); const props = defineProps(['activeName','resetCheck']); const formData = ref({ isPush: undefined, page: 1, @@ -370,7 +372,19 @@ ElMessage.success('取消同步成功'); }); } // 切换tab清空复选框的数据 watch( () => props.resetCheck, (newVal) => { if (newVal !== undefined) { checkedKeys.value = []; checkedNodes.value = []; coverData.value = []; treeRef.value?.setCheckedKeys([]); } }, { immediate: true } ); onMounted(() => { failuresList(); gettreeDataApi(); @@ -457,8 +471,8 @@ flex-grow: 1; padding-right: 12px; :deep(.el-tree-node__content) { height: 38px !important; line-height: 38px !important; height: 35px !important; line-height: 35px !important; } .isTheTerritory { @@ -479,19 +493,28 @@ justify-content: space-between; align-items: center; width: 100%; .nodeName { font-size: 12px !important; } } .tree-node-actions { display: flex; // gap: 8px; // 按钮之间的间距 // gap: 8px; button { padding: 0; // 清除默认内边距 // color: #fff; // 按钮图标颜色 color: #409eff; &:hover { color: #409eff; // hover 时的颜色 } padding: 0; color: #fff; width: 17px; height: 17px; // color: #409eff; // &:hover { // color: #409eff; // } } } ::v-deep(.location-btn.el-button.is-link.is-disabled) { color: #999 !important; } } </style> src/views/layerManagement/index.vue
@@ -23,6 +23,7 @@ @update:editFolder="handleFolder" :activeName="activeName" @newFencesMethods="newFencesMethods" :reset-check="resetCheck" ></leftList> <rightEdit v-if="layerParams.addNest || layerParams.editNest" @@ -97,20 +98,23 @@ editFolderData: null, editingIsProhibited: false, //禁止编辑 isDetailShow: false, isSingleLocating:false , isSingleLocating:false , //是否是单个定位 currentLocationFolderId:null, }); const resetCheck = ref(false); const handleClick = tab => { const clickedTab = tabData.value.find(item => item.type === tab.paneName); activeType.value = clickedTab.type; activeName.value = clickedTab.name; getdataFolderApi(); parentMethod(); handleCoverDataUpdate([]) layerParams.value.addNest = false layerParams.value.editNest = false layerParams.value.addFolder = false layerParams.value.editFolder = false resetCheck.value = !resetCheck.value; }; const refreshMethod = () => { getdataFolderApi(); @@ -170,11 +174,8 @@ }; // 点击显示区域 const handleCoverDataUpdate = data => { console.log('daa',data); selectDataList.value = data; if (selectDataList.value.length > 0) { if (selectDataList.value?.length > 0) { loadDataToMap(selectDataList.value); } else { viewer.entities.removeAll(); @@ -221,7 +222,7 @@ : item.category_id === 3 ? colorMap.border3 : Cesium.Color.YELLOW; viewer.entities.add({ viewer.entities.add({ id: `polygon_${item.id}`, customType: 'fence_polygon', customInfo: item, @@ -377,7 +378,7 @@ let cartographic = Cesium.Cartographic.fromCartesian(item); let lng = Cesium.Math.toDegrees(cartographic.longitude); // 经度 let lat = Cesium.Math.toDegrees(cartographic.latitude); // 纬度 let height = Cesium.Math.toDegrees(cartographic.height); //高度 let height = Cesium.Math.toDegrees(cartographic.height); //高度 return { lng: _.round(lng, 6), lat: _.round(lat, 6),