diff --git a/app/Http/Controllers/Api/BigDataResumeController.php b/app/Http/Controllers/Api/BigDataResumeController.php new file mode 100644 index 0000000..88c2391 --- /dev/null +++ b/app/Http/Controllers/Api/BigDataResumeController.php @@ -0,0 +1,171 @@ +first(); + if(!$big_data_resume){ + return response()->json(['message' => 'No Big Data resume found']); + } + + $data_settings = DataSetting::all(); + if($data_settings->isEmpty()){ + return response()->json(['message' => 'No data setting found']); + } + + $target_pad = floatval(optional($data_settings->where('key', 'TARGET_PAD')->first())->value); + $tata_ruang = floatval(optional($data_settings->where('key', 'TATA_RUANG')->first())->value); + $realisasi_terbit_pbg_sum = floatval(optional($data_settings->where('key', 'REALISASI_TERBIT_PBG_SUM')->first())->value); + $realisasi_terbit_pbg_count = floatval(optional($data_settings->where('key', 'REALISASI_TERBIT_PBG_COUNT')->first())->value); + $menuggu_klik_dpmptsp_sum = floatval(optional($data_settings->where('key', 'MENUNGGU_KLIK_DPMPTSP_SUM')->first())->value); + $menuggu_klik_dpmptsp_count = floatval(optional($data_settings->where('key', 'MENUNGGU_KLIK_DPMPTSP_COUNT')->first())->value); + $proses_dinas_teknis_sum = floatval(optional($data_settings->where('key', 'PROSES_DINAS_TEKNIS_SUM')->first())->value); + $proses_dinas_teknis_count = floatval(optional($data_settings->where('key', 'PROSES_DINAS_TEKNIS_COUNT')->first())->value); + + $kekurangan_potensi = $target_pad - $big_data_resume->potention_sum; + + // percentage kekurangan potensi + $kekurangan_potensi_percentage = $target_pad > 0 && $target_pad > 0 + ? round(($kekurangan_potensi / $target_pad) * 100, 2) : 0; + + // percentage total potensi + $total_potensi_percentage = $big_data_resume->potention_sum > 0 && $target_pad > 0 + ? round(($big_data_resume->potention_sum / $target_pad) * 100, 2) : 0; + + // percentage verified document + $verified_percentage = $big_data_resume->verified_sum > 0 && $big_data_resume->potention_sum > 0 + ? round(($big_data_resume->verified_sum / $big_data_resume->potention_sum) * 100, 2) : 0; + + // percentage non-verified document + $non_verified_percentage = $big_data_resume->non_verified_sum > 0 && $big_data_resume->potention_sum > 0 + ? round(($big_data_resume->non_verified_sum / $big_data_resume->potention_sum) * 100, 2) : 0; + + // percentage business document + $business_percentage = $big_data_resume->business_sum > 0 && $big_data_resume->non_verified_sum > 0 + ? round(($big_data_resume->business_sum / $big_data_resume->non_verified_sum) * 100, 2) : 0; + + // percentage non-business document + $non_business_percentage = $big_data_resume->non_business_sum > 0 && $big_data_resume->potention_sum > 0 + ? round(($big_data_resume->non_business_sum / $big_data_resume->potention_sum) * 100, 2) : 0; + + // percentage tata ruang + $tata_ruang_percentage = $tata_ruang > 0 && $big_data_resume->potention_sum > 0 + ? round(($tata_ruang / $big_data_resume->potention_sum) * 100, 2) : 0; + + // percentage realisasi terbit pbg + $realisasi_terbit_percentage = $big_data_resume->verified_sum > 0 && $realisasi_terbit_pbg_sum > 0 + ? round(($realisasi_terbit_pbg_sum / $big_data_resume->verified_sum) * 100, 2) : 0; + + // percentage menunggu klik dpmptsp + $menunggu_klik_dpmptsp_percentage = $big_data_resume->verified_sum > 0 && $menuggu_klik_dpmptsp_sum > 0 + ? round(($menuggu_klik_dpmptsp_sum / $big_data_resume->verified_sum) * 100, 2) : 0; + + // percentage proses_dinas_teknis + $proses_dinas_teknis_percentage = $big_data_resume->verified_sum > 0 && $proses_dinas_teknis_sum > 0 + ? round(($proses_dinas_teknis_sum / $big_data_resume->verified_sum) * 100, 2) : 0; + + $result = [ + 'target_pad' => [ + 'sum' => $target_pad, + 'percentage' => 100, + ], + 'tata_ruang' => [ + 'sum' => $tata_ruang, + 'percentage' => $tata_ruang_percentage, + ], + 'kekurangan_potensi' => [ + 'sum' => $kekurangan_potensi, + 'percentage' => $kekurangan_potensi_percentage + ], + 'total_potensi' => [ + 'sum' => (float) $big_data_resume->potention_sum, + 'count' => $big_data_resume->potention_count, + 'percentage' => $total_potensi_percentage + ], + 'verified_document' => [ + 'sum' => (float) $big_data_resume->verified_sum, + 'count' => $big_data_resume->verified_count, + 'percentage' => $verified_percentage + ], + 'non_verified_document' => [ + 'sum' => (float) $big_data_resume->non_verified_sum, + 'count' => $big_data_resume->non_verified_count, + 'percentage' => $non_verified_percentage + ], + 'business_document' => [ + 'sum' => (float) $big_data_resume->business_sum, + 'count' => $big_data_resume->business_count, + 'percentage' => $business_percentage + ], + 'non_business_document' => [ + 'sum' => (float) $big_data_resume->non_business_sum, + 'count' => $big_data_resume->non_business_count, + 'percentage' => $non_business_percentage + ], + 'realisasi_terbit' => [ + 'sum' => $realisasi_terbit_pbg_sum, + 'count' => $realisasi_terbit_pbg_count, + 'percentage' => $realisasi_terbit_percentage + ], + 'menunggu_klik_dpmptsp' => [ + 'sum' => $menuggu_klik_dpmptsp_sum, + 'count' => $menuggu_klik_dpmptsp_count, + 'percentage' => $menunggu_klik_dpmptsp_percentage + ], + 'proses_dinas_teknis' => [ + 'sum' => $proses_dinas_teknis_sum, + 'count' => $proses_dinas_teknis_count, + 'percentage' => $proses_dinas_teknis_percentage + ] + ]; + return response()->json($result); + }catch(\Exception $e){ + return response()->json(['message' => 'Error when fetching data'], 500); + } + } + + /** + * Store a newly created resource in storage. + */ + public function store(Request $request) + { + // + } + + /** + * Display the specified resource. + */ + public function show(string $id) + { + // + } + + /** + * Update the specified resource in storage. + */ + public function update(Request $request, string $id) + { + // + } + + /** + * Remove the specified resource from storage. + */ + public function destroy(string $id) + { + // + } +} diff --git a/resources/js/dashboards/bigdata.js b/resources/js/dashboards/bigdata.js index d5ad8d3..b89ef0f 100644 --- a/resources/js/dashboards/bigdata.js +++ b/resources/js/dashboards/bigdata.js @@ -49,117 +49,118 @@ class BigData { } async updateData(year) { try { - this.totalTargetPAD = await this.getDataSettings("TARGET_PAD"); - this.resultDataTotal = await this.getDataTotalPotensi(year); - this.dataVerification = await this.getDataVerfication(year); - this.dataNonVerification = await this.getDataNonVerfication(year); - this.dataBusiness = await this.getDataBusiness(year); - this.dataNonBusiness = await this.getDataNonBusiness(year); - this.dataTataRuang = await this.getDataSettings("TATA_RUANG"); - this.dataSumRealisasiTerbit = await this.getDataSettings( - "REALISASI_TERBIT_PBG_SUM" - ); - this.dataCountRealisasiTerbit = await this.getDataSettings( - "REALISASI_TERBIT_PBG_COUNT" - ); - this.dataSumMenungguKlikDPMPTSP = await this.getDataSettings( - "MENUNGGU_KLIK_DPMPTSP_SUM" - ); - this.dataCountMenungguKlikDPMPTSP = await this.getDataSettings( - "MENUNGGU_KLIK_DPMPTSP_COUNT" - ); - this.dataSumProsesDinasTeknis = await this.getDataSettings( - "PROSES_DINAS_TEKNIS_SUM" - ); - this.dataCountProsesDinasTeknis = await this.getDataSettings( - "PROSES_DINAS_TEKNIS_COUNT" - ); + this.resumeBigData = await this.getBigDataResume(); + // this.totalTargetPAD = await this.getDataSettings("TARGET_PAD"); + // this.resultDataTotal = await this.getDataTotalPotensi(year); + // this.dataVerification = await this.getDataVerfication(year); + // this.dataNonVerification = await this.getDataNonVerfication(year); + // this.dataBusiness = await this.getDataBusiness(year); + // this.dataNonBusiness = await this.getDataNonBusiness(year); + // this.dataTataRuang = await this.getDataSettings("TATA_RUANG"); + // this.dataSumRealisasiTerbit = await this.getDataSettings( + // "REALISASI_TERBIT_PBG_SUM" + // ); + // this.dataCountRealisasiTerbit = await this.getDataSettings( + // "REALISASI_TERBIT_PBG_COUNT" + // ); + // this.dataSumMenungguKlikDPMPTSP = await this.getDataSettings( + // "MENUNGGU_KLIK_DPMPTSP_SUM" + // ); + // this.dataCountMenungguKlikDPMPTSP = await this.getDataSettings( + // "MENUNGGU_KLIK_DPMPTSP_COUNT" + // ); + // this.dataSumProsesDinasTeknis = await this.getDataSettings( + // "PROSES_DINAS_TEKNIS_SUM" + // ); + // this.dataCountProsesDinasTeknis = await this.getDataSettings( + // "PROSES_DINAS_TEKNIS_COUNT" + // ); - // total potensi - this.bigTargetPAD = new Big(this.totalTargetPAD ?? 0); - this.bigTotalPotensi = new Big(this.resultDataTotal.totalData ?? 0); + // // total potensi + // this.bigTargetPAD = new Big(this.totalTargetPAD ?? 0); + // this.bigTotalPotensi = new Big(this.resultDataTotal.totalData ?? 0); - this.resultPercentage = 0; - if (this.bigTotalPotensi > 0 && this.bigTargetPAD > 0) { - this.resultPercentage = this.bigTotalPotensi - .div(this.bigTargetPAD) - .times(100) - .toFixed(2); - if (this.resultPercentage > 100) { - this.resultPercentage = 100; - } - } + // this.resultPercentage = 0; + // if (this.bigTotalPotensi > 0 && this.bigTargetPAD > 0) { + // this.resultPercentage = this.bigTotalPotensi + // .div(this.bigTargetPAD) + // .times(100) + // .toFixed(2); + // if (this.resultPercentage > 100) { + // this.resultPercentage = 100; + // } + // } - // tata ruang - this.bigTotalTataRuang = new Big(this.dataTataRuang); - this.percentageResultTataRuang = - this.bigTotalTataRuang <= 0 || this.bigTotalPotensi <= 0 - ? 0 - : this.bigTotalTataRuang - .div(this.bigTotalPotensi) - .times(100) - .toFixed(2); + // // tata ruang + // this.bigTotalTataRuang = new Big(this.dataTataRuang); + // this.percentageResultTataRuang = + // this.bigTotalTataRuang <= 0 || this.bigTotalPotensi <= 0 + // ? 0 + // : this.bigTotalTataRuang + // .div(this.bigTotalPotensi) + // .times(100) + // .toFixed(2); - // kekurangan potensi - this.totalKekuranganPotensi = new Big( - this.bigTargetPAD - this.bigTotalPotensi - ); + // // kekurangan potensi + // this.totalKekuranganPotensi = new Big( + // this.bigTargetPAD - this.bigTotalPotensi + // ); - this.percentageKekuranganPotensi = - this.totalKekuranganPotensi <= 0 || this.bigTargetPAD <= 0 - ? 0 - : this.totalKekuranganPotensi - .div(this.bigTargetPAD) - .times(100) - .toFixed(2); + // this.percentageKekuranganPotensi = + // this.totalKekuranganPotensi <= 0 || this.bigTargetPAD <= 0 + // ? 0 + // : this.totalKekuranganPotensi + // .div(this.bigTargetPAD) + // .times(100) + // .toFixed(2); - // non-verification documents - this.bigTotalNonVerification = new Big( - this.dataNonVerification.total - ); - this.percentageResultNonVerification = - this.bigTotalNonVerification <= 0 || this.bigTotalPotensi <= 0 - ? 0 - : this.bigTotalNonVerification - .div(this.bigTotalPotensi) - .times(100) - .toFixed(2); + // // non-verification documents + // this.bigTotalNonVerification = new Big( + // this.dataNonVerification.total + // ); + // this.percentageResultNonVerification = + // this.bigTotalNonVerification <= 0 || this.bigTotalPotensi <= 0 + // ? 0 + // : this.bigTotalNonVerification + // .div(this.bigTotalPotensi) + // .times(100) + // .toFixed(2); - // verification documents - this.bigTotalVerification = new Big(this.dataVerification.total); - this.percetageResultVerification = - this.bigTotalVerification <= 0 || this.bigTotalPotensi <= 0 - ? 0 - : this.bigTotalVerification - .div(this.bigTargetPAD) - .times(100) - .toFixed(2); + // // verification documents + // this.bigTotalVerification = new Big(this.dataVerification.total); + // this.percetageResultVerification = + // this.bigTotalVerification <= 0 || this.bigTotalPotensi <= 0 + // ? 0 + // : this.bigTotalVerification + // .div(this.bigTargetPAD) + // .times(100) + // .toFixed(2); - // business documents - this.bigTotalBusiness = new Big(this.dataBusiness.total); - this.percentageResultBusiness = - this.bigTotalNonVerification <= 0 || this.bigTotalBusiness <= 0 - ? 0 - : this.bigTotalBusiness - .div(this.bigTotalNonVerification) - .times(100) - .toFixed(2); + // // business documents + // this.bigTotalBusiness = new Big(this.dataBusiness.total); + // this.percentageResultBusiness = + // this.bigTotalNonVerification <= 0 || this.bigTotalBusiness <= 0 + // ? 0 + // : this.bigTotalBusiness + // .div(this.bigTotalNonVerification) + // .times(100) + // .toFixed(2); - // non-business documents - this.bigTotalNonBusiness = new Big(this.dataNonBusiness.total); - this.percentageResultNonBusiness = - this.bigTotalNonBusiness <= 0 || - this.bigTotalNonVerification <= 0 - ? 0 - : this.bigTotalNonBusiness - .div(this.bigTotalNonVerification) - .times(100) - .toFixed(2); + // // non-business documents + // this.bigTotalNonBusiness = new Big(this.dataNonBusiness.total); + // this.percentageResultNonBusiness = + // this.bigTotalNonBusiness <= 0 || + // this.bigTotalNonVerification <= 0 + // ? 0 + // : this.bigTotalNonBusiness + // .div(this.bigTotalNonVerification) + // .times(100) + // .toFixed(2); - if (!this.bigTargetPAD) { - console.error("Failed to load chart data"); - return; - } + // if (!this.bigTargetPAD) { + // console.error("Failed to load chart data"); + // return; + // } this.initChartTargetPAD(); this.initChartUsaha(); @@ -177,6 +178,35 @@ class BigData { } } + async getBigDataResume() { + try { + const response = await fetch( + `${GlobalConfig.apiHost}/api/bigdata-resume`, + { + credentials: "include", + headers: { + Authorization: `Bearer ${ + document.querySelector("meta[name='api-token']") + .content + }`, + "Content-Type": "application/json", + }, + } + ); + + if (!response.ok) { + console.error("Network response was not ok", response); + } + + const data = await response.json(); + console.log("big data resume", JSON.stringify(data)); + console.log("big data resume", data); + return data; + } catch (error) { + console.error("Error fetching chart data:", error); + return null; + } + } async getDataTotalPotensi(year) { try { const response = await fetch( @@ -370,53 +400,60 @@ class BigData { .querySelectorAll(".document-total.chart-target-pad") .forEach((element) => { element.innerText = `Rp.${addThousandSeparators( - this.bigTargetPAD.toString() + // this.bigTargetPAD.toString() + this.resumeBigData.target_pad.sum.toString() )}`; }); document .querySelectorAll(".small-percentage.chart-target-pad") .forEach((element) => { - element.innerText = `${100}%`; + element.innerText = `${this.resumeBigData.target_pad.percentage}%`; }); } initChartTotalPotensi() { - const countAll = this.resultDataTotal.countData ?? 0; + // const countAll = this.resultDataTotal.countData ?? 0; document .querySelectorAll(".document-count.chart-total-potensi") .forEach((element) => { - element.innerText = `${countAll}`; + // element.innerText = `${countAll}`; + element.innerText = `${this.resumeBigData.total_potensi.count}`; }); document .querySelectorAll(".document-total.chart-total-potensi") .forEach((element) => { element.innerText = `Rp.${addThousandSeparators( - this.bigTotalPotensi.toString() + // this.bigTotalPotensi.toString() + this.resumeBigData.total_potensi.sum.toString() )}`; }); document .querySelectorAll(".small-percentage.chart-total-potensi") .forEach((element) => { - element.innerText = `${this.resultPercentage}%`; + // element.innerText = `${this.resultPercentage}%`; + element.innerText = `${this.resumeBigData.total_potensi.percentage}%`; }); } initChartVerificationDocuments() { document .querySelectorAll(".document-count.chart-berkas-terverifikasi") .forEach((element) => { - element.innerText = `${this.dataVerification.count}`; + // element.innerText = `${this.dataVerification.count}`; + element.innerText = `${this.resumeBigData.verified_document.count}`; }); document .querySelectorAll(".document-total.chart-berkas-terverifikasi") .forEach((element) => { element.innerText = `Rp.${addThousandSeparators( - this.bigTotalVerification.toString() + // this.bigTotalVerification.toString() + this.resumeBigData.verified_document.sum.toString() )}`; }); document .querySelectorAll(".small-percentage.chart-berkas-terverifikasi") .forEach((element) => { - element.innerText = `${this.percetageResultVerification}%`; + // element.innerText = `${this.percetageResultVerification}%`; + element.innerText = `${this.resumeBigData.verified_document.percentage}%`; }); } initChartNonVerificationDocuments() { @@ -425,7 +462,8 @@ class BigData { ".document-count.chart-berkas-belum-terverifikasi" ) .forEach((element) => { - element.innerText = `${this.dataNonVerification.count}`; + // element.innerText = `${this.dataNonVerification.count}`; + element.innerText = `${this.resumeBigData.non_verified_document.count}`; }); document .querySelectorAll( @@ -433,7 +471,8 @@ class BigData { ) .forEach((element) => { element.innerText = `Rp.${addThousandSeparators( - this.bigTotalNonVerification.toString() + // this.bigTotalNonVerification.toString() + this.resumeBigData.non_verified_document.sum.toString() )}`; }); document @@ -441,45 +480,52 @@ class BigData { ".small-percentage.chart-berkas-belum-terverifikasi" ) .forEach((element) => { - element.innerText = `${this.percentageResultNonVerification}%`; + // element.innerText = `${this.percentageResultNonVerification}%`; + element.innerText = `${this.resumeBigData.non_verified_document.percentage}%`; }); } initChartUsaha() { document .querySelectorAll(".document-count.chart-business") .forEach((element) => { - element.innerText = `${this.dataBusiness.count}`; + // element.innerText = `${this.dataBusiness.count}`; + element.innerText = `${this.resumeBigData.business_document.count}`; }); document .querySelectorAll(".document-total.chart-business") .forEach((element) => { element.innerText = `Rp.${addThousandSeparators( - this.bigTotalBusiness.toString() + // this.bigTotalBusiness.toString() + this.resumeBigData.business_document.sum.toString() )}`; }); document .querySelectorAll(".small-percentage.chart-business") .forEach((element) => { - element.innerText = `${this.percentageResultBusiness}%`; + // element.innerText = `${this.percentageResultBusiness}%`; + element.innerText = `${this.resumeBigData.business_document.percentage}%`; }); } initChartNonUsaha() { document .querySelectorAll(".document-count.chart-non-business") .forEach((element) => { - element.innerText = `${this.dataNonBusiness.count}`; + // element.innerText = `${this.dataNonBusiness.count}`; + element.innerText = `${this.resumeBigData.non_business_document.count}`; }); document .querySelectorAll(".document-total.chart-non-business") .forEach((element) => { element.innerText = `Rp.${addThousandSeparators( - this.bigTotalNonBusiness.toString() + // this.bigTotalNonBusiness.toString() + this.resumeBigData.non_business_document.sum.toString() )}`; }); document .querySelectorAll(".small-percentage.chart-non-business") .forEach((element) => { - element.innerText = `${this.percentageResultNonBusiness}%`; + // element.innerText = `${this.percentageResultNonBusiness}%`; + element.innerText = `${this.resumeBigData.non_business_document.percentage}%`; }); } initChartKekuranganPotensi() { @@ -492,70 +538,78 @@ class BigData { .querySelectorAll(".document-total.chart-kekurangan-potensi") .forEach((element) => { element.innerText = `Rp.${addThousandSeparators( - this.totalKekuranganPotensi.toString() + // this.totalKekuranganPotensi.toString() + this.resumeBigData.kekurangan_potensi.sum.toString() )}`; }); document .querySelectorAll(".small-percentage.chart-kekurangan-potensi") .forEach((element) => { - element.innerText = `${this.percentageKekuranganPotensi}%`; + // element.innerText = `${this.percentageKekuranganPotensi}%`; + element.innerText = `${this.resumeBigData.kekurangan_potensi.percentage}%`; }); } initChartRealisasiTerbitPBG() { document .querySelectorAll(".document-count.chart-realisasi-tebit-pbg") .forEach((element) => { - element.innerText = `${this.dataCountRealisasiTerbit}`; + // element.innerText = `${this.dataCountRealisasiTerbit}`; + element.innerText = `${this.resumeBigData.realisasi_terbit.count}`; }); document .querySelectorAll(".document-total.chart-realisasi-tebit-pbg") .forEach((element) => { element.innerText = `Rp.${addThousandSeparators( - this.dataSumRealisasiTerbit + // this.dataSumRealisasiTerbit + this.resumeBigData.realisasi_terbit.sum.toString() )}`; }); document .querySelectorAll(".small-percentage.chart-realisasi-tebit-pbg") .forEach((element) => { - element.innerText = `0.00%`; + element.innerText = `${this.resumeBigData.realisasi_terbit.percentage}%`; }); } initChartMenungguKlikDPMPTSP() { document .querySelectorAll(".document-count.chart-menunggu-klik-dpmptsp") .forEach((element) => { - element.innerText = `${this.dataCountMenungguKlikDPMPTSP}`; + // element.innerText = `${this.dataCountMenungguKlikDPMPTSP}`; + element.innerText = `${this.resumeBigData.menunggu_klik_dpmptsp.count}`; }); document .querySelectorAll(".document-total.chart-menunggu-klik-dpmptsp") .forEach((element) => { element.innerText = `Rp.${addThousandSeparators( - this.dataSumMenungguKlikDPMPTSP + // this.dataSumMenungguKlikDPMPTSP + this.resumeBigData.menunggu_klik_dpmptsp.sum.toString() )}`; }); document .querySelectorAll(".small-percentage.chart-menunggu-klik-dpmptsp") .forEach((element) => { - element.innerText = `0.00%`; + element.innerText = `${this.resumeBigData.menunggu_klik_dpmptsp.percentage}%`; }); } initChartProsesDinasTeknis() { document .querySelectorAll(".document-count.chart-proses-dinas-teknis") .forEach((element) => { - element.innerText = `${this.dataCountProsesDinasTeknis}`; + // element.innerText = `${this.dataCountProsesDinasTeknis}`; + element.innerText = `${this.resumeBigData.proses_dinas_teknis.count}`; }); document .querySelectorAll(".document-total.chart-proses-dinas-teknis") .forEach((element) => { element.innerText = `Rp.${addThousandSeparators( - this.dataSumProsesDinasTeknis + // this.dataSumProsesDinasTeknis + this.resumeBigData.proses_dinas_teknis.sum.toString() )}`; }); document .querySelectorAll(".small-percentage.chart-proses-dinas-teknis") .forEach((element) => { - element.innerText = `0.00%`; + element.innerText = `${this.resumeBigData.proses_dinas_teknis.percentage}%`; }); } initChartPotensiTataRuang() { @@ -568,13 +622,15 @@ class BigData { .querySelectorAll(".document-total.chart-potensi-tata-ruang") .forEach((element) => { element.innerText = `Rp.${addThousandSeparators( - this.bigTotalTataRuang.toString() + // this.bigTotalTataRuang.toString() + this.resumeBigData.tata_ruang.sum.toString() )}`; }); document .querySelectorAll(".small-percentage.chart-potensi-tata-ruang") .forEach((element) => { - element.innerText = `${this.percentageResultTataRuang}%`; + // element.innerText = `${this.percentageResultTataRuang}%`; + element.innerText = `${this.resumeBigData.tata_ruang.percentage}%`; }); } } diff --git a/routes/api.php b/routes/api.php index 0bab589..c1fc0cd 100644 --- a/routes/api.php +++ b/routes/api.php @@ -1,5 +1,6 @@ 'auth:sanctum'], function (){ //dashboard potensi Route::get('/dashboard-potential-count', [LackOfPotentialController::class, 'count_lack_of_potential'])->name('api.count-dashboard-potential'); + + // big data resume + Route::get('/bigdata-resume', [BigDataResumeController::class, 'index'])->name('api.bigdata-resume'); }); \ No newline at end of file