From 1519870c0e18171ced014a840e86a459dc6b00f1 Mon Sep 17 00:00:00 2001 From: yangfeng <wanwan926_4@163.com> Date: 星期二, 12 十二月 2023 17:26:06 +0800 Subject: [PATCH] 报工记录列表增加人员姓名 --- src/views/dashboard/components/DashboardTitle.vue | 83 ++++++++++++++++++++++++++++++++++++++--- 1 files changed, 76 insertions(+), 7 deletions(-) diff --git a/src/views/dashboard/components/DashboardTitle.vue b/src/views/dashboard/components/DashboardTitle.vue index 57f1a01..cde7f28 100644 --- a/src/views/dashboard/components/DashboardTitle.vue +++ b/src/views/dashboard/components/DashboardTitle.vue @@ -1,42 +1,74 @@ <template> <div class="dashboard-title"> <div class="title-text"> - 鏅鸿兘宸ヤ綔鍙� 鈥� {{ deviceStore?.deviceInfo?.currentDeviceID ?? '' }} - <el-icon size="32" color="#0db7f5" style="margin-left: 20px; cursor: pointer" @click="openDevicesModal"> + 鏅鸿兘宸ヤ綔鍙� 鈥� + <el-popover placement="bottom" :width="200" trigger="click" :content="currentDeviceName"> + <template #reference> + <el-text truncated class="device-name">{{ currentDeviceName }}</el-text> + </template> + </el-popover> + <el-icon size="32" color="#0db7f5" style="margin-left: 4px; cursor: pointer" @click="openDevicesModal"> <IconSlider></IconSlider> </el-icon> </div> <div class="title-status"> <div class="connection-info" @click="openProblemsModal"> - <el-icon size="30" :color="problemsIconStatus ? '#00ff00' : '#ff0000'"> + <el-icon size="26" :color="problemsIconStatus ? '#00ff00' : '#ff0000'"> <AlertLightIcon></AlertLightIcon> </el-icon> </div> <div class="cloud-connection-status"> - <el-icon v-if="cloudConnectionIconStatus" size="45" color="#00ff00"> + <el-icon v-if="cloudConnectionIconStatus" size="38" color="#00ff00"> <IconCloudDone></IconCloudDone> </el-icon> - <el-icon v-else size="45" color="#ff0000"> + <el-icon v-else size="38" color="#ff0000"> <IconCloudOff></IconCloudOff> </el-icon> </div> + + <div class="reporting-record"> + <el-icon + size="26" + :color="taskStore.activeTask ? '#0db7f5' : '#c0c0c0'" + :style="{ 'margin-right': '10px', cursor: taskStore.activeTask ? 'pointer' : 'not-allowed' }" + @click="openReportingRecord" + > + <IconRecords></IconRecords> + </el-icon> + </div> + + <div class="params-config" @click="openConfigModal"> + <el-icon size="28"><Setting /></el-icon> + </div> </div> </div> - + <DeviceCheckList v-model="showDevicesModal" @should-reload="emits('shouldReload')"></DeviceCheckList> <TroubleTrackerModal v-model="showProblemsModal" :problems="problemList"></TroubleTrackerModal> + <DeliverParamsConfigModal v-model="showConfigModal"></DeliverParamsConfigModal> + <ReportingRecordModal v-model="showReportingRecordModal"></ReportingRecordModal> </template> <script setup lang="ts"> import AlertLightIcon from '@/components/icons/AlertLightIcon.vue' +import IconRecords from '~icons/vaadin/records' import { computed, onUnmounted, ref } from 'vue' import { useDevicesStore } from '@/stores/devices' import TroubleTrackerModal from '@/views/dashboard/components/TroubleTrackerModal.vue' +import DeviceCheckList from '@/views/dashboard/components/DeviceCheckList.vue' import IconCloudDone from '~icons/material-symbols-light/cloud-done-outline' import IconCloudOff from '~icons/material-symbols-light/cloud-off-outline' import IconSlider from '~icons/bx/slider' import { useRequest } from 'vue-hooks-plus' import { apiGetProblemList } from '@/api' import { PROBLEMS_POLLING_DURATION } from '@/common/constants' +import { Setting } from '@element-plus/icons-vue' +import DeliverParamsConfigModal from '@/views/dashboard/components/DeliverParamsConfigModal.vue' +import ReportingRecordModal from '@/views/dashboard/components/ReportingRecordModal.vue' +import { useTasksStore } from '@/stores/tasks' + +const emits = defineEmits<{ + shouldReload: [] +}>() // 鏄惁鏄剧ず闂璇婃柇modal const showProblemsModal = ref(false) @@ -58,6 +90,12 @@ // 鑾峰彇褰撳墠璁惧鍚� const deviceStore = useDevicesStore() +const currentDeviceName = computed(() => { + return ( + deviceStore?.deviceInfo?.deviceList?.find((ele) => ele?.deviceID === deviceStore?.deviceInfo?.currentDeviceID) + ?.deviceName ?? '' + ) +}) // 闂璇婃柇鍒楄〃 const problemList = computed(() => { @@ -82,6 +120,14 @@ return cloudConnection ? cloudConnection?.CheckResult : true }) +// 閰嶇疆涓嬪彂鍙傛暟寮圭獥 +const showConfigModal = ref(false) +function openConfigModal() { + showConfigModal.value = true +} +function closeConfigModal() { + showConfigModal.value = false +} /** * 杞闂璇婃柇 */ @@ -98,6 +144,18 @@ onUnmounted(() => { cancelProblemsPolling() }) + +const taskStore = useTasksStore() + +// 鏄惁鏄剧ず鎶ュ伐璁板綍 +const showReportingRecordModal = ref(false) +function openReportingRecord() { + if (!taskStore.activeTask) { + ElMessage.error('璇峰厛閫夋嫨浠诲姟') + return + } + showReportingRecordModal.value = true +} </script> <style scoped lang="scss"> @@ -116,10 +174,21 @@ align-items: center; position: absolute; top: 16px; - right: 40px; + right: 6px; } .connection-info { margin-right: 10px; cursor: pointer; } +.device-name { + max-width: 220px; + font-size: 40px; + color: #fff; +} +.cloud-connection-status { + margin-right: 10px; +} +.params-config { + cursor: pointer; +} </style> -- Gitblit v1.8.0