Merge branch 'main' into board-ji
This commit is contained in:
commit
7e02512011
@ -1,8 +1,8 @@
|
||||
<template>
|
||||
<div class="ps-2">
|
||||
<span class="d-flex align-items-center g-2 font_767"><i class="bx bx-map pe-1"></i>{{ place }}</span>
|
||||
<div class="ps-2" style="font-size: 13px">
|
||||
<span class="d-flex align-items-center g-2 font_767"><i class="bx bxs-map pe-1"></i>{{ place }}</span>
|
||||
<span class="d-flex align-items-center g-2 font_767"
|
||||
><i class="bx bx-time-five pe-1"></i>{{ $common.dateFormatter(time, 'T') }}</span
|
||||
><i class="bx bxs-time-five pe-1"></i>{{ $common.dateFormatter(time, 'T') }}</span
|
||||
>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@ -5,7 +5,7 @@
|
||||
<div class="card-body">
|
||||
<img
|
||||
v-if="user"
|
||||
:src="`${baseUrl}upload/img/profile/${user.profile}`"
|
||||
:src="`${profileImgUrl}profile/${user.profile}`"
|
||||
alt="Profile Image"
|
||||
class="w-px-50 h-px-50 rounded-circle"
|
||||
@error="$event.target.src = '/img/icons/icon.png'"
|
||||
@ -78,6 +78,7 @@
|
||||
import '@/assets/css/app-calendar.css';
|
||||
|
||||
const baseUrl = import.meta.env.VITE_DOMAIN;
|
||||
const profileImgUrl = import.meta.env.VITE_SERVER_IMG_URL;
|
||||
const user = ref({});
|
||||
const userStore = useUserInfoStore();
|
||||
const projectStore = useProjectStore();
|
||||
@ -297,7 +298,7 @@
|
||||
// 날짜 선택 가능 여부를 확인하는 공통 함수
|
||||
const isSelectableDate = date => {
|
||||
const checkDate = dayjs(date);
|
||||
const isWeekend = checkDate.day() === 0 || checkDate.day() === 6;
|
||||
const isWeekend = checkDate.day() === 0 || checkDate.day() === 6; // 주말체크
|
||||
// 공휴일 체크
|
||||
const isHoliday = calendarEvents.value.some(
|
||||
event =>
|
||||
@ -315,6 +316,9 @@
|
||||
// 선택 불가능한 날짜(과거, 주말, 공휴일)에 동일한 클래스 추가
|
||||
if (!isSelectableDate(cellDate)) {
|
||||
classes.push('fc-day-sat-sun');
|
||||
} else {
|
||||
// 선택 가능한 날짜 포인터 클래스 추가
|
||||
classes.push('clickable');
|
||||
}
|
||||
|
||||
return classes;
|
||||
@ -323,7 +327,7 @@
|
||||
// 날짜 클릭 이벤트 핸들러
|
||||
let todayEL = null;
|
||||
const handleDateClick = info => {
|
||||
if (isSelectableDate(info)) {
|
||||
if (isSelectableDate(info.date)) {
|
||||
if ($common.isToday(info.date)) {
|
||||
// 오늘 날짜 클릭 시 클래스 제거하고 요소 저장
|
||||
todayEL = info.dayEl;
|
||||
@ -556,7 +560,6 @@
|
||||
param.append('day', day);
|
||||
|
||||
if (!weatherStore.dailyWeatherList?.length) {
|
||||
console.log(123);
|
||||
await weatherStore.getWeatherInfo();
|
||||
//dailyWeatherList.value = weatherStore.dailyWeatherList;
|
||||
console.log('dailyWeatherList.value: ', dailyWeatherList.value);
|
||||
@ -599,4 +602,9 @@
|
||||
align-items: center;
|
||||
text-align: center !important; */
|
||||
}
|
||||
|
||||
/* 공휴일만 가로로 넗게 나오게 */
|
||||
::v-deep(.fc-daygrid-event-harness:has(.holiday-event)) {
|
||||
width: 100% !important;
|
||||
}
|
||||
</style>
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
<div class="ms-2" style="flex: 1">
|
||||
<ul class="row gx-1 mb-0 list-inline">
|
||||
<li class="col-4 me-0" v-for="(member, index) in members" :key="index">
|
||||
<div class="ratio ratio-1x1 mb-0 profile-list">
|
||||
<div class="ratio ratio-1x1 mb-0">
|
||||
<img
|
||||
:src="`${profileImgUrl}profile/${member.MEMBERPRF}`"
|
||||
:style="`border-color: ${member.usercolor} !important;`"
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<li class="card p-5 mb-2">
|
||||
<li class="card p-4 mb-2">
|
||||
<DictWrite
|
||||
v-if="writeStore.isItemActive(item.WRDDICSEQ)"
|
||||
@close="writeStore.closeAll();"
|
||||
@ -16,7 +16,7 @@
|
||||
<div v-else>
|
||||
<div class="d-flex align-items-center justify-content-between">
|
||||
<div class="d-flex align-items-center">
|
||||
<span class="btn btn-primary pe-none m-1"
|
||||
<span class="btn btn-primary pe-none m-2"
|
||||
style="writing-mode: horizontal-tb;">{{ item.category }}</span>
|
||||
{{ item.WRDDICTTL }}
|
||||
</div>
|
||||
|
||||
@ -223,6 +223,7 @@ import { useRoute } from 'vue-router';
|
||||
sendWordRequest(category, wordData, newCodName);
|
||||
};
|
||||
const sendWordRequest = (category, wordData, data) => {
|
||||
|
||||
const payload = {
|
||||
WRDDICCAT: category,
|
||||
WRDDICTTL: wordData.title,
|
||||
@ -237,13 +238,15 @@ import { useRoute } from 'vue-router';
|
||||
writeButton.value.resetButton();
|
||||
}
|
||||
selectedCategory.value = category;
|
||||
const firstChar = getFirstCharacter(wordData.title[0]); // 첫 글자 변환
|
||||
selectedAlphabet.value = firstChar;
|
||||
|
||||
getwordList(searchText.value, selectedAlphabet.value, selectedCategory.value);
|
||||
getIndex();
|
||||
if(res.data.data == '2'){
|
||||
const newCategory = { label: data, value: category };
|
||||
cateList.value = [...cateList.value,newCategory];
|
||||
}
|
||||
selectedAlphabet.value = '';
|
||||
}
|
||||
});
|
||||
};
|
||||
@ -285,6 +288,32 @@ import { useRoute } from 'vue-router';
|
||||
|
||||
};
|
||||
|
||||
//초성 /알파벳 변환
|
||||
const getFirstCharacter = (char) => {
|
||||
const CHOSUNG_LIST = [
|
||||
'ㄱ', 'ㄲ', 'ㄴ', 'ㄷ', 'ㄸ', 'ㄹ', 'ㅁ', 'ㅂ', 'ㅃ', 'ㅅ',
|
||||
'ㅆ', 'ㅇ', 'ㅈ', 'ㅉ', 'ㅊ', 'ㅋ', 'ㅌ', 'ㅍ', 'ㅎ'
|
||||
];
|
||||
|
||||
if (!char || char.length === 0) return '';
|
||||
|
||||
const code = char.charCodeAt(0);
|
||||
|
||||
// 한글 범위 (가~힣) → 초성 변환
|
||||
if (code >= 0xAC00 && code <= 0xD7A3) {
|
||||
const index = Math.floor((code - 0xAC00) / (21 * 28));
|
||||
return CHOSUNG_LIST[index];
|
||||
}
|
||||
|
||||
// 영어 소문자 → 대문자로 변환
|
||||
if (char.match(/[a-zA-Z]/)) {
|
||||
return char.toLowerCase();
|
||||
}
|
||||
|
||||
// 기타 문자 (숫자, 특수문자) 그대로 반환
|
||||
return char;
|
||||
};
|
||||
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user