
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="modal-wrapper">
<div class="modal-container list-modal">
<div class="modal-title">
<div class="flex justify-between align-center">
<h2>스케줄 로그 상세</h2>
<button class="close-btn" @click="$emit('onClose')">
<svg-icon
type="mdi"
:width="20"
:height="20"
:path="closePath"
></svg-icon>
</button>
</div>
</div>
<div class="modal-content-monthly">
<div class="content-titleZone flex justify-between align-center">
<p class="box-title">스케줄 로그 상세 목록</p>
<div class="search-bar">
<select v-model="search_data.value" @change="init">
<option :value="null">로그분류</option>
<option :value="true">성공</option>
<option :value="false">실패</option>
</select>
</div>
</div>
<div class="table-zone">
<table class="list-table">
<colgroup>
<col style="width: 5%" />
<col style="width: 20%" />
<col style="width: 20%" />
<col style="width: 15%" />
<col style="width: 15%" />
<col style="width: 25%" />
</colgroup>
<thead>
<tr>
<th>번호</th>
<th>작동 일시</th>
<th>작동 완료 일시</th>
<th>노드</th>
<th>로그 상태</th>
<th>로그메세지</th>
</tr>
</thead>
<tbody>
<template v-if="list.length > 1">
<tr v-for="(item, idx) in list" :key="idx">
<td>{{ idx + 1 }}</td>
<td>{{ $getFullTime(item.executDe) }}</td>
<td>{{ $getFullTime(item.executComptDe) }}</td>
<td>{{ item.nodeLabel }}</td>
<td>{{ item.detailSttus ? "성공" : "실패" }}</td>
<td class="text-over">{{ item.detailMssage }}</td>
</tr>
</template>
<tr v-else>
<td colspan="6">등록된 데이터가 없습니다.</td>
</tr>
</tbody>
</table>
</div>
<PaginationButton
v-model:currentPage="search.currentPage"
:perPage="search.perPage"
:totalCount="search.totalRows"
:maxRange="5"
:click="init"
/>
</div>
</div>
</div>
</template>
<script>
import axios from '../../common/defaultAxios.js';
import SvgIcon from "@jamescoyle/vue-icon";
import { mdiClose } from "@mdi/js";
import PaginationButton from "../PaginationButton.vue";
export default {
components: { SvgIcon, PaginationButton },
props: {
currentLog: {
type: Object,
},
},
data() {
return {
closePath: mdiClose,
search: this.$getDefaultSerchVO(),
search_data: this.$getDefaultSerchItem("detail_sttus", "bool"),
list: [],
};
},
created() {
this.init();
},
mounted() {},
watch: {
currentLog: {
handeler(v) {
this.init();
},
deep: true,
},
},
methods: {
// 초기화
init() {
const vm = this;
// 세팅
let search_data = vm.$getDefaultSerchItem("schdul_log_id", "string");
search_data.value = vm.currentLog.schdulLogId;
vm.search.searchObjectList = []; // 초기화
vm.search.searchObjectList.push(vm.search_data);
vm.search.searchObjectList.push(search_data);
// 실행
axios({
url: "/scheduleLog/detailList",
method: "post",
headers: { "Content-Type": "application/json; charset=UTF-8" },
data: vm.search,
})
.then((response) => {
if (
response.data.checkMessage.status == 200 &&
response.data.checkMessage.success
) {
this.search = response.data.resultData.searchVO;
this.list = response.data.resultData.list;
} else {
vm.$showAlert(
"에러 발생",
"요청을 제대로 처리하지 못했습니다. 관리자에게 문의해 주세요."
);
}
})
.catch((error) => {
vm.$showAlert(
"에러 발생",
"에러가 발생했습니다. 관리자에게 문의해 주세요."
);
});
},
},
};
</script>