Merge branch 'khj'

This commit is contained in:
khj0414 2025-03-20 14:56:28 +09:00
commit 204b7a28a5
5 changed files with 29 additions and 13 deletions

View File

@ -19,6 +19,9 @@
@focusout="$emit('focusout', modelValue)" @focusout="$emit('focusout', modelValue)"
@input="handleInput" @input="handleInput"
/> />
<div v-if="isBtn" class="ms-2">
<slot name="append"></slot>
</div>
</div> </div>
<div class="invalid-feedback" :class="isAlert ? 'd-block' : ''">{{ title }} 확인해주세요.</div> <div class="invalid-feedback" :class="isAlert ? 'd-block' : ''">{{ title }} 확인해주세요.</div>
<div class="invalid-feedback" :class="isCateAlert ? 'd-block' : ''">카테고리 중복입니다.</div> <div class="invalid-feedback" :class="isCateAlert ? 'd-block' : ''">카테고리 중복입니다.</div>

View File

@ -28,7 +28,6 @@
</button> </button>
<DeleteBtn v-if="!data.localVote.LOCVOTDDT" @click="voteDelete(data.localVote.LOCVOTSEQ)" /> <DeleteBtn v-if="!data.localVote.LOCVOTDDT" @click="voteDelete(data.localVote.LOCVOTSEQ)" />
</div> </div>
<p v-if="data.localVote.LOCVOTDDT" class="btn-icon btn-danger rounded-2 pe-none"><i class="bx bx-power-off"></i></p>
</div> </div>
</div> </div>
</div> </div>
@ -53,7 +52,7 @@
<small v-if="yesVotetotal != 0 && !data.localVote.LOCVOTDDT">투표 완료 : 종료시 투표 결과가 나타납니다.</small> <small v-if="yesVotetotal != 0 && !data.localVote.LOCVOTDDT">투표 완료 : 종료시 투표 결과가 나타납니다.</small>
<!-- 투표 결과 --> <!-- 투표 결과 -->
<div v-if="data.localVote.LOCVOTDDT" class="mt-3"> <div v-if="data.localVote.LOCVOTDDT" class="mt-3">
<vote-result-list :data="topVoters" @randomList="randomList" :randomResultNum="data.localVote.LOCVOTRES" :locvotreg="data.localVote.LOCVOTREG"/> <vote-result-list :data="topVoters" @randomList="randomList" :randomResultNum="data.localVote.LOCVOTRES" :locvotreg="data.localVote.LOCVOTREG" />
</div> </div>
<!-- 투표완/미완 인원 --> <!-- 투표완/미완 인원 -->
<vote-user-list <vote-user-list
@ -68,7 +67,7 @@
</template> </template>
<script setup> <script setup>
import { computed, onMounted, ref } from 'vue' import { computed, onMounted, ref, watch } from 'vue'
import EditBtn from '@c/button/EditBtn.vue'; import EditBtn from '@c/button/EditBtn.vue';
import DeleteBtn from '@c/button/DeleteBtn.vue'; import DeleteBtn from '@c/button/DeleteBtn.vue';
import voteUserList from '@c/voteboard/voteUserList.vue'; import voteUserList from '@c/voteboard/voteUserList.vue';
@ -117,7 +116,19 @@ onMounted(() => {
if (isVoteEnded.value && !props.data.localVote.LOCVOTDDT) { if (isVoteEnded.value && !props.data.localVote.LOCVOTDDT) {
emit('voteEnded', { id: props.data.localVote.LOCVOTSEQ }); emit('voteEnded', { id: props.data.localVote.LOCVOTSEQ });
} }
checkVoteCompletion();
}); });
//
watch(() => props.data.localVote.total_voted, () => {
checkVoteCompletion();
});
//
const checkVoteCompletion = () => {
if (props.data.localVote.total_votable === props.data.localVote.total_voted && !props.data.localVote.LOCVOTDDT) {
emit('voteEnded', { id: props.data.localVote.LOCVOTSEQ });
}
};
const addContents = (itemList, voteId) =>{ const addContents = (itemList, voteId) =>{
emit('addContents',itemList,voteId) emit('addContents',itemList,voteId)
} }

View File

@ -7,7 +7,7 @@
</span> </span>
<div class="timeline-event ps-1"> <div class="timeline-event ps-1">
<div class="timeline-header"> <div class="timeline-header">
<small class="text-primary text-uppercase">투표결과</small> <small class="text-primary text-uppercase">투표결과</small>
</div> </div>
<h6 v-if="data" class="my-50">{{ data[0].LOCVOTCON }}</h6> <h6 v-if="data" class="my-50">{{ data[0].LOCVOTCON }}</h6>
<h6 v-if="randomResultNum" class="my-50">{{randomResultNum }}</h6> <h6 v-if="randomResultNum" class="my-50">{{randomResultNum }}</h6>

View File

@ -136,7 +136,7 @@ const endVoteId = (endVoteId) => {
endVoteId :endVoteId endVoteId :endVoteId
}).then((res)=>{ }).then((res)=>{
if(res.data.status === 'OK'){ if(res.data.status === 'OK'){
toastStore.onToast('투표가 종료되었습니다.', 's'); //toastStore.onToast(' .', 's');
getvoteList(); getvoteList();
} }
}) })

View File

@ -23,7 +23,7 @@
<form-input <form-input
title="종료날짜" title="종료날짜"
name="endDate" name="endDate"
type="date" type="datetime-local"
:is-essential="true" :is-essential="true"
:is-alert="endDateAlert" :is-alert="endDateAlert"
v-model="endDate" v-model="endDate"
@ -45,8 +45,14 @@
<delete-btn @click="removeItem(index)" :disabled="index < 2" /> <delete-btn @click="removeItem(index)" :disabled="index < 2" />
</template> </template>
</form-input> </form-input>
<form-input
<link-input v-model="item.url" class="mb-1"/> :title="'URL ' + (index + 1)"
:name="'url' + index"
v-model="item.url"
:is-essential="false"
class="mb-1"
/>
<!-- <link-input v-model="item.url" class="mb-1"/> -->
</div> </div>
<plus-btn @click="addItem" :disabled="itemList.length >= 10" class="mb-3" /> <plus-btn @click="addItem" :disabled="itemList.length >= 10" class="mb-3" />
@ -98,7 +104,6 @@ import PlusBtn from "@c/button/PlusBtn.vue";
import DeleteBtn from "@c/button/DeleteBtn.vue"; import DeleteBtn from "@c/button/DeleteBtn.vue";
import $api from "@api"; import $api from "@api";
import router from "@/router"; import router from "@/router";
import LinkInput from "@/components/voteboard/voteLinkInput.vue";
import { voteCommon } from '@s/voteCommon'; import { voteCommon } from '@s/voteCommon';
import { useUserStore } from '@s/userList'; import { useUserStore } from '@s/userList';
import { useRoute } from "vue-router"; import { useRoute } from "vue-router";
@ -123,8 +128,6 @@ const userSet = ({ userList, userTotal }) => {
activeUserList.value = userList; activeUserList.value = userList;
userListTotal.value = userTotal; userListTotal.value = userTotal;
}; };
const handleUserListUpdate = ({ activeUsers, disabledUsers: updatedDisabledUsers }) => { const handleUserListUpdate = ({ activeUsers, disabledUsers: updatedDisabledUsers }) => {
activeUserList.value = activeUsers; activeUserList.value = activeUsers;
disabledUsers.value = updatedDisabledUsers; disabledUsers.value = updatedDisabledUsers;
@ -135,7 +138,6 @@ const handleUserListUpdate = ({ activeUsers, disabledUsers: updatedDisabledUsers
UserListAlert.value = false; UserListAlert.value = false;
} }
}; };
const saveValid = () => { const saveValid = () => {
let valid = true; let valid = true;
if (disabledUsers.value.length === 0) { if (disabledUsers.value.length === 0) {
@ -175,7 +177,6 @@ const saveValid = () => {
} }
}; };
const saveVote = () => { const saveVote = () => {
console.log('itemList',itemList)
const filteredItemList = itemList.value.filter(item => item.content && item.content.trim() !== ''); const filteredItemList = itemList.value.filter(item => item.content && item.content.trim() !== '');
const unwrappedUserList = toRaw(activeUserList.value); const unwrappedUserList = toRaw(activeUserList.value);
const listId = unwrappedUserList.map(item => ({ const listId = unwrappedUserList.map(item => ({
@ -218,4 +219,5 @@ const goList = () => {
.item-input { .item-input {
max-width: 200px; max-width: 200px;
} }
</style> </style>