날짜 min 수정

This commit is contained in:
yoon 2025-03-13 21:45:18 +09:00
parent 946e3441e3
commit 2ec81f274d
2 changed files with 35 additions and 20 deletions

View File

@ -128,7 +128,7 @@
title="종료일" title="종료일"
type="date" type="date"
name="endDay" name="endDay"
:min="todays" :min="selectedProject.PROJCTSTR"
:modelValue="selectedProject.PROJCTEND" :modelValue="selectedProject.PROJCTEND"
@update:modelValue="selectedProject.PROJCTEND = $event" @update:modelValue="selectedProject.PROJCTEND = $event"
/> />
@ -161,7 +161,7 @@
</template> </template>
<script setup> <script setup>
import { defineProps, onMounted, ref, computed, watch, inject } from 'vue'; import { defineProps, onMounted, ref, computed, watch } from 'vue';
import UserList from '@c/user/UserList.vue'; import UserList from '@c/user/UserList.vue';
import CenterModal from '@c/modal/CenterModal.vue'; import CenterModal from '@c/modal/CenterModal.vue';
import $api from '@api'; import $api from '@api';
@ -256,11 +256,6 @@ const isProjectCreator = computed(() => {
return user.value?.id === props.projctCreatorId; return user.value?.id === props.projctCreatorId;
}); });
// dayjs
const dayjs = inject('dayjs');
// YYYY-MM-DD
const todays = dayjs().format('YYYY-MM-DD');
// ( ) // ( )
const isProjectExpired = computed(() => { const isProjectExpired = computed(() => {
@ -332,6 +327,19 @@ const closeModal = () => {
// //
const openEditModal = () => { const openEditModal = () => {
selectedProject.value = {
PROJCTSEQ: props.projctSeq,
PROJCTNAM: props.title,
PROJCTSTR: props.strdate,
PROJCTEND: props.enddate,
PROJCTZIP: props.addressZip,
PROJCTARR: props.address,
PROJCTDTL: props.addressdtail,
PROJCTDES: props.description,
PROJCTCOL: props.projctCol,
projctcolor: props.projctColor,
};
isEditModalOpen.value = true; isEditModalOpen.value = true;
originalColor.value = props.projctCol; originalColor.value = props.projctCol;
}; };
@ -366,6 +374,18 @@ const hasChanges = computed(() => {
selectedProject.value.PROJCTCOL !== props.projctCol; selectedProject.value.PROJCTCOL !== props.projctCol;
}); });
//
watch(
() => selectedProject.value.PROJCTSTR, // (strdate)
(newStartDate) => {
if (newStartDate && new Date(newStartDate) > new Date(selectedProject.value.PROJCTEND)) {
//
selectedProject.value.PROJCTEND = newStartDate;
}
}
);
// //
const handleUpdate = () => { const handleUpdate = () => {
nameAlert.value = selectedProject.value.PROJCTNAM.trim() === ''; nameAlert.value = selectedProject.value.PROJCTNAM.trim() === '';
@ -395,7 +415,7 @@ const handleUpdate = () => {
if (res.status === 200) { if (res.status === 200) {
toastStore.onToast('수정이 완료 되었습니다.', 's'); toastStore.onToast('수정이 완료 되었습니다.', 's');
closeEditModal(); closeEditModal();
//
emit('update'); emit('update');
} }
}); });

View File

@ -69,7 +69,7 @@
:type="'date'" :type="'date'"
name="endDay" name="endDay"
:modelValue="endDay" :modelValue="endDay"
:min = "today" :min = "startDay"
@update:modelValue="endDay = $event" @update:modelValue="endDay = $event"
/> />
@ -207,19 +207,14 @@
// :: // ::
const handleAddressUpdate = (data) => { const handleAddressUpdate = (data) => {
addressData.value = data; addressData.value = data;
}; } ;
// //
watch([startDay, endDay], () => { watch(startDay, (newStartDate) => {
if (startDay.value && endDay.value) { if (new Date(newStartDate) > new Date(endDay.value)) {
const start = new Date(startDay.value); endDay.value = '';
const end = new Date(endDay.value);
if (end < start) {
endDay.value = startDay.value;
}
} }
}, { flush: 'post' }); });
// //
const handleCreate = async () => { const handleCreate = async () => {