투표 수정
This commit is contained in:
parent
fe8abc7f7c
commit
d5c54d8195
@ -5,28 +5,32 @@
|
|||||||
<span v-if="isEssential" class="text-danger">*</span>
|
<span v-if="isEssential" class="text-danger">*</span>
|
||||||
</label>
|
</label>
|
||||||
<div class="col-md-10">
|
<div class="col-md-10">
|
||||||
<input
|
<div class="d-flex align-items-center">
|
||||||
:id="name"
|
<input
|
||||||
class="form-control"
|
:id="name"
|
||||||
:type="type"
|
class="form-control"
|
||||||
v-model="inputValue"
|
:type="type"
|
||||||
:maxLength="maxlength"
|
v-model="inputValue"
|
||||||
:placeholder="title"
|
:maxLength="maxlength"
|
||||||
:disabled="disabled"
|
:placeholder="title"
|
||||||
:min="min"
|
:disabled="disabled"
|
||||||
autocomplete="off"
|
:min="min"
|
||||||
@focusout="$emit('focusout', modelValue)"
|
autocomplete="off"
|
||||||
@input="handleInput"
|
@focusout="$emit('focusout', modelValue)"
|
||||||
/>
|
@input="handleInput"
|
||||||
|
/>
|
||||||
|
<div v-if="isBtn" class="ms-2">
|
||||||
|
<slot name="append"></slot>
|
||||||
|
</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>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import { ref, watch } from 'vue';
|
import { ref, watch } from 'vue';
|
||||||
|
|
||||||
// Props 정의
|
// Props 정의
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
@ -78,6 +82,11 @@
|
|||||||
default: '',
|
default: '',
|
||||||
required: false,
|
required: false,
|
||||||
},
|
},
|
||||||
|
isBtn: {
|
||||||
|
type: Boolean,
|
||||||
|
default: false,
|
||||||
|
required: false,
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
// Emits 정의
|
// Emits 정의
|
||||||
|
|||||||
@ -1,16 +1,16 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="card mb-6" :class="{ 'disabled-class': data.localVote.LOCVOTDDT && (topVoters.length == 1 || data.localVote.LOCVOTRES || voteResult == 0)}">
|
<div v-if="data.voteMembers.some(item => item.MEMBERSEQ === userStore.user.id)"
|
||||||
|
class="card mb-6" :class="{ 'disabled-class': data.localVote.LOCVOTDDT && (topVoters.length == 1 || data.localVote.LOCVOTRES || voteResult == 0)}">
|
||||||
<div class="card-body" v-if="!data.localVote.LOCVOTDEL" >
|
<div class="card-body" v-if="!data.localVote.LOCVOTDEL" >
|
||||||
<h5 class="card-title mb-1">
|
<h5 class="card-title mb-1">
|
||||||
<div class="list-unstyled users-list d-flex align-items-center gap-1">
|
<div class="list-unstyled users-list d-flex align-items-center gap-1">
|
||||||
<img
|
<img
|
||||||
class="rounded-circle user-avatar border border-3 w-px-40"
|
class="rounded-circle user-avatar border border-3 w-px-40"
|
||||||
:src="`${baseUrl}upload/img/profile/${data.localVote.MEMBERPRF}`"
|
:src="`${baseUrl}upload/img/profile/${data.localVote.MEMBERPRF}`"
|
||||||
:style="`border-color: ${data.localVote.usercolor} !important;`"
|
:style="`border-color: ${data.localVote.usercolor} !important;`"
|
||||||
@error="$event.target.src = '/img/icons/icon.png'"
|
@error="$event.target.src = '/img/icons/icon.png'"
|
||||||
alt="user"
|
alt="user"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<div class="w-100">
|
<div class="w-100">
|
||||||
<div class="d-flex justify-content-between">
|
<div class="d-flex justify-content-between">
|
||||||
<div class="user-info">
|
<div class="user-info">
|
||||||
@ -23,20 +23,21 @@
|
|||||||
<button
|
<button
|
||||||
v-if="!data.localVote.LOCVOTDDT"
|
v-if="!data.localVote.LOCVOTDDT"
|
||||||
type="button"
|
type="button"
|
||||||
class="btn btn-label-danger btn-icon"
|
class="btn btn-label-danger btn-icon m-1"
|
||||||
@click="endBtn(data.localVote.LOCVOTSEQ)"
|
@click="endBtn(data.localVote.LOCVOTSEQ)"
|
||||||
><i class="bx bx-power-off"></i>
|
><i class="bx bx-power-off"></i>
|
||||||
</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"><i class="bx bx-power-off"></i></p>
|
<p v-if="data.localVote.LOCVOTDDT" class="btn-icon btn-danger rounded-2"><i class="bx bx-power-off"></i></p>
|
||||||
<i v-if="yesVotetotal != '0'" class="bx bxs-check-circle link-success"></i>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</h5>
|
</h5>
|
||||||
<h5 class="mb-1">{{ data.localVote.LOCVOTTTL }}</h5>
|
<h5 class="mb-1">{{ data.localVote.LOCVOTTTL }}
|
||||||
|
<i v-if="yesVotetotal != '0'" class="bx bxs-check-circle link-success"></i>
|
||||||
|
</h5>
|
||||||
<small >{{ data.localVote.formatted_LOCVOTRDT }} ~ {{ data.localVote.formatted_LOCVOTEDT }}</small>
|
<small >{{ data.localVote.formatted_LOCVOTRDT }} ~ {{ data.localVote.formatted_LOCVOTEDT }}</small>
|
||||||
<!-- 투표안했을시-->
|
<!-- 투표안했을시-->
|
||||||
<div v-if="data.localVote.LOCVOTDDT && voteResult == 0">
|
<div v-if="data.localVote.LOCVOTDDT && voteResult == 0">
|
||||||
@ -50,9 +51,7 @@
|
|||||||
:data="data.voteDetails"
|
:data="data.voteDetails"
|
||||||
:voteInfo="data.localVote"
|
:voteInfo="data.localVote"
|
||||||
:total="data.voteDetails.length "/>
|
:total="data.voteDetails.length "/>
|
||||||
|
|
||||||
<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"/>
|
||||||
@ -96,6 +95,7 @@ const yesVotetotal = computed(() => {
|
|||||||
return props.data.voteDetails.reduce((sum, item) => sum + item.yesvote, 0);
|
return props.data.voteDetails.reduce((sum, item) => sum + item.yesvote, 0);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
// 가장 많은 투표를 받은 항목들 (1위)
|
// 가장 많은 투표를 받은 항목들 (1위)
|
||||||
const topVoters = computed(() => {
|
const topVoters = computed(() => {
|
||||||
// 가장 높은 VOTE_COUNT 찾기
|
// 가장 높은 VOTE_COUNT 찾기
|
||||||
|
|||||||
@ -1,42 +1,42 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="card-text">
|
<div class="card-text">
|
||||||
<div class="demo-inline-spacing mt-4">
|
<div class="demo-inline-spacing">
|
||||||
<!-- 투표리스트 -->
|
<!-- 투표리스트 -->
|
||||||
<div v-for="(item, index) in data"
|
<div v-for="(item, index) in data"
|
||||||
:key="index">
|
:key="index">
|
||||||
<vote-card-check-list
|
<vote-card-check-list
|
||||||
:data="item"
|
:data="item"
|
||||||
:multiIs = voteInfo.LOCVOTMUL
|
:multiIs = voteInfo.LOCVOTMUL
|
||||||
:selectedValues="checkedNames"
|
:selectedValues="checkedNames"
|
||||||
@update:selectedValues="updateCheckedNames"
|
@update:selectedValues="updateCheckedNames"
|
||||||
/>
|
|
||||||
<div v-if="voteInfo.LOCVOTADD ==='1' && index === data.length - 1">
|
|
||||||
<div v-for="(item, index) in itemList" :key="index" class="d-flex align-items-start mt-2">
|
|
||||||
<div class="flex-grow-1 me-2 ">
|
|
||||||
<form-input
|
|
||||||
:title="'항목 ' + (index + data.length + 1)"
|
|
||||||
:name="'content' + index"
|
|
||||||
:is-essential="false"
|
|
||||||
:is-alert="contentAlerts[index]"
|
|
||||||
v-model="item.content"
|
|
||||||
/>
|
/>
|
||||||
<link-input v-model="item.url" />
|
<div v-if="voteInfo.LOCVOTADD ==='1' && index === data.length - 1">
|
||||||
</div>
|
<div v-for="(item, index) in itemList" :key="index" class=" mt-2">
|
||||||
<delete-btn @click="removeItem(index)" />
|
<form-input
|
||||||
</div>
|
:title="'항목 ' + (index + data.length + 1)"
|
||||||
<div class="mb-4 d-flex justify-content mt-3">
|
:name="'content' + index"
|
||||||
<plus-btn @click="addItem" :disabled="total >= 10" class="mb-2" />
|
:is-essential="false"
|
||||||
<button class="btn btn-primary btn-icon mb-3" @click="addContentSave(item.LOCVOTSEQ)" :disabled="isSaveDisabled">
|
:is-alert="contentAlerts[index]"
|
||||||
<i class="bx bx-check"></i>
|
v-model="item.content"
|
||||||
</button>
|
:is-btn="true"
|
||||||
</div>
|
>
|
||||||
</div>
|
<template v-slot:append>
|
||||||
|
<delete-btn @click="removeItem(index)" />
|
||||||
|
</template>
|
||||||
|
</form-input>
|
||||||
|
<link-input v-model="item.url" class="mb-1"/>
|
||||||
|
</div>
|
||||||
|
<div class="d-flex justify-content">
|
||||||
|
<plus-btn @click="addItem" :disabled="total >= 10" class="m-1" />
|
||||||
|
<button class="btn btn-primary btn-icon mt-1" @click="addContentSave(item.LOCVOTSEQ)" :disabled="isSaveDisabled">
|
||||||
|
<i class="bx bx-check"></i>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<save-btn class="btn-sm mt-2" @click="selectVote"/>
|
<save-btn class="mt-2" @click="selectVote"/>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
|
|||||||
@ -1,34 +1,34 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="d-flex align-items-center">
|
<div class="mb-2 row">
|
||||||
<!-- 링크 아이콘 -->
|
<!-- 링크 아이콘 -->
|
||||||
<i class="bx bx-link-alt me-2" @click="togglePopover"></i>
|
<label for="name" class="col-md-2 col-form-label">
|
||||||
|
<div class="d-flex align-items-center">
|
||||||
|
<!-- 링크 아이콘 -->
|
||||||
|
<i class="bx bx-link-alt me-2" @click="togglePopover"></i>
|
||||||
|
<!-- 등록된 링크, 입력창이 보이지 않고 등록된 링크만 보일 때 -->
|
||||||
|
<span v-if="isLinkSaved && !isPopoverVisible" class="ms-2">
|
||||||
|
<a :href="formattedLink" class="d-inline-block text-truncate" target="_blank" rel="noopener noreferrer">
|
||||||
|
{{ link }}
|
||||||
|
</a>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
</label>
|
||||||
<!-- 링크 입력창 (옆으로 나오게) -->
|
<!-- 링크 입력창 (옆으로 나오게) -->
|
||||||
<div
|
<div v-if="isPopoverVisible" class="col-md-10">
|
||||||
v-if="isPopoverVisible"
|
<div class="d-flex align-items-center">
|
||||||
class="d-flex"
|
<input
|
||||||
>
|
v-model="link"
|
||||||
<input
|
placeholder="URL을 입력해주세요"
|
||||||
v-model="link"
|
class="form-control me-2"
|
||||||
placeholder="URL을 입력해주세요"
|
/>
|
||||||
class="form-control"
|
<save-btn class="btn-icon" @click="saveLink"/>
|
||||||
style="min-width: 500px;"
|
</div>
|
||||||
/>
|
|
||||||
<save-btn class="btn-sm" @click="saveLink"/>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- 등록된 링크, 입력창이 보이지 않고 등록된 링크만 보일 때 -->
|
|
||||||
<span v-if="isLinkSaved && !isPopoverVisible" class="ms-2">
|
|
||||||
<a :href="formattedLink" class="d-inline-block text-truncate" target="_blank" rel="noopener noreferrer">
|
|
||||||
{{ link }}
|
|
||||||
</a>
|
|
||||||
</span>
|
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import SaveBtn from '@c/button/SaveBtn.vue'
|
import SaveBtn from '@c/button/SaveBtn.vue'
|
||||||
|
|
||||||
import { ref, computed } from "vue";
|
import { ref, computed } from "vue";
|
||||||
|
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
|
|||||||
@ -1,19 +1,19 @@
|
|||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<ul class="timeline mb-0">
|
<ul class="timeline mb-0">
|
||||||
<li class="timeline-item ps-6 ">
|
<li class="timeline-item ps-6 ">
|
||||||
<span class="timeline-indicator-advanced timeline-indicator-primary border-0 shadow-none">
|
<span class="timeline-indicator-advanced timeline-indicator-primary border-0 shadow-none">
|
||||||
<i class="icon-base bx bx-check-circle"></i>
|
<i class="icon-base bx bx-check-circle"></i>
|
||||||
</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>
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|||||||
@ -1,11 +1,11 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="card mb-6 border border-2 border-primary rounded primary-shadow">
|
<div class="card mb-6 border border-2 border-primary rounded primary-shadow">
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
<!-- 1위가 여러개일때 -->
|
<!-- 1위가 여러개일때 -->
|
||||||
<vote-result-random v-if="topVoters.length > 1" :data="topVoters" :randomResultNum="randomResultNum" :locvotreg="locvotreg"
|
<vote-result-random v-if="topVoters.length > 1" :data="topVoters" :randomResultNum="randomResultNum" :locvotreg="locvotreg"
|
||||||
@randomList="randomList"/>
|
@randomList="randomList"/>
|
||||||
<!-- 1위가 하나일때-->
|
<!-- 1위가 하나일때-->
|
||||||
<vote-result-card v-if="topVoters.length == 1" :data="topVoters"/>
|
<vote-result-card v-if="topVoters.length == 1" :data="topVoters"/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|||||||
@ -1,17 +1,16 @@
|
|||||||
<template>
|
<template>
|
||||||
<div v-if="!isRandom && !randomResultNum">
|
<div v-if="!isRandom && !randomResultNum">
|
||||||
<h6><i class="icon-base bx bx-error icon-lg link-warning"></i> 1위가 중복 되었습니다</h6>
|
<h6><i class="icon-base bx bx-error icon-lg link-warning"></i> 1위가 중복 되었습니다</h6>
|
||||||
<!-- 중복된 1위 리스트 -->
|
<!-- 중복된 1위 리스트 -->
|
||||||
<vote-result-random-list
|
<vote-result-random-list
|
||||||
v-for="(item,index) in data"
|
v-for="(item,index) in data"
|
||||||
:key="index"
|
:key="index"
|
||||||
:data="item"
|
:data="item"
|
||||||
:randomResultNum="randomResultNum"/>
|
:randomResultNum="randomResultNum"/>
|
||||||
</div>
|
</div>
|
||||||
<div v-if="isRandom === false && randomResultNum">
|
<div v-if="isRandom === false && randomResultNum">
|
||||||
<vote-result-card :randomResultNum="randomResultNum"/>
|
<vote-result-card :randomResultNum="randomResultNum"/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<button v-if="isRandom" class="btn btn-primary" type="button" disabled="">
|
<button v-if="isRandom" class="btn btn-primary" type="button" disabled="">
|
||||||
<span class="spinner-grow me-1" role="status" aria-hidden="true"></span>
|
<span class="spinner-grow me-1" role="status" aria-hidden="true"></span>
|
||||||
random..
|
random..
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
<div class="d-flex align-items-center">
|
<div class="d-flex align-items-center">
|
||||||
<!--투표한 사람 목록 -->
|
<!--투표한 사람 목록 -->
|
||||||
<div class="d-flex align-items-center gap-2">
|
<div class="d-flex align-items-center gap-2">
|
||||||
<i class='bx bxs-user-check link-info'></i>
|
<i class='bx bxs-user-check link-info fa-3x'></i>
|
||||||
<vote-complete-user-list
|
<vote-complete-user-list
|
||||||
v-for="(item, index) in voetedUsers"
|
v-for="(item, index) in voetedUsers"
|
||||||
:key="index"
|
:key="index"
|
||||||
@ -11,7 +11,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<!-- 투표안한 사람 목록 -->
|
<!-- 투표안한 사람 목록 -->
|
||||||
<div class="d-flex align-items-center gap-2 ms-auto">
|
<div class="d-flex align-items-center gap-2 ms-auto">
|
||||||
<i class='bx bxs-user-x link-danger'></i>
|
<i class='bx bxs-user-x link-danger fa-3x'></i>
|
||||||
<vote-in-complete-user-list
|
<vote-in-complete-user-list
|
||||||
v-for="(item, index) in noVoetedUsers"
|
v-for="(item, index) in noVoetedUsers"
|
||||||
:key="index"
|
:key="index"
|
||||||
|
|||||||
@ -13,7 +13,7 @@
|
|||||||
:is-essential="false"
|
:is-essential="false"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-2 btn-margin" v-if="!isDisabled">
|
<div class="col-2" v-if="!isDisabled">
|
||||||
<PlusBtn @click="toggleInput"/>
|
<PlusBtn @click="toggleInput"/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -1,21 +1,25 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="container-xxl flex-grow-1 container-p-y">
|
<div class="container-xxl flex-grow-1 container-p-y">
|
||||||
<div class="row g-3">
|
<div class="">
|
||||||
<div class="mt-8">
|
|
||||||
<!-- 투표 작성 -->
|
<!-- 투표 작성 -->
|
||||||
<WriteBtn @click="voteWrite" />
|
<WriteBtn @click="voteWrite" />
|
||||||
<!-- 투표마감/투표중 셀렉트 -->
|
<!-- 투표마감/투표중 셀렉트 -->
|
||||||
<FormSelect class="col-3" name="cate" :isLabel="false" title="투표상태" :data="categoryList" @update:data="category = $event" @change="selectHandler"/>
|
<div v-for="(item, index) in categoryList" @change="selectHandler"
|
||||||
|
:key="index"
|
||||||
|
class="form-check form-check-inline" >
|
||||||
|
<input class="form-check-input" type="radio" name="cate" :id="'inlineRadio' + index"
|
||||||
|
:value="index" v-model="category">
|
||||||
|
<label class="form-check-label" :for="'inlineRadio' + index">{{ item }}</label>
|
||||||
|
</div>
|
||||||
<!-- 내가한 투표 보기 -->
|
<!-- 내가한 투표 보기 -->
|
||||||
<div class="p-4">
|
<div class="">
|
||||||
<div class="form-check">
|
<div class="form-check">
|
||||||
<input class="form-check-input" type="checkbox" value="" id="defaultCheck1" v-model="ischeked" @change="changeCheck">
|
<input class="form-check-input" type="checkbox" value="" id="defaultCheck1" v-model="ischeked" @change="changeCheck">
|
||||||
<label class="form-check-label" for="defaultCheck1"> 내가 한 투표 </label>
|
<label class="form-check-label" for="defaultCheck1"> 내가 한 투표 </label>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- 투표리스트 -->
|
<!-- 투표리스트 -->
|
||||||
<div v-if="voteListCardData.length == 0 " class="mt66">등록된 투표가 없습니다.</div>
|
<div v-if="voteListCardData.length == 0 " >투표가 없습니다.</div>
|
||||||
<vote-list
|
<vote-list
|
||||||
:data="voteListCardData"
|
:data="voteListCardData"
|
||||||
@addContents="addContents"
|
@addContents="addContents"
|
||||||
@ -27,7 +31,7 @@
|
|||||||
@randomList="randomList"
|
@randomList="randomList"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!-- 페이지네이션 -->
|
<!-- 페이지네이션 -->
|
||||||
<div class="row g-3">
|
<div class="row g-3">
|
||||||
<div class="mt-8">
|
<div class="mt-8">
|
||||||
@ -36,8 +40,7 @@
|
|||||||
v-bind="PageData"
|
v-bind="PageData"
|
||||||
:currentPage="currentPage"
|
:currentPage="currentPage"
|
||||||
@update:currentPage="handlePageChange"
|
@update:currentPage="handlePageChange"
|
||||||
/>
|
/>
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|||||||
@ -31,21 +31,23 @@
|
|||||||
@change="ValidHandlerendDate"
|
@change="ValidHandlerendDate"
|
||||||
/>
|
/>
|
||||||
<!-- 항목 입력 반복 -->
|
<!-- 항목 입력 반복 -->
|
||||||
<div v-for="(item, index) in itemList" :key="index" class="d-flex align-items-start ">
|
<div v-for="(item, index) in itemList" :key="index">
|
||||||
<div class="flex-grow-1 me-2 ">
|
|
||||||
<form-input
|
<form-input
|
||||||
:title="'항목 ' + (index + 1)"
|
:title="'항목 ' + (index + 1)"
|
||||||
:name="'content' + index"
|
:name="'content' + index"
|
||||||
:is-essential="index < 2"
|
:is-essential="index < 2"
|
||||||
:is-alert="contentAlerts[index]"
|
:is-alert="contentAlerts[index]"
|
||||||
v-model="item.content"
|
v-model="item.content"
|
||||||
@keyup="ValidHandler('content' + (index + 1))"
|
@keyup="ValidHandler('content' + (index + 1))"
|
||||||
/>
|
:is-btn="true"
|
||||||
|
>
|
||||||
|
<template v-slot:append>
|
||||||
|
<delete-btn @click="removeItem(index)" :disabled="index < 2" />
|
||||||
|
</template>
|
||||||
|
</form-input>
|
||||||
|
|
||||||
<link-input v-model="item.url" class="mb-1"/>
|
<link-input v-model="item.url" class="mb-1"/>
|
||||||
</div>
|
</div>
|
||||||
<!-- delete-btn을 오른쪽으로 정렬 -->
|
|
||||||
<delete-btn @click="removeItem(index)" :disabled="index < 2" />
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<plus-btn @click="addItem" :disabled="itemList.length >= 10" class="mb-3" />
|
<plus-btn @click="addItem" :disabled="itemList.length >= 10" class="mb-3" />
|
||||||
<div>
|
<div>
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user