|
@@ -5,10 +5,10 @@ import DatePicker from "react-datepicker";
|
|
|
import "react-datepicker/dist/react-datepicker.css";
|
|
import "react-datepicker/dist/react-datepicker.css";
|
|
|
// import "react-datepicker/dist/react-datepicker.css";
|
|
// import "react-datepicker/dist/react-datepicker.css";
|
|
|
import ms from "ms";
|
|
import ms from "ms";
|
|
|
-import TmtDate from "./TmtDate";
|
|
|
|
|
import { addDays, addMonths } from 'date-fns';
|
|
import { addDays, addMonths } from 'date-fns';
|
|
|
import id from 'date-fns/locale/id';
|
|
import id from 'date-fns/locale/id';
|
|
|
// registerLocale('id', id)
|
|
// registerLocale('id', id)
|
|
|
|
|
+import { getAutoSave, inputAutoSave } from "@/actions/autosave";
|
|
|
|
|
|
|
|
let Dropzone = null;
|
|
let Dropzone = null;
|
|
|
class DropzoneWrapper extends Component {
|
|
class DropzoneWrapper extends Component {
|
|
@@ -83,6 +83,7 @@ export class UploadSurat extends Component {
|
|
|
akhirsanksi: "",
|
|
akhirsanksi: "",
|
|
|
tmtCheck: false,
|
|
tmtCheck: false,
|
|
|
filesBeritaAcara: [],
|
|
filesBeritaAcara: [],
|
|
|
|
|
+ saveData: []
|
|
|
};
|
|
};
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -109,6 +110,22 @@ export class UploadSurat extends Component {
|
|
|
this.props.setUploadSuratSanksi(this.state);
|
|
this.props.setUploadSuratSanksi(this.state);
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
|
|
+ componentDidMount = async () => {
|
|
|
|
|
+ const { query, token } = this.props;
|
|
|
|
|
+ const { id } = query;
|
|
|
|
|
+ const getDataSave = await getAutoSave({ token, id, laporan: true });
|
|
|
|
|
+ const saveData = getDataSave.data?.penetapanSanksi;
|
|
|
|
|
+ this.setState(saveData)
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ handleAutoSave = async () => {
|
|
|
|
|
+ const { query, token } = this.props;
|
|
|
|
|
+ const { id } = query;
|
|
|
|
|
+ const { nomorSanksi, keterangan } = this.state
|
|
|
|
|
+ const saveData = await inputAutoSave({ data: { penetapanSanksi: { nomorSanksi, keterangan } }, token, id, laporan: true })
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
uploadFiles = (e) => {
|
|
uploadFiles = (e) => {
|
|
|
e.preventDefault();
|
|
e.preventDefault();
|
|
|
e.stopPropagation();
|
|
e.stopPropagation();
|
|
@@ -153,12 +170,17 @@ export class UploadSurat extends Component {
|
|
|
}
|
|
}
|
|
|
render() {
|
|
render() {
|
|
|
const { files, filesBeritaAcara } = this.state;
|
|
const { files, filesBeritaAcara } = this.state;
|
|
|
-
|
|
|
|
|
const removeFile = file => () => {
|
|
const removeFile = file => () => {
|
|
|
const newFiles = [...files]
|
|
const newFiles = [...files]
|
|
|
newFiles.splice(newFiles.indexOf(file), 1)
|
|
newFiles.splice(newFiles.indexOf(file), 1)
|
|
|
this.setState({
|
|
this.setState({
|
|
|
files: newFiles,
|
|
files: newFiles,
|
|
|
|
|
+ });
|
|
|
|
|
+ }
|
|
|
|
|
+ const removeFileBA = file => () => {
|
|
|
|
|
+ const newFiles = [...filesBeritaAcara]
|
|
|
|
|
+ newFiles.splice(newFiles.indexOf(file), 1)
|
|
|
|
|
+ this.setState({
|
|
|
filesBeritaAcara: newFiles,
|
|
filesBeritaAcara: newFiles,
|
|
|
});
|
|
});
|
|
|
}
|
|
}
|
|
@@ -171,7 +193,7 @@ export class UploadSurat extends Component {
|
|
|
const thumbsBA = filesBeritaAcara.map((file, index) => (
|
|
const thumbsBA = filesBeritaAcara.map((file, index) => (
|
|
|
<p>
|
|
<p>
|
|
|
<em className="far fa-file" /> {file.name}
|
|
<em className="far fa-file" /> {file.name}
|
|
|
- <button className="bg-transparent button-transparent border-0 fas fa-trash text-danger float-right" onClick={removeFile(file)} />
|
|
|
|
|
|
|
+ <button className="bg-transparent button-transparent border-0 fas fa-trash text-danger float-right" onClick={removeFileBA(file)} />
|
|
|
</p>
|
|
</p>
|
|
|
));
|
|
));
|
|
|
return (
|
|
return (
|
|
@@ -179,13 +201,13 @@ export class UploadSurat extends Component {
|
|
|
<FormGroup row>
|
|
<FormGroup row>
|
|
|
<label className="col-md-2 col-form-label">Nomor Surat:</label>
|
|
<label className="col-md-2 col-form-label">Nomor Surat:</label>
|
|
|
<div className="col-md-10">
|
|
<div className="col-md-10">
|
|
|
- <Input type="text" value={this.state.nomorSanksi} onChange={this.setNomorSanksi} />
|
|
|
|
|
|
|
+ <Input type="text" value={this.state.nomorSanksi} onChange={(e) => { this.setNomorSanksi(e); this.handleAutoSave() }} />
|
|
|
</div>
|
|
</div>
|
|
|
</FormGroup>
|
|
</FormGroup>
|
|
|
<FormGroup row className="mt-3">
|
|
<FormGroup row className="mt-3">
|
|
|
<label className="col-md-2 col-form-label">Keterangan</label>
|
|
<label className="col-md-2 col-form-label">Keterangan</label>
|
|
|
<div className="col-md-10">
|
|
<div className="col-md-10">
|
|
|
- <Input type="textarea" value={this.state.keterangan} onChange={this.setKeterangan} required />
|
|
|
|
|
|
|
+ <Input type="textarea" value={this.state.keterangan} onChange={(e) => { this.setKeterangan(e); this.handleAutoSave() }} required />
|
|
|
</div>
|
|
</div>
|
|
|
</FormGroup>
|
|
</FormGroup>
|
|
|
<FormGroup row>
|
|
<FormGroup row>
|