¶Ô±ÈÐÂÎļþ |
| | |
| | | <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> |