From c7bd6db3190ff5c4b55d004db0b9fa944604925f Mon Sep 17 00:00:00 2001
From: riku <risaku@163.com>
Date: 星期五, 18 十月 2024 11:09:15 +0800
Subject: [PATCH] Merge branch 'lsf-topTask'

---
 src/views/fysp/task/components/CompDayTask.vue |  141 +++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 141 insertions(+), 0 deletions(-)

diff --git a/src/views/fysp/task/components/CompDayTask.vue b/src/views/fysp/task/components/CompDayTask.vue
new file mode 100644
index 0000000..db5bab8
--- /dev/null
+++ b/src/views/fysp/task/components/CompDayTask.vue
@@ -0,0 +1,141 @@
+<template>
+  <el-row gutter="20">
+    <el-col :span="16">
+      <div>
+        <el-text>鐩戠鍦烘櫙</el-text>
+      </div>
+      <el-divider />
+      <CompSubTaskSelect
+        :data="seletedSceneList"
+        :dayTask="dayTask"
+        @delete="deleteScene"
+      ></CompSubTaskSelect>
+      <div>
+        <!-- <el-scrollbar height="50vh"> -->
+          <CompMonitorObj :data="curMonitorObjList" height="50vh">
+            <template #default="{ item }">
+              <el-button
+                v-if="item.select"
+                size="small"
+                type="info"
+                plain
+                disabled
+                icon="select"
+                >閫夋嫨</el-button
+              >
+              <el-button
+                v-else
+                size="small"
+                type="primary"
+                plain
+                @click="selectScene(item)"
+                >閫夋嫨</el-button
+              >
+            </template>
+          </CompMonitorObj>
+        <!-- </el-scrollbar> -->
+      </div>
+    </el-col>
+    <el-col :span="8">
+      <el-row justify="space-between">
+        <el-text>鍗曟棩璁″垝</el-text>
+        <el-button type="success" size="small" @click="editTask"
+          >鏂板</el-button
+        >
+      </el-row>
+      <el-divider />
+      <div>
+        <el-scrollbar :height="height">
+          <ItemSubTask
+            v-for="stask in curSubTaskList"
+            :key="stask.guid"
+            :item="stask"
+          >
+            <template #default="{ item }">
+              <el-button type="danger" size="small" @click="editTask"
+                >绉婚櫎</el-button
+              >
+            </template>
+          </ItemSubTask>
+        </el-scrollbar>
+      </div>
+    </el-col>
+  </el-row>
+</template>
+<script setup>
+import { ref, watch, onMounted } from 'vue';
+import { useCloned } from '@vueuse/core';
+import { useRoute, useRouter } from 'vue-router';
+import taskApi from '@/api/fysp/taskApi';
+import TaskProxy from '../TaskProxy';
+
+import CompMonitorObj from './CompMonitorObj.vue';
+import CompSubTaskSelect from './CompSubTaskSelect.vue';
+
+const route = useRoute();
+
+const props = defineProps({
+  // 鏃ヤ换鍔�
+  dayTask: Object,
+  mObjList: Array
+});
+
+/*************************** 鏁版嵁鍒濆鍖� ************************************/
+// 宸℃煡瀛愪换鍔¢泦鍚�
+const curMonitorObjList = ref([]);
+const curSubTaskList = ref([]);
+const height = ref('70vh');
+
+// 鐩戝惉鏃ヤ换鍔″彉鍖�
+watch(
+  () => props.dayTask,
+  (nV) => {
+    onDayTaskChange(nV);
+  },
+  { immediate: true }
+);
+
+// 鐩戝惉鐩戠鍦烘櫙鍙樺寲
+watch(
+  () => props.mObjList,
+  (nV, oV) => {
+    if (nV != oV) {
+      curMonitorObjList.value = useCloned(nV).cloned.value;
+    }
+  },
+  { immediate: true }
+);
+
+// 鏍规嵁鏃ヤ换鍔¤幏鍙栧搴斿瓙浠诲姟
+function onDayTaskChange(dayTask) {
+  if (dayTask) {
+    fetchSubTask(dayTask.guid);
+  } else {
+    curSubTaskList.value = [];
+  }
+}
+
+// 鑾峰彇宸℃煡瀛愪换鍔�
+function fetchSubTask(dayTaskId) {
+  taskApi.fetchSubtaskByDayTask(dayTaskId).then((res) => {
+    curSubTaskList.value = res;
+  });
+}
+
+/*************************** 娣诲姞瀛愪换鍔� ************************************/
+
+// 鎵�閫夊満鏅�
+const seletedSceneList = ref([]);
+// 閫夋嫨浠诲姟鍦烘櫙
+function selectScene(item) {
+  item.select = true;
+  seletedSceneList.value.push(item);
+}
+// 绉婚櫎浠诲姟鍦烘櫙
+function deleteScene(item) {
+  item.select = false;
+  const index = seletedSceneList.value.indexOf(item);
+  seletedSceneList.value.splice(index, 1);
+}
+</script>
+<style scoped></style>

--
Gitblit v1.9.3