| | |
| | | popper-class="ztzf-layer-date-picker-popper" |
| | | class="ztzf-layer-date-picker layertimer" |
| | | v-model="timeValue" |
| | | type="datetimerange" |
| | | format="YYYY-MM-DD HH:mm" |
| | | type="datetimerange" |
| | | format="YYYY-MM-DD HH:mm" |
| | | range-separator="至" |
| | | start-placeholder="开始日期" |
| | | end-placeholder="结束日期" |
| | | |
| | | /> |
| | | </div> |
| | | </div> |
| | |
| | | </div> |
| | | <div class="detailInfo"> |
| | | <div class="infpItem" v-if="layerParams.editNest"> |
| | | |
| | | <div class="itemData"> |
| | | <div class="title">围栏面积</div> |
| | | <div class="num"> |
| | | <span>{{ fenceArea }}</span |
| | | > m² |
| | | <span>{{ fenceArea }}</span> m² |
| | | </div> |
| | | </div> |
| | | </div> |
| | |
| | | |
| | | <script setup> |
| | | import { ElMessage } from 'element-plus'; |
| | | import dayjs from 'dayjs' |
| | | import dayjs from 'dayjs'; |
| | | import { deitFenceApi, addFenceApi } from '@/api/layer/index'; |
| | | import EventBus from '@/utils/eventBus'; |
| | | const emit = defineEmits(['callParentMethod']); |
| | | const layerParams = inject('layerParams'); |
| | | const options = ref([]); |
| | | const timeValue = ref('') |
| | | const timeValue = ref(''); |
| | | options.value = layerParams.value.folderOption; |
| | | const formData = ref({ |
| | | folder_id: '', |
| | |
| | | control_start_time: '', |
| | | control_end_time: '', |
| | | geo_data: '', |
| | | altitude:'' |
| | | altitude: '', |
| | | }); |
| | | const detailData = ref(null); |
| | | const fenceArea = ref(0) |
| | | const fenceArea = ref(0); |
| | | detailData.value = layerParams.value.editDetailData; |
| | | fenceArea.value = layerParams.value.fenceArea |
| | | fenceArea.value = layerParams.value.fenceArea; |
| | | watch( |
| | | () => layerParams.value.fenceArea, |
| | | (newArea) => { |
| | | newArea => { |
| | | if (newArea !== undefined && newArea !== null) { |
| | | fenceArea.value = newArea; |
| | | formData.value.area = newArea; |
| | | formData.value.area = newArea; |
| | | } |
| | | }, |
| | | { immediate: true } |
| | | { immediate: true } |
| | | ); |
| | | watch( |
| | | () => timeValue.value, |
| | | (newTimeArr) => { |
| | | newTimeArr => { |
| | | if (Array.isArray(newTimeArr) && newTimeArr.length === 2) { |
| | | const startTime = newTimeArr[0]; |
| | | const endTime = newTimeArr[1]; |
| | | const startTime = newTimeArr[0]; |
| | | const endTime = newTimeArr[1]; |
| | | formData.value.control_start_time = dayjs(startTime).format('YYYY-MM-DD HH:mm:ss'); |
| | | formData.value.control_end_time = dayjs(endTime).format('YYYY-MM-DD HH:mm:ss'); |
| | | } else { |
| | | |
| | | formData.value.control_start_time = ''; |
| | | formData.value.control_end_time = ''; |
| | | } |
| | | }, |
| | | { immediate: true } |
| | | { immediate: true } |
| | | ); |
| | | const clearAllData = () => { |
| | | detailData.value = {}; |
| | |
| | | EventBus.emit('gettreeDataApi'); |
| | | }; |
| | | const submitHandle = () => { |
| | | if(fenceArea.value === 0 ){ |
| | | |
| | | if (!formData.value.folder_id) { |
| | | ElMessage({ |
| | | message: '请绘制区域', |
| | | type: 'error', |
| | | }); |
| | | return |
| | | } |
| | | if(!formData.value.folder_id){ |
| | | message: '请选择文件夹', |
| | | type: 'error', |
| | | }); |
| | | return; |
| | | } |
| | | if (!formData.value.name) { |
| | | ElMessage({ |
| | | message: '请选择文件夹', |
| | | type: 'error', |
| | | }); |
| | | return |
| | | } |
| | | if(!formData.value.name){ |
| | | message: '请输入名称', |
| | | type: 'error', |
| | | }); |
| | | return; |
| | | } |
| | | if (!formData.value.altitude && layerParams.value.fenceType === 2) { |
| | | ElMessage({ |
| | | message: '请输入名称', |
| | | type: 'error', |
| | | }); |
| | | return |
| | | } |
| | | if(!formData.value.altitude && layerParams.value.fenceType === 2){ |
| | | message: '请输入高度', |
| | | type: 'error', |
| | | }); |
| | | return; |
| | | } |
| | | if (fenceArea.value === 0) { |
| | | ElMessage({ |
| | | message: '请输入高度', |
| | | type: 'error', |
| | | }); |
| | | return |
| | | } |
| | | message: '请绘制区域', |
| | | type: 'error', |
| | | }); |
| | | return; |
| | | } |
| | | const params = { |
| | | folder_id: formData.value.folder_id, |
| | | folder_id: formData.value.folder_id, |
| | | name: formData.value.name, |
| | | description: formData.value.description, |
| | | is_enabled: true, |
| | | area: formData.value.area, |
| | | altitude: formData.value.altitude, |
| | | geo_data: layerParams.value.polygonPosition, |
| | | control_start_time:formData.value.control_start_time, |
| | | control_end_time:formData.value.control_end_time, |
| | | control_start_time: formData.value.control_start_time, |
| | | control_end_time: formData.value.control_end_time, |
| | | }; |
| | | // 如果是编辑模式,才添加 id |
| | | if (layerParams.value.decideWhetherToAddOrEdit === 2) { |
| | |
| | | if (layerParams.value.decideWhetherToAddOrEdit === 1) { |
| | | //围栏新增 |
| | | addFenceApi(params).then(res => { |
| | | if (res.status === 200) { |
| | | ElMessage({ |
| | | message: '新增成功', |
| | | type: 'success', |
| | | }); |
| | | } |
| | | |
| | | |
| | | ElMessage.success('新增成功'); |
| | | }); |
| | | } else if (layerParams.value.decideWhetherToAddOrEdit === 2) { |
| | | //围栏编辑 |
| | | deitFenceApi(params).then(res => { |
| | | if (res.status === 200) { |
| | | ElMessage({ |
| | | message: '编辑成功', |
| | | type: 'success', |
| | | }); |
| | | } |
| | | ElMessage.success('编辑成功'); |
| | | }); |
| | | } |
| | | |
| | | clearAllData(); |
| | | emit('callParentMethod'); |
| | | EventBus.emit('gettreeDataApi') |
| | | EventBus.emit('gettreeDataApi'); |
| | | }; |
| | | onMounted(() => { |
| | | // 获取判断状态(默认设为 1) |
| | |
| | | control_start_time: editData.control_start_time || '', |
| | | control_end_time: editData.control_end_time || '', |
| | | geo_data: editData.geo_data || '', |
| | | create_name:editData.create_name, |
| | | create_time: editData.create_time |
| | | ? dayjs(editData.create_time).format('YYYY年MM月DD日') |
| | | : '' |
| | | create_name: editData.create_name, |
| | | create_time: editData.create_time ? dayjs(editData.create_time).format('YYYY年MM月DD日') : '', |
| | | }; |
| | | if (editData.folder_id && options.value.length > 0) { |
| | | const matchedFolder = options.value.find( |
| | | item => item.value === String(editData.folder_id) |
| | | ); |
| | | if (editData.folder_id && options.value.length > 0) { |
| | | const matchedFolder = options.value.find(item => item.value === String(editData.folder_id)); |
| | | if (matchedFolder) { |
| | | formData.value.folder_id = matchedFolder.value; |
| | | } |
| | | } |
| | | if (editData.control_start_time && editData.control_end_time) { |
| | | if (editData.control_start_time && editData.control_end_time) { |
| | | timeValue.value = [ |
| | | dayjs(editData.control_start_time).toDate(), |
| | | dayjs(editData.control_end_time).toDate() |
| | | dayjs(editData.control_end_time).toDate(), |
| | | ]; |
| | | } |
| | | fenceArea.value = editData.area|| 0; |
| | | } |
| | | fenceArea.value = editData.area || 0; |
| | | } |
| | | }); |
| | | </script> |
| | | |
| | |
| | | .label { |
| | | margin-bottom: 5px; |
| | | } |
| | | :deep(.el-date-editor.el-input__wrapper) { |
| | | width: auto !important; |
| | | |
| | | } |
| | | :deep(.el-date-editor.el-input__wrapper) { |
| | | width: auto !important; |
| | | } |
| | | } |
| | | .detailInfo { |
| | | .infpItem { |