@ -1,3 +1,4 @@
|
||||
{
|
||||
"/js/app.js": "/js/app.js"
|
||||
"/Module/js/app.js": "/Module/js/app.js",
|
||||
"/Website/js/app.js": "/Website/js/app.js"
|
||||
}
|
||||
|
Before Width: | Height: | Size: 127 KiB After Width: | Height: | Size: 127 KiB |
Before Width: | Height: | Size: 85 KiB After Width: | Height: | Size: 85 KiB |
Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 24 KiB |
Before Width: | Height: | Size: 343 KiB After Width: | Height: | Size: 343 KiB |
Before Width: | Height: | Size: 6.8 KiB After Width: | Height: | Size: 6.8 KiB |
Before Width: | Height: | Size: 30 KiB After Width: | Height: | Size: 30 KiB |
Before Width: | Height: | Size: 122 KiB After Width: | Height: | Size: 122 KiB |
Before Width: | Height: | Size: 6.7 KiB After Width: | Height: | Size: 6.7 KiB |
@ -0,0 +1,17 @@
|
||||
<template>
|
||||
<v-flex :class="Size" class="WM-Info">
|
||||
<div class="WM-Font-14 WM-Color-Gray"><v-icon>fas fa-{{ Icon }}</v-icon> {{ Title }} </div>
|
||||
<div class="WM-Font-20 WM-Margin-R-10"> {{ Value }} </div>
|
||||
</v-flex>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
props: {
|
||||
Icon: { default: 'check' },
|
||||
Title: { default: " عنوان " },
|
||||
Value: { default: " پسر خوب " },
|
||||
Size: { default: "xs12 sm4 md3" }
|
||||
},
|
||||
};
|
||||
</script>
|
@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link WM-Flex" :class="[aClass, (Status == 'Active' ? 'active' : '')]" data-toggle="tab" :href="TabHref">
|
||||
<div class="WM-Notification" v-if="Quantity>0"> {{ Quantity }} </div>
|
||||
<v-chip color="orange darken-2" text-color="white" v-if="Quantity>0"> {{ Quantity }} </v-chip>
|
||||
<div>
|
||||
<div class="WM-Font-18"> {{ TitleFa }} </div> {{ TitleEn }}
|
||||
</div>
|
@ -0,0 +1,38 @@
|
||||
<template>
|
||||
<v-layout row wrap class="WM-Margin-T-20 WM-Margin-0 WM-Padding-10 WM-Border WM-Border-LightGray" style="border-right:2px solid #ee3552;">
|
||||
<v-flex xs12 sm4 md3>
|
||||
<v-menu :close-on-content-click="false" v-model="DateFilterBefore" :nudge-right="40" lazy transition="slide-y-transition" offset-y full-width min-width="290px">
|
||||
<v-text-field slot="activator" v-model="date" label=" سفارشات قبل از تاریخ " prepend-icon="fas fa-calendar-alt" color="orange darken-3" readonly></v-text-field>
|
||||
<v-date-picker v-model="date" @input="DateFilterBefore = false" color="orange darken-3" locale="fa-ir"></v-date-picker>
|
||||
</v-menu>
|
||||
</v-flex>
|
||||
<v-flex xs12 sm4 md3>
|
||||
<v-menu :close-on-content-click="false" v-model="DateFilterAfter" :nudge-right="40" lazy transition="slide-y-transition" offset-y full-width min-width="290px">
|
||||
<v-text-field slot="activator" v-model="date" label=" سفارشات بعد از تاریخ " prepend-icon="fas fa-calendar-alt" color="orange darken-3" readonly></v-text-field>
|
||||
<v-date-picker v-model="date" @input="DateFilterAfter = false" color="orange darken-3" locale="fa-ir"></v-date-picker>
|
||||
</v-menu>
|
||||
</v-flex>
|
||||
<v-flex xs12 sm4 md3>
|
||||
<v-text-field label=" نام سفارش دهنده " color="orange darken-3" prepend-icon="fas fa-user"></v-text-field>
|
||||
</v-flex>
|
||||
<v-flex xs12 sm4 md3>
|
||||
<v-tooltip top color="black">
|
||||
<v-btn slot="activator" fab color="orange" dark><v-icon dark>fas fa-filter</v-icon></v-btn>
|
||||
<span> فیلتر سفارشات </span>
|
||||
</v-tooltip>
|
||||
</v-flex>
|
||||
|
||||
</v-layout>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
data: function () {
|
||||
return {
|
||||
date: new Date().toISOString().substr(0, 10),
|
||||
DateFilterAfter: false,
|
||||
DateFilterBefore: false,
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
@ -0,0 +1,136 @@
|
||||
#app {
|
||||
padding: 0em 0;
|
||||
}
|
||||
|
||||
/* --------------------------------------------------------
|
||||
Navigation :: Bootstrap Tabs
|
||||
-------------------------------------------------------- */
|
||||
|
||||
.nav-tabs {
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.nav-item {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.nav-tabs .nav-link.active,
|
||||
.nav-tabs .nav-item.show .nav-link,
|
||||
.nav-tabs .nav-link:hover,
|
||||
.nav-tabs .nav-link:focus {
|
||||
border: 1px solid transparent;
|
||||
border-bottom: 1px solid #ee3552;
|
||||
color: #ee3552;
|
||||
}
|
||||
|
||||
.nav-tabs .nav-link {
|
||||
color: #000;
|
||||
}
|
||||
|
||||
.nav-tabs .nav-link .v-chip {
|
||||
margin: 12px 10px;
|
||||
transition: 0.2s;
|
||||
}
|
||||
|
||||
.nav-tabs .nav-link:not(.active) .v-chip {
|
||||
background-color: #000 !important;
|
||||
border-color: #000 !important;
|
||||
}
|
||||
|
||||
@each $Color,
|
||||
$Value in $Colors {
|
||||
.nav-tabs .nav-link.WM-#{$Color}.active,
|
||||
.nav-tabs .nav-link.WM-#{$Color}:hover,
|
||||
.nav-tabs .nav-link.WM-#{$Color}:focus {
|
||||
border-bottom: 1px solid $Value;
|
||||
color: $Value;
|
||||
}
|
||||
.nav-tabs .nav-link.WM-#{$Color}.active .WM-Notification,
|
||||
.nav-tabs .nav-link.WM-#{$Color}:hover .WM-Notification,
|
||||
.nav-tabs .nav-link.WM-#{$Color}:focus .WM-Notification {
|
||||
background-color: $Value;
|
||||
}
|
||||
}
|
||||
|
||||
/* --------------------------------------------------------
|
||||
Vuetify :: Dialog
|
||||
-------------------------------------------------------- */
|
||||
|
||||
.v-card__title--primary {
|
||||
padding-top: 10px;
|
||||
}
|
||||
|
||||
.theme--light.v-text-field>.v-input__control>.v-input__slot:before {
|
||||
border-color: rgba(0, 0, 0, .22);
|
||||
}
|
||||
|
||||
.theme--light.v-icon {
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
table.v-table thead th {
|
||||
font-size: 18px;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
table.v-table tbody td,
|
||||
table.v-table tbody th {
|
||||
height: 80px;
|
||||
}
|
||||
|
||||
table.v-table tbody td {
|
||||
font-weight: 400;
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
.v-datatable thead th.column.sortable .v-icon {
|
||||
line-height: 1.1;
|
||||
}
|
||||
|
||||
.v-datatable__actions {
|
||||
font-size: 15px;
|
||||
}
|
||||
|
||||
.v-chip .v-chip__content {
|
||||
padding: 0 10px;
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
.orange.darken-2 {
|
||||
background-color: #ff6b57 !important;
|
||||
border-color: #ff6b57 !important;
|
||||
}
|
||||
|
||||
.v-chip {
|
||||
height: 32px;
|
||||
}
|
||||
|
||||
@each $Color,
|
||||
$Value in $colors {
|
||||
.#{$Color} {
|
||||
background-color: $Value !important;
|
||||
border-color: $Value !important;
|
||||
}
|
||||
}
|
||||
|
||||
@each $Shadow,
|
||||
$Value in $Shadows {
|
||||
.v-btn.v-btn--floating.#{$Shadow} {
|
||||
box-shadow: 0 10px 30px 0px $Value;
|
||||
-moz-box-shadow: 0 10px 30px 0px $Value;
|
||||
-webkit-box-shadow: 0 10px 30px 0px $Value;
|
||||
-o-box-shadow: 0 10px 30px 0px $Value;
|
||||
-ms-box-shadow: 0 10px 30px 0px $Value;
|
||||
}
|
||||
}
|
||||
|
||||
.v-btn--floating.v-btn--active,
|
||||
.v-btn--floating.v-btn:focus,
|
||||
.v-btn--floating.v-btn:hover {
|
||||
background-color: #000 !important;
|
||||
box-shadow: 0 10px 30px 0px $BlackShadow;
|
||||
-moz-box-shadow: 0 10px 30px 0px $BlackShadow;
|
||||
-webkit-box-shadow: 0 10px 30px 0px $BlackShadow;
|
||||
-o-box-shadow: 0 10px 30px 0px $BlackShadow;
|
||||
-ms-box-shadow: 0 10px 30px 0px $BlackShadow;
|
||||
}
|
@ -0,0 +1,27 @@
|
||||
$Red: #ee3552;
|
||||
$RedShadow: rgba(255, 75, 90, 0.5);
|
||||
$Orange: #FF6B57;
|
||||
$OrangeShadow:rgba(255, 130, 46, 0.5);
|
||||
$Yellow: #ffd63a;
|
||||
$YellowShadow:rgba(234, 223, 131, 0.5);
|
||||
$Gold: #ddcfbb;
|
||||
$GoldShadow:rgba(234, 223, 131, 0.5);
|
||||
$Purple:#ac3773;
|
||||
$PurpleShadow:rgba(172, 55, 115, 0.5);
|
||||
$Blue: #3498DB;
|
||||
$BlueShadow:rgba(76, 74, 228, 0.5);
|
||||
$Green: #0d7e00;
|
||||
$GreenShadow:rgba(13, 126, 0, 0.35);
|
||||
$Cyan: #32c5d2;
|
||||
$CyanShadow:rgba(50, 197, 210, 0.32);
|
||||
$LightGray: #e6e6e6;
|
||||
$LightGrayShadow:rgba(107, 107, 107, 0.5);
|
||||
$Gray: #797979;
|
||||
$GrayShadow:rgba(54, 54, 54, 0.5);
|
||||
$Black: #2f353b;
|
||||
$BlackShadow:rgba(0, 0, 0, 0.5);
|
||||
$White: #fff;
|
||||
$WhiteShadow:rgba(255, 255, 255, 0.2);
|
||||
$Colors: (Red: $Red, Orange: $Orange, Yellow: $Yellow, Gold: $Gold, Purple: $Purple, Blue: $Blue, Green: $Green, Cyan: $Cyan, LightGray: $LightGray, Gray: $Gray, Black: $Black, White: $White);
|
||||
$colors: (red: $Red, orange: $Orange, yellow: $Yellow, gold: $Gold, purple: $Purple, blue: $Blue, green: $Green, cyan: $Cyan, gray: $Gray, black: $Black, white: $White);
|
||||
$Shadows: (red: $RedShadow, orange: $OrangeShadow, yellow: $YellowShadow, gold: $GoldShadow, purple: $PurpleShadow, blue: $BlueShadow, green: $GreenShadow, cyan: $CyanShadow, gray: $GrayShadow, black: $BlackShadow, white: $WhiteShadow);
|
@ -0,0 +1,38 @@
|
||||
<template>
|
||||
<v-layout row wrap class="WM-Margin-T-20 WM-Margin-0 WM-Padding-10 WM-Border WM-Border-LightGray" style="border-right:2px solid #ee3552;">
|
||||
<v-flex xs12 sm4 md3>
|
||||
<v-menu :close-on-content-click="false" v-model="DateFilterBefore" :nudge-right="40" lazy transition="slide-y-transition" offset-y full-width min-width="290px">
|
||||
<v-text-field slot="activator" v-model="date" label=" سفارشات قبل از تاریخ " prepend-icon="fas fa-calendar-alt" color="orange darken-3" readonly></v-text-field>
|
||||
<v-date-picker v-model="date" @input="DateFilterBefore = false" color="orange darken-3" locale="fa-ir"></v-date-picker>
|
||||
</v-menu>
|
||||
</v-flex>
|
||||
<v-flex xs12 sm4 md3>
|
||||
<v-menu :close-on-content-click="false" v-model="DateFilterAfter" :nudge-right="40" lazy transition="slide-y-transition" offset-y full-width min-width="290px">
|
||||
<v-text-field slot="activator" v-model="date" label=" سفارشات بعد از تاریخ " prepend-icon="fas fa-calendar-alt" color="orange darken-3" readonly></v-text-field>
|
||||
<v-date-picker v-model="date" @input="DateFilterAfter = false" color="orange darken-3" locale="fa-ir"></v-date-picker>
|
||||
</v-menu>
|
||||
</v-flex>
|
||||
<v-flex xs12 sm4 md3>
|
||||
<v-text-field label=" نام سفارش دهنده " color="orange darken-3" prepend-icon="fas fa-user"></v-text-field>
|
||||
</v-flex>
|
||||
<v-flex xs12 sm4 md3>
|
||||
<v-tooltip top color="black">
|
||||
<v-btn slot="activator" fab color="orange" dark><v-icon dark>fas fa-filter</v-icon></v-btn>
|
||||
<span> فیلتر سفارشات </span>
|
||||
</v-tooltip>
|
||||
</v-flex>
|
||||
|
||||
</v-layout>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
data: function () {
|
||||
return {
|
||||
date: new Date().toISOString().substr(0, 10),
|
||||
DateFilterAfter: false,
|
||||
DateFilterBefore: false,
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
@ -0,0 +1,45 @@
|
||||
import Vue from 'vue'
|
||||
import Router from 'vue-router'
|
||||
import WebsiteManagement from './views/Website/Management.vue'
|
||||
|
||||
Vue.use(Router)
|
||||
|
||||
const router = new Router({
|
||||
mode: 'history',
|
||||
base: process.env.BASE_URL,
|
||||
linkActiveClass: "WM-Active",
|
||||
linkExactActiveClass: "WM-Exact-Active",
|
||||
routes: [
|
||||
{
|
||||
path: '*',
|
||||
redirect: '/'
|
||||
},
|
||||
{
|
||||
path: '/',
|
||||
name: 'WebsiteManagement',
|
||||
component: WebsiteManagement
|
||||
},
|
||||
{
|
||||
path: 'WebsiteManagement',
|
||||
name: 'WebsiteManagement',
|
||||
component: WebsiteManagement
|
||||
},
|
||||
|
||||
]
|
||||
})
|
||||
|
||||
router.beforeResolve((to, from, next) => {
|
||||
if (to.name && router.app.$children[0] != undefined)
|
||||
router.app.$children[0].loadingVisible = true;
|
||||
|
||||
setTimeout(() => {
|
||||
next();
|
||||
}, 500)
|
||||
})
|
||||
|
||||
router.afterEach(() => {
|
||||
if (router.app.$children[0] != undefined)
|
||||
router.app.$children[0].loadingVisible = false;
|
||||
})
|
||||
|
||||
export default router;
|
@ -0,0 +1,98 @@
|
||||
<template>
|
||||
<div class="container_fluid">
|
||||
<WM-PageTitle TitleFa=" مدیریت سفارشات " TitleEn=" Orders Management " Color="orange darken-3" TitleFaClass="WM-Color-Black"></WM-PageTitle>
|
||||
<v-alert :value="true" color="grey lighten-2" dismissible outline>
|
||||
<WM-PartTitle class="WM-Margin-T-20" TitleFa=" خلاصه ای از آمار " TitleEn=" Statistics Summery " ThemeColor="Orange" TextFaColor="black--text"></WM-PartTitle>
|
||||
<v-layout row wrap class="WM-Margin-T-20">
|
||||
<v-flex xs12 sm6 md4> <DoughnutChart :height="280"></DoughnutChart> </v-flex>
|
||||
<v-flex xs12 sm6 md8> <LineChart :height="380" Title=" فروش در 30 روز گذشته "></LineChart> </v-flex>
|
||||
</v-layout>
|
||||
</v-alert>
|
||||
|
||||
<ul class="nav nav-tabs WM-Margin-T-20" id="WMTabs">
|
||||
<template v-for="(Tab, index) in Tabs">
|
||||
<component :is="Tab.Type" :TitleFa="Tab.NameFa" :TitleEn="Tab.NameEn" :Status="Tab.Status" :Quantity="Tab.Quantity" :SubItems="Tab.SubItems" :TabContent="index" Color="Orange"></component>
|
||||
</template>
|
||||
</ul>
|
||||
|
||||
|
||||
<div class="tab-content">
|
||||
<div class="tab-pane container-fluid active" id="OngoingOrders">
|
||||
<WM-PartTitle class="WM-Margin-T-20" TitleFa=" تمام سفارشات " TitleEn=" All Orders " Color="orange darken-3"></WM-PartTitle>
|
||||
<OrderFilters class="WM-Margin-T-20"></OrderFilters>
|
||||
<OrderItems class="WM-Margin-T-20"></OrderItems>
|
||||
|
||||
</div>
|
||||
<div class="tab-pane container fade" id="CompletedOrders"> </div>
|
||||
</div>
|
||||
|
||||
<template>
|
||||
<div class="text-xs-center ">
|
||||
<OrderDetailsModal></OrderDetailsModal>
|
||||
<SendEmailModal></SendEmailModal>
|
||||
<SendSMSModal></SendSMSModal>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
</div>
|
||||
|
||||
</template>
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
import TabItem from "../../components/Misc/TabItem.vue";
|
||||
import TabDropdownItem from "../../components/Misc/TabDropdownItem.vue";
|
||||
import DoughnutChart from '../../components/Charts/DoughnutChart.vue';
|
||||
import LineChart from '../../components/Charts/LineChart.vue';
|
||||
|
||||
import OrderItems from '../../components/Orders/Items.vue';
|
||||
import OrderFilters from '../../components/Orders/Filters.vue';
|
||||
import OrderDetailsModal from "../../components/Orders/Modal-Details.vue";
|
||||
|
||||
import SendEmailModal from "../../components/Contact/Modal-SendEmail.vue";
|
||||
import SendSMSModal from "../../components/Contact/Modal-SendSMS.vue";
|
||||
|
||||
|
||||
export default {
|
||||
components: {
|
||||
TabItem,
|
||||
TabDropdownItem,
|
||||
DoughnutChart,
|
||||
LineChart,
|
||||
OrderItems,
|
||||
OrderDetailsModal,
|
||||
OrderFilters,
|
||||
SendEmailModal,
|
||||
SendSMSModal
|
||||
},
|
||||
data: function () {
|
||||
return {
|
||||
Tabs: {
|
||||
AllOrders: {
|
||||
Type: 'TabItem',
|
||||
NameFa: ' تمام سفارشات ',
|
||||
NameEn: ' All Orders ',
|
||||
Status: 'Active',
|
||||
Quantity: 152
|
||||
},
|
||||
OngoingOrders: {
|
||||
Type: 'TabItem',
|
||||
NameFa: ' سفارشات در حال انجام ',
|
||||
NameEn: ' Ongoing Orders ',
|
||||
Quantity: 5
|
||||
},
|
||||
CompletedOrders: {
|
||||
Type: 'TabItem',
|
||||
NameFa: ' سفارشات انجام شده ',
|
||||
NameEn: ' Completed Orders ',
|
||||
Quantity: 42
|
||||
},
|
||||
},
|
||||
|
||||
}
|
||||
},
|
||||
};
|
||||
|
||||
|
||||
</script>
|
@ -0,0 +1,23 @@
|
||||
<template>
|
||||
<v-app>
|
||||
<div class="wrapper RTL">
|
||||
<div id="app">
|
||||
<div class="container-fluid">
|
||||
<router-view></router-view>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</v-app>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {};
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
#app {
|
||||
padding: 2em 0;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
}
|
||||
</style>
|
@ -0,0 +1,77 @@
|
||||
|
||||
import Vue from 'vue'
|
||||
import App from './App.vue'
|
||||
import router from './router'
|
||||
import store from './store'
|
||||
import VueScrollReveal from 'vue-scroll-reveal'
|
||||
import Vuetify from 'vuetify'
|
||||
|
||||
import 'popper.js'
|
||||
import 'bootstrap-v4-rtl'
|
||||
import 'bootstrap-v4-rtl/scss/bootstrap-rtl.scss'
|
||||
import 'bootstrap-select'
|
||||
import 'bootstrap-select/dist/css/bootstrap-select.css'
|
||||
import 'vuetify/dist/vuetify.min.css' // Ensure you are using css-loader
|
||||
import '@Global/assets/Font-Icons/css/fontello.css'
|
||||
import "@Global/scss/style.scss"
|
||||
|
||||
|
||||
// components
|
||||
import PartTitle from "@Global/components/Dividers/PartTitle.vue";
|
||||
import PageTitle from "@Global/components/Dividers/PageTitle.vue";
|
||||
import Checkbox from "@Global/components/Inputs/Checkbox.vue";
|
||||
import InfoBlock from "@Global/components/Misc/InfoBlock.vue";
|
||||
|
||||
Vue.component('WM-PartTitle', PartTitle)
|
||||
Vue.component('WM-PageTitle', PageTitle)
|
||||
Vue.component('WM-Checkbox', Checkbox)
|
||||
Vue.component('WM-InfoBlock', InfoBlock)
|
||||
|
||||
/**
|
||||
* 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.
|
||||
*/
|
||||
|
||||
|
||||
window.Vue = require('vue');
|
||||
|
||||
/**
|
||||
* The following block of code may be used to automatically register your
|
||||
* Vue components. It will recursively scan this directory for the Vue
|
||||
* components and automatically register them with their "basename".
|
||||
*
|
||||
* Eg. ./components/ExampleComponent.vue -> <example-component></example-component>
|
||||
*/
|
||||
|
||||
// const files = require.context('./', true, /\.vue$/i)
|
||||
// files.keys().map(key => Vue.component(key.split('/').pop().split('.')[0], files(key).default))
|
||||
|
||||
/**
|
||||
* Next, we will create a fresh Vue application instance and attach it to
|
||||
* the page. Then, you may begin adding components to this application
|
||||
* or customize the JavaScript scaffolding to fit your unique needs.
|
||||
*/
|
||||
|
||||
|
||||
Vue.use(Vuetify, {
|
||||
iconfont: 'fa',
|
||||
rtl: true,
|
||||
});
|
||||
|
||||
// Vue.config.productionTip = false;
|
||||
Vue.use(VueScrollReveal, {
|
||||
class: 'v-scroll-reveal', // A CSS class applied to elements with the v-scroll-reveal directive; useful for animation overrides.
|
||||
duration: 800,
|
||||
scale: 1,
|
||||
distance: '10px',
|
||||
mobile: false
|
||||
});
|
||||
|
||||
|
||||
|
||||
const app = new Vue({
|
||||
router,
|
||||
store,
|
||||
render: h => h(App),
|
||||
}).$mount('#app');
|
@ -0,0 +1,45 @@
|
||||
import Vue from 'vue'
|
||||
import Router from 'vue-router'
|
||||
import Management from './views/Management.vue'
|
||||
|
||||
Vue.use(Router)
|
||||
|
||||
const router = new Router({
|
||||
mode: 'history',
|
||||
base: process.env.BASE_URL,
|
||||
linkActiveClass: "WM-Active",
|
||||
linkExactActiveClass: "WM-Exact-Active",
|
||||
routes: [
|
||||
{
|
||||
path: '*',
|
||||
redirect: '/'
|
||||
},
|
||||
{
|
||||
path: '/',
|
||||
name: 'ModuleManagement',
|
||||
component: Management
|
||||
},
|
||||
{
|
||||
path: 'ModuleManagement',
|
||||
name: 'ModuleManagement',
|
||||
component: Management
|
||||
},
|
||||
|
||||
]
|
||||
})
|
||||
|
||||
router.beforeResolve((to, from, next) => {
|
||||
if (to.name && router.app.$children[0] != undefined)
|
||||
router.app.$children[0].loadingVisible = true;
|
||||
|
||||
setTimeout(() => {
|
||||
next();
|
||||
}, 500)
|
||||
})
|
||||
|
||||
router.afterEach(() => {
|
||||
if (router.app.$children[0] != undefined)
|
||||
router.app.$children[0].loadingVisible = false;
|
||||
})
|
||||
|
||||
export default router;
|