无人机管理后台前端(已迁走)
张含笑
2025-12-09 5808f76456ca0d40de5074f132b73a5a488e3e13
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,
@@ -72,9 +72,19 @@
<!--                </template>-->
              </template>
            </el-table-column>
            <template #empty>
              <el-empty
                class="custom-empty"
                :image-size="100"
              >
                <template #description>
                  <span class="custom-text">暂无数据</span>
                </template>
              </el-empty>
            </template>
          </el-table>
        </div>
        <div class="pagination">
        <div class="pagination" v-if="orderListTable.length > 0">
          <el-pagination class="ztzf-pagination" popper-class="custom-pagination-dropdown" background
                         :page-sizes="[10, 20, 30, 40, 50, 100]" v-model:current-page="orderListParams.current"
                         v-model:page-size="orderListParams.size" layout="total, sizes, prev, pager, next, jumper" :total="total"
@@ -91,19 +101,14 @@
import AddEditDetails from './component/AddEditDetails.vue'
import NProgress from 'nprogress'
import { useStore } from 'vuex'
import { useRoute } from 'vue-router'
import { downloadXls } from '@/utils/util'
import {
  getList,
  saveUpdateOrderLog,
  orderLogDetails,
  orderLogRecall,
  orderLogReject,
  orderLogPass,
  orderLogExport,
  jobStatusNum,
  userPublish,
  deleteOrderLog,
  getWaylineMaxTerrainHeight
} from '@/api/tickets/orderLog'
import { newGetWorkspacesPage } from '@/api/resource/wayline'
import { getDictionaryByCode } from '@/api/system/dictbiz'
@@ -116,11 +121,10 @@
import { aiImagesPage } from '@/api/dataCenter/dataCenter';
const store = useStore()
const route = useRoute()
const userInfo = computed(() => store.state.user.userInfo)
const permission = computed(() => store.state.user.permission);
console.log(userInfo,permission, '8888')
const isShowAddEditDetails = ref(false)
@@ -150,7 +154,6 @@
  activeTab.value = tabsList.value[0].name
  // tab值传
  orderListParams.status = tabsList.value[0].value
  console.log('8878797', tabsList.value)
  // tabsList.value
  //   .map(tab => {
  //     if (tab.name === 'all') {
@@ -173,17 +176,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 +263,6 @@
const searchClick = params => {
  orderListParams.current = 1
  orderListParams.size = 10
  console.log('333', params)
  orderListParams.searchParams = params
  getTableList()
}
@@ -335,7 +337,6 @@
      ...cloneDeep(orderListParams.searchParams)
    }
    const res = await orderLogExport(apiParams)
    console.log(res, '导出')
    downloadXls(res.data, `智飞工单${dayjs().format('YYYY-MM-DD')}.xlsx`)
    ElMessage.success('导出成功')
@@ -398,6 +399,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 {
@@ -424,6 +449,9 @@
  filteredTabs()
  getTableList()
  updateGlobalCounts()
  if (route.query.id) {
    route.query.status === '1' ? handleCheckDetail({ id:  route.query.id}, '工单审核') : handleCheckDetail({ id:  route.query.id}, '工单详情')
  }
})
</script>
@@ -445,6 +473,12 @@
    height: calc(100vh - 380px);
    margin-top: 18px;
    overflow: auto;
    :deep(.el-scrollbar__view) {
      height: 100%;
    }
    :deep(.el-table--fit,.el-scrollbar__view) {
      height: 100%;
    }
  }
  .btnItem {
@@ -483,6 +517,7 @@
  :deep(.el-pagination) {
    display: flex;
    justify-content: right;
    padding: 20px 0;
  }
  :deep(.el-pagination button) {