forked from drone/command-center-dashboard

chenyao
2025-03-27 8f11cb696270da92c275d30a335ce56b9a489fe8
Merge branch 'master' of http://139.196.74.78:10010/r/drone/command-center-dashboard
1 files renamed
3 files modified
13 files added
264 ■■■■■ changed files
src/assets/images/home/homeRight/data1.png patch | view | raw | blame | history
src/assets/images/home/homeRight/data2.png patch | view | raw | blame | history
src/assets/images/home/homeRight/data3.png patch | view | raw | blame | history
src/assets/images/home/homeRight/data4.png patch | view | raw | blame | history
src/assets/images/home/homeRight/overview1.png patch | view | raw | blame | history
src/assets/images/home/homeRight/overview2.png patch | view | raw | blame | history
src/assets/images/home/homeRight/overview3.png patch | view | raw | blame | history
src/assets/images/home/homeRight/overview4.png patch | view | raw | blame | history
src/assets/images/home/homeRight/overview5.png patch | view | raw | blame | history
src/assets/images/home/homeRight/overview6.png patch | view | raw | blame | history
src/assets/images/home/homeRight/overviewBg.png patch | view | raw | blame | history
src/assets/images/home/homeRight/rawDataBg.png patch | view | raw | blame | history
src/assets/images/home/homeRight/rowData.png patch | view | raw | blame | history
src/assets/images/home/homeRight/synergyBg.png patch | view | raw | blame | history
src/views/Home/components/HomeRight/EventOverview.vue 101 ●●●●● patch | view | raw | blame | history
src/views/Home/components/HomeRight/Synergy.vue 13 ●●●●● patch | view | raw | blame | history
src/views/Home/components/HomeRight/TaskAchievements.vue 150 ●●●●● patch | view | raw | blame | history
src/assets/images/home/homeRight/data1.png
src/assets/images/home/homeRight/data2.png
src/assets/images/home/homeRight/data3.png
src/assets/images/home/homeRight/data4.png
src/assets/images/home/homeRight/overview1.png
src/assets/images/home/homeRight/overview2.png
src/assets/images/home/homeRight/overview3.png
src/assets/images/home/homeRight/overview4.png
src/assets/images/home/homeRight/overview5.png
src/assets/images/home/homeRight/overview6.png
src/assets/images/home/homeRight/overviewBg.png
src/assets/images/home/homeRight/rawDataBg.png
src/assets/images/home/homeRight/rowData.png
src/assets/images/home/homeRight/synergyBg.png

src/views/Home/components/HomeRight/EventOverview.vue
@@ -1,10 +1,41 @@
<script setup>
import CommonTitle from '@/components/CommonTitle.vue';
import { wToR } from '@/utils/pxConver';
import overviewImg1 from '@/assets/images/home/homeRight/overview1.png';
import overviewImg2 from '@/assets/images/home/homeRight/overview2.png';
import overviewImg3 from '@/assets/images/home/homeRight/overview3.png';
import overviewImg4 from '@/assets/images/home/homeRight/overview4.png';
import overviewImg5 from '@/assets/images/home/homeRight/overview5.png';
import overviewImg6 from '@/assets/images/home/homeRight/overview6.png';
const list = ref([
  { name: '待审核', value: 265, img: overviewImg1, color: '#FF8E8E' },
  { name: '待分拨', value: 266, img: overviewImg2, color: '#6FCAFF' },
  { name: '待处理', value: 262, img: overviewImg3, color: '#6FCAFF' },
  { name: '处理中', value: 262, img: overviewImg4, color: '#FFD509' },
  { name: '已完成', value: 246, img: overviewImg5, color: '#FF8E8E' },
  { name: '已完结', value: 262, img: overviewImg6, color: '#8EFFAC' },
]);
</script>
<template>
  <CommonTitle title="事件概况" />
  <div class="eventOverview"></div>
  <div :style="{ marginLeft: wToR(14) }">
    <div class="eventOverview">
      <div class="overviewData">
        <div class="totalBox">
          <div class="totalNumber">8096</div>
          <div class="totalLabel">总事件数</div>
        </div>
        <div class="contentBox">
          <div class="overviewItem" v-for="item in list" :key="item.name">
            <div class="itemName"><img :src="item.img" alt="" />{{ item.name }}</div>
            <div class="itemValue" :style="{ color: item.color }">{{ item.value }}</div>
          </div>
        </div>
      </div>
    </div>
  </div>
</template>
<style scoped lang="scss">
@@ -20,5 +51,73 @@
  border-radius: 0px 0px 0px 0px;
  opacity: 0.85;
  margin: hToV(3) 0 0 0;
  padding-top: hToV(15);
  display: flex;
  flex-direction: column;
  align-items: center;
  .overviewData {
    width: 360px;
    height: hToV(122);
    background: url('@/assets/images/home/homeRight/overviewBg.png') no-repeat center / 100% 100%;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-left: 11px;
    .totalBox {
      .totalNumber {
        font-family: YouSheBiaoTiHei, YouSheBiaoTiHei;
        font-weight: 400;
        font-size: 26px;
        color: #ffffff;
        line-height: hToV(30);
        text-align: center;
      }
      .totalLabel {
        font-family: Source Han Sans CN, Source Han Sans CN;
        font-weight: 400;
        font-size: 14px;
        color: #ffffff;
        line-height: hToV(20);
        text-align: center;
      }
    }
    .contentBox {
      width: 246px;
      display: flex;
      flex-wrap: wrap;
      gap: hToV(13) 0;
      font-family: Source Han Sans CN, Source Han Sans CN, serif;
      font-weight: 400;
      font-size: 14px;
      color: #ffffff;
      line-height: hToV(14);
      .overviewItem {
        width: calc(100% / 3);
        .itemName {
          display: flex;
          align-items: center;
          margin-bottom: hToV(6);
          img {
            width: 16px;
            height: hToV(16);
          }
        }
        .itemValue {
          font-family: YouSheBiaoTiHei, YouSheBiaoTiHei, serif;
          font-weight: 400;
          font-size: 24px;
          line-height: hToV(18);
        }
      }
    }
  }
}
</style>
src/views/Home/components/HomeRight/Synergy.vue
@@ -1,5 +1,6 @@
<script setup>
import CommonTitle from '@/components/CommonTitle.vue';
import { wToR } from '@/utils/pxConver';
const list = ref([
  { name: '替代人工(人次)', value: 1174, color: '#FFFFFF' },
@@ -9,10 +10,12 @@
</script>
<template>
  <CommonTitle title="降本增效" />
  <div class="synergy">
    <div class="synergy-item" v-for="item in list">
      <div class="title">{{ item.name }}</div>
      <div class="value" :style="{ color: item.color }">{{ item.value }}</div>
  <div :style="{ marginLeft: wToR(14) }">
    <div class="synergy">
      <div class="synergy-item" v-for="item in list">
        <div class="title">{{ item.name }}</div>
        <div class="value" :style="{ color: item.color }">{{ item.value }}</div>
      </div>
    </div>
  </div>
</template>
@@ -37,7 +40,7 @@
    width: 95px;
    height: hToV(77);
    padding-top: hToV(7);
    background: url('@/assets/images/home/synergyBg.png') no-repeat center center / 100% 100%;
    background: url('@/assets/images/home/homeRight/synergyBg.png') no-repeat center center / 100% 100%;
    .title {
      font-family: Source Han Sans CN, Source Han Sans CN, serif;
src/views/Home/components/HomeRight/TaskAchievements.vue
@@ -1,13 +1,56 @@
<script setup>
import CommonTitle from '@/components/CommonTitle.vue';
import { wToR } from '@/utils/pxConver';
import data1 from '@/assets/images/home/homeRight/data1.png';
import data2 from '@/assets/images/home/homeRight/data2.png';
import data3 from '@/assets/images/home/homeRight/data3.png';
import data4 from '@/assets/images/home/homeRight/data4.png';
const detailsFun = () => {
  console.log('details');
};
const list = ref([
  { name: 'AI识别', value: '14656', color: '#6DD7FF', img: data1 },
  { name: '全景', value: '174', color: '#FFAD64', img: data2 },
  { name: '三维', value: '897', color: '#8EFFAC', img: data3 },
  { name: '正射', value: '1185', color: '#61FFFC', img: data4 },
]);
</script>
<template>
  <CommonTitle title="任务成果" @details="detailsFun" />
  <div class="taskAchievements"></div>
  <div :style="{ marginLeft: wToR(14) }">
    <div class="taskAchievements">
      <div class="rawData">
        <div class="bigTitle">原始<br />数据</div>
        <div class="rawDataRight">
          <img src="../../../../assets/images/home/homeRight/rowData.png" alt="" />
          <div class="rawDataContent">
            <div>
              <div class="title">照片总数(张)</div>
              <div class="value">6582</div>
            </div>
            <div>
              <div class="title">视频总数(个)</div>
              <div class="value">4785</div>
            </div>
          </div>
        </div>
      </div>
      <div class="processingData">
        <div class="bigTitle">处理<br />数据</div>
        <div class="data-right">
          <div v-for="item in list">
            <img :src="item.img" alt="" />
            <div class="content">
              <div class="title">{{ item.name }}</div>
              <div class="value" :style="{ color: item.color }">{{ item.value }}</div>
            </div>
          </div>
        </div>
      </div>
    </div>
  </div>
</template>
<style scoped lang="scss">
@@ -20,8 +63,111 @@
    rgba(31, 62, 122, 0.35) 79%,
    rgba(31, 62, 122, 0) 100%
  );
  border-radius: 0px 0px 0px 0px;
  opacity: 0.85;
  margin: hToV(2) 0 hToV(21) 0;
  padding-left: 17px;
  padding-top: hToV(15);
  .rawData {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 353px;
    .rawDataRight {
      width: 295px;
      background: url('@/assets/images/home/homeRight/rawDataBg.png') no-repeat left 32px center/ 100% 100%;
      display: flex;
      > img {
        height: hToV(63);
        width: 63px;
      }
      .rawDataContent {
        display: flex;
        justify-content: space-evenly;
        color: #ffffff;
        width: 0;
        flex-grow: 1;
        padding-top: hToV(12);
        .title {
          font-family: Source Han Sans CN, Source Han Sans CN, serif;
          font-weight: 400;
          font-size: 14px;
          line-height: hToV(13);
          text-align: left;
          margin-bottom: hToV(6);
        }
        .value {
          font-family: YouSheBiaoTiHei, YouSheBiaoTiHei, serif;
          font-weight: 400;
          font-size: 26px;
          line-height: hToV(22);
          text-shadow: 0px 2px 2px rgba(0, 0, 0, 0.25);
          text-align: left;
        }
      }
    }
  }
  .processingData {
    margin-top: hToV(19);
    display: flex;
    align-items: center;
    .data-right {
      width: 289px;
      display: flex;
      flex-wrap: wrap;
      justify-content: space-between;
      gap: hToV(8) 0;
      > div {
        width: 135px;
        height: hToV(42);
        display: flex;
        > img {
          width: 32px;
          height: hToV(32);
          margin-right: 10px;
        }
        .content {
          width: 0;
          flex: 1;
          .title {
            font-family: Source Han Sans CN, Source Han Sans CN;
            font-weight: 400;
            font-size: 14px;
            color: #ffffff;
            line-height: hToV(17);
            text-align: left;
          }
          .value {
            font-family: YouSheBiaoTiHei, YouSheBiaoTiHei;
            font-weight: 400;
            font-size: 24px;
            line-height: hToV(23);
            text-align: left;
          }
        }
      }
    }
  }
}
.bigTitle {
  margin-right: 22px;
  font-family: Source Han Sans CN, Source Han Sans CN, serif;
  font-weight: bold;
  font-size: 18px;
  color: #e1f5ff;
  line-height: hToV(22);
}
</style>