Merge branch 'main' into commuters
All checks were successful
LocalNet_front/pipeline/head This commit looks good
All checks were successful
LocalNet_front/pipeline/head This commit looks good
This commit is contained in:
commit
ecaf40ced2
@ -796,3 +796,7 @@ input:checked + .slider:before {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* toast end */
|
/* toast end */
|
||||||
|
|
||||||
|
.cursor-none{
|
||||||
|
cursor: none !important;
|
||||||
|
}
|
||||||
@ -24,6 +24,7 @@
|
|||||||
class="form-control"
|
class="form-control"
|
||||||
:value="password"
|
:value="password"
|
||||||
autocomplete="new-password"
|
autocomplete="new-password"
|
||||||
|
maxlength="8"
|
||||||
placeholder="비밀번호 입력"
|
placeholder="비밀번호 입력"
|
||||||
@input="filterInput"
|
@input="filterInput"
|
||||||
/>
|
/>
|
||||||
@ -42,7 +43,7 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<template v-else>
|
<template v-else>
|
||||||
<p class="m-0">{{ comment.content }}</p>
|
<div class="m-0" style="white-space: pre-wrap">{{ comment.content }}</div>
|
||||||
</template>
|
</template>
|
||||||
</div>
|
</div>
|
||||||
<!-- <p>현재 isDeleted 값: {{ isDeleted }}</p> -->
|
<!-- <p>현재 isDeleted 값: {{ isDeleted }}</p> -->
|
||||||
@ -119,7 +120,7 @@
|
|||||||
});
|
});
|
||||||
|
|
||||||
const displayName = computed(() => {
|
const displayName = computed(() => {
|
||||||
return props.nickname? props.nickname: props.comment.author;
|
return props.nickname ? props.nickname : props.comment.author;
|
||||||
});
|
});
|
||||||
|
|
||||||
// emits 정의
|
// emits 정의
|
||||||
|
|||||||
@ -43,7 +43,7 @@
|
|||||||
@input="clearAlert('nickname')"
|
@input="clearAlert('nickname')"
|
||||||
/>
|
/>
|
||||||
<!-- 닉네임 경고 메시지 -->
|
<!-- 닉네임 경고 메시지 -->
|
||||||
<div v-if="nicknameAlert" class="position-absolute text-danger small top-100 start-0" >
|
<div v-if="nicknameAlert" class="position-absolute text-danger small top-100 start-0">
|
||||||
{{ nicknameAlert }}
|
{{ nicknameAlert }}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -57,7 +57,11 @@
|
|||||||
autocomplete="new-password"
|
autocomplete="new-password"
|
||||||
v-model="password"
|
v-model="password"
|
||||||
placeholder="비밀번호"
|
placeholder="비밀번호"
|
||||||
@input="clearAlert('password')"
|
maxlength="8"
|
||||||
|
@input="
|
||||||
|
password = password.replace(/\s/g, '');
|
||||||
|
clearAlert('password');
|
||||||
|
"
|
||||||
/>
|
/>
|
||||||
<!-- 비밀번호 경고 메시지 -->
|
<!-- 비밀번호 경고 메시지 -->
|
||||||
<div v-if="passwordAlert2" class="position-absolute text-danger small top-100 start-0">
|
<div v-if="passwordAlert2" class="position-absolute text-danger small top-100 start-0">
|
||||||
@ -145,6 +149,7 @@
|
|||||||
|
|
||||||
if (!$common.isNotEmpty(password.value)) {
|
if (!$common.isNotEmpty(password.value)) {
|
||||||
passwordAlert2.value = '비밀번호를 입력해주세요.';
|
passwordAlert2.value = '비밀번호를 입력해주세요.';
|
||||||
|
password.value = '';
|
||||||
isValid = false;
|
isValid = false;
|
||||||
} else {
|
} else {
|
||||||
passwordAlert2.value = '';
|
passwordAlert2.value = '';
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="d-flex align-items-center flex-wrap">
|
<div class="d-flex align-items-center flex-wrap">
|
||||||
<div class="d-flex align-items-center">
|
<div class="d-flex align-items-center">
|
||||||
<div class="avatar me-2">
|
<div class="avatar me-2 cursor-none">
|
||||||
<img
|
<img
|
||||||
:src="getProfileImage(profileImg)"
|
:src="getProfileImage(profileImg)"
|
||||||
alt="user"
|
alt="user"
|
||||||
|
|||||||
@ -126,7 +126,7 @@ watch(() => props.data.localVote.total_voted, () => {
|
|||||||
|
|
||||||
// 종료 체크 함수
|
// 종료 체크 함수
|
||||||
const checkVoteCompletion = () => {
|
const checkVoteCompletion = () => {
|
||||||
if (props.data.localVote.total_votable === props.data.localVote.total_voted && props.data.localVote.LOCVOTDDT == '') {
|
if (props.data.localVote.total_votable === props.data.localVote.total_voted && props.data.localVote.LOCVOTDDT == null) {
|
||||||
emit('voteEnded', { id: props.data.localVote.LOCVOTSEQ });
|
emit('voteEnded', { id: props.data.localVote.LOCVOTSEQ });
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
@ -166,7 +166,8 @@
|
|||||||
// 목록 페이지로 이동
|
// 목록 페이지로 이동
|
||||||
const goList = () => {
|
const goList = () => {
|
||||||
accessStore.$reset();
|
accessStore.$reset();
|
||||||
router.push('/board');
|
//router.push('/board');
|
||||||
|
router.back();
|
||||||
};
|
};
|
||||||
|
|
||||||
// 전 페이지로 이동
|
// 전 페이지로 이동
|
||||||
|
|||||||
@ -30,6 +30,7 @@
|
|||||||
autocomplete="new-password"
|
autocomplete="new-password"
|
||||||
v-model="password"
|
v-model="password"
|
||||||
placeholder="비밀번호 입력"
|
placeholder="비밀번호 입력"
|
||||||
|
maxlength="8"
|
||||||
@input="
|
@input="
|
||||||
password = password.replace(/\s/g, '');
|
password = password.replace(/\s/g, '');
|
||||||
inputCheck();
|
inputCheck();
|
||||||
@ -562,6 +563,7 @@
|
|||||||
if (comment.isEditTextarea) {
|
if (comment.isEditTextarea) {
|
||||||
comment.isEditTextarea = false;
|
comment.isEditTextarea = false;
|
||||||
comment.isCommentPassword = true;
|
comment.isCommentPassword = true;
|
||||||
|
toggleCommentPassword(comment, 'delete');
|
||||||
} else {
|
} else {
|
||||||
toggleCommentPassword(comment, 'delete');
|
toggleCommentPassword(comment, 'delete');
|
||||||
}
|
}
|
||||||
|
|||||||
@ -127,6 +127,19 @@ const hasChanges = computed(() => {
|
|||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// 캘린더 이동 함수 (이전, 다음, 오늘)
|
||||||
|
const moveCalendar = async (value = 0) => {
|
||||||
|
const calendarApi = fullCalendarRef.value?.getApi();
|
||||||
|
|
||||||
|
if (value === 1) {
|
||||||
|
calendarApi.prev(); // 이전 달로 이동
|
||||||
|
} else if (value === 2) {
|
||||||
|
calendarApi.next(); // 다음 달로 이동
|
||||||
|
} else if (value === 3) {
|
||||||
|
calendarApi.today(); // 오늘 날짜로 이동
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
/* 캘린더 설정 */
|
/* 캘린더 설정 */
|
||||||
// 풀 캘린더 옵션,이벤트
|
// 풀 캘린더 옵션,이벤트
|
||||||
const calendarOptions = reactive({
|
const calendarOptions = reactive({
|
||||||
@ -143,6 +156,20 @@ const calendarOptions = reactive({
|
|||||||
dateClick: handleDateClick,
|
dateClick: handleDateClick,
|
||||||
datesSet: handleMonthChange,
|
datesSet: handleMonthChange,
|
||||||
events: calendarEvents,
|
events: calendarEvents,
|
||||||
|
customButtons: {
|
||||||
|
prev: {
|
||||||
|
text: 'PREV',
|
||||||
|
click: () => moveCalendar(1),
|
||||||
|
},
|
||||||
|
today: {
|
||||||
|
text: 'TODAY',
|
||||||
|
click: () => moveCalendar(3),
|
||||||
|
},
|
||||||
|
next: {
|
||||||
|
text: 'NEXT',
|
||||||
|
click: () => moveCalendar(2),
|
||||||
|
},
|
||||||
|
},
|
||||||
});
|
});
|
||||||
// 캘린더 월 변경
|
// 캘린더 월 변경
|
||||||
function handleMonthChange(viewInfo) {
|
function handleMonthChange(viewInfo) {
|
||||||
@ -178,6 +205,21 @@ function handleDateClick(info) {
|
|||||||
|
|
||||||
const isMyVacation = myVacations.value.some(vac => vac.date.substring(0, 10) === clickedDateStr && !vac.receiverId);
|
const isMyVacation = myVacations.value.some(vac => vac.date.substring(0, 10) === clickedDateStr && !vac.receiverId);
|
||||||
|
|
||||||
|
if (!selectedDates.value.has(clickedDateStr) && isMyVacation && halfDayType.value) {
|
||||||
|
const existingVacation = myVacations.value.find(vac => vac.date.substring(0, 10) === clickedDateStr && !vac.receiverId);
|
||||||
|
const selectedType =
|
||||||
|
halfDayType.value === "AM" ? "700101" :
|
||||||
|
halfDayType.value === "PM" ? "700102" : "700103";
|
||||||
|
if (existingVacation.type === selectedType) {
|
||||||
|
toastStore.onToast("이미 사용한 연차입니다.", "e");
|
||||||
|
if (halfDayButtonsRef.value) {
|
||||||
|
halfDayButtonsRef.value.resetHalfDay();
|
||||||
|
}
|
||||||
|
halfDayType.value = null;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// 이미 활성화된 날짜를 한 번 더 클릭하면 비활성화
|
// 이미 활성화된 날짜를 한 번 더 클릭하면 비활성화
|
||||||
if (currentValue && currentValue !== "delete") {
|
if (currentValue && currentValue !== "delete") {
|
||||||
selectedDates.value.delete(clickedDateStr);
|
selectedDates.value.delete(clickedDateStr);
|
||||||
|
|||||||
@ -132,7 +132,6 @@ const checkedNames = (numList) => {
|
|||||||
}
|
}
|
||||||
//투표종료
|
//투표종료
|
||||||
const endVoteId = (endVoteId) => {
|
const endVoteId = (endVoteId) => {
|
||||||
console.log('endVoteId',endVoteId)
|
|
||||||
$api.patch('vote/updateEndData',{
|
$api.patch('vote/updateEndData',{
|
||||||
endVoteId :endVoteId
|
endVoteId :endVoteId
|
||||||
}).then((res)=>{
|
}).then((res)=>{
|
||||||
@ -143,7 +142,6 @@ const endVoteId = (endVoteId) => {
|
|||||||
}
|
}
|
||||||
//기한 지난 투표 종료
|
//기한 지난 투표 종료
|
||||||
const voteEnded = async (id) =>{
|
const voteEnded = async (id) =>{
|
||||||
console.log('voteEnded',id)
|
|
||||||
await endVoteId(id.id);
|
await endVoteId(id.id);
|
||||||
}
|
}
|
||||||
//투표 삭제
|
//투표 삭제
|
||||||
|
|||||||
@ -34,7 +34,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- 숨겨진 input 태그를 사용하여 강제로 포커스 -->
|
<!-- 숨겨진 input 태그를 사용하여 강제로 포커스 -->
|
||||||
<input ref="dateInput" type="datetime-local" v-model="endDate" class="hidden-date-input">
|
<input ref="dateInput" :min="minDate" type="datetime-local" v-model="endDate" class="hidden-date-input">
|
||||||
|
|
||||||
<!-- 항목 입력 반복 -->
|
<!-- 항목 입력 반복 -->
|
||||||
<div v-for="(item, index) in itemList" :key="index">
|
<div v-for="(item, index) in itemList" :key="index">
|
||||||
@ -115,10 +115,7 @@ import { useUserStore } from '@s/userList';
|
|||||||
import { useRoute } from "vue-router";
|
import { useRoute } from "vue-router";
|
||||||
|
|
||||||
const userStore = useUserStore();
|
const userStore = useUserStore();
|
||||||
// const offset = new Date().getTimezoneOffset() * 60000
|
|
||||||
// const today = new Date(Date.now() - offset);
|
|
||||||
// today.setDate(today.getDate() + 1);
|
|
||||||
// const minDate = today.toISOString().substring(0, 16);
|
|
||||||
const toastStore = useToastStore();
|
const toastStore = useToastStore();
|
||||||
const activeUserList = ref([]);
|
const activeUserList = ref([]);
|
||||||
const disabledUsers = ref([]);
|
const disabledUsers = ref([]);
|
||||||
@ -144,12 +141,11 @@ const focusDateInput = () => {
|
|||||||
|
|
||||||
const minDate = ref('');
|
const minDate = ref('');
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
nextTick(() => {
|
|
||||||
const offset = new Date().getTimezoneOffset() * 60000;
|
const offset = new Date().getTimezoneOffset() * 60000;
|
||||||
const today = new Date(Date.now() - offset);
|
const today = new Date(Date.now() - offset);
|
||||||
today.setDate(today.getDate() + 1);
|
today.setDate(today.getDate() + 1);
|
||||||
minDate.value = today.toISOString().substring(0, 16);
|
minDate.value = today.toISOString().substring(0, 16);
|
||||||
});
|
|
||||||
});
|
});
|
||||||
|
|
||||||
const userSet = ({ userList, userTotal }) => {
|
const userSet = ({ userList, userTotal }) => {
|
||||||
|
|||||||
@ -31,6 +31,7 @@
|
|||||||
<!-- 단어 목록 -->
|
<!-- 단어 목록 -->
|
||||||
<ul v-if="total > 0" class="ms-3 list-unstyled">
|
<ul v-if="total > 0" class="ms-3 list-unstyled">
|
||||||
<DictCard
|
<DictCard
|
||||||
|
class="DictCard"
|
||||||
v-for="item in wordList"
|
v-for="item in wordList"
|
||||||
:key="item.WRDDICSEQ"
|
:key="item.WRDDICSEQ"
|
||||||
:item="item"
|
:item="item"
|
||||||
@ -159,6 +160,9 @@
|
|||||||
if (newAlphabet !== null) {
|
if (newAlphabet !== null) {
|
||||||
getwordList(searchText.value, selectedAlphabet.value, selectedCategory.value);
|
getwordList(searchText.value, selectedAlphabet.value, selectedCategory.value);
|
||||||
} else {
|
} else {
|
||||||
|
if( selectedCategory.value !== '' && selectedCategory.value !== null){
|
||||||
|
getwordList(searchText.value, selectedAlphabet.value, selectedCategory.value);
|
||||||
|
}
|
||||||
wordList.value = [];
|
wordList.value = [];
|
||||||
total.value = 0;
|
total.value = 0;
|
||||||
}
|
}
|
||||||
@ -173,6 +177,9 @@
|
|||||||
getwordList(searchText.value, selectedAlphabet.value, '');
|
getwordList(searchText.value, selectedAlphabet.value, '');
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
if( selectedAlphabet.value !== '' && selectedAlphabet.value !== null){
|
||||||
|
getwordList(searchText.value, selectedAlphabet.value, selectedCategory.value);
|
||||||
|
}
|
||||||
wordList.value = [];
|
wordList.value = [];
|
||||||
total.value = 0;
|
total.value = 0;
|
||||||
}
|
}
|
||||||
@ -194,7 +201,6 @@
|
|||||||
sendWordRequest(category, wordData, newCodName);
|
sendWordRequest(category, wordData, newCodName);
|
||||||
};
|
};
|
||||||
const sendWordRequest = (category, wordData, data) => {
|
const sendWordRequest = (category, wordData, data) => {
|
||||||
console.log(category,'category')
|
|
||||||
const payload = {
|
const payload = {
|
||||||
WRDDICCAT: category,
|
WRDDICCAT: category,
|
||||||
WRDDICTTL: wordData.title,
|
WRDDICTTL: wordData.title,
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user