无人机管理后台前端(已迁走)
张含笑
2025-11-25 e28434bc0c92113c93d7ffe0f0656f609690279b
Merge remote-tracking branch 'origin/feature/v8.0/8.0.3' into feature/v8.0/8.0.3
5 files modified
1 files deleted
288 ■■■■ changed files
src/views/authority/role.vue 14 ●●●●● patch | view | raw | blame | history
src/views/system/user.vue 12 ●●●● patch | view | raw | blame | history
src/views/tickets/component/AddEditDetails.vue 10 ●●●●● patch | view | raw | blame | history
src/views/tickets/component/SearchBox.vue 12 ●●●● patch | view | raw | blame | history
src/views/tickets/orderLog.vue 49 ●●●● patch | view | raw | blame | history
src/views/tickets/orderLog1.vue 191 ●●●●● patch | view | raw | blame | history
src/views/authority/role.vue
@@ -24,6 +24,11 @@
                   :props="props">
          </el-tree>
        </el-tab-pane>
        <el-tab-pane label="大屏菜单">
          <el-tree :data="menuGrantListOld" show-checkbox node-key="id" ref="treeMenuApp" :default-checked-keys="menuTreeObjOld"
                   :props="props">
          </el-tree>
        </el-tab-pane>
        <!-- <el-tab-pane label="数据权限">
          <el-tree
            :data="dataScopeGrantList"
@@ -82,11 +87,13 @@
      },
      menuGrantList: [],
      menuGrantListApp: [],
      menuGrantListOld: [],
      dataScopeGrantList: [],
      apiScopeGrantList: [],
      apiGrantList: [],
      menuTreeObj: [],
      menuTreeObjApp: [],
      menuTreeObjOld: [],
      dataScopeTreeObj: [],
      apiScopeTreeObj: [],
      selectionList: [],
@@ -350,6 +357,13 @@
          this.box = true
        })
      })
      grantTree({sysType: 2}).then(res => {
        this.menuGrantListOld = res.data.data.menu
        getRole(this.ids).then(res => {
          this.menuTreeObjOld = res.data.data.menu
          this.box = true
        })
      })
    },
    handleDelete () {
      if (this.selectionList.length === 0) {
src/views/system/user.vue
@@ -490,7 +490,7 @@
                label: '所属部门',
                prop: 'deptId',
                type: 'tree',
                multiple: true,
                multiple: false,
                dicData: [],
                // props: {
                //   label: 'title',
@@ -793,7 +793,7 @@
        }
      }
      row.deptId = func.join(row.deptId)
      // row.deptId = func.join(row.deptId)
      row.roleId = func.join(row.roleId)
      row.postId = func.join(row.postId)
      row.name = row.realName
@@ -836,7 +836,7 @@
        }
      }
      row.deptId = func.join(row.deptId)
      // row.deptId = func.join(row.deptId)
      row.roleId = func.join(row.roleId)
      row.postId = func.join(row.postId)
      row.name = row.realName
@@ -1061,9 +1061,9 @@
      if (['edit', 'view'].includes(type)) {
        getUser(this.form.id).then(res => {
          this.form = res.data.data
          if (this.form.hasOwnProperty('deptId')) {
            this.form.deptId = func.split(this.form.deptId)
          }
          // if (this.form.hasOwnProperty('deptId')) {
          //   this.form.deptId = func.split(this.form.deptId)
          // }
          if (this.form.hasOwnProperty('roleId')) {
            this.form.roleId = func.split(this.form.roleId)
          }
src/views/tickets/component/AddEditDetails.vue
@@ -364,12 +364,14 @@
      positions.unshift({latitude: maxItem.latitude, longitude: maxItem.longitude, height:maxItem.drone_height })
      positions.push({latitude: maxItem.latitude, longitude: maxItem.longitude, height:maxItem.drone_height})
      let resultHeight = 0
      let valueHeight = 0
      await getWaylineMaxTerrainHeight(positions).then(res => {
        resultHeight = safeHeight.value > (res.data.data + 30) ? safeHeight.value : (res.data.data + 30)
        resultHeight = (safeHeight.value + maxItem.drone_height) > (res.data.data + 30) ? (safeHeight.value + maxItem.drone_height) : (res.data.data + 30)
        console.log(resultHeight,maxItem.drone_height, '999')
        valueHeight = (resultHeight - maxItem.drone_height) > backHeight ? _.round(resultHeight - maxItem.drone_height) : 0
      })
      let valueHeight = _.round(backHeight - resultHeight, 2)
      if (valueHeight < 0) {
        await ElMessageBox.confirm(`当前返航高度存在安全隐患,建议调整为${resultHeight}米以上后进行发布`, '提示', {
      if (valueHeight > 0) {
        await ElMessageBox.confirm(`当前返航高度存在安全隐患,建议调整为${valueHeight}米以上后进行发布`, '提示', {
          confirmButtonText: '确定',
          cancelButtonText: '取消',
          type: 'warning'
src/views/tickets/component/SearchBox.vue
@@ -115,6 +115,9 @@
const aiTypeList = inject('aiTypeList')
watch(activeTab, (newTab, oldTab) => {
  if (newTab === 'all') {
    searchForm.status = ''
  }
  if(newTab === 'WAIT_AUDIT') {
    searchForm.status = '1'
  }
@@ -124,7 +127,8 @@
  if(newTab === 'PASS') {
    searchForm.status = '3'
  }
}, { immediate: true })
  emit('search', searchForm);
})
// 周期
const cycles = ref(['每天', '周一', '周二', '周三', '周四', '周五', '周六', '周末', '周天', '工作日'])
@@ -172,10 +176,14 @@
  searchForm.deal_time = ""
  searchForm.file_id = ""
  searchForm.key_word = ""
  searchForm.status = ''
  if (activeTab.value === 'all') {
    searchForm.status = ''
  }
  searchForm.rep_fre_type = ''
  dateRange.value = ''
  searchForm.create_start_date = null
  searchForm.create_end_date = null
  cycleDateRange.value = ''
  searchForm.start_date = null
  searchForm.emd_date = null
  emit('search', searchForm);
src/views/tickets/orderLog.vue
@@ -9,7 +9,7 @@
        <el-button type="success" plain icon="el-icon-download" @click="exportData">导出
        </el-button>
        <div class="task-table">
          <el-table border :data="orderListTable" class="custom-header">
          <el-table border :data="orderListTable" class="custom-header" @cell-click="handleCellClick">
            <el-table-column label="序号" type="index" width="60">
              <template #default="{ $index }">
                {{ ($index + 1 + (orderListParams.current - 1) * orderListParams.size).toString().padStart(2,
@@ -173,17 +173,17 @@
// tab切换
function handleTabChange (tab) {
  activeTab.value = tab.paneName
  orderListParams.status = ''
  if (tab.paneName === 'WAIT_AUDIT') {
    orderListParams.status = '1'
  } else if (tab.paneName === 'REJECTED') {
    orderListParams.status = '2'
  } else if (tab.paneName === 'PASS') {
    orderListParams.status = '3'
  } else if (tab.paneName === 'DRAFT') {
    orderListParams.status = '0'
  }
  refreshGetOrderList()
  // orderListParams.status = ''
  // if (tab.paneName === 'WAIT_AUDIT') {
  //   orderListParams.status = '1'
  // } else if (tab.paneName === 'REJECTED') {
  //   orderListParams.status = '2'
  // } else if (tab.paneName === 'PASS') {
  //   orderListParams.status = '3'
  // } else if (tab.paneName === 'DRAFT') {
  //   orderListParams.status = '0'
  // }
  // refreshGetOrderList()
}
// 更新统计数
@@ -260,7 +260,6 @@
const searchClick = params => {
  orderListParams.current = 1
  orderListParams.size = 10
  console.log('333', params)
  orderListParams.searchParams = params
  getTableList()
}
@@ -398,6 +397,30 @@
  }
}
function handleCellClick (row, column) {
  if (column.no === 1) {
    navigator.clipboard.writeText(row.job_info_num).then(() => {
      ElMessage.success('复制工单编号成功')
    })
  } else if (column.no === 2) {
    navigator.clipboard.writeText(row.name).then(() => {
      ElMessage.success('复制工单名称成功')
    })
  } else if (column.no === 4) {
    navigator.clipboard.writeText(row.dept_name).then(() => {
      ElMessage.success('复制所属单位成功')
    })
  } else if (column.no === 8) {
    navigator.clipboard.writeText(row.wayline_name).then(() => {
      ElMessage.success('复制关联航线成功')
    })
  } else if (column.no === 9) {
    navigator.clipboard.writeText(row.ai_type_str).then(() => {
      ElMessage.success('复制关联算法成功')
    })
  }
}
// 删除
async function deleteOrder(id) {
  try {
src/views/tickets/orderLog1.vue
File was deleted