날짜 min 수정
This commit is contained in:
parent
946e3441e3
commit
2ec81f274d
@ -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');
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
@ -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 () => {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user