From 3d3e7f45086799fdd7a412e2079710a6cdf8dc2b Mon Sep 17 00:00:00 2001 From: riku <risaku@163.com> Date: 星期四, 24 十月 2024 08:30:04 +0800 Subject: [PATCH] Merge branch 'lsf-dataproduct-1018' --- src/views/fysp/task/components/CompDayTask.vue | 163 +++++++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 149 insertions(+), 14 deletions(-) diff --git a/src/views/fysp/task/components/CompDayTask.vue b/src/views/fysp/task/components/CompDayTask.vue index 9617c22..15a2797 100644 --- a/src/views/fysp/task/components/CompDayTask.vue +++ b/src/views/fysp/task/components/CompDayTask.vue @@ -1,35 +1,97 @@ <template> - <el-row justify="space-between"> - <el-text>鍗曟棩璁″垝</el-text> - <el-button type="success" size="small" @click="editTask">鏂板</el-button> + <el-row gutter="20"> + <el-col :span="16"> + <div> + <el-text>鐩戠鍦烘櫙</el-text> + </div> + <el-divider /> + <CompSubTaskSelect + :data="seletedSceneList" + :dayTask="dayTask" + @delete="deleteScene" + @submit="createSubtasks" + ></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"> + <CompSubTaskList + v-model="curSubTaskList" + :height="height" + @submit="deleteSubtasks" + ></CompSubTaskList> + </el-col> </el-row> - <el-divider /> - <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> </template> <script setup> import { ref, watch, onMounted } from 'vue'; +import { useCloned } from '@vueuse/core'; +import { useRoute, useRouter } from 'vue-router'; +import { ElMessage, ElNotification, ElMessageBox } from 'element-plus'; import taskApi from '@/api/fysp/taskApi'; +import subtaskApi from '@/api/fysp/subtaskApi'; +import TaskProxy from '../TaskProxy'; + +import CompMonitorObj from './CompMonitorObj.vue'; +import CompSubTaskSelect from './CompSubTaskSelect.vue'; +import CompSubTaskList from './CompSubTaskList.vue'; +import dayjs from 'dayjs'; + +const route = useRoute(); const props = defineProps({ // 鏃ヤ换鍔� - dayTask: Object + dayTask: Object, + mObjList: Array }); +const emit = defineEmits(['submit']) + +/*************************** 鏁版嵁鍒濆鍖� ************************************/ // 宸℃煡瀛愪换鍔¢泦鍚� +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) { - // onDayTaskChange(nV) - // } - onDayTaskChange(nV) + if (nV != oV) { + curMonitorObjList.value = useCloned(nV).cloned.value; + } }, { immediate: true } ); @@ -49,5 +111,78 @@ 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); +} + +function createSubtasks(executors) { + const dt = props.dayTask; + const subtasks = seletedSceneList.value.map((_) => { + const s = _.scene; + return { + // 涓婚敭鐢辨湇鍔$鍒涘缓 + stguid: undefined, + tguid: dt.tsGuid, + tsguid: dt.guid, + name: `${s.name}宸℃煡`, + typeno: 1, + type: '宸℃煡', + provincecode: s.provincecode, + provincename: s.provincename, + citycode: s.citycode, + cityname: s.cityname, + districtcode: s.districtcode, + districtname: s.districtname, + scensename: s.name, + scenseid: s.guid, + scenseaddress: s.location, + planstarttime: dt.date, + planendtime: dayjs(dt.date).endOf('day').set('millisecond', 0).toDate(), + deployerguid: 'rAR0A4gJdlOZEqZs', + deployerusername: 'ccheck', + deployerrealname: '鏁存敼瀹℃牳', + executorguids: executors.ids, + executorusernames: executors.uName, + executorrealtimes: executors.rName, + status: '鏈墽琛�', + remark: undefined + }; + }); + + // 鏇存柊鍦烘櫙鐩戠娆℃暟 + seletedSceneList.value.forEach((s) => { + s.extension1 = s.extension1 ? parseInt(s.extension1) + 1 + '' : '1'; + }); + taskApi.updateMonitorObject(seletedSceneList.value).then((res) => { + if (res > 0) { + subtaskApi.putSubtasks(subtasks).then((res) => { + seletedSceneList.value = []; + fetchSubTask(props.dayTask.guid); + ElMessage({ + message: '宸℃煡浠诲姟娣诲姞鎴愬姛', + type: 'success' + }); + emit('submit') + }); + } + }); +} + +function deleteSubtasks() { + emit('submit') +} </script> <style scoped></style> -- Gitblit v1.9.3