<template>
|
<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"
|
></CompSubTaskList>
|
</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 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,
|
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);
|
}
|
|
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
|
};
|
});
|
subtaskApi.putSubtasks(subtasks)
|
}
|
</script>
|
<style scoped></style>
|