From b95cf940af8e01e4eca30b2599b029c2f645bd1e Mon Sep 17 00:00:00 2001
From: charles <981744753@qq.com>
Date: 星期一, 29 四月 2024 10:44:26 +0800
Subject: [PATCH] feat:创建新分支

---
 src/views/dashboard/components/ChannelCollapse.vue |   53 +++++++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 43 insertions(+), 10 deletions(-)

diff --git a/src/views/dashboard/components/ChannelCollapse.vue b/src/views/dashboard/components/ChannelCollapse.vue
index bde2dd9..934df81 100644
--- a/src/views/dashboard/components/ChannelCollapse.vue
+++ b/src/views/dashboard/components/ChannelCollapse.vue
@@ -1,19 +1,19 @@
 <template>
   <div class="channel-collapse">
     <el-collapse v-model="activeChannel">
-      <el-collapse-item
-        v-for="(channel, channelNumber) in channels"
-        :key="channelNumber"
-        :title="CHANNEL_NAME_MAP[channelNumber] + ' 閫氶亾'"
-        :name="String(channelNumber)"
-      >
+      <el-collapse-item v-for="(channel, channelNumber) in channels" :key="channelNumber" :name="String(channelNumber)">
+        <template #title>
+          <div style="width: 100%; text-align: left" @click="selectChannel(channelNumber)">
+            {{ CHANNEL_NAME_MAP[channelNumber] + ' 閫氶亾' + ' (' + (channel?.TaskCount ?? 0) + ')' }}
+          </div>
+        </template>
         <TaskInfo
           v-for="task in channel.Tasks"
           :key="task.Procedure.ID"
           :active="task.Procedure.ID === tasksStore.activeTask?.Procedure.ID"
           :task="task"
           style="margin-bottom: 16px"
-          @click="tasksStore.setActiveTask(task)"
+          @click="selectTask(task)"
         ></TaskInfo>
 
         <div
@@ -26,7 +26,7 @@
         </div>
 
         <div
-          v-show="channel.Tasks?.length && !tasksStore.moreBtnStatus?.[channelNumber]"
+          v-show="channel.TaskCount > 3 && channel.Tasks?.length && !tasksStore.moreBtnStatus?.[channelNumber]"
           class="btn fold"
           @click="tasksStore.foldChannelTasksBtn(channelNumber)"
         >
@@ -39,11 +39,15 @@
 </template>
 <script setup lang="ts">
 import { ref, watchEffect } from 'vue'
-import type { TasksGroupByChannel } from '@/api/task'
+import type { Task, TasksGroupByChannel } from '@/api/task'
 import TaskInfo from './TaskInfo.vue'
 import { CHANNEL_NAME_MAP } from '@/common/constants'
 import { useTasksStore } from '@/stores/tasks'
 import { ArrowDownBold, ArrowUpBold } from '@element-plus/icons-vue'
+import { isNumber } from 'lodash-es'
+import { getTaskInfo } from '@/api'
+import type { TaskInfoParams } from '@/api'
+import { storeToRefs } from 'pinia'
 
 export interface ChannelCollapseProps {
   channels: TasksGroupByChannel
@@ -53,12 +57,41 @@
 const activeChannel = ref<string[]>([])
 
 const tasksStore = useTasksStore()
+const { activeTask } = storeToRefs(tasksStore)
 
 watchEffect(() => {
   // 閫氶亾鏁版嵁鍙樺寲鍚�
   const channelNumbers = Object.keys(props?.channels ?? {}).sort((a, b) => +a - +b)
   activeChannel.value = [...channelNumbers]
 })
+
+function selectChannel(channelNumber: number) {
+  tasksStore.setActiveTask(undefined)
+  tasksStore.setActiveChannel(+channelNumber)
+}
+
+function selectTask(task: Task | undefined) {
+  console.log(task, 'iiiiiii')
+
+  const params: TaskInfoParams = {
+    deviceID: localStorage.getItem('currentDeviceID') || '',
+    procedureID: Number(task?.Procedure.ID)
+  }
+  return getTaskInfo(params)
+    .then((res) => {
+      tasksStore.setActiveTask(res.data)
+      let channel = tasksStore?.activeTask?.Channel
+      if (isNumber(channel)) {
+        tasksStore.setActiveChannel(channel)
+      }
+      // taskStore.activeTask?.value = res.data
+    })
+    .catch((err) => {
+      console.error(err)
+    })
+    .finally(() => {})
+  // tasksStore.setActiveTask(task)
+}
 </script>
 
 <style scoped lang="scss">
@@ -75,7 +108,7 @@
 :deep(.el-collapse-item__header) {
   color: #fff;
   background-color: transparent;
-  font-size: 19px;
+  font-size: 18px;
   font-weight: 600;
   border: none;
 }

--
Gitblit v1.8.0