![](/assets/images/project_default_logo.png)
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
<template>
<div class="content">
<div class="admin-page-title point-font2 mb30">
<p>개인정보 조회 이력</p>
</div>
<div class="search-bar mb15 pd30 background radius">
<div class="flex align-end no-gutters">
<div class="gd-5">
<div class="flex align-center no-gutters">
<div class="gd-5">
<input type="date" name="" id="" class="full-input" v-model="search.startDt" />
</div>
<div class="pd10">
-
</div>
<div class="gd-5">
<input type="date" name="" id="" class="full-input" v-model="search.endDt" />
</div>
</div>
</div>
<div class="gd-6">
<div class="flex align-center">
<div class="gd-3 pl0">
<select name="" id="" class="full-select" v-model="search.searchType">
<option value="title">제목</option>
<option v-for="(item, idx) in codeList" :key="idx" :value="item.cdId">{{ item.cdNm }}</option>
</select>
</div>
<div class="gd-9 pl0">
<input type="text" name="" id="" class="full-input" placeholder="교육 및 컨설팅명을 입력하세요."
v-model="search.searchText" @keyup.enter="findAll" />
</div>
</div>
</div>
<div class="gd-1">
<button class="large-btn blue-border-btn" @click="findAll">검색</button>
</div>
</div>
</div>
<div class="table-zone">
<ListTable :colgroup="colgroup" :thead="thead" :tbody="tbody" :className="'admin-list'"
@listClick="fnViewDetail" />
</div>
<div class="flex justify-center align-center no-gutters">
<div class="gd-10">
<PaginationButton :className="'admin-pagination'" v-model:currentPage="search['currentPage']"
:pagination="search" :click="fnViewList" />
</div>
</div>
<!-- 개인 정보 조회 사유 모달 -->
<Modal :showModal="isOpen">
<template v-slot:header>
<p class="page-sub-title">개인정보 조회 사유</p>
<button class="close-btn" @click="fnModalClose">
<svg-icon type="mdi" :path="closePath"></svg-icon>
</button>
</template>
<div>
<textarea v-model="prvcInqHstry['inqRsn']" disabled></textarea>
</div>
<template v-slot:footer></template>
</Modal>
</div>
</template>
<script>
import Modal from "../../../component/modal/Modal.vue";
import ListTable from "../../../component/table/ListTable.vue";
import PaginationButton from "../../../component/pagination/PaginationButton.vue";
import { defaultSearchParams } from "../../../../resources/js/defaultSearchParams";
import { mdiWindowClose } from "@mdi/js";
// API
import { listProc, detailProc } from "../../../../resources/api/prvcInqHstry";
export default {
components: {
Modal: Modal,
ListTable: ListTable,
PaginationButton: PaginationButton,
},
data() {
return {
isOpen: false,
closePath: mdiWindowClose,
colgroup: ["5%", "23.75%", "23.75%", "23.75%", "23.75%"],
thead: ["NO", "조회일", "조회자", "조회 대상 아이디", "접속IP"],
tbody: [],
search: { ...defaultSearchParams },
list: [],
pagination: {},
prvcInqHstry: {},
};
},
created() {
this.fnViewList();
},
methods: {
// 조회(목록)
fnViewList() {
let data = this.search;
if (this.search["startDt"] != null && this.search["startDt"] != "") {
this.search["startDt"] = this.dateFormat(
new Date(this.search["startDt"])
);
}
if (this.search["endDt"] != null && this.search["endDt"] != "") {
this.search["endDt"] = this.dateFormat(new Date(this.search["endDt"]));
}
this.axiosViewList(data);
},
// 조회(상세)
fnViewDetail(idx) {
let data = { inqHstryId: this.list[idx]["inqHstryId"] };
this.axiosViewDetail(data);
},
// 모달 열기
fnModalOpen() {
this.isOpen = true;
},
// 모달 닫기
fnModalClose() {
this.isOpen = false;
},
// tbody 생성
makeTbody() {
this.tbody = [];
this.tbody = this.list.map((prvcInqHstry, idx) => ({
id:
this.search.totalRecordCount -
idx -
(this.search.currentPage - 1) * this.search.recordSize,
inqDt: prvcInqHstry.inqDt,
mbrNm: prvcInqHstry.mbrNm,
lgnId: prvcInqHstry.lgnId,
inqIp: prvcInqHstry.inqIp,
}));
},
// 날짜 형식 변경
dateFormat(date) {
console.log(date);
return (
date.getFullYear() +
"-" +
(date.getMonth() + 1 < 9
? "0" + (date.getMonth() + 1)
: date.getMonth() + 1) +
"-" +
(date.getDate() < 9 ? "0" + date.getDate() : date.getDate())
);
},
//─────axios─────┐
// 목록 조회
async axiosViewList(data) {
try {
const response = await listProc(data);
this.list = response.data.data.list;
this.search = response.data.data.pagination;
this.codeList = response.data.data.codeList;
this.makeTbody();
} catch (error) {
// alert("에러가 발생했습니다.\n시스템관리자에게 문의하세요.");
alert(this.$getCmmnMessage('err005'));
}
},
// 상세 조회
async axiosViewDetail(data) {
try {
const response = await detailProc(data);
this.prvcInqHstry = response.data.data;
this.fnModalOpen();
} catch (error) {
// alert("에러가 발생했습니다.\n시스템관리자에게 문의하세요.");
alert(this.$getCmmnMessage('err005'));
}
},
//─────axios─────┘},
},
};
</script>