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