mirror of
https://gitlab.com/CIEFWorldwideSdnBhd/exchange-2.0.git
synced 2026-08-19 04:23:55 +00:00
218 lines
11 KiB
Vue
218 lines
11 KiB
Vue
<template>
|
|
<div class="row">
|
|
<div class="col">
|
|
<loading-component v-if="isLoading"></loading-component>
|
|
<div class="row" v-if="!isLoading">
|
|
<div class="col">
|
|
<div class="row">
|
|
<div class="col-12 p-0" style="width: 500px; height:350px">
|
|
<canvas id="wallets-chart"></canvas>
|
|
</div>
|
|
</div>
|
|
<div class="row">
|
|
<div class="col">
|
|
<div class="card no-border bg-success text-white widget-loader-bar m-b-10">
|
|
<div class="container-xs-height full-height">
|
|
<div class="row-xs-height">
|
|
<div class="col-xs-height col-top">
|
|
<div class="card-header top-left top-right">
|
|
<div class="card-title">
|
|
<span class="font-montserrat fs-11 all-caps">Total Amount</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="row-xs-height">
|
|
<div class="col-xs-height col-top">
|
|
<div class="p-l-20 p-t-50 p-b-40 p-r-20">
|
|
<h3 class="no-margin p-b-5 text-white">MYR {{(Math.round((report.walletSum + Number.EPSILON) * 100) / 100).toFixed(2).toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",")}}</h3>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="row-xs-height">
|
|
<div class="col-xs-height col-bottom">
|
|
<div class="progress progress-small m-b-0">
|
|
<div class="progress-bar progress-bar-success" style="width: 0"></div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="col">
|
|
<div class="card no-border bg-success-light text-white widget-loader-bar m-b-10">
|
|
<div class="container-xs-height full-height">
|
|
<div class="row-xs-height">
|
|
<div class="col-xs-height col-top">
|
|
<div class="card-header top-left top-right">
|
|
<div class="card-title">
|
|
<span class="font-montserrat fs-11 all-caps">Total Incoming Amount</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="row-xs-height">
|
|
<div class="col-xs-height col-top">
|
|
<div class="p-l-20 p-t-50 p-b-40 p-r-20">
|
|
<h3 class="no-margin p-b-5 text-white">MYR {{(Math.round((report.incomingSum + Number.EPSILON) * 100) / 100).toFixed(2).toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",")}}</h3>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="row-xs-height">
|
|
<div class="col-xs-height col-bottom">
|
|
<div class="progress progress-small m-b-0">
|
|
<div class="progress-bar progress-bar-success" style="width: 0"></div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="col">
|
|
<div class="card no-border bg-warning widget-loader-bar m-b-10">
|
|
<div class="container-xs-height full-height">
|
|
<div class="row-xs-height">
|
|
<div class="col-xs-height col-top">
|
|
<div class="card-header top-left top-right">
|
|
<div class="card-title">
|
|
<span class="font-montserrat fs-11 all-caps">Total Outgoing Amount</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="row-xs-height">
|
|
<div class="col-xs-height col-top">
|
|
<div class="p-l-20 p-t-50 p-b-40 p-r-20">
|
|
<h3 class="no-margin p-b-5 text-white">MYR {{(Math.round((report.outgoingSum + Number.EPSILON) * 100) / 100).toFixed(2).toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",")}}</h3>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="row-xs-height">
|
|
<div class="col-xs-height col-bottom">
|
|
<div class="progress progress-small m-b-0">
|
|
<div class="progress-bar progress-bar-primary" style="width: 0"></div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="col d-none">
|
|
<div class="card no-border bg-danger text-white widget-loader-bar m-b-10">
|
|
<div class="container-xs-height full-height">
|
|
<div class="row-xs-height">
|
|
<div class="col-xs-height col-top">
|
|
<div class="card-header top-left top-right">
|
|
<div class="card-title">
|
|
<span class="font-montserrat fs-11 all-caps">Total Floating Amount</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="row-xs-height">
|
|
<div class="col-xs-height col-top">
|
|
<div class="p-l-20 p-t-50 p-b-40 p-r-20">
|
|
<h3 class="no-margin p-b-5 text-white">MYR 500,123</h3>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="row-xs-height">
|
|
<div class="col-xs-height col-bottom">
|
|
<div class="progress progress-small m-b-0">
|
|
<div class="progress-bar progress-bar-primary" style="width: 0"></div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</template>
|
|
|
|
<script>
|
|
import componentHandler from '../../../general/mixins/componentHandler';
|
|
import Chart from 'chart.js';
|
|
|
|
export default {
|
|
data(){
|
|
return {
|
|
section: 'walletStatsSection',
|
|
isLoading: false,
|
|
report: {
|
|
incomingSum: 0,
|
|
outgoingSum: 0,
|
|
walletSum: 0
|
|
}
|
|
}
|
|
},
|
|
computed: {
|
|
pendingQueue () {
|
|
return this.$store.getters.isInCompleteQueue(this.section);
|
|
},
|
|
},
|
|
watch: {
|
|
pendingQueue(inComplete){
|
|
if(inComplete){
|
|
this.fetchReport();
|
|
}
|
|
},
|
|
wallet_details: function() {
|
|
const ctx = document.getElementById('wallets-chart');
|
|
var xValues = [100,200,300,400,500,600,700,800,900,1000];
|
|
new Chart(ctx, {
|
|
type: "line",
|
|
data: {
|
|
labels: 'ndcs',
|
|
datasets: [{
|
|
data: [860,1140,1060,1060,1070,1110,1330,2210,7830,2478],
|
|
borderColor: "red",
|
|
fill: false
|
|
},
|
|
{
|
|
data: [1600,1700,1700,1900,2000,2700,4000,5000,6000,7000],
|
|
borderColor: "green",
|
|
fill: false
|
|
},
|
|
{
|
|
data: [300,700,2000,5000,6000,4000,2000,1000,200,100],
|
|
borderColor: "blue",
|
|
fill: false
|
|
}]
|
|
},
|
|
options: {
|
|
responsive: true,
|
|
plugins: {
|
|
legend: {
|
|
position: 'top',
|
|
},
|
|
title: {
|
|
display: true,
|
|
text: 'Chart.js Line Chart'
|
|
}
|
|
}
|
|
},
|
|
});
|
|
}
|
|
},
|
|
created(){
|
|
this.$store.dispatch('updateListQueue', {'name': this.section});
|
|
},
|
|
methods: {
|
|
fetchReport(){
|
|
this.isLoading = true;
|
|
this.submit(route('api.wallet.reports'), 'get', this.section, false, false)
|
|
},
|
|
successHandler(response){
|
|
this.isLoading = false;
|
|
this.report = response.payload.data;
|
|
}
|
|
},
|
|
mixins: [componentHandler]
|
|
}
|
|
|
|
</script>
|