forked from drone/command-center-dashboard

罗广辉
2025-04-17 e5278b8b1a5ce56803f2ffcab711c9c5f5339489
Merge remote-tracking branch 'origin/master'
8 files modified
1 files added
122 ■■■■ changed files
src/assets/images/home/useEventOperate/long-title.png patch | view | raw | blame | history
src/components/CommonDateTime.vue 12 ●●●● patch | view | raw | blame | history
src/hooks/components/DevicePopUpBox.vue 15 ●●●●● patch | view | raw | blame | history
src/views/Home/EventOverviewDetail/EventOverviewDetailRight.vue 39 ●●●●● patch | view | raw | blame | history
src/views/Home/HomeLeft/InspectionRaskDetails/InspectionRaskDetails.vue 2 ●●● patch | view | raw | blame | history
src/views/Home/HomeLeft/InspectionRaskDetails/InspectionRaskDetailsDialog.vue 38 ●●●● patch | view | raw | blame | history
src/views/Home/HomeLeft/MachineNestList.vue 5 ●●●●● patch | view | raw | blame | history
src/views/SignMachineNest/MachineRight/InspectionRaskList.vue 1 ●●●● patch | view | raw | blame | history
src/views/TaskManage/TaskIntermediateContent/AddTask.vue 10 ●●●● patch | view | raw | blame | history
src/assets/images/home/useEventOperate/long-title.png
src/components/CommonDateTime.vue
@@ -9,12 +9,13 @@
      end-placeholder="结束日期"
      @change="change"
      disabled
    :clearable="false"
    />
    <div class="time-card">
      <div
        class="card-item"
        :class="item === checked ? 'active' : ''"
        v-for="(item, index) in timeList"
        v-for="(item, index) in timeList" :key="index"
        @click="timeClick(item,index)"
      >
        {{ timeListStr[index] }}
@@ -81,12 +82,19 @@
  position: relative;
  display: flex;
  justify-content: space-between;
:deep(.el-date-editor .el-range__close-icon--hidden){
    width: 0 !important;
}
:deep(.el-date-editor .el-range-input){
width: 48% !important;
font-size: 13px !important;
}
  :deep(.el-date-editor) {
    box-shadow: none;
    width: 0;
    flex: 1;
    margin-right: 4px;
    // margin-right: 4px;
    background: rgba(0, 15, 34, 0.5);
    border-radius: 0px 0px 0px 0px;
src/hooks/components/DevicePopUpBox.vue
@@ -17,7 +17,7 @@
          <div class="num">{{ dataObj.device_num }}</div>
        </div>
        <div class="info-item">
          任务数:
          任务次数:
          <div class="num">{{ dataObj.jobNum }}</div>
        </div>
      </div>
@@ -55,6 +55,8 @@
  const areaCode = props.data.region_code;
  dataObj.value.region_name = props.data.region_name;
  const res = await getDeviceInfoNum({ areaCode });
  console.log('首页地图弹框',res);
  const resJob = await getTotalJobNum({ areaCode });
  dataObj.value.jobNum = resJob.data.data;
  dataObj.value.device_num = res.data.data.device_num;
@@ -126,7 +128,9 @@
      cursor: pointer;
    }
  }
.content {
padding: 0px 23px 25px 15px;
}
  .info {
    height: 34px;
    font-family: Source Han Sans CN, Source Han Sans CN, serif;
@@ -136,9 +140,8 @@
    line-height: 19px;
    display: flex;
    align-items: center;
    padding-left: 15px;
    gap: 0 20px;
    margin: 18px 0;
    justify-content: space-between;
    .info-item {
      display: flex;
@@ -161,13 +164,13 @@
    color: #ffffff;
    line-height: 23px;
    text-shadow: 0px 0px 12px rgba(68, 105, 255, 0.67);
    padding-left: 15px;
    margin-bottom: 14px;
  }
  .status-list {
    display: flex;
    justify-content: space-evenly;
    justify-content: space-between;
    align-items: center;
    .status-item {
src/views/Home/EventOverviewDetail/EventOverviewDetailRight.vue
@@ -199,14 +199,7 @@
const positioning = row => {
    const longitude = Number(row.longitude)
    const latitude = Number(row.latitude)
    // ismore 单独点击定位和未展开都为0 ismore为false 展开大图 值为0.004 ismore=true & isShowBigImg=true 展开大图 值为0.005
    if (isMore.value) {
        longitudeOffset.value = isShowBigImg.value ? 0.005 : 0.003
    }
    if (!isMore.value) {
        longitudeOffset.value = isShowBigImg.value ? 0.003 : 0;
    }
    flyTo({ longitude: longitude + longitudeOffset.value, latitude }, 1, 1000);
    flyTo({ longitude: longitude, latitude:latitude + 0.0002 }, 1, 1000);
}
// 事件状态+数量
@@ -539,22 +532,23 @@
    justify-content: center;
}
.image-list {
    border: 1px solid red;
    position: absolute;
    z-index: 10;
    z-index: 1;
    right: 460px;
    top: 122px;
    width: 800px;
    height: 600px;
    width: 540px;
    height: 420px;
    background: #0F1929;
    box-shadow: inset 0px -50px 50px 0px rgba(27,148,255,0.13);
    border-radius: 0px 0px 0px 0px;
    // box-shadow: inset 0px -50px 50px 0px rgba(27,148,255,0.13);
    // border-radius: 0px 0px 0px 0px;
    border: 2px solid;
    border-image: linear-gradient(180deg, rgba(81, 168, 255, 0), rgba(48, 111, 202, 1), rgba(255, 255, 255, 1), rgba(27, 148, 255, 1)) 2 2;
    .title {
        position: relative;
        position: absolute;
        text-align: right;
        right: 12px;
        top: 12px;
        // top: 12px;
        img {
            width: 10px;
            height: 10px;
@@ -562,24 +556,21 @@
        }
    }
    .content {
        width: 740px;
        height: 440px;
        box-shadow: 1px 3px 6px 0px rgba(81,168,255,0.58);
        border-radius: 20px 20px 20px 20px;
        border-image: linear-gradient(180deg, rgba(81, 168, 255, 1), rgba(189, 228, 255, 1)) 2 2;
        margin: 28px 28px;
        img {
            width: 100%;
            height: 100%;
            border-radius: 20px 20px 20px 20px;
            border-radius: 10px 10px 10px 10px;
        }
    }
    .card {
        margin: 26px 26px;
        background: linear-gradient( 180deg, rgba(13,30,70,0.72) 0%, #142E6B 100%);
        padding: 0px 10px 0px 10px;
        color: #BECBEA;
        display: flex;
        justify-content: space-between;
        position: relative;
        position: absolute;
        bottom: 0px;
        width: 100%;
        .time-top {
            width: 50px;
            height: 30px;
src/views/Home/HomeLeft/InspectionRaskDetails/InspectionRaskDetails.vue
@@ -8,7 +8,7 @@
                <div class="name">总任务数</div>
            </div>
            <div class="status">
                <div class="item" v-for="(item, index) in list">
                <div class="item" v-for="(item, index) in list" :key="index">
                    <div>
                        <div :style="{ color: item.color }" class="value">
                            {{ jobStatistics[item.field] }}
src/views/Home/HomeLeft/InspectionRaskDetails/InspectionRaskDetailsDialog.vue
@@ -86,11 +86,9 @@
                                    ? 'distributed'
                                    : scope.row.status === 3
                                    ? 'finish '
                                    : 'fail '
                            "
                        >
                                    : scope.row.status === 5
                                    ? 'fail '
                                    : ' '">
                            {{
                                scope.row.status === 1
                                    ? '待执行'
@@ -98,8 +96,9 @@
                                    ? '执行中'
                                    : scope.row.status === 3
                                    ? '已执行'
                                    : '执行失败'
                                    : scope.row.status === 5
                                    ? '执行失败'
                                    : ''
                            }}
                        </span>
                    </template>
@@ -115,7 +114,7 @@
            </el-table>
        </div>
        <!-- 分页 -->
        <div style="display: flex; justify-content: center;margin:15px 0;">
        <div style="display: flex; justify-content: center; margin: 15px 0">
            <el-pagination
                class="ztzf-pagination"
                v-model:current-page="pageParams.current"
@@ -150,8 +149,8 @@
    { label: '待执行', value: 1 },
    { label: '执行中', value: 2 },
    { label: '已完成', value: 3 },
    { label: '执行失败', value: 4 },
    { label: '执行失败', value: 5 },
]
// 设备页面参数
const devicePageParams = ref({
@@ -216,12 +215,11 @@
}
// 获取任务列表
const getJobList = () => {
// 事件状态:0 =待处理,1=待分拨,2=待处理,3=处理中,4=已完成 5=已完结
    // 事件状态:0 =待处理,1=待分拨,2=待处理,3=处理中,4=已完成 5=已完结
    jobList(taskDetailParams).then(res => {
        if (res.data.code !== 0) return
        taskDetailData.value = res.data.data.records
        total.value = res.data.data.total
    })
}
// 机巢列表数据
@@ -327,20 +325,22 @@
}
// 任务状态颜色
// 待执行
.pending {
    color: #e36913;
    color: #ffe17e;
}
// 执行中
.distributed {
    color: #ffc398;
    color: #FFA768;
}
// 已执行
.finish {
    color: #afd9fb;
    color: #8effac;
}
.cancel {
    color: #11c4ff;
}
// 执行失败
.fail {
    color: #8cfea7;
    color: #ff8e8e;
}
</style>
src/views/Home/HomeLeft/MachineNestList.vue
@@ -177,7 +177,7 @@
                padding-top: 6px;
                margin-top: 10px;
                height: 120px;
                height: 100px;
            }
            img {
                width: 45px;
@@ -218,8 +218,7 @@
            // 作业中
            .atcive {
                color: #ffa768;
                background: linear-gradient(90deg, rgba(12, 45, 92, 1) 0%, #154671 50%, rgba(12, 45, 92, 1) 100%),
                    linear-gradient(90deg, rgba(12, 45, 92, 1) 0%, rgba(12, 45, 92, 1) 50%, rgba(12, 45, 92, 1) 100%);
            }
            .numbering {
                font-size: 12px;
src/views/SignMachineNest/MachineRight/InspectionRaskList.vue
@@ -252,6 +252,7 @@
        color: #fff;
        display: flex;
        justify-content: space-between;
background: linear-gradient( 90deg, rgba(71,157,255,0) 0%, rgba(71, 157, 255, 0.12) 50%, rgba(71,157,255,0) 100%);
        .left {
          .left-t {
            height: 24px;
src/views/TaskManage/TaskIntermediateContent/AddTask.vue
@@ -26,7 +26,6 @@
                            start-placeholder="开始日期"
                            end-placeholder="结束日期"
                            value-format="YYYY-MM-DD"
                            @change="changeselect"
                        />
                    </div>
                    <div class="item">
@@ -182,7 +181,7 @@
    waylineType.value = 0
    waylineId.value = val
    const currentRoute = routeOptions.value.find(item => item.wayline_id === val)
    wayLineFile.value = currentRoute.object_key
    wayLineFile.value = currentRoute?.object_key || '';
}
// 获取选中机场列表数据,并且发布
@@ -251,9 +250,10 @@
        })
        return
    }
    searchForm.begin_time = `${taskData.value} 00:00:00`
    searchForm.end_time = `${taskData.value} 23:59:59`
    searchForm.execute_time_arr = timeSlot.value ? [timeSlot.value] : []
    searchForm.begin_time = `${taskData.value[0]} 00:00:00`
    searchForm.end_time = `${taskData.value[1]} 23:59:59`
    searchForm.execute_time_arr = timeSlot.value ? [timeSlot.value] : [];
    createTask(searchForm).then(res => {
        if (res.data.code === 0) {
            ElMessage.success('任务创建成功')