detail.js 9.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204
  1. import React, { Component } from "react";
  2. import ContentWrapper from "@/components/Layout/ContentWrapper";
  3. import { getLog } from "@/actions/log";
  4. import { Card, CardBody, TabContent, TabPane, Nav, NavItem, NavLink, Button, Row, Col, FormGroup } from "reactstrap";
  5. import Timeline from "@/components/Main/Timeline";
  6. import { getOnePT } from "@/actions/PT";
  7. import { connect } from "react-redux";
  8. import { getOneLaporan, getPelaporan } from "../../../actions/pelaporan";
  9. import DetailLaporan from "@/components/Main/DetailLaporan";
  10. import Link from "next/link";
  11. import Loader from "@/components/Common/Loader";
  12. import DetailPT from "@/components/Main/DetailPT";
  13. import moment from "moment";
  14. import Datatable from "@/components/Tables/Datatable";
  15. import classnames from "classnames";
  16. import BeritaAcara_Bypass from "../../../components/BypassII/BeritaAcara";
  17. import { UploadSurat_Bypass } from "../../../components/BypassII/UploadSurat";
  18. import { TablePenetapanSanksi_Bypass } from "../../../components/BypassII/TablePenetapanSanksi";
  19. const stepNavitemStyle = {
  20. backgroundColor: "#fcfcfc",
  21. };
  22. class bypassIIDetail extends Component {
  23. constructor(props) {
  24. super(props);
  25. this.state = {
  26. activeStep: "1",
  27. log: {},
  28. detailLaporanPt: {},
  29. pelaporan: {},
  30. pt: {},
  31. };
  32. }
  33. static async getInitialProps({ query }) {
  34. return { query };
  35. }
  36. componentDidMount = async () => {
  37. const { query, token } = this.props;
  38. const ptId = query.ptId;
  39. const pelaporan = await getPelaporan(token, { pt_id: ptId, all: true, aktif: true });
  40. const pt = await getOnePT(token, ptId);
  41. this.setState({ pelaporan, pt });
  42. };
  43. toggleStep = (activeStep) => () => {
  44. if (this.state.activeStep !== activeStep) {
  45. this.setState({
  46. activeStep: activeStep
  47. });
  48. // this.handleAutoSave(this.state.dataPelanggaran, activeStep)
  49. }
  50. };
  51. render() {
  52. return (
  53. <ContentWrapper unwrap>
  54. {/* <Header /> */}
  55. <div className="p-3">
  56. <div className="content-heading">
  57. <span className="font-color-white">Bypass II</span>
  58. <div className="ml-auto">
  59. <Link href="/app/bypassII">
  60. <Button className="color-3e3a8e" color>
  61. <span className="font-color-white">&lt; Kembali</span>
  62. </Button>
  63. </Link>
  64. </div>
  65. </div>
  66. <Card className="card-default">
  67. <CardBody>
  68. <Row>
  69. <Col xs="4">
  70. <Nav pills vertical={true} className="cursor-pointer">
  71. <NavItem style={stepNavitemStyle}>
  72. <NavLink
  73. tag="div"
  74. className={classnames({
  75. active: this.state.activeStep === "1",
  76. })}
  77. onClick={this.toggleStep("1")}
  78. >
  79. <h4 className="text-left my-3">1. Penetapan Sanksi</h4>
  80. </NavLink>
  81. </NavItem>
  82. <NavItem style={stepNavitemStyle}>
  83. <NavLink
  84. tag="div"
  85. className={classnames({
  86. active: this.state.activeStep === "2",
  87. })}
  88. onClick={this.toggleStep("2")}
  89. >
  90. <h4 className="text-left my-3">2. Penetapan Jenis Pelanggaran</h4>
  91. </NavLink>
  92. </NavItem>
  93. <NavItem style={stepNavitemStyle}>
  94. <NavLink
  95. tag="div"
  96. className={classnames({
  97. active: this.state.activeStep === "3",
  98. })}
  99. onClick={this.toggleStep("3")}
  100. >
  101. <h4 className="text-left my-3">3. Berita Acara Pleno</h4>
  102. </NavLink>
  103. </NavItem>
  104. </Nav>
  105. </Col>
  106. <Col xs="8">
  107. <TabContent activeTab={this.state.activeStep} className="border-0">
  108. <TabPane tabId="1">
  109. <div className="pt-3 mb-3">
  110. <h2>Penetapan Sanksi</h2>
  111. {/* {this.state.listSanksi && <UploadSurat setUploadSuratSanksi={this.setUploadSuratSanksi} listSanksi={this.state.listSanksi} />}
  112. </div>
  113. <FormGroup row className="mt-3">
  114. <label className="col-md-2 col-form-label">
  115. Dokumen Laporan Evaluasi dan Pembahasan
  116. </label>
  117. <div className="col-md-10">
  118. <div style={{ display: "none" }}>
  119. <ComponentToPrint ref={el => (this.componentRef = el)} query={this.props.query} handleAutoSave={this.handleAutoSave} dataPelanggaran={this.state.dataPelanggaran} setDataSuratBA={this.setDataSuratBA} dataLaporan={pelaporan} dataSuratBA={dataSuratBA} />
  120. </div>
  121. <ReactToPrint
  122. trigger={() => {
  123. return <span>
  124. <Button color className="btn-labeled-4 mt-0">
  125. <h5 className="p-0 mt-2"><em className="fas fa-download mr-2" />Print dan Download</h5>
  126. </Button>
  127. </span>
  128. }}
  129. content={() => this.componentRef}
  130. />
  131. </div>
  132. </FormGroup>
  133. <hr />
  134. <div className="d-flex">
  135. <Button color className="btn-login color-3e3a8e" onClick={this.toggleStep("4")}>
  136. <span className="font-color-white">Previous</span>
  137. </Button>
  138. <Button className="ml-auto btn-login color-3e3a8e" color onClick={() => { this.validation() }}>
  139. <span className="font-color-white">Next</span>
  140. </Button> */}
  141. </div>
  142. </TabPane>
  143. <TabPane tabId="2">
  144. <div className="pt-3 mb-3">
  145. <h2>Penetapan Jenis Pelanggaran</h2>
  146. {/* <TablePenetapanSanksi query={this.props.query} handleDelegasi={this.handleDelegasi} handleAutoSave={this.handleAutoSave} setCheckedData={this.setCheckedData} dataPelanggaran={dataPelanggaran} />
  147. </div>
  148. <hr />
  149. <div className="d-flex">
  150. <Button color className="btn-login color-3e3a8e" onClick={this.toggleStep("2")}>
  151. <span className="font-color-white">Previous</span>
  152. </Button>
  153. <Button className="ml-auto btn-login color-3e3a8e" color onClick={this.toggleStep("4")}>
  154. <span className="font-color-white">Next</span>
  155. </Button> */}
  156. </div>
  157. </TabPane>
  158. <TabPane tabId="3">
  159. {/* <Card>
  160. <BeritaAcara query={this.props.query} handleAutoSave={this.handleAutoSave} dataPelanggaran={this.state.dataPelanggaran} setDataSuratBA={this.setDataSuratBA} dataLaporan={pelaporan} dataSuratBA={dataSuratBA} />
  161. </Card> */}
  162. <Card>
  163. <BeritaAcara_Bypass pt={this.state.pt}/>
  164. </Card>
  165. <div className="d-flex">
  166. <Button color className="btn-login color-3e3a8e" onClick={this.toggleStep("3")}>
  167. <span className="font-color-white">Previous</span>
  168. </Button>
  169. <Button className="ml-auto btn-login color-3e3a8e" color onClick={this.toggleStep("5")}>
  170. <span className="font-color-white">Next</span>
  171. </Button>
  172. </div>
  173. </TabPane>
  174. </TabContent>
  175. </Col>
  176. </Row>
  177. </CardBody>
  178. </Card>
  179. </div>
  180. </ContentWrapper>
  181. )
  182. }
  183. }
  184. const mapStateToProps = (state) => ({ user: state.user, token: state.token });
  185. export default connect(mapStateToProps)(bypassIIDetail);