@ -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>
|
<template>
|
||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
<a class="nav-link WM-Flex" :class="[aClass, (Status == 'Active' ? 'active' : '')]" data-toggle="tab" :href="TabHref">
|
<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>
|
||||||
<div class="WM-Font-18"> {{ TitleFa }} </div> {{ TitleEn }}
|
<div class="WM-Font-18"> {{ TitleFa }} </div> {{ TitleEn }}
|
||||||
</div>
|
</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;
|