| | |
| | | <div class="flex-align-center flex-justify-center" style="display: flex;"> |
| | | <div v-if="osdVisible.latest_wayline_job" class="flex-column flex-align-center flex-justify-center"> |
| | | <div class="task_wrapper"> |
| | | <div class="task_content"> |
| | | <div class="task_content task_content_way" v-if="deviceInfo.device && deviceInfo.device?.mode_code === 5"> |
| | | <div class="task_status"> |
| | | <ContainerOutlined /> |
| | | <span>执行任务中</span> |
| | | </div> |
| | | </div> |
| | | <div class="task_content" v-else> |
| | | <div class="task_status"> |
| | | <ContainerOutlined /> |
| | | <span>待执行</span> |
| | | </div> |
| | | <div class="task_info">{{convertTimestampToDate(osdVisible.latest_wayline_job.begin_time)}}</div> |
| | | <div class="task_info">{{osdVisible.latest_wayline_job.is_later ? '今天': '明天'}}{{convertTimestampToDate(osdVisible.latest_wayline_job.begin_time, 'hh:mm')}}</div> |
| | | </div> |
| | | <div class="task_title">{{osdVisible.latest_wayline_job.name}}</div> |
| | | </div> |
| | |
| | | BorderOutlined, LineOutlined, ControlOutlined, TrademarkOutlined, ArrowDownOutlined, |
| | | ThunderboltOutlined, SignalFilled, GlobalOutlined, HistoryOutlined, CloudUploadOutlined, RocketOutlined, |
| | | FieldTimeOutlined, CloudOutlined, CloudFilled, FolderOpenOutlined, RobotFilled, ArrowUpOutlined, CarryOutOutlined, |
| | | DesktopOutlined, CloseOutlined |
| | | DesktopOutlined, CloseOutlined, ContainerOutlined |
| | | } from '@ant-design/icons-vue' |
| | | import { EDeviceTypeName } from '../types' |
| | | import DockControlPanel from './g-map/DockControlPanel.vue' |
| | |
| | | BorderOutlined, |
| | | LineOutlined, |
| | | CloseOutlined, |
| | | ContainerOutlined, |
| | | ControlOutlined, |
| | | TrademarkOutlined, |
| | | ThunderboltOutlined, |
| | |
| | | align-items: center; |
| | | font-size: 12px; |
| | | .task_content { |
| | | background-color: #19be6b; |
| | | background-color: #41bbfa; |
| | | padding: 2px 4px; |
| | | } |
| | | |
| | | .task_content_way { |
| | | background-color: #19be6b; |
| | | } |
| | | .task_title { |
| | | margin-left: 5px; |
| | | font-size: 14px; |
| | |
| | | outlineWidth: number, |
| | | [key: string]: any |
| | | } |
| | | interface polyline { |
| | | width?: number |
| | | material?: Cesium.Color |
| | | [key: string]: any |
| | | } |
| | | interface pointOption { |
| | | longitude: number |
| | | latitude: number |
| | | point?: pointSetting |
| | | billboard?: billboardSetting |
| | | polyline?: polyline |
| | | label?: labelSetting |
| | | id?: string |
| | | heading?: number |
| | |
| | | }) |
| | | } |
| | | |
| | | // 添加线段 |
| | | const addPolyline = (pointOption: pointOption) => { |
| | | viewer?.entities.add({ |
| | | polyline: pointOption.polyline, |
| | | id: pointOption.id, |
| | | }) |
| | | } |
| | | |
| | | // 通过点ID删除 |
| | | function removeById (id:string) { |
| | | viewer?.entities.removeById(id) |
| | |
| | | roadPattern, |
| | | patternMap, |
| | | getEntityById, |
| | | updateEntityPosition |
| | | updateEntityPosition, |
| | | addPolyline |
| | | } |
| | | } |
| | |
| | | const D = (date.getDate() < 10 ? '0' + date.getDate() : date.getDate()) |
| | | return Y + M + D |
| | | } |
| | | |
| | | // 获取时间戳对应的日期 |
| | | export const getDateFromTimestamp = (timestamp:number) => { |
| | | const date = new Date(timestamp) |
| | | const year = date.getFullYear() |
| | | const month = date.getMonth() + 1 |
| | | const day = date.getDate() |
| | | const hours = date.getHours() |
| | | const minutes = date.getMinutes() |
| | | const seconds = date.getSeconds() |
| | | return { year, month, day, hours, minutes, seconds } |
| | | } |
| | | |
| | | // 将日期设置为今天的日期,返回时间戳 |
| | | export const setTodayTime = (dateObj:any) => { |
| | | const today = new Date() |
| | | const year = today.getFullYear() |
| | | const month = today.getMonth() |
| | | const day = today.getDate() |
| | | const { hours, minutes, seconds } = dateObj |
| | | return new Date(year, month, day, hours, minutes, seconds).getTime() |
| | | } |
| | | |
| | | // 判断任务状态是否是当天进行对比 |
| | | export const isToday = (timestamp:number) => { |
| | | const { hours, minutes, seconds } = getDateFromTimestamp(timestamp) |
| | | const todayTaskTimestamp = setTodayTime({ hours, minutes, seconds }) |
| | | // 判断传过来的时间戳是否是今天任务时间时间戳 |
| | | if (timestamp === todayTaskTimestamp) { |
| | | return true |
| | | } else if (todayTaskTimestamp < timestamp) { |
| | | return false |
| | | } else { |
| | | const oneDayTimestamp = 24 * 60 * 60 * 1000 |
| | | timestamp += oneDayTimestamp |
| | | isToday(timestamp) |
| | | } |
| | | } |