날짜 min 수정
This commit is contained in:
parent
946e3441e3
commit
2ec81f274d
@ -128,7 +128,7 @@
|
||||
title="종료일"
|
||||
type="date"
|
||||
name="endDay"
|
||||
:min="todays"
|
||||
:min="selectedProject.PROJCTSTR"
|
||||
:modelValue="selectedProject.PROJCTEND"
|
||||
@update:modelValue="selectedProject.PROJCTEND = $event"
|
||||
/>
|
||||
@ -161,7 +161,7 @@
|
||||
</template>
|
||||
|
||||
<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 CenterModal from '@c/modal/CenterModal.vue';
|
||||
import $api from '@api';
|
||||
@ -256,11 +256,6 @@ const isProjectCreator = computed(() => {
|
||||
return user.value?.id === props.projctCreatorId;
|
||||
});
|
||||
|
||||
// dayjs 인스턴스 가져오기
|
||||
const dayjs = inject('dayjs');
|
||||
|
||||
// 오늘 날짜를 YYYY-MM-DD 형식으로 변환
|
||||
const todays = dayjs().format('YYYY-MM-DD');
|
||||
|
||||
// 프로젝트 만료 여부 체크 (종료일이 지났는지)
|
||||
const isProjectExpired = computed(() => {
|
||||
@ -332,6 +327,19 @@ const closeModal = () => {
|
||||
|
||||
// 수정 모달 열기
|
||||
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;
|
||||
originalColor.value = props.projctCol;
|
||||
};
|
||||
@ -366,6 +374,18 @@ const hasChanges = computed(() => {
|
||||
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 = () => {
|
||||
nameAlert.value = selectedProject.value.PROJCTNAM.trim() === '';
|
||||
@ -395,7 +415,7 @@ const handleUpdate = () => {
|
||||
if (res.status === 200) {
|
||||
toastStore.onToast('수정이 완료 되었습니다.', 's');
|
||||
closeEditModal();
|
||||
// 상위 컴포넌트에 업데이트 알림
|
||||
|
||||
emit('update');
|
||||
}
|
||||
});
|
||||
|
||||
@ -69,7 +69,7 @@
|
||||
:type="'date'"
|
||||
name="endDay"
|
||||
:modelValue="endDay"
|
||||
:min = "today"
|
||||
:min = "startDay"
|
||||
@update:modelValue="endDay = $event"
|
||||
/>
|
||||
|
||||
@ -207,19 +207,14 @@
|
||||
// 등록 :: 주소 업데이트 핸들러
|
||||
const handleAddressUpdate = (data) => {
|
||||
addressData.value = data;
|
||||
};
|
||||
} ;
|
||||
|
||||
// 종료일이 시작일보다 이전 날짜라면 종료일을 시작일로 맞추기
|
||||
watch([startDay, endDay], () => {
|
||||
if (startDay.value && endDay.value) {
|
||||
const start = new Date(startDay.value);
|
||||
const end = new Date(endDay.value);
|
||||
|
||||
if (end < start) {
|
||||
endDay.value = startDay.value;
|
||||
}
|
||||
// 시작일이 종료일보다 크면 종료일 리셋
|
||||
watch(startDay, (newStartDate) => {
|
||||
if (new Date(newStartDate) > new Date(endDay.value)) {
|
||||
endDay.value = '';
|
||||
}
|
||||
}, { flush: 'post' });
|
||||
});
|
||||
|
||||
// 프로젝트 등록
|
||||
const handleCreate = async () => {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user