| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319 | import Scrollable from "@/components/Common/Scrollable";import moment from "moment";import { Col, FormGroup, Table, Button } from "reactstrap";import { API_URL } from "@/env";import React, { Component } from "react";import { getOneSanksi } from "../../actions/sanksi";import ReactToPrint, { PrintContextConsumer } from 'react-to-print';import ComponentBA from "../Sanksi/SuratBA _detail";import Link from "next/dist/client/link";class DetailSanksi extends Component {	constructor(props) {		super(props);		this.state = {			sanksi: {},		};	}	static getInitialProps = async ({ query }) => {		return { query };	};	componentDidMount = async () => {		const { query, token } = this.props;		const sanksi = await getOneSanksi(token, query.id);		this.setState({ sanksi });	};	render() {		const { sanksi } = this.state		return (			<>				<p className="lead bb">Detail Sanksi</p>				{sanksi.data &&					<form className="form-horizontal">						<FormGroup row>							<Col md="4">Nomor Sanksi:</Col>							<Col md="8">								<strong>{sanksi.data.no_sanksi}</strong>							</Col>						</FormGroup>						<FormGroup row>							<Col md="4">Nama Perguruan Tinggi:</Col>							<Col md="8">								<strong>{sanksi.data.laporan.pt.nama}</strong>							</Col>						</FormGroup>						<FormGroup row>					<Col md="4">Keterangan:</Col>					<Col md="8">						<Scrollable height="100px" className="list-group">							<p>{sanksi.data.keterangan}</p>						</Scrollable>					</Col>				</FormGroup>				<FormGroup row>					<Col md="4">Tanggal Penetapan Sanksi:</Col>					<Col md="8">						<strong>{moment(sanksi.data.masa_berlaku?.from_date).locale("id").format("D MMMM YYYY")}</strong>					</Col>				</FormGroup>				{					sanksi.data.tanggal_akhir_keberatan &&					<FormGroup row>						<Col md="4">Tanggal Akhir Pengajuan Keberatan</Col>						<Col md="8">							<strong>{moment(sanksi.data.tanggal_akhir_keberatan).locale("id").format("D MMMM YYYY")}</strong>						</Col>					</FormGroup>				}				{					sanksi.data.jawaban?.keberatan?.tanggal_akhir_banding &&					<FormGroup row>						<Col md="4">Tanggal Akhir Pengajuan Banding:</Col>						<Col md="8">							<strong>{moment(sanksi.data.jawaban?.keberatan?.tanggal_akhir_banding).locale("id").format("D MMMM YYYY")}</strong>						</Col>					</FormGroup>				}				<FormGroup row>					<Col md="4">Dokumen Sanksi:</Col>					<Col md="8">						<Scrollable height="120px" className="list-group">							<table className="table table-bordered bg-transparent">								<tbody>									{sanksi.data.dokumen.map((e) => (										<tr>											<td style={{ width: "30px" }}>												<em className="fa-lg far fa-file-code"></em>											</td>											<td>												<a className="text-muted" href={e.path} target="_blank" download={e.judul}>													{e.judul}												</a>											</td>										</tr>									))}								</tbody>							</table>						</Scrollable>					</Col>				</FormGroup>						<FormGroup row>							<Col md="4">Dokumen Acara Pleno:</Col>							<Col md="8">								<div>									<ReactToPrint										trigger={() => {											return <span>												<Link													href={{														pathname: "/app/sanksi/detail",														query: { id: this.props.query.id },													}}>													<Button color className="btn-labeled-4 mt-0">														<h5 className="p-0 mt-2"><em className="fas fa-download mr-2" />Print dan Download</h5>													</Button>												</Link>											</span>										}}										content={() => this.componentRef}									/>									<div style={{ display: "none" }}>										<ComponentBA ref={el => (this.componentRef = el)} query={this.props.query} />									</div>								</div>							</Col>						</FormGroup>						<FormGroup row>					<Col md={12}>						<div className="card b">							<div className="card-body bb">								<Table responsive>									<thead>										<tr>											<th>Jenis Pelanggaran</th>											<th>Sanksi</th>										</tr>									</thead>									<tbody>										{sanksi.data.pelanggaran.map((jp, index) => (											<tr key={jp._id}>												<td width={50}>													<div className="media align-items-center">														<div className="media-body d-flex">															<div>																<p>{jp.pelanggaran}</p>																<p>TMT : {jp.tmt_bulan} Bulan</p>																<p>Jenis Sanksi Administratif : {jp.label_sanksi}</p>															</div>														</div>													</div>												</td>												<td width={50}>													<div className="media align-items-center">														<div className="media-body d-flex">															<div>																<p>{jp.sanksi}</p>																<p>Keterangan : {jp.keterangan_sanksi}</p>															</div>														</div>													</div>												</td>											</tr>										))}									</tbody>								</Table>							</div>						</div>					</Col>				</FormGroup>					</form>				}			</>		)	}}// function DetailSanksi({ data, noTitle = false, query }) {// 	return (// 		<>// 			{noTitle ? "" : <p className="lead bb">Detail Sanksi</p>}// <form className="form-horizontal">// 	<FormGroup row>// 		<Col md="4">Nomor Sanksi:</Col>// 		<Col md="8">// 			<strong>{data.no_sanksi}</strong>// 		</Col>// 	</FormGroup>// 	<FormGroup row>// 		<Col md="4">Nama Perguruan Tinggi:</Col>// 		<Col md="8">// 			<strong>{data.laporan.pt.nama}</strong>// 		</Col>// 	</FormGroup>// 	<FormGroup row>// 		<Col md="4">Keterangan:</Col>// 		<Col md="8">// 			<Scrollable height="100px" className="list-group">// 				<p>{data.keterangan}</p>// 			</Scrollable>// 		</Col>// 	</FormGroup>// 	<FormGroup row>// 		<Col md="4">Tanggal Penetapan Sanksi:</Col>// 		<Col md="8">// 			<strong>{moment(data.masa_berlaku?.from_date).locale("id").format("D MMMM YYYY")}</strong>// 		</Col>// 	</FormGroup>// 	{// 		data.tanggal_akhir_keberatan &&// 		<FormGroup row>// 			<Col md="4">Tanggal Akhir Pengajuan Keberatan</Col>// 			<Col md="8">// 				<strong>{moment(data.tanggal_akhir_keberatan).locale("id").format("D MMMM YYYY")}</strong>// 			</Col>// 		</FormGroup>// 	}// 	{// 		data.jawaban?.keberatan?.tanggal_akhir_banding &&// 		<FormGroup row>// 			<Col md="4">Tanggal Akhir Pengajuan Banding:</Col>// 			<Col md="8">// 				<strong>{moment(data.jawaban?.keberatan?.tanggal_akhir_banding).locale("id").format("D MMMM YYYY")}</strong>// 			</Col>// 		</FormGroup>// 	}// 	<FormGroup row>// 		<Col md="4">Dokumen Sanksi:</Col>// 		<Col md="8">// 			<Scrollable height="120px" className="list-group">// 				<table className="table table-bordered bg-transparent">// 					<tbody>// 						{data.dokumen.map((e) => (// 							<tr>// 								<td style={{ width: "30px" }}>// 									<em className="fa-lg far fa-file-code"></em>// 								</td>// 								<td>// 									<a className="text-muted" href={e.path} target="_blank" download={e.judul}>// 										{e.judul}// 									</a>// 								</td>// 							</tr>// 						))}// 					</tbody>// 				</table>// 			</Scrollable>// 		</Col>// 	</FormGroup>// 	<FormGroup row>// 		<Col md="4">Dokumen Acara Pleno:</Col>// 		<Col md="8">// 			<BeritaAcara// 				query={query}// 			/>// 		</Col>// 	</FormGroup>// 	<FormGroup row>// 		<Col md={12}>// 			<div className="card b">// 				<div className="card-body bb">// 					<Table responsive>// 						<thead>// 							<tr>// 								<th>Jenis Pelanggaran</th>// 								<th>Sanksi</th>// 							</tr>// 						</thead>// 						<tbody>// 							{data.pelanggaran.map((jp, index) => (// 								<tr key={jp._id}>// 									<td width={50}>// 										<div className="media align-items-center">// 											<div className="media-body d-flex">// 												<div>// 													<p>{jp.pelanggaran}</p>// 													<p>TMT : {jp.tmt_bulan} Bulan</p>// 													<p>Jenis Sanksi Administratif : {jp.label_sanksi}</p>// 												</div>// 											</div>// 										</div>// 									</td>// 									<td width={50}>// 										<div className="media align-items-center">// 											<div className="media-body d-flex">// 												<div>// 													<p>{jp.sanksi}</p>// 													<p>Keterangan : {jp.keterangan_sanksi}</p>// 												</div>// 											</div>// 										</div>// 									</td>// 								</tr>// 							))}// 						</tbody>// 					</Table>// 				</div>// 			</div>// 		</Col>// 	</FormGroup>// </form>// 		</>// 	);// }export default DetailSanksi;
 |