92 lines
2.3 KiB
JavaScript
92 lines
2.3 KiB
JavaScript
require('./bootstrap');
|
|
|
|
// Import modules...
|
|
import Vue from 'vue';
|
|
import { App as InertiaApp, plugin as InertiaPlugin } from '@inertiajs/inertia-vue';
|
|
import { InertiaProgress } from '@inertiajs/progress';
|
|
import PortalVue from 'portal-vue';
|
|
import Antd from 'ant-design-vue';
|
|
import Layout from '@/Layouts/AppLayout'
|
|
import VueMeta from 'vue-meta'
|
|
import VueCountryCode from "vue-country-code";
|
|
|
|
Vue.mixin({ methods: { route } });
|
|
Vue.use(InertiaPlugin);
|
|
Vue.use(PortalVue);
|
|
Vue.use(Antd);
|
|
Vue.use(VueMeta);
|
|
Vue.use(VueCountryCode);
|
|
|
|
const app = document.getElementById('app');
|
|
|
|
var globalHelpers = Vue.mixin({
|
|
methods: {
|
|
url(value) {
|
|
return `${this.$page.props.url}${value}`
|
|
},
|
|
|
|
formStatus(prop) {
|
|
return this.form.errors[prop] ? 'error' : ''
|
|
},
|
|
|
|
formHelp(prop) {
|
|
return this.form.errors[prop] ? this.form.errors[prop] : ''
|
|
},
|
|
|
|
/**
|
|
* Destroy with confirm
|
|
*/
|
|
destroy(resource, id) {
|
|
if (confirm("Are you sure you want to remove this item?")) {
|
|
this.$inertia.delete(this.route(`${resource}.destroy`, id), {
|
|
onSuccess: () => {
|
|
this.$message.success('Deleted successfully')
|
|
}
|
|
});
|
|
}
|
|
},
|
|
|
|
/**
|
|
* Download excel file
|
|
*/
|
|
download(group) {
|
|
window.location.href = this.route('download', group)
|
|
},
|
|
|
|
/**
|
|
* Translate
|
|
*/
|
|
trans(key, replace = {}) {
|
|
var translation = this.$page.props.language[key]
|
|
? this.$page.props.language[key]
|
|
: key
|
|
|
|
Object.keys(replace).forEach(function (key) {
|
|
translation = translation.replace(':' + key, replace[key])
|
|
});
|
|
|
|
return translation
|
|
},
|
|
}
|
|
})
|
|
|
|
new Vue({
|
|
mixins: [globalHelpers],
|
|
render: (h) =>
|
|
h(InertiaApp, {
|
|
props: {
|
|
initialPage: JSON.parse(app.dataset.page),
|
|
// resolveComponent: (name) => require(`./Pages/${name}`).default,
|
|
resolveComponent: name => import(`./Pages/${name}`)
|
|
.then(({ default: page }) => {
|
|
if (page.layout === undefined) {
|
|
page.layout = Layout
|
|
}
|
|
return page
|
|
}),
|
|
},
|
|
}),
|
|
}).$mount(app);
|
|
|
|
InertiaProgress.init({ color: '#4B5563' });
|