Merge branch 'khj'
This commit is contained in:
commit
204b7a28a5
@ -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>
|
||||||
|
|||||||
@ -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)
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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>
|
||||||
|
|||||||
@ -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();
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|||||||
@ -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>
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user