无人机管理后台前端(已迁走)
张含笑
2025-07-21 0ef8178b95e45ac2f5f29e3d1b3576f48e6cf588
feat:个人工作台调整
2 files modified
57 ■■■■■ changed files
src/views/wel/components/backlog.vue 55 ●●●●● patch | view | raw | blame | history
src/views/wel/components/flightStatistics.vue 2 ●●● patch | view | raw | blame | history
src/views/wel/components/backlog.vue
@@ -9,13 +9,13 @@
            <div>
              {{ item.name }}
              <div class="dots">{{ item.number >= 100 ? '99+' : item.number }}</div>
              <!-- <div class="dots">99+</div> -->
            </div>
          </div>
        </div>
      </div>
      <div class="todo-items" v-if="todos.length > 0" v-loading="loading">
      <div class="todo-items" v-if="todos.length > 0" v-loading="loading" element-loading-background="rgba(255, 255, 255, 0.5)">
        <div v-for="(item, index) in todos" :key="index" class="todo-item" :style="getStatusStyle(item.status)"
          @click="jumporder(item)">
          <div class="status-indicator"><img :src="getStatus(item.status)" alt=""></div>
@@ -65,6 +65,10 @@
const store = useStore()
const permission = computed(() => store.getters.permission)
const checked = ref('事件工单')
const todosCache = reactive({
  '事件工单': [],
  '智飞工单': []
})
const titleList = ref([
  {
    label: 'event_order_count',
@@ -77,11 +81,11 @@
    number: 0,
  },
])
const titleClick = (item, index) => {
  checked.value = item.name
  getListMatter()
}
const titleClick = async (item, index) => {
  checked.value = item.name
  await getListMatter()
}
const userInfo = computed(() => store.getters.userInfo)
const todos = ref([])
const loading = ref(false)
@@ -203,24 +207,25 @@
  })
}
// 获取事件工单或者智飞工单的信息
const getListMatter = async () => {
  if (checked.value === '事件工单') {
    loading.value = true
    const type = 1
  loading.value = true
  const type = checked.value === '事件工单' ? 1 : 2
  // 使用缓存数据
  if (todosCache[checked.value].length > 0) {
    todos.value = todosCache[checked.value]
  }
  try {
    const res = await getOrderOrEventApi(type, userInfo.value.detail.areaCode)
    todos.value = res.data.data || []
    const data = res.data.data || []
    todos.value = data
    todosCache[checked.value] = data
  } finally {
    loading.value = false
      //  console.log('事件工单', todos.value);
  } else if (checked.value === '智飞工单') {
    loading.value = true
    const type = 2
    const res = await getOrderOrEventApi(type, userInfo.value.detail.areaCode)
    todos.value = res.data.data || []
    loading.value = false
      //  console.log('智飞工单', todos.value);
  }
}
onMounted(() => {
  getListMatter()
  getOrderCount()
@@ -313,12 +318,19 @@
    .todo-items {
      margin-top: 10px;
      // height: 250px;
  transition: opacity 0.3s ease;
      height: pxToVh(250);
      overflow-y: scroll;
       &:empty {
    display: none;
  }
    }
    .todo-item {
      transition:
    transform 0.2s ease,
    box-shadow 0.2s ease,
    opacity 0.3s ease;
      margin: 6px 0;
      display: flex;
      align-items: center;
@@ -415,5 +427,8 @@
    font-size: 14px;
    color: #7c8091;
  }
  .el-empty {
  transition: opacity 0.3s ease;
}
}
</style>
src/views/wel/components/flightStatistics.vue
@@ -176,7 +176,7 @@
        },
      },
      axisLabel: {
        interval: 0,
        // interval: 0,
        color: '#383838',
      },
    },