From d31a24ca22ffc8638ca8711eb3ee1cf5bbdecf73 Mon Sep 17 00:00:00 2001 From: riku <risaku@163.com> Date: 星期一, 03 三月 2025 16:36:55 +0800 Subject: [PATCH] 修复新增巡查子任务时,巡查人员信息没有正确录入的问题 --- src/views/fysp/scene/components/BaseSceneInfo.vue | 91 +++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 91 insertions(+), 0 deletions(-) diff --git a/src/views/fysp/scene/components/BaseSceneInfo.vue b/src/views/fysp/scene/components/BaseSceneInfo.vue new file mode 100644 index 0000000..ed621bd --- /dev/null +++ b/src/views/fysp/scene/components/BaseSceneInfo.vue @@ -0,0 +1,91 @@ +<template> + <slot name="form-items"></slot> + <slot name="description-items"></slot> +</template> +<script setup> +import { reactive, ref, watch, computed } from 'vue'; +import { useDateFormat } from '@vueuse/core'; +import sceneApi from '@/api/fysp/sceneApi'; +expose({ + submit +}); +const props = defineProps({ + scene: Object, + //宸ュ湴棰濆淇℃伅 + formInfo: Object, + //鍦烘櫙绫诲瀷锛氬伐鍦� + sceneType: { + type: Number, + default: 1 + }, +}); +const emit = defineEmits([ + 'onSubmit', + 'onCancel', + 'update:scene', + 'update:formInfo' +]); +const loading = ref(false); +const formObj = ref({}); +const sceneObj = ref({}); +// 鍒涘缓鎴栨洿鏂板満鏅鎯� +function createOrupdateSubScene() { + loading.value = true; + + if (formObj.value._timeRange && formObj.value._timeRange.length == 2) { + const t = formObj.value._timeRange; + formObj.value.csStartTime = useDateFormat(t[0], 'YYYY-MM-DD'); + formObj.value.csEndTime = useDateFormat(t[1], 'YYYY-MM-DD'); + } + return sceneApi + .updateSubScene(props.sceneType, formObj.value) + .then((res) => { + emit('onSubmit', formObj); + emit('update:formInfo', formObj); + return res.data; + }) + .finally(() => { + loading.value = false; + }); +} + +// 鏇存柊鍦烘櫙 +function updateScene() { + return sceneApi.updateScene(sceneObj.value).then(() => { + emit('update:scene', sceneObj); + }); +} + +function submit() { + updateScene(); + return createOrupdateSubScene(); +} + +function cancel() { + emit('onCancel'); +} + +watch( + () => props.formInfo, + (nValue) => { + if (nValue) { + formObj.value = nValue; + formObj.value._timeRange = [ + new Date(formObj.value.csStartTime), + new Date(formObj.value.csEndTime) + ]; + } + }, + { deep: false, immediate: true } +); + +watch( + () => props.scene, + (nValue) => { + if (nValue) { + sceneObj.value = nValue; + } + }, + { deep: false, immediate: true } +); +</script> -- Gitblit v1.9.3