Merg68.0.251:3000/localnet/le branch 'main' of http://192.1ocalhost-front

This commit is contained in:
kimdaae328 2024-12-17 10:42:19 +09:00
commit 38772b3109
11 changed files with 307 additions and 444 deletions

499
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,99 @@
[
{
"id": 1,
"title": "타이틀1",
"content": "헌법재판소가 윤석열 대통령 탄핵심판 사건의 첫 변론 준비 기일을 27일 오후 2시에 연다고 밝혔다. 헌재는 이번 사건의 주심 배당도 마쳤지만 비공개 원칙에 따라 공개하지 않기로 했다.이진 헌재 공보관은 16일 언론브리핑에서 “(윤 대통령 탄핵 사건을) 변론 준비 절차에 회부하고, 1차 변론 준비 기일을 27일 오후 2시로 지정했다”고 밝혔다. 이어 “변론 준비 기일에서 검찰과 경찰 등의 수사기록을 조기에 확보하기로 했다”고 덧붙였다. 헌법재판관들은 이날 오전 10시에 재판관 회의를 열고 이같은 내용을 결정했다.",
"date": "2024-12-16 18:01",
"img": "https://picsum.photos/id/1/250/250"
},
{
"id": 2,
"title": "타이틀2",
"content": "헌법재판소가 윤석열 대통령 탄핵심판 사건의 첫 변론 준비 기일을 27일 오후 2시에 연다고 밝혔다. 헌재는 이번 사건의 주심 배당도 마쳤지만 비공개 원칙에 따라 공개하지 않기로 했다.이진 헌재 공보관은 16일 언론브리핑에서 “(윤 대통령 탄핵 사건을) 변론 준비 절차에 회부하고, 1차 변론 준비 기일을 27일 오후 2시로 지정했다”고 밝혔다. 이어 “변론 준비 기일에서 검찰과 경찰 등의 수사기록을 조기에 확보하기로 했다”고 덧붙였다. 헌법재판관들은 이날 오전 10시에 재판관 회의를 열고 이같은 내용을 결정했다.",
"date": "2024-12-16 18:02"
},
{
"id": 3,
"title": "타이틀3",
"content": "헌법재판소가 윤석열 대통령 탄핵심판 사건의 첫 변론 준비 기일을 27일 오후 2시에 연다고 밝혔다. 헌재는 이번 사건의 주심 배당도 마쳤지만 비공개 원칙에 따라 공개하지 않기로 했다.이진 헌재 공보관은 16일 언론브리핑에서 “(윤 대통령 탄핵 사건을) 변론 준비 절차에 회부하고, 1차 변론 준비 기일을 27일 오후 2시로 지정했다”고 밝혔다. 이어 “변론 준비 기일에서 검찰과 경찰 등의 수사기록을 조기에 확보하기로 했다”고 덧붙였다. 헌법재판관들은 이날 오전 10시에 재판관 회의를 열고 이같은 내용을 결정했다.",
"date": "2024-12-16 18:03",
"img": "https://picsum.photos/id/3/250/250"
},
{
"id": 4,
"title": "타이틀4",
"content": "헌법재판소가 윤석열 대통령 탄핵심판 사건의 첫 변론 준비 기일을 27일 오후 2시에 연다고 밝혔다. 헌재는 이번 사건의 주심 배당도 마쳤지만 비공개 원칙에 따라 공개하지 않기로 했다.이진 헌재 공보관은 16일 언론브리핑에서 “(윤 대통령 탄핵 사건을) 변론 준비 절차에 회부하고, 1차 변론 준비 기일을 27일 오후 2시로 지정했다”고 밝혔다. 이어 “변론 준비 기일에서 검찰과 경찰 등의 수사기록을 조기에 확보하기로 했다”고 덧붙였다. 헌법재판관들은 이날 오전 10시에 재판관 회의를 열고 이같은 내용을 결정했다.",
"date": "2024-12-16 18:04",
"img": "https://picsum.photos/id/4/250/250"
},
{
"id": 5,
"title": "타이틀5",
"content": "헌법재판소가 윤석열 대통령 탄핵심판 사건의 첫 변론 준비 기일을 27일 오후 2시에 연다고 밝혔다. 헌재는 이번 사건의 주심 배당도 마쳤지만 비공개 원칙에 따라 공개하지 않기로 했다.이진 헌재 공보관은 16일 언론브리핑에서 “(윤 대통령 탄핵 사건을) 변론 준비 절차에 회부하고, 1차 변론 준비 기일을 27일 오후 2시로 지정했다”고 밝혔다. 이어 “변론 준비 기일에서 검찰과 경찰 등의 수사기록을 조기에 확보하기로 했다”고 덧붙였다. 헌법재판관들은 이날 오전 10시에 재판관 회의를 열고 이같은 내용을 결정했다.",
"date": "2024-12-16 18:05",
"img": "https://picsum.photos/id/5/250/250"
},
{
"id": 6,
"title": "타이틀6",
"content": "헌법재판소가 윤석열 대통령 탄핵심판 사건의 첫 변론 준비 기일을 27일 오후 2시에 연다고 밝혔다. 헌재는 이번 사건의 주심 배당도 마쳤지만 비공개 원칙에 따라 공개하지 않기로 했다.이진 헌재 공보관은 16일 언론브리핑에서 “(윤 대통령 탄핵 사건을) 변론 준비 절차에 회부하고, 1차 변론 준비 기일을 27일 오후 2시로 지정했다”고 밝혔다. 이어 “변론 준비 기일에서 검찰과 경찰 등의 수사기록을 조기에 확보하기로 했다”고 덧붙였다. 헌법재판관들은 이날 오전 10시에 재판관 회의를 열고 이같은 내용을 결정했다.",
"date": "2024-12-16 18:06",
"img": "https://picsum.photos/id/6/250/250"
},
{
"id": 7,
"title": "타이틀7",
"content": "헌법재판소가 윤석열 대통령 탄핵심판 사건의 첫 변론 준비 기일을 27일 오후 2시에 연다고 밝혔다. 헌재는 이번 사건의 주심 배당도 마쳤지만 비공개 원칙에 따라 공개하지 않기로 했다.이진 헌재 공보관은 16일 언론브리핑에서 “(윤 대통령 탄핵 사건을) 변론 준비 절차에 회부하고, 1차 변론 준비 기일을 27일 오후 2시로 지정했다”고 밝혔다. 이어 “변론 준비 기일에서 검찰과 경찰 등의 수사기록을 조기에 확보하기로 했다”고 덧붙였다. 헌법재판관들은 이날 오전 10시에 재판관 회의를 열고 이같은 내용을 결정했다.",
"date": "2024-12-16 18:07",
"img": "https://picsum.photos/id/7/250/250"
},
{
"id": 8,
"title": "타이틀8",
"content": "헌법재판소가 윤석열 대통령 탄핵심판 사건의 첫 변론 준비 기일을 27일 오후 2시에 연다고 밝혔다. 헌재는 이번 사건의 주심 배당도 마쳤지만 비공개 원칙에 따라 공개하지 않기로 했다.이진 헌재 공보관은 16일 언론브리핑에서 “(윤 대통령 탄핵 사건을) 변론 준비 절차에 회부하고, 1차 변론 준비 기일을 27일 오후 2시로 지정했다”고 밝혔다. 이어 “변론 준비 기일에서 검찰과 경찰 등의 수사기록을 조기에 확보하기로 했다”고 덧붙였다. 헌법재판관들은 이날 오전 10시에 재판관 회의를 열고 이같은 내용을 결정했다.",
"date": "2024-12-16 18:08",
"img": "https://picsum.photos/id/8/250/250"
},
{
"id": 9,
"title": "타이틀9",
"content": "헌법재판소가 윤석열 대통령 탄핵심판 사건의 첫 변론 준비 기일을 27일 오후 2시에 연다고 밝혔다. 헌재는 이번 사건의 주심 배당도 마쳤지만 비공개 원칙에 따라 공개하지 않기로 했다.이진 헌재 공보관은 16일 언론브리핑에서 “(윤 대통령 탄핵 사건을) 변론 준비 절차에 회부하고, 1차 변론 준비 기일을 27일 오후 2시로 지정했다”고 밝혔다. 이어 “변론 준비 기일에서 검찰과 경찰 등의 수사기록을 조기에 확보하기로 했다”고 덧붙였다. 헌법재판관들은 이날 오전 10시에 재판관 회의를 열고 이같은 내용을 결정했다.",
"date": "2024-12-16 18:09",
"img": "https://picsum.photos/id/9/250/250"
},
{
"id": 10,
"title": "타이틀10",
"content": "헌법재판소가 윤석열 대통령 탄핵심판 사건의 첫 변론 준비 기일을 27일 오후 2시에 연다고 밝혔다. 헌재는 이번 사건의 주심 배당도 마쳤지만 비공개 원칙에 따라 공개하지 않기로 했다.이진 헌재 공보관은 16일 언론브리핑에서 “(윤 대통령 탄핵 사건을) 변론 준비 절차에 회부하고, 1차 변론 준비 기일을 27일 오후 2시로 지정했다”고 밝혔다. 이어 “변론 준비 기일에서 검찰과 경찰 등의 수사기록을 조기에 확보하기로 했다”고 덧붙였다. 헌법재판관들은 이날 오전 10시에 재판관 회의를 열고 이같은 내용을 결정했다.",
"date": "2024-12-16 18:10",
"img": "https://picsum.photos/id/10/250/250"
},
{
"id": 11,
"title": "타이틀11",
"content": "헌법재판소가 윤석열 대통령 탄핵심판 사건의 첫 변론 준비 기일을 27일 오후 2시에 연다고 밝혔다. 헌재는 이번 사건의 주심 배당도 마쳤지만 비공개 원칙에 따라 공개하지 않기로 했다.이진 헌재 공보관은 16일 언론브리핑에서 “(윤 대통령 탄핵 사건을) 변론 준비 절차에 회부하고, 1차 변론 준비 기일을 27일 오후 2시로 지정했다”고 밝혔다. 이어 “변론 준비 기일에서 검찰과 경찰 등의 수사기록을 조기에 확보하기로 했다”고 덧붙였다. 헌법재판관들은 이날 오전 10시에 재판관 회의를 열고 이같은 내용을 결정했다.",
"date": "2024-12-16 18:11",
"img": "https://picsum.photos/id/11/250/250"
},
{
"id": 12,
"title": "타이틀12",
"content": "헌법재판소가 윤석열 대통령 탄핵심판 사건의 첫 변론 준비 기일을 27일 오후 2시에 연다고 밝혔다. 헌재는 이번 사건의 주심 배당도 마쳤지만 비공개 원칙에 따라 공개하지 않기로 했다.이진 헌재 공보관은 16일 언론브리핑에서 “(윤 대통령 탄핵 사건을) 변론 준비 절차에 회부하고, 1차 변론 준비 기일을 27일 오후 2시로 지정했다”고 밝혔다. 이어 “변론 준비 기일에서 검찰과 경찰 등의 수사기록을 조기에 확보하기로 했다”고 덧붙였다. 헌법재판관들은 이날 오전 10시에 재판관 회의를 열고 이같은 내용을 결정했다.",
"date": "2024-12-16 18:12",
"img": "https://picsum.photos/id/12/250/250"
},
{
"id": 13,
"title": "타이틀13",
"content": "헌법재판소가 윤석열 대통령 탄핵심판 사건의 첫 변론 준비 기일을 27일 오후 2시에 연다고 밝혔다. 헌재는 이번 사건의 주심 배당도 마쳤지만 비공개 원칙에 따라 공개하지 않기로 했다.이진 헌재 공보관은 16일 언론브리핑에서 “(윤 대통령 탄핵 사건을) 변론 준비 절차에 회부하고, 1차 변론 준비 기일을 27일 오후 2시로 지정했다”고 밝혔다. 이어 “변론 준비 기일에서 검찰과 경찰 등의 수사기록을 조기에 확보하기로 했다”고 덧붙였다. 헌법재판관들은 이날 오전 10시에 재판관 회의를 열고 이같은 내용을 결정했다.",
"date": "2024-12-16 18:13",
"img": "https://picsum.photos/id/13/250/250"
},
{
"id": 14,
"title": "타이틀14",
"content": "헌법재판소가 윤석열 대통령 탄핵심판 사건의 첫 변론 준비 기일을 27일 오후 2시에 연다고 밝혔다. 헌재는 이번 사건의 주심 배당도 마쳤지만 비공개 원칙에 따라 공개하지 않기로 했다.이진 헌재 공보관은 16일 언론브리핑에서 “(윤 대통령 탄핵 사건을) 변론 준비 절차에 회부하고, 1차 변론 준비 기일을 27일 오후 2시로 지정했다”고 밝혔다. 이어 “변론 준비 기일에서 검찰과 경찰 등의 수사기록을 조기에 확보하기로 했다”고 덧붙였다. 헌법재판관들은 이날 오전 10시에 재판관 회의를 열고 이같은 내용을 결정했다.",
"date": "2024-12-16 18:14",
"img": "https://picsum.photos/id/14/250/250"
}
]

View File

@ -48,6 +48,16 @@ const init = reactive({
],
style_format_merge: true,
//custom menu format
font_family_formats: `
Arial=arial,helvetica,sans-serif;
Courier New=courier new,courier,monospace;
AkrutiKndPadmini=Akpdmi-n;
Consolas=consolas,monaco,monospace;
나눔고딕=NanumGothic,나눔고딕,AppleSDGothicNeo,sans-serif;
맑은 고딕=Malgun Gothic,맑은 고딕,AppleSDGothicNeo,sans-serif;
돋움=Dotum,돋움,sans-serif;
D2Coding=D2Coding,D2CodingBold,monospace;`,
formats: {
blockquote: {
block: 'blockquote',

View File

@ -1,13 +1,32 @@
<template>
<div class="mb-4 row">
<label for="html5-email-input" class="col-md-2 col-form-label"> 첨부파일 </label>
<label :for="name" class="col-md-2 col-form-label">{{ title }} </label>
<div class="col-md-10">
<input class="form-control" type="file" id="formFileMultiple" multiple />
<input class="form-control" type="file" :id="name" @change="changeHandler" multiple />
</div>
</div>
</template>
<script setup>
const prop = defineProps({
title: {
type: String,
default: '라벨',
required: true,
},
name: {
type: String,
default: 'nameplz',
required: true,
},
});
const emits = defineEmits(['update:data']);
const changeHandler = (event) => {
const files = Array.from(event.target.files);
emits('update:data', files);
};
</script>
<style>

View File

@ -0,0 +1,26 @@
<template>
<div class="">
<div class="card">
<div class="d-flex">
<div v-if="data.item.img">
<img class="card-img card-img-left" :src="data.item.img" alt="" style="max-height: 200px; min-width: 200px" />
</div>
<div>
<div class="card-body">
<h5 class="card-title">{{ data.item.title }}</h5>
<p class="card-text">
{{ data.item.content }}
</p>
<p class="card-text">
<small class="text-muted">{{ data.item.date }}</small>
</p>
</div>
</div>
</div>
</div>
</div>
</template>
<script setup>
const data = defineProps(['item']);
</script>

View File

@ -0,0 +1,35 @@
<template>
<nav aria-label="Page navigation">
<ul class="pagination pagination-rounded justify-content-center">
<li class="page-item first">
<a class="page-link" href="javascript:void(0);"><i class="tf-icon bx bx-chevrons-left bx-sm"></i></a>
</li>
<li class="page-item prev">
<a class="page-link" href="javascript:void(0);"><i class="tf-icon bx bx-chevron-left bx-sm"></i></a>
</li>
<li class="page-item">
<a class="page-link" href="javascript:void(0);">1</a>
</li>
<li class="page-item">
<a class="page-link" href="javascript:void(0);">2</a>
</li>
<li class="page-item active">
<a class="page-link" href="javascript:void(0);">3</a>
</li>
<li class="page-item">
<a class="page-link" href="javascript:void(0);">4</a>
</li>
<li class="page-item">
<a class="page-link" href="javascript:void(0);">5</a>
</li>
<li class="page-item next">
<a class="page-link" href="javascript:void(0);"><i class="tf-icon bx bx-chevron-right bx-sm"></i></a>
</li>
<li class="page-item last">
<a class="page-link" href="javascript:void(0);"><i class="tf-icon bx bx-chevrons-right bx-sm"></i></a>
</li>
</ul>
</nav>
</template>
<script setup></script>

View File

@ -0,0 +1,12 @@
<template>
<div class="input-group mb-3">
<div class="input-group-text">
<!-- <input class="form-check-input mt-0" type="checkbox" value="" aria-label="Checkbox for following text input" /> -->
<i class="bx bx-search bx-md"></i>
</div>
<input type="text" class="form-control" placeholder="Search" />
<button type="button" class="btn btn-primary">검색</button>
</div>
</template>
<script setup></script>

View File

@ -7,17 +7,6 @@
</div>
<div class="navbar-nav-right d-flex align-items-center" id="navbar-collapse">
<!-- Search -->
<div class="navbar-nav align-items-center">
<div class="nav-item navbar-search-wrapper mb-0">
<a class="nav-item nav-link search-toggler px-0" href="javascript:void(0);">
<i class="bx bx-search bx-md"></i>
<span class="d-none d-md-inline-block text-muted fw-normal ms-4">Search (Ctrl+/)</span>
</a>
</div>
</div>
<!-- /Search -->
<ul class="navbar-nav flex-row align-items-center ms-auto">
<!-- Language -->
<li class="nav-item dropdown-language dropdown me-2 me-xl-0">
@ -497,7 +486,5 @@
</div>
</nav>
</template>
<script setup>
</script>
<style>
</style>
<script setup></script>
<style></style>

View File

@ -1,15 +1,30 @@
<template>
<div class="container-xxl flex-grow-1 container-p-y">
<div class="row">
board
<search-bar />
<div class="row g-3">
<div class="mt-8">
<button type="button" class="btn btn-primary float-end">글쓰기</button>
</div>
<template v-for="(item, index) in list" :key="item.id">
<board-card :item="item" />
</template>
<div class="mt-8">
{{ list[0].title }}
<pagination />
</div>
</div>
</div>
</template>
<script setup>
import { ref } from 'vue';
import BoardCard from '@/components/list/BoardCard.vue';
import Pagination from '@/components/pagination/Pagination.vue';
import SearchBar from '@/components/search/SearchBar.vue';
import dummy from '@a/boardDummy.json';
const list = ref(dummy);
</script>
<style>
</style>
<style></style>

View File

@ -19,7 +19,7 @@
</div>
</template>
<script setup>
<script setup></script>
import BoardComentArea from '@/components/board/BoardComentArea.vue';
import BoardComment from '@/components/board/BoardComment.vue';

View File

@ -15,7 +15,7 @@
<FormInput title="비밀번호" name="pw" type="password" :is-essential="true" @update:data="password = $event" />
<FormFile />
<FormFile title="첨부파일" name="files" @update:data="attachFiles = $event" />
<div class="mb-4">
<label for="html5-tel-input" class="col-md-2 col-form-label">
@ -50,6 +50,7 @@ const title = ref('');
const password = ref('');
const category = ref('');
const content = ref('');
const attachFiles = ref(null);
</script>
<style>