Merge pull request 'dev-manhph1-figbug' (#33) from dev-manhph1-figbug into dev
Reviewed-on: #33
This commit is contained in:
@ -3,9 +3,9 @@
|
||||
<CommonPageTitle />
|
||||
<!-- 리스트 페이지 시작 -->
|
||||
<div v-if="pageActionFlag == 'list'" class="h1001">
|
||||
<v-card class="" >
|
||||
<v-card class="">
|
||||
<div class="pa-5">
|
||||
<v-row align="center" no-gutters >
|
||||
<v-row align="center" no-gutters>
|
||||
<v-col :cols="12" class="d-flex align-center justify-space-between">
|
||||
<v-card-title class="pa-0 custom-title-4">공지사항</v-card-title>
|
||||
<div class="d-flex align-center">
|
||||
@ -17,8 +17,8 @@
|
||||
</v-col>
|
||||
<v-col :cols="12" ref="contents" class="mt-5" style="min-height: calc(100% - 76px);">
|
||||
<div ref="gridParent" class="px-50" style="min-height: 70vh;">
|
||||
<component :ref="gridName" :is="loadGrid ? 'Grid' : null" :gridName="gridName" :parentPrgmId="myPrgmId"
|
||||
@getRowsData="getRowData" />
|
||||
<component :ref="gridName" :is="loadGrid ? 'Grid' : null" :gridName="gridName"
|
||||
:parentPrgmId="myPrgmId" @getRowsData="getRowData" />
|
||||
</div>
|
||||
</v-col>
|
||||
</v-row>
|
||||
@ -27,22 +27,23 @@
|
||||
</div>
|
||||
<!-- 리스트 페이지 끝 -->
|
||||
<!-- 상세보기 페이지 시작 -->
|
||||
<div v-if="pageActionFlag == 'view'" >
|
||||
<div v-if="pageActionFlag == 'view'">
|
||||
<v-card>
|
||||
<v-row class="pa-5">
|
||||
<v-col :cols="12" class="d-flex align-center justify-space-between ">
|
||||
<v-card-title class="pa-0 custom-title-4">공지사항</v-card-title>
|
||||
<v-card-title class="pa-0 custom-title-4">공지사항 보기</v-card-title>
|
||||
<div class="d-flex align-center">
|
||||
<a-button @click="viewPageButtonGroupClickEvent('list')" type="primary" :ripple="false" class="mr-1"
|
||||
icon="unordered-list">목록</a-button>
|
||||
<a-button @click="viewPageButtonGroupClickEvent('reply')" type="primary" :ripple="false" class="mr-1"
|
||||
icon="send-outlined">
|
||||
<a-button @click="viewPageButtonGroupClickEvent('list')" type="primary" :ripple="false"
|
||||
class="mr-1" icon="unordered-list">목록</a-button>
|
||||
<a-button @click="viewPageButtonGroupClickEvent('reply')" type="primary" :ripple="false"
|
||||
class="mr-1" icon="send-outlined">
|
||||
<v-icon small :class="['mr-2']">$icoSend</v-icon>
|
||||
답글
|
||||
</a-button>
|
||||
<a-button @click="viewPageButtonGroupClickEvent('update')" type="primary" :ripple="false" class="mr-1"
|
||||
icon="edit">수정</a-button>
|
||||
<a-button @click="viewPageButtonGroupClickEvent('delete')" type="danger" ghost icon="delete">삭제</a-button>
|
||||
<a-button @click="viewPageButtonGroupClickEvent('update')" type="primary" :ripple="false"
|
||||
class="mr-1" icon="edit">수정</a-button>
|
||||
<a-button @click="viewPageButtonGroupClickEvent('delete')" type="danger" ghost
|
||||
icon="delete">삭제</a-button>
|
||||
</div>
|
||||
</v-col>
|
||||
<v-col :cols="12" class="mt-5">
|
||||
@ -57,13 +58,12 @@
|
||||
<v-card-title class="custom-title-7 pa-0">
|
||||
파일목록
|
||||
</v-card-title>
|
||||
<div v-for="fileData in viewActionData.fileData"
|
||||
:key="fileData.apndFileId"
|
||||
class="file-item">
|
||||
<div v-for="fileData in viewActionData.fileData" :key="fileData.apndFileId" class="file-item">
|
||||
<a @click.prevent="downloadFile(fileData)">
|
||||
<div class="d-flex justify-start search-box-label">
|
||||
<v-icon>mdi-paperclip</v-icon>
|
||||
<span class="file-item-name ml-2">{{ fileData.apndFileNm + '.' + fileData.apndFileExt }}</span>
|
||||
<span class="file-item-name ml-2">{{ fileData.apndFileNm + '.' +
|
||||
fileData.apndFileExt }}</span>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
@ -73,12 +73,12 @@
|
||||
</div>
|
||||
<!-- 상세보기 페이지 끝 -->
|
||||
<!-- 작성 페이지 시작 -->
|
||||
<div v-if="pageActionFlag == 'write'" >
|
||||
<div v-if="pageActionFlag == 'write'">
|
||||
<v-card>
|
||||
<div class="pa-5">
|
||||
<v-row class="pa-50">
|
||||
<v-col :cols="12" class="">
|
||||
<v-card-title class="custom-title-4 pa-0">공지사항</v-card-title>
|
||||
<v-card-title class="custom-title-4 pa-0">공지사항 작성</v-card-title>
|
||||
</v-col>
|
||||
<v-col :cols="12" class="mt-4">
|
||||
<v-card-title class="custom-title-7 pa-0">제목</v-card-title>
|
||||
@ -88,37 +88,31 @@
|
||||
<v-col :cols="12" style="min-height: calc(100vh - 450px);">
|
||||
<editor ref="tuiEditor" height="100%" initialEditType="wysiwyg" />
|
||||
</v-col>
|
||||
|
||||
|
||||
<v-col :cols="6" class="mt-5">
|
||||
<v-card-title class="custom-title-7 pa-0">파일첨부</v-card-title>
|
||||
<div class="" v-if="writeActionData.fileData">
|
||||
<div
|
||||
v-for="(fileData, index) in writeActionData.fileData"
|
||||
:key="fileData.apndFileId"
|
||||
<div v-for="(fileData, index) in writeActionData.fileData" :key="fileData.apndFileId"
|
||||
class="file-item d-flex justify-space-between">
|
||||
<div class="file-item-detail">
|
||||
<v-icon>mdi-paperclip</v-icon>
|
||||
<span href="#" class="file-item-name">{{ fileData.name }}</span>
|
||||
</div>
|
||||
<a-icon type="delete" class="v-icon pointer" @click="writeActionData.fileData.splice(index, 1)" />
|
||||
<a-icon type="delete" class="v-icon pointer"
|
||||
@click="writeActionData.업로드fileData.splice(index, 1)" />
|
||||
</div>
|
||||
</div>
|
||||
<a-button class="mt-2" icon="upload" @click="$refs.writeInputFile.$refs.input.click()" >
|
||||
<a-button class="mt-2" icon="upload" @click="$refs.writeInputFile.$refs.input.click()">
|
||||
업로드
|
||||
</a-button>
|
||||
<v-file-input
|
||||
ref="writeInputFile"
|
||||
v-model="writeActionData.fileData"
|
||||
multiple
|
||||
outlined
|
||||
hide-input
|
||||
class="d-none"
|
||||
prepend-icon="mdi-tray-arrow-up"
|
||||
></v-file-input>
|
||||
<v-file-input ref="writeInputFile" v-model="writeActionData.fileData" multiple outlined
|
||||
hide-input class="d-none" prepend-icon="mdi-tray-arrow-up"></v-file-input>
|
||||
</v-col>
|
||||
<v-col :cols="12" class="text-right">
|
||||
<a-button @click="writePageButtonGroupClickEvent('cancel')" :ripple="false" class="mr-2">취소</a-button>
|
||||
<a-button @click="writePageButtonGroupClickEvent('write')" :ripple="false" type="primary">등록</a-button>
|
||||
<a-button @click="writePageButtonGroupClickEvent('cancel')" :ripple="false"
|
||||
class="mr-2">취소</a-button>
|
||||
<a-button @click="writePageButtonGroupClickEvent('write')" :ripple="false"
|
||||
type="primary">등록</a-button>
|
||||
</v-col>
|
||||
</v-row>
|
||||
</div>
|
||||
@ -126,7 +120,7 @@
|
||||
</div>
|
||||
<!-- 작성 페이지 끝 -->
|
||||
<!-- 답글 작성 페이지 시작 -->
|
||||
<div v-if="pageActionFlag == 'reply'" >
|
||||
<div v-if="pageActionFlag == 'reply'">
|
||||
<v-card class="pa-5">
|
||||
<v-row align="center" class="mt-0">
|
||||
<v-col :cols="12" class="">
|
||||
@ -134,8 +128,7 @@
|
||||
</v-col>
|
||||
<v-col :cols="12" class="mt-4">
|
||||
<v-card-title class="custom-title-7 pa-0">제목</v-card-title>
|
||||
<v-text-field v-model="replyActionData.title" class="v-input__custom" outlined
|
||||
hide-details>
|
||||
<v-text-field v-model="replyActionData.title" class="v-input__custom" outlined hide-details>
|
||||
</v-text-field>
|
||||
</v-col>
|
||||
<v-col :cols="12" style="height: calc(100vh - 270px);" class="mt-2">
|
||||
@ -144,72 +137,73 @@
|
||||
<v-col :cols="6" class="mt-5">
|
||||
<v-card-title class="custom-title-7 pa-0">파일첨부</v-card-title>
|
||||
<div class="" v-if="replyActionData.fileData">
|
||||
<div
|
||||
v-for="(fileData, index) in replyActionData.fileData"
|
||||
:key="fileData.apndFileId"
|
||||
<div v-for="(fileData, index) in replyActionData.fileData" :key="fileData.apndFileId"
|
||||
class="file-item d-flex justify-space-between">
|
||||
<div class="file-item-detail">
|
||||
<v-icon>mdi-paperclip</v-icon>
|
||||
<span href="#" class="file-item-name">{{ fileData.name }}</span>
|
||||
</div>
|
||||
<a-icon type="delete" class="v-icon pointer" @click="replyActionData.fileData.splice(index, 1)" />
|
||||
<a-icon type="delete" class="v-icon pointer"
|
||||
@click="replyActionData.fileData.splice(index, 1)" />
|
||||
</div>
|
||||
</div>
|
||||
<a-button class="mt-3" icon="upload" @click="$refs.replyInputFile.$refs.input.click()" >
|
||||
<a-button class="mt-3" icon="upload" @click="$refs.replyInputFile.$refs.input.click()">
|
||||
업로드
|
||||
</a-button>
|
||||
<v-file-input ref="replyInputFile" multiple show-size v-model="replyActionData.fileData" hide-details="true" class="d-none">
|
||||
<v-file-input ref="replyInputFile" multiple show-size v-model="replyActionData.fileData"
|
||||
hide-details="true" class="d-none">
|
||||
</v-file-input>
|
||||
</v-col>
|
||||
<v-col :cols="12" class="text-right">
|
||||
<a-button @click="replyPageButtonGroupClickEvent('cancel')" :ripple="false">취소</a-button>
|
||||
<a-button @click="replyPageButtonGroupClickEvent('reply')" :ripple="false" type="primary">등록</a-button>
|
||||
<a-button @click="replyPageButtonGroupClickEvent('reply')" :ripple="false"
|
||||
type="primary">등록</a-button>
|
||||
</v-col>
|
||||
</v-row>
|
||||
</v-card>
|
||||
</div>
|
||||
<!-- 답글 작성 페이지 끝 -->
|
||||
<!-- 수정 페이지 시작 -->
|
||||
<div v-if="pageActionFlag == 'update'" >
|
||||
<div v-if="pageActionFlag == 'update'">
|
||||
<v-card>
|
||||
<div class="pa-5">
|
||||
<v-row align="center" no-gutters>
|
||||
<v-col :cols="12">
|
||||
<v-card-title class="custom-title-4 pa-0">공지사항</v-card-title>
|
||||
<v-card-title class="custom-title-4 pa-0">공지사항 수정</v-card-title>
|
||||
</v-col>
|
||||
<v-col :cols="12" class="mt-4">
|
||||
<v-card-title class="custom-title-7 pa-0">제목</v-card-title>
|
||||
<v-text-field v-model="updateActionData.title" class="v-input__custom" hide-details outlined>
|
||||
<v-text-field v-model="updateActionData.title" class="v-input__custom" hide-details
|
||||
outlined>
|
||||
</v-text-field>
|
||||
</v-col>
|
||||
<v-col :cols="12" style="height: calc(90vh - 270px);" class="mt-4" >
|
||||
<v-col :cols="12" style="height: calc(90vh - 270px);" class="mt-4">
|
||||
<editor ref="tuiUpdateEditor" height="100%" initialEditType="wysiwyg"
|
||||
:initialValue="updateActionData.content" />
|
||||
</v-col>
|
||||
<v-col :cols="6" class="mt-5">
|
||||
<v-card-title class="custom-title-7 pa-0">파일첨부</v-card-title>
|
||||
<div class="" v-if="updateActionData.fileData">
|
||||
<div
|
||||
v-for="(fileData, index) in updateActionData.fileData"
|
||||
:key="fileData.apndFileId"
|
||||
class="file-item d-flex justify-space-between">
|
||||
<div class="file-item-detail">
|
||||
<v-icon>mdi-paperclip</v-icon>
|
||||
<span href="#" class="file-item-name">{{ fileData.name }}</span>
|
||||
</div>
|
||||
<a-icon type="delete" class="v-icon pointer" @click="updateActionData.fileData.splice(index, 1)" />
|
||||
<v-card-title class="custom-title-7 pa-0">파일첨부</v-card-title>
|
||||
<div class="" v-if="updateActionData.fileData">
|
||||
<div v-for="(fileData, index) in updateActionData.fileData" :key="fileData.apndFileId"
|
||||
class="file-item d-flex justify-space-between">
|
||||
<div class="file-item-detail">
|
||||
<v-icon>mdi-paperclip</v-icon>
|
||||
<span href="#" class="file-item-name">{{ fileData.name }}</span>
|
||||
</div>
|
||||
<a-icon type="delete" class="v-icon pointer"
|
||||
@click="updateActionData.fileData.splice(index, 1)" />
|
||||
</div>
|
||||
<a-button class="mt-2" icon="upload" @click="$refs.updateInputFile.$refs.input.click()" >
|
||||
업로드
|
||||
</a-button>
|
||||
<v-file-input ref="updateInputFile" multiple show-size v-model="updateActionData.fileData"
|
||||
hide-details="true" class="d-none">
|
||||
</v-file-input>
|
||||
</div>
|
||||
<a-button class="mt-2" icon="upload" @click="$refs.updateInputFile.$refs.input.click()">
|
||||
업로드
|
||||
</a-button>
|
||||
<v-file-input ref="updateInputFile" multiple show-size v-model="updateActionData.fileData"
|
||||
hide-details="true" class="d-none">
|
||||
</v-file-input>
|
||||
</v-col>
|
||||
<v-col :cols="12" class="text-right">
|
||||
<a-button @click="updatePageButtonGroupClickEvent('cancel')" >취소</a-button>
|
||||
<a-button @click="updatePageButtonGroupClickEvent('update')" type="primary" >등록</a-button>
|
||||
<a-button @click="updatePageButtonGroupClickEvent('cancel')">취소</a-button>
|
||||
<a-button @click="updatePageButtonGroupClickEvent('update')" type="primary">등록</a-button>
|
||||
</v-col>
|
||||
</v-row>
|
||||
</div>
|
||||
@ -295,8 +289,6 @@ export default {
|
||||
postGrpOrd: null,
|
||||
postOrgNo: null,
|
||||
},
|
||||
dataPathMock: {},
|
||||
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
@ -341,7 +333,7 @@ export default {
|
||||
chkOpenTabList: 'chkOpenTabList',
|
||||
getDomain: 'modules/list/getDomain',
|
||||
}),
|
||||
onTest(){
|
||||
onTest() {
|
||||
console.log(this.writeActionData.fileData);
|
||||
},
|
||||
async init() {
|
||||
@ -400,7 +392,11 @@ export default {
|
||||
gridInit() {
|
||||
const gridHeight = this.$refs.contents.offsetHeight - 76;
|
||||
|
||||
const myOptions = {};
|
||||
const myOptions = {
|
||||
header: {
|
||||
height: 38,
|
||||
},
|
||||
};
|
||||
this.setGridOption({
|
||||
gridKey: this.gridName,
|
||||
value: Object.assign(Utility.defaultGridOption(gridHeight), myOptions),
|
||||
@ -421,7 +417,7 @@ export default {
|
||||
align: 'center',
|
||||
hidden: true,
|
||||
},
|
||||
{ header: '번호', name: 'postNo', width: 150, align: 'center' },
|
||||
{ header: '번호', name: 'postNo', width: 150, align: 'right' },
|
||||
{
|
||||
header: '원글번호',
|
||||
name: 'postOrgNo',
|
||||
@ -451,9 +447,9 @@ export default {
|
||||
hidden: true,
|
||||
},
|
||||
{ header: '제목', name: 'title', align: 'left' },
|
||||
{ header: '작성자', name: 'regUserNo', width: 250, align: 'center' },
|
||||
{ header: '작성자', name: 'regUserNo', width: 250, align: 'right' },
|
||||
{ header: '작성일', name: 'regDttm', width: 250, align: 'center' },
|
||||
{ header: '조회수', name: 'viewCnt', width: 150, align: 'center' },
|
||||
{ header: '조회수', name: 'viewCnt', width: 150, align: 'right' },
|
||||
// {header: "파일아이디", name:"apndFileUuid", width:150, align:"center"}, // 수정필요
|
||||
];
|
||||
|
||||
@ -475,7 +471,7 @@ export default {
|
||||
resKey: 'postData',
|
||||
sendParam: params,
|
||||
});
|
||||
|
||||
|
||||
this.setGridData({
|
||||
gridKey: this.gridName,
|
||||
value: res,
|
||||
@ -1020,15 +1016,6 @@ const defaultData = {
|
||||
},
|
||||
};
|
||||
|
||||
import { getPathDataExample } from '@/const/const'
|
||||
const dataPathDataExample = getPathDataExample({
|
||||
postNo: '18',
|
||||
title: '오픈공지',
|
||||
regUserNo: '1',
|
||||
regDttm: '2023-01-09 09:39:41',
|
||||
viewCnt: '1'
|
||||
}, 10);
|
||||
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
@ -1042,23 +1029,41 @@ const dataPathDataExample = getPathDataExample({
|
||||
margin: 2px 0;
|
||||
padding: 4px;
|
||||
background-color: #0000000A;
|
||||
.file-item-name{
|
||||
|
||||
.file-item-name {
|
||||
color: #1677FF;
|
||||
}
|
||||
}
|
||||
|
||||
::v-deep {
|
||||
.v-input__slot {
|
||||
padding-left: 8px;
|
||||
padding-right: 8px;
|
||||
}
|
||||
|
||||
.custom-view {
|
||||
border: 1px solid;
|
||||
border-radius: 6px;
|
||||
height: 100%;
|
||||
|
||||
@each $theme in dark, light {
|
||||
@include theme($theme);
|
||||
border-color: map-deep-get($config, #{$theme}, "v-input-textarea-border");;
|
||||
border-color: map-deep-get($config, #{$theme}, "v-input-textarea-border");
|
||||
;
|
||||
}
|
||||
}
|
||||
|
||||
.toastui-editor-mode-switch {
|
||||
font-family: Inter !important;
|
||||
font-size: 1.0rem !important;
|
||||
}
|
||||
|
||||
.toastui-editor-mode-switch .tab-item.active {
|
||||
color: #1677FF
|
||||
}
|
||||
|
||||
.toastui-editor-mode-switch .tab-item {
|
||||
color: #000000E0
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
Reference in New Issue
Block a user