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