无人机管理后台前端(已迁走)
张含笑
2025-12-09 69184b8d0feba548077e823fc402a9984b51beb7
Merge branch 'refs/heads/feature/v9.0/9.0.1' into feature/v9.0/9.0.2
5 files modified
69 ■■■■■ changed files
src/views/job/components/DeviceJobDetails.vue 32 ●●●● patch | view | raw | blame | history
src/views/wel/components/flightStatistics.vue 8 ●●●● patch | view | raw | blame | history
src/views/wel/components/flyratio.vue 8 ●●●● patch | view | raw | blame | history
src/views/wel/components/proportionStatic.vue 13 ●●●●● patch | view | raw | blame | history
src/views/wel/components/taskOutcome.vue 8 ●●●● patch | view | raw | blame | history
src/views/job/components/DeviceJobDetails.vue
@@ -229,22 +229,24 @@
      if (item.name === '自定义识别区') {
        item.value = res.data.data.enable_custom_area ? '是' : '否'
      }
      getJobsAllFiles({
        wayLineJobId: detailsData.value.way_lines.map(item => item.job_id).join(','),
        resultTypes: [0, 1, 2, 4, 5],
        orderByCreateTime: true,
      }).then(result => {
        if (result.data.code !== 200) return
        achievementList.value = res.data.data.records.map(i => ({
          ...i,
          checked: false,
          smallUrl: i.resultType === 4 ? getzsSmallImg(i.link) : getSmallImg(i.link),
          showUrl: i.resultType === 4 ? getzsShowImg(i.link) : getShowImg(i.link),
        }))
        total.value = res.data.data.total
        yuanImages.value = res.data.data.records.filter(item => item.resultType !== 1)
      })
    })
    getJobsAllFiles({
      wayLineJobId: detailsData.value.way_lines.map(item => item.job_id).join(','),
      resultTypes: [0, 1, 2, 4, 5],
      orderByCreateTime: true,
    }).then(res => {
      if (res.data.code !== 200) return
      achievementList.value = res.data.data.records.map(i => ({
        ...i,
        checked: false,
        smallUrl: i.resultType === 4 ? getzsSmallImg(i.link) : getSmallImg(i.link),
        showUrl: i.resultType === 4 ? getzsShowImg(i.link) : getShowImg(i.link),
      }))
      total.value = res.data.data.total
      yuanImages.value = res.data.data.records.filter(item => item.resultType !== 1)
    })
    // flystatus.value = res.data.data.ai_type_str
  })
src/views/wel/components/flightStatistics.vue
@@ -493,15 +493,19 @@
  margin-left: 15px;
  border-radius: 4px;
  .card-item {
.card-item {
    width: 94px;
    height: 100%;
    line-height: 28px;
    // line-height: 28px;
    cursor: pointer;
    font-family: 'Source Han Sans CN';
    font-weight: 400;
    font-size: 14px;
    color: #7c8091;
      border: 1px solid transparent;
      display: flex;
      align-items: center;
      justify-content: center;
  }
  .card-item:first-child {
src/views/wel/components/flyratio.vue
@@ -326,15 +326,19 @@
  margin-left: 15px;
  border-radius: 4px;
  .card-item {
.card-item {
    width: 94px;
    height: 100%;
    line-height: 28px;
    // line-height: 28px;
    cursor: pointer;
    font-family: 'Source Han Sans CN';
    font-weight: 400;
    font-size: 14px;
    color: #7c8091;
      border: 1px solid transparent;
      display: flex;
      align-items: center;
      justify-content: center;
  }
  .card-item:first-child {
src/views/wel/components/proportionStatic.vue
@@ -28,7 +28,7 @@
                <div class="ratio">
                  占比
                  <span :style="{ color: item.color }"
                    >{{ ((item.rate * 100) / 100).toFixed(2) }}%</span
                    >{{ item.rate || 0 }}%</span
                  >
                </div>
              </div>
@@ -133,12 +133,13 @@
let { chart } = useEchartsResize(echartsRef);
const initChart = val => {
  let totalNum = val[0].num //val.reduce((sum, item) => sum + item.num, 0);
  let filteredData = val.filter(item => item.name !== "全部状态");
  const data = {
    total: {
      title: '总计',
      figure: totalNum.toString(), // 动态计算总数
    },
    data: val.map(item => ({
    data: filteredData.map(item => ({
      value: item.num,
      name: item.name,
      rate: _.round((item.num/totalNum)*100, 1),
@@ -147,7 +148,7 @@
  const containerWidth = chart.value.clientWidth;
  const isSmallScreen = containerWidth < 768; // 移动端判断
  const echartsOption = {
    color: ['#FF472F', '#FF7411', '#FFC300', '#0291A1'],
    color: ['#0291A1', '#FF7411', '#FFC300', '#FF472F'],
    tooltip: {
      trigger: 'item',
      padding: 0,
@@ -366,12 +367,16 @@
  .card-item {
    width: 94px;
    height: 100%;
    line-height: 28px;
    // line-height: 28px;
    cursor: pointer;
    font-family: 'Source Han Sans CN';
    font-weight: 400;
    font-size: 14px;
    color: #7c8091;
      border: 1px solid transparent;
      display: flex;
      align-items: center;
      justify-content: center;
  }
  .card-item:first-child {
src/views/wel/components/taskOutcome.vue
@@ -278,15 +278,19 @@
  margin-left: 15px;
  border-radius: 4px;
  .card-item {
.card-item {
    width: 94px;
    height: 100%;
    line-height: 28px;
    // line-height: 28px;
    cursor: pointer;
    font-family: 'Source Han Sans CN';
    font-weight: 400;
    font-size: 14px;
    color: #7c8091;
      border: 1px solid transparent;
      display: flex;
      align-items: center;
      justify-content: center;
  }
  .card-item:first-child {