Files
admin-erahn/resources/js/app.js
T
2023-04-17 11:39:38 +08:00

272 lines
8.2 KiB
JavaScript
Vendored

/**
* First we will load all of this project's JavaScript dependencies which
* includes Vue and other libraries. It is a great starting point when
* building robust, powerful web applications using Vue and Laravel.
*/
import VueApexCharts from 'vue-apexcharts'
import Alpine from 'alpinejs'
import Vue from 'vue'
import Vuex from 'vuex'
import createPersistedState from "vuex-persistedstate";
import VueCompositionAPI from '@vue/composition-api'
import VueAxios from 'vue-axios'
import axios from 'axios'
import JwPagination from 'jw-vue-pagination'
import Toast from "vue-toastification"
import "vue-toastification/dist/index.css"
import router from './routes'
import Vuelidate from 'vuelidate'
import datetime from 'vuejs-datetimepicker';
import VueContentPlaceholders from 'vue-content-placeholders'
// import VueIframe from 'vue-iframes'
import VueFriendlyIframe from 'vue-friendly-iframe';
import VueSweetalert2 from 'vue-sweetalert2';
import 'sweetalert2/dist/sweetalert2.min.css';
import VueHtml5Editor from 'vue-html5-editor'
import VueFlatPickr from 'vue-flatpickr-component';
import 'flatpickr/dist/flatpickr.css';
import VueExcelXlsx from "vue-excel-xlsx";
let ops = {
// global component name
name: "vue-html5-editor",
// if set true,will append module name to toolbar after icon
showModuleName: false,
// custom icon class of built-in modules,default using font-awesome
icons: {
text: "fa fa-pencil",
color: "fa fa-paint-brush",
font: "fa fa-font",
align: "fa fa-align-justify",
list: "fa fa-list",
link: "fa fa-chain",
unlink: "fa fa-chain-broken",
tabulation: "fa fa-table",
image: "fa fa-file-image-o",
hr: "fa fa-minus",
eraser: "fa fa-eraser",
undo: "fa-undo fa",
"full-screen": "fa fa-arrows-alt",
info: "fa fa-info",
},
//default en-us, en-us and zh-cn are built-in
language: "en-us",
// the modules you don't want
hiddenModules: [],
// keep only the modules you want and customize the order.
// can be used with hiddenModules together
visibleModules: [
"text",
"color",
// "font",
"align",
// "list",
// "link",
// "unlink",
// "tabulation",
// "image",
// "hr",
// "eraser",
"undo",
"full-screen",
// "info",
]
};
Vue.use(VueHtml5Editor,ops);
require('./bootstrap');
window.Vue = require('vue').default;
window.Alpine = Alpine;
Vue.use(Vuex)
const options = {
transition: "Vue-Toastification__fade",
position: "top-right",
timeout: 2000,
closeOnClick: true,
maxToasts: 20,
pauseOnHover: true,
draggable: true,
draggablePercent: 0.6,
closeButton: "button",
showCloseButtonOnHover: false,
icon: true,
newestOnTop: true
};
Vue.use(Vuelidate)
Vue.use (VueApexCharts)
Vue.use (Alpine)
Vue.use(VueCompositionAPI)
Vue.use(VueAxios, axios)
Vue.component('jw-pagination', JwPagination)
Vue.use(Toast, options)
Vue.use(datetime)
Vue.use(VueContentPlaceholders)
Vue.use(VueSweetalert2);
Vue.use(VueFriendlyIframe)
Vue.use(VueFlatPickr)
Vue.use(VueExcelXlsx)
Vue.use(require('vue-moment'));
Alpine.start()
Vue.use(require('vue-pusher'), {
api_key: 'da67a7e1a3a138b9b28e',
options: {
cluster: 'ap1',
encrypted: true,
}
});
Vue.prototype.$api1 = 'http://api.arrahn/'
Vue.prototype.$username = document.querySelector("meta[name='user_name']").getAttribute('content');
Vue.prototype.$userroles = document.querySelector("meta[name='user_roles']").getAttribute('content');
let initial = 'KB2';
let initialhostname = 'http://api.arrahn/';
let initialtahun = new Date().getFullYear();
const store = new Vuex.Store({
state: {
$kodcaw: 'KB2',
$hostname: 'http://api.arrahn/',
$tahun: new Date().getFullYear()
},
plugins: [createPersistedState()],
mutations: {
update$kodcaw: function(state, newKodcaw) {
state.$kodcaw = newKodcaw;
},
update$hostname: function(state, newHostname) {
state.$hostname = newHostname;
},
update$tahun: function(state, newTahun) {
state.$tahun = newTahun;
},
reset (state) {
state.$kodcaw = initial;
state.$hostname = initialhostname;
state.$tahun = initialtahun;
}
}
});
Vue.mixin({
computed: {
$kodcaw: {
get: function () {
return store.state.$kodcaw
},
},
$hostname: {
get: function () {
return store.state.$hostname
},
},
$tahun: {
get: function () {
return store.state.$tahun
},
}
},
methods:{
setkodcaw: function(newKodcaw) {
// console.log(newKodcaw)
return store.commit('update$kodcaw', newKodcaw);
},
sethostname: function(newHostname) {
return store.commit('update$hostname', newHostname);
},
settahun: function(newTahun) {
return store.commit('update$tahun', newTahun);
},
setLogout: function(){
return store.commit('reset');
}
}
})
//Chart
Vue.component('dashboard-component', require('./Dashboard/index.vue').default)
Vue.component('pemb-chart', require('./components/Chart/PembiayaanChart.vue').default)
Vue.component('peny-chart', require('./components/Chart/PenyelesaianChart.vue').default)
Vue.component('keun-chart', require('./components/Chart/KeuntunganChart.vue').default)
Vue.component('breadcrumb', require('./components/Breadcrumb.vue').default)
Vue.component('dashboard', require('./pages/dashboard.vue').default)
Vue.component('tunai-component', require('./components/Tunai.vue').default)
Vue.component('petibesi-component', require('./components/Petibesi.vue').default)
Vue.component('cawangan-component', require('./components/Cawangan.vue').default)
Vue.component('modal-component', require('./components/util/Modal.vue').default)
Vue.component('searchpelanggan-component', require('./components/Searchpelanggan.vue').default)
Vue.component('laporanakaun-component', require('./Akaun/Laporan.vue').default)
Vue.component('online-component', require('./Online/Online.vue').default)
Vue.component('noticelelong-component', require('./pages/NotisLelong.vue').default)
Vue.component('noticelelong2-component', require('./pages/NotisLelongFasa2.vue').default)
Vue.component('kelulusan-component', require('./Kelulusan/TableKelulusan.vue').default)
Vue.component('details-pelanggan', require('./pages/Detailspelanggan.vue').default)
Vue.component('blacklist-pelanggan', require('./pages/Blacklist.vue').default)
Vue.component('harian-component', require('./components/Analisa/Harian.vue').default)
Vue.component('tahunan-component', require('./components/Analisa/Tahunan.vue').default)
Vue.component('aging-component', require('./components/Analisa/Aging.vue').default)
//Component Berkaitan
Vue.component('square-component', require('./components/util/Clock.vue').default)
Vue.component('bilangan-component', require('./components/Chart/BilanganChart.vue').default)
Vue.component('getkodcaw-component', require('./Bajet/GetKodcaw.vue').default)
Vue.component('senaraibajet-component', require('./Bajet/Homebajet.vue').default)
Vue.component('clock-component', require('./components/util/Clock.vue').default)
//Logout
Vue.component('logout-component', require('./Logout.vue').default)
//Notify
Vue.component('notify-component', require('./components/util/Notify.vue').default)
//Permohonan
Vue.component('permohonanindex-component', require('./Permohonan/index.vue').default)
Vue.component('permohonan-component', require('./Permohonan/SenaraiMohon.vue').default)
//WTD
Vue.component('wtdindex-component', require('./WTD/index.vue').default)
//Audit
Vue.component('audit-component', require('./Audit/Home.vue').default)
//Tetapan
Vue.component('tetapan-component', require('./Tetapan/index.vue').default)
Vue.component('pengguna-component', require('./Pengguna/index.vue').default)
Vue.component('margin-component', require('./Tetapan/margin.vue').default)
Vue.component('apexchart', VueApexCharts)
const app = new Vue({
router,
el: '#app',
store
});