the begin of modular era

pull/1/head
Alireza Hassani 6 years ago
parent 92544a0f7e
commit 5490ac64c8

63243
public/Module/js/app.js vendored

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

102256
public/js/app.js vendored

File diff suppressed because one or more lines are too long

@ -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: 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

@ -3,12 +3,12 @@
<ul class="WM-Nav d-flex WM-Float-R"> <ul class="WM-Nav d-flex WM-Float-R">
<li> <NavIcon Icon="WMi-Real-Estate" ThemeColor="Black" Route="Summery"></NavIcon> </li> <li> <NavIcon Icon="WMi-Real-Estate" ThemeColor="Black" Route="Summery"></NavIcon> </li>
<!-- <li> <NavItem TitleFa=" صفحه ی اصلی " TitleEn=" Home " ThemeColor="Black"></NavItem> </li> --> <!-- <li> <NavItem TitleFa=" صفحه ی اصلی " TitleEn=" Home " ThemeColor="Black"></NavItem> </li> -->
<li> <NavItem TitleFa=" مجموعه ی من " TitleEn=" My Business " ThemeColor="Black" Route="MyBusiness"></NavItem> </li> <!-- <li> <NavItem TitleFa=" مجموعه ی من " TitleEn=" My Business " ThemeColor="Black" Route="MyBusiness"></NavItem> </li>
<li> <NavItem TitleFa=" محصولات و خدمات " TitleEn=" Products & Services " ThemeColor="Red"></NavItem> </li> <li> <NavItem TitleFa=" محصولات و خدمات " TitleEn=" Products & Services " ThemeColor="Red"></NavItem> </li> -->
<li> <NavItem TitleFa=" سفارشات " TitleEn=" Orders " ThemeColor="Orange" Route="OrderManagement"></NavItem> </li> <li> <NavItem TitleFa=" سفارشات " TitleEn=" Orders " ThemeColor="Orange" Route="OrderManagement"></NavItem> </li>
<li> <NavItem TitleFa=" نمونه کار ها " TitleEn=" Portfolios " ThemeColor="Purple"></NavItem> </li> <!-- <li> <NavItem TitleFa=" نمونه کار ها " TitleEn=" Portfolios " ThemeColor="Purple"></NavItem> </li> -->
<li> <NavItem TitleFa=" اخبار " TitleEn=" Blog " ThemeColor="Orange"></NavItem> </li> <!-- <li> <NavItem TitleFa=" اخبار " TitleEn=" Blog " ThemeColor="Orange"></NavItem> </li> -->
<li> <NavItem TitleFa=" مدیریت سایت " TitleEn=" Website Management " ThemeColor="Green" Route="WebsiteManagement"></NavItem> </li> <li> <NavItem TitleFa=" مدیریت سایت " TitleEn=" Website Management " ThemeColor="Green" Route="Management"></NavItem> </li>
<li> <NavIcon Icon="WMi-search" ThemeColor="Black"></NavIcon> </li> <li> <NavIcon Icon="WMi-search" ThemeColor="Black"></NavIcon> </li>
<li> <NavIcon Icon="WMi-message-reply-text" ThemeColor="Cyan" Quantity="12"></NavIcon> </li> <li> <NavIcon Icon="WMi-message-reply-text" ThemeColor="Cyan" Quantity="12"></NavIcon> </li>
<li> <NavIcon Icon="WMi-bell-alt" ThemeColor="Red" Quantity="4"></NavIcon> </li> <li> <NavIcon Icon="WMi-bell-alt" ThemeColor="Red" Quantity="4"></NavIcon> </li>

@ -5,7 +5,7 @@ export default {
extends: Doughnut, extends: Doughnut,
mounted() { mounted() {
this.renderChart({ this.renderChart({
labels: ["محصولات", "نمونه کارها", "اخبار", "سفارشات", "اعضا"], labels: ["کاملا ناراضی", "عدم رضایت", "بد نبود", "راضی", "کاملا راضی"],
datasets: [{ datasets: [{
labels: [ labels: [
'Red', 'Red',
@ -16,16 +16,16 @@ export default {
backgroundColor: [ backgroundColor: [
'rgba(238, 53, 82, 0.2)', 'rgba(238, 53, 82, 0.2)',
'rgba(255, 107, 87, 0.2)', 'rgba(255, 107, 87, 0.2)',
'rgba(0, 0, 0, 0.2)',
'rgba(172, 55, 115, 0.2)', 'rgba(172, 55, 115, 0.2)',
'rgba(50, 197, 210, 0.2)', 'rgba(50, 197, 210, 0.2)',
'rgba(0, 0, 0, 0.2)',
], ],
borderColor: [ borderColor: [
'#ee3552', '#ee3552',
'#FF6B57', '#FF6B57',
'#000',
'#ac3773', '#ac3773',
'#32c5d2', '#32c5d2',
'#000',
], ],
borderWidth: 1, borderWidth: 1,
}] }]

@ -6,12 +6,16 @@ Chart.defaults.global.defaultFontSize = 14;
export default { export default {
extends: Line, extends: Line,
props: {
Title: { default: " عنوان " }
},
data() { data() {
return { return {
datacollection: { datacollection: {
datasets: [{ datasets: [{
label: ' بازدید وبسایت شما ', label: this.Title,
borderColor: '#ee3552', borderColor: '#ee3552',
backgroundColor: '#ee3552', backgroundColor: '#ee3552',
fill: false, fill: false,

@ -17,11 +17,6 @@ export default {
Color: { default: "Red" }, Color: { default: "Red" },
TitleFaClass: { default: "WM-Color-White" } TitleFaClass: { default: "WM-Color-White" }
}, },
data() {
return {
Color,
}
},
}; };
</script> </script>

@ -1,6 +1,6 @@
<template> <template>
<div class="SectionTitle WM-Width-100"> <div class="SectionTitle WM-Width-100">
<h4 class="TitleFa WM-Align-R" v-text="TitleFa"></h4> <h4 class="TitleFa WM-Align-R" :class="TextFaColor" v-text="TitleFa"></h4>
<div class="TitleEn WM-Flex"> <div class="TitleEn WM-Flex">
<span :class="[Color,TextColor]" v-text="TitleEn"></span> <span :class="[Color,TextColor]" v-text="TitleEn"></span>
<div class="Line"> <div class="Line">
@ -16,7 +16,8 @@ export default {
TitleFa: { default: "عنوان بخش" }, TitleFa: { default: "عنوان بخش" },
TitleEn: { default: "Part Title" }, TitleEn: { default: "Part Title" },
Color: { default: "black" }, Color: { default: "black" },
TextColor: { default: "white--text" } TextColor: { default: "white--text" },
TextFaColor: { default: "black--text" }
}, },
data: function () { data: function () {
return {} return {}

@ -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,70 @@
<template>
<v-data-table :headers="headers" :items="OrderItems" class="WM-Align-R WM-Margin-RL-15">
<template slot="items" slot-scope="props">
<td style="width:5%"> </td>
<td style="width:10%" class="En">{{ props.item.ID }}</td>
<td style="width:5%" class="">{{ props.item.UserName }}</td>
<td style="width:10%" class="">
<v-chip color="orange darken-2" text-color="white"> {{ props.item.Quantity }} </v-chip> آیتم
</td>
<td style="width:10%"><span class="WM-Font-24"> {{ props.item.Value }} </span> تومان</td>
<td style="width:10%" class="" v-html="props.item.UpdatedAt"></td>
<td style="width:50%" class="">
<v-tooltip top color="black">
<v-btn @click.native="$store.state.OrderDetails = true" slot="activator" fab color="cyan" dark><v-icon dark>fas fa-align-right</v-icon></v-btn>
<span> جزئیات سفارش </span>
</v-tooltip>
<v-tooltip top color="black">
<v-btn @click.native="$store.state.OrderStatus = true" slot="activator" fab color="black" dark><v-icon dark>fas fa-exchange-alt</v-icon></v-btn>
<span> تغییر وضعیت سفارش </span>
</v-tooltip>
<v-tooltip top color="black">
<v-btn slot="activator" fab color="black" dark><v-icon dark>fas fa-angle-left</v-icon></v-btn>
<span> تغییر وضعیت سفارش به وضعیت بعدی </span>
</v-tooltip>
<v-tooltip top color="black">
<v-btn @click.native="$store.state.SendEmail = true" slot="activator" fab color="purple" dark><v-icon dark>fas fa-envelope</v-icon></v-btn>
<span> ارسال ایمیل </span>
</v-tooltip>
<v-tooltip top color="black">
<v-btn @click.native="$store.state.SendSMS = true" slot="activator" fab color="orange" dark><v-icon dark>fas fa-comment-alt</v-icon></v-btn>
<span> ارسال پیام کوتاه </span>
</v-tooltip>
<v-tooltip top color="black">
<v-btn slot="activator" fab color="red" dark><v-icon dark>fas fa-trash-alt</v-icon></v-btn>
<span> حذف سفارش </span>
</v-tooltip>
</td>
</template>
<template slot="pageText" slot-scope="props">
صفحه ی {{ props.pageStart }} - {{ props.pageStop }} از {{ props.itemsLength }}
</template>
</v-data-table>
</template>
<script>
export default {
data () {
return {
headers: [
{ text: '#', align:'right', sortable: false, value: 'name'},
{ text: ' شناسه ی سفارش ', align:'right', value: 'calories' },
{ text: ' سفارش دهنده ', align:'right', value: 'fat' },
{ text: ' تعداد آیتم ها ', align:'right', value: 'carbs' },
{ text: ' مبلغ سفارش ', align:'right', value: 'protein' },
{ text: ' تاریخ ثبت ', align:'right', value: 'protein' },
{ text: ' ابزارها ', align:'right', sortable: false, value: 'iron' }
],
OrderItems: [
{ ID: 'WM457', UserName: ' علیرضا حسنی ', Quantity: 12, Value: 350000, UpdatedAt:' سه شنبه، 27 آذر <br> 22:33', Status: 'inProgress'},
],
Status: {
'inProgress': { TitleFa: ' در حال آماده سازی ', Color:''},
'ReadyToDeliver': { TitleFa: ' آماده ی تحویل ', Color:''},
}
}
},
};
</script>

@ -0,0 +1,33 @@
<template>
<v-dialog v-model="$store.state.OrderDetails" width="90%" transition="slide-x-transition">
<v-card class="RTL">
<v-card-title class=" grey lighten-3" primary-title>
<WM-PartTitle class="WM-Margin-T-20" TitleFa=" اطلاعات سفارش دهنده " TitleEn=" Orderer's Info " Color="cyan"></WM-PartTitle>
</v-card-title>
<v-card-text>
<v-layout class="container-fluid" row wrap text-md-right>
<WM-InfoBlock Title=" نام و نام خانوادگی " Value=" علیرضا حسنی " Icon="user"></WM-InfoBlock>
<WM-InfoBlock Title=" شماره ی همراه " Value=" 09127004945 " Icon="phone"></WM-InfoBlock>
<WM-InfoBlock Title=" آدرس آیمیل " Value=" Alireza-Hassani@outlook.com " Icon="envelope"></WM-InfoBlock>
<WM-InfoBlock Title=" تاریخ ثبت سفارش " Value=" سه شنبه، 27 آذر در 22:31 " Icon="calendar-alt"></WM-InfoBlock>
<WM-InfoBlock Title=" شهر " Value=" قم " Icon="map-marker-alt"></WM-InfoBlock>
<WM-InfoBlock Size="xs12 sm12 md8" Title=" آدرس ارسال " Value=" قم، 45 متری صدوقی، کوچه ی 47 پلاک 2، واحد 2 - ویلامال " Icon="map-marked-alt"></WM-InfoBlock>
</v-layout>
</v-card-text>
<v-divider></v-divider>
<v-card-actions>
<v-spacer></v-spacer>
<v-btn color="cyan" depressed dark @click="$store.state.OrderDetails = false">
<v-icon dark right>fas fa-check</v-icon> بسیار خب، ممنونم
</v-btn>
</v-card-actions>
</v-card>
</v-dialog>
</template>
<script>
export default {};
</script>

@ -1,4 +1,3 @@
/* -------------------------------------------------------- /* --------------------------------------------------------
Inputs :: Begin Inputs :: Begin
-------------------------------------------------------- */ -------------------------------------------------------- */
@ -13,33 +12,59 @@
border: none; border: none;
} }
.WM-TextArea:focus, .WM-Input:focus { .WM-TextArea:focus,
.WM-Input:focus {
border-color: transparent !important; border-color: transparent !important;
} }
.WM-Input:focus::-webkit-input-placeholder { .WM-Input:focus::-webkit-input-placeholder {
color:transparent; color: transparent;
}
.WM-Input:focus::-webkit-input-placeholder {
color: transparent;
}
.WM-Input:focus:-moz-placeholder {
color: transparent;
}
.WM-Input:focus::-moz-placeholder {
color: transparent;
}
.WM-Input:focus:-ms-input-placeholder {
color: transparent;
} }
.WM-Input:focus::-webkit-input-placeholder { color:transparent; } .WM-TextArea:focus::-webkit-input-placeholder {
.WM-Input:focus:-moz-placeholder { color:transparent; } color: transparent;
.WM-Input:focus::-moz-placeholder { color:transparent; } }
.WM-Input:focus:-ms-input-placeholder { color:transparent; }
.WM-TextArea:focus::-webkit-input-placeholder { color:transparent; } .WM-TextArea:focus:-moz-placeholder {
.WM-TextArea:focus:-moz-placeholder { color:transparent; } color: transparent;
.WM-TextArea:focus::-moz-placeholder { color:transparent; } }
.WM-TextArea:focus:-ms-input-placeholder { color:transparent; }
.WM-TextArea:focus::-moz-placeholder {
color: transparent;
}
.WM-TextArea:focus:-ms-input-placeholder {
color: transparent;
}
.WM-Input::-webkit-input-placeholder { .WM-Input::-webkit-input-placeholder {
color: #555555; color: #555555;
} }
.WM-Input:-moz-placeholder { .WM-Input:-moz-placeholder {
color: #555555; color: #555555;
} }
.WM-Input::-moz-placeholder { .WM-Input::-moz-placeholder {
color: #555555; color: #555555;
} }
.WM-Input:-ms-input-placeholder { .WM-Input:-ms-input-placeholder {
color: #555555; color: #555555;
} }
@ -47,12 +72,15 @@
.WM-TextArea::-webkit-input-placeholder { .WM-TextArea::-webkit-input-placeholder {
color: #555555; color: #555555;
} }
.WM-TextArea:-moz-placeholder { .WM-TextArea:-moz-placeholder {
color: #555555; color: #555555;
} }
.WM-TextArea::-moz-placeholder { .WM-TextArea::-moz-placeholder {
color: #555555; color: #555555;
} }
.WM-TextArea:-ms-input-placeholder { .WM-TextArea:-ms-input-placeholder {
color: #555555; color: #555555;
} }
@ -99,19 +127,17 @@
left: 0; left: 0;
width: 0; width: 0;
height: 2px; height: 2px;
-webkit-transition: all 0.4s; -webkit-transition: all 0.4s;
-o-transition: all 0.4s; -o-transition: all 0.4s;
-moz-transition: all 0.4s; -moz-transition: all 0.4s;
transition: all 0.4s; transition: all 0.4s;
background: #ff4b5a; background: #ff4b5a;
} }
.WM-Input.WM-Input100 { .WM-Input.WM-Input100 {
height: 40px; height: 40px;
} }
.WM-InputWrapper input:disabled { .WM-InputWrapper input:disabled {
cursor: not-allowed; cursor: not-allowed;
} }
@ -122,19 +148,15 @@
padding-bottom: 13px; padding-bottom: 13px;
} }
.WM-Input100:focus+.WM-Input100-Focus::before {
.WM-Input100:focus + .WM-Input100-Focus::before {
width: 100%; width: 100%;
} }
.WM-Select { .WM-Select {
background-color: transparent !important; background-color: transparent !important;
-webkit-appearance: none; -webkit-appearance: none;
} }
.WM-Checkbox { .WM-Checkbox {
position: relative; position: relative;
/* handling click events */ /* handling click events */
@ -160,7 +182,7 @@
padding-right: 30px; padding-right: 30px;
} }
.WM-Checkbox label > span { .WM-Checkbox label>span {
display: block; display: block;
position: absolute; position: absolute;
right: 0; right: 0;
@ -169,7 +191,7 @@
transition-duration: 0.3s; transition-duration: 0.3s;
} }
.WM-Checkbox label > span.inc { .WM-Checkbox label>span.inc {
background: #fff; background: #fff;
right: -10px; right: -10px;
top: -10px; top: -10px;
@ -181,7 +203,7 @@
-webkit-border-radius: 50% !important; -webkit-border-radius: 50% !important;
} }
.WM-Checkbox label > .box { .WM-Checkbox label>.box {
top: 1px; top: 1px;
border: 2px solid #d0d7de; border: 2px solid #d0d7de;
height: 20px; height: 20px;
@ -192,11 +214,11 @@
transition-delay: 0.2s; transition-delay: 0.2s;
} }
.ie .WM-Checkbox label > .box { .ie .WM-Checkbox label>.box {
top: 2px; top: 2px;
} }
.WM-Checkbox label > .check { .WM-Checkbox label>.check {
top: 2px; top: 2px;
left: 6px; left: 6px;
width: 20px; width: 20px;
@ -214,42 +236,42 @@
transition-delay: 0.3s; transition-delay: 0.3s;
} }
.WM-Checkbox label > span.inc { .WM-Checkbox label>span.inc {
-webkit-animation: growCircle 0.3s ease; -webkit-animation: growCircle 0.3s ease;
-moz-animation: growCircle 0.3s ease; -moz-animation: growCircle 0.3s ease;
animation: growCircle 0.3s ease; animation: growCircle 0.3s ease;
} }
.WM-Checkbox input[type=checkbox]:checked ~ label > .box { .WM-Checkbox input[type=checkbox]:checked~label>.box {
opacity: 0; opacity: 0;
-webkit-transform: scale(0) rotate(180deg); -webkit-transform: scale(0) rotate(180deg);
-moz-transform: scale(0) rotate(180deg); -moz-transform: scale(0) rotate(180deg);
transform: scale(0) rotate(180deg); transform: scale(0) rotate(180deg);
} }
.WM-Checkbox input[type=checkbox]:checked ~ label > .check { .WM-Checkbox input[type=checkbox]:checked~label>.check {
opacity: 1; opacity: 1;
-webkit-transform: scale(1) rotate(-45deg); -webkit-transform: scale(1) rotate(-45deg);
-moz-transform: scale(1) rotate(-45deg); -moz-transform: scale(1) rotate(-45deg);
transform: scale(1) rotate(-45deg); transform: scale(1) rotate(-45deg);
} }
.WM-Checkbox input[type=checkbox]:disabled ~ label, .WM-Checkbox input[type=checkbox]:disabled~label,
.WM-Checkbox input[type=checkbox][disabled] ~ label { .WM-Checkbox input[type=checkbox][disabled]~label {
cursor: not-allowed; cursor: not-allowed;
opacity: 0.7; opacity: 0.7;
filter: alpha(opacity=70); filter: alpha(opacity=70);
} }
.WM-Checkbox input[type=checkbox]:disabled ~ label > .box, .WM-Checkbox input[type=checkbox]:disabled~label>.box,
.WM-Checkbox input[type=checkbox][disabled] ~ label > .box { .WM-Checkbox input[type=checkbox][disabled]~label>.box {
cursor: not-allowed; cursor: not-allowed;
opacity: 0.7; opacity: 0.7;
filter: alpha(opacity=70); filter: alpha(opacity=70);
} }
.WM-Checkbox input[type=checkbox]:disabled:checked ~ label > .check, .WM-Checkbox input[type=checkbox]:disabled:checked~label>.check,
.WM-Checkbox input[type=checkbox][disabled]:checked ~ label > .check { .WM-Checkbox input[type=checkbox][disabled]:checked~label>.check {
cursor: not-allowed; cursor: not-allowed;
opacity: 0.7; opacity: 0.7;
filter: alpha(opacity=70); filter: alpha(opacity=70);
@ -259,11 +281,11 @@
color: #e7505a; color: #e7505a;
} }
.WM-Checkbox.has-error label > .box { .WM-Checkbox.has-error label>.box {
border-color: #e7505a; border-color: #e7505a;
} }
.WM-Checkbox.has-error label > .check { .WM-Checkbox.has-error label>.check {
border-color: #e7505a; border-color: #e7505a;
} }
@ -271,11 +293,11 @@
color: #4eabe6; color: #4eabe6;
} }
.WM-Checkbox.has-info label > .box { .WM-Checkbox.has-info label>.box {
border-color: #4eabe6; border-color: #4eabe6;
} }
.WM-Checkbox.has-info label > .check { .WM-Checkbox.has-info label>.check {
border-color: #4eabe6; border-color: #4eabe6;
} }
@ -283,11 +305,11 @@
color: #5dc09c; color: #5dc09c;
} }
.WM-Checkbox.has-success label > .box { .WM-Checkbox.has-success label>.box {
border-color: #5dc09c; border-color: #5dc09c;
} }
.WM-Checkbox.has-success label > .check { .WM-Checkbox.has-success label>.check {
border-color: #5dc09c; border-color: #5dc09c;
} }
@ -295,27 +317,27 @@
color: #c8d046; color: #c8d046;
} }
.WM-Checkbox.has-warning label > .box { .WM-Checkbox.has-warning label>.box {
border-color: #c8d046; border-color: #c8d046;
} }
.WM-Checkbox.has-warning label > .check { .WM-Checkbox.has-warning label>.check {
border-color: #c8d046; border-color: #c8d046;
} }
.c-form-checkboxes.has-error > label { .c-form-checkboxes.has-error>label {
color: #e7505a; color: #e7505a;
} }
.c-form-checkboxes.has-info > label { .c-form-checkboxes.has-info>label {
color: #4eabe6; color: #4eabe6;
} }
.c-form-checkboxes.has-success > label { .c-form-checkboxes.has-success>label {
color: #5dc09c; color: #5dc09c;
} }
.c-form-checkboxes.has-warning > label { .c-form-checkboxes.has-warning>label {
color: #c8d046; color: #c8d046;
} }
@ -349,7 +371,6 @@
margin-left: 0; margin-left: 0;
} }
/* bubble animation */ /* bubble animation */
@-webkit-keyframes growCircle { @-webkit-keyframes growCircle {
@ -410,12 +431,10 @@
font-size: 16px; font-size: 16px;
color: #fff; color: #fff;
line-height: 1.2; line-height: 1.2;
-webkit-transition: all 0.4s; -webkit-transition: all 0.4s;
-o-transition: all 0.4s; -o-transition: all 0.4s;
-moz-transition: all 0.4s; -moz-transition: all 0.4s;
transition: all 0.4s; transition: all 0.4s;
} }
.WM-Btn-Red { .WM-Btn-Red {
@ -436,7 +455,6 @@
-ms-box-shadow: 0 10px 30px 0px rgba(255, 75, 90, 0.5); -ms-box-shadow: 0 10px 30px 0px rgba(255, 75, 90, 0.5);
} }
.WM-Btn-Purple { .WM-Btn-Purple {
background-color: $Cyan; background-color: $Cyan;
box-shadow: 0 10px 30px 0px rgba(250, 197, 210, 0.5); box-shadow: 0 10px 30px 0px rgba(250, 197, 210, 0.5);
@ -466,7 +484,6 @@
-ms-box-shadow: 0 10px 30px 0px rgba(172, 55, 115, 0.5); -ms-box-shadow: 0 10px 30px 0px rgba(172, 55, 115, 0.5);
} }
.WM-Btn-Black { .WM-Btn-Black {
background-color: $Black; background-color: $Black;
box-shadow: 0 10px 30px 0px rgba(0, 0, 0, 0.5); box-shadow: 0 10px 30px 0px rgba(0, 0, 0, 0.5);
@ -485,6 +502,7 @@
-o-box-shadow: 0 10px 30px 0px rgba(255, 255, 255, 0.2); -o-box-shadow: 0 10px 30px 0px rgba(255, 255, 255, 0.2);
-ms-box-shadow: 0 10px 30px 0px rgba(255, 255, 255, 0.2); -ms-box-shadow: 0 10px 30px 0px rgba(255, 255, 255, 0.2);
} }
.WM-Btn-Green { .WM-Btn-Green {
background-color: $Green; background-color: $Green;
box-shadow: 0 10px 30px 0px rgba(13, 126, 0, 0.35); box-shadow: 0 10px 30px 0px rgba(13, 126, 0, 0.35);
@ -493,6 +511,7 @@
-o-box-shadow: 0 10px 30px 0px rgba(13, 126, 0, 0.35); -o-box-shadow: 0 10px 30px 0px rgba(13, 126, 0, 0.35);
-ms-box-shadow: 0 10px 30px 0px rgba(13, 126, 0, 0.35); -ms-box-shadow: 0 10px 30px 0px rgba(13, 126, 0, 0.35);
} }
.WM-Btn-Cyan { .WM-Btn-Cyan {
background-color: $Cyan; background-color: $Cyan;
box-shadow: 0 10px 30px 0px rgba(50, 197, 210, 0.32); box-shadow: 0 10px 30px 0px rgba(50, 197, 210, 0.32);
@ -502,9 +521,6 @@
-ms-box-shadow: 0 10px 30px 0px rgba(50, 197, 210, 0.32); -ms-box-shadow: 0 10px 30px 0px rgba(50, 197, 210, 0.32);
} }
.WM-Btn i { .WM-Btn i {
margin-left: 5px; margin-left: 5px;
-webkit-transition: all 0.4s; -webkit-transition: all 0.4s;
@ -523,6 +539,7 @@
-o-box-shadow: 0 10px 30px 0px rgba(51, 51, 51, 0.5); -o-box-shadow: 0 10px 30px 0px rgba(51, 51, 51, 0.5);
-ms-box-shadow: 0 10px 30px 0px rgba(51, 51, 51, 0.5); -ms-box-shadow: 0 10px 30px 0px rgba(51, 51, 51, 0.5);
} }
.WM-Btn-RedHover:hover { .WM-Btn-RedHover:hover {
background-color: $Red; background-color: $Red;
cursor: pointer; cursor: pointer;
@ -538,24 +555,29 @@
min-width: 50px; min-width: 50px;
padding: 0 10px; padding: 0 10px;
} }
.WM-Btn-SM i { .WM-Btn-SM i {
margin-left: 0px; margin-left: 0px;
} }
button, html [type="button"], [type="reset"], [type="submit"] { button,
html [type="button"],
[type="reset"],
[type="submit"] {
-webkit-appearance: none; -webkit-appearance: none;
} }
/* -------------------------------------------------------- /* --------------------------------------------------------
Links :: Begin Links :: Begin
-------------------------------------------------------- */ -------------------------------------------------------- */
.WM-Link { .WM-Link {
display: inline-block; display: inline-block;
color: #000; color: #000;
direction: rtl; direction: rtl;
text-decoration: none; text-decoration: none;
} }
.WM-Link::after { .WM-Link::after {
content: ''; content: '';
display: block; display: block;
@ -565,6 +587,20 @@ button, html [type="button"], [type="reset"], [type="submit"] {
transition: width .3s; transition: width .3s;
margin-top: 2px; margin-top: 2px;
} }
.WM-Link:hover::after, .WM-Link.WM-Selected::after, .WM-Link.WM-Active::after {
.WM-Link:hover::after,
.WM-Link.WM-Selected::after,
.WM-Link.WM-Active::after {
width: 100%; width: 100%;
} }
// -----------------------Modify--------------------------
.v-btn--floating {
height: 50px;
width: 50px;
}
.v-btn--floating .v-icon {
font-size: 18px;
}

@ -1,28 +1,31 @@
/* -------------------------------------------------------- /* --------------------------------------------------------
Borders :: Begin Borders :: Begin
-------------------------------------------------------- */ -------------------------------------------------------- */
.WM-Border { .WM-Border {
border: 1px solid; border: 1px solid;
} }
.WM-Border-2x { .WM-Border-2x {
border: 2px solid; border: 2px solid;
} }
.WM-Border-R { .WM-Border-R {
border-right: 1px solid; border-right: 1px solid;
} }
.WM-Border-L { .WM-Border-L {
border-left: 1px solid; border-left: 1px solid;
} }
.WM-Border-T { .WM-Border-T {
border-top: 1px solid; border-top: 1px solid;
} }
.WM-Border-B { .WM-Border-B {
border-bottom: 1px solid; border-bottom: 1px solid;
} }
/* -------------------------------------------------------- /* --------------------------------------------------------
SectionTitle :: Begin SectionTitle :: Begin
-------------------------------------------------------- */ -------------------------------------------------------- */
@ -30,6 +33,7 @@
.SectionTitle .TitleFa { .SectionTitle .TitleFa {
font-size: 1.7rem; font-size: 1.7rem;
} }
.SectionTitle .TitleEn { .SectionTitle .TitleEn {
span { span {
color: $White; color: $White;
@ -40,7 +44,6 @@
.Line { .Line {
flex-grow: 1; flex-grow: 1;
position: relative; position: relative;
.inner { .inner {
position: absolute; position: absolute;
top: 50%; top: 50%;
@ -51,7 +54,6 @@
} }
} }
/* -------------------------------------------------------- /* --------------------------------------------------------
Labels :: Begin Labels :: Begin
-------------------------------------------------------- */ -------------------------------------------------------- */
@ -63,10 +65,11 @@
border-radius: 5px; border-radius: 5px;
margin: 3px 0px 10px 0px; margin: 3px 0px 10px 0px;
} }
.WM-SubText.SmallPad { .WM-SubText.SmallPad {
padding: 3px 15px 0px 15px; padding: 3px 15px 0px 15px;
} }
.WM-Notification { .WM-Notification {
display: inline-block; display: inline-block;
text-align: center; text-align: center;
@ -77,10 +80,10 @@
border-radius: 13px; border-radius: 13px;
} }
/* -------------------------------------------------------- /* --------------------------------------------------------
Navigation :: Begin Navigation :: Begin
-------------------------------------------------------- */ -------------------------------------------------------- */
.WM-NavWrapper { .WM-NavWrapper {
z-index: 1000; z-index: 1000;
box-shadow: 0 19px 38px rgba(0, 0, 0, 0.3), 0 15px 12px rgba(0, 0, 0, 0.22); box-shadow: 0 19px 38px rgba(0, 0, 0, 0.3), 0 15px 12px rgba(0, 0, 0, 0.22);
@ -89,21 +92,18 @@
margin: 0 1em; margin: 0 1em;
position: fixed; position: fixed;
top: 1em; top: 1em;
.WM-Nav { .WM-Nav {
padding: 0.8em 1em; padding: 0.8em 1em;
list-style: none; list-style: none;
margin-bottom: 0; margin-bottom: 0;
} }
} }
.WM-PageNav { .WM-PageNav {
border-left: 1px solid #c7c8c9; border-left: 1px solid #c7c8c9;
padding: 3px 25px; padding: 3px 25px;
} }
.modal-mask { .modal-mask {
position: fixed; position: fixed;
z-index: 9998; z-index: 9998;
@ -120,3 +120,15 @@
display: table-cell; display: table-cell;
vertical-align: middle; vertical-align: middle;
} }
/* --------------------------------------------------------
Blocks :: Begin
-------------------------------------------------------- */
// ----------------------info Block----------------------
.WM-Info .v-icon {
margin-left: 5px;
line-height: 22px;
font-size: 14px;
color: $Gray;
}

@ -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;
}

@ -47,6 +47,9 @@
/* -------------------------------------------------------- /* --------------------------------------------------------
Margins :: Begin Margins :: Begin
-------------------------------------------------------- */ -------------------------------------------------------- */
.WM-Margin-0 {
margin: 0px;
}
.WM-Margin-T-10 { .WM-Margin-T-10 {
margin-top: 10px; margin-top: 10px;
} }

@ -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);

@ -44,6 +44,10 @@ a:hover {
font-family: 'Raleway', sans-serif; font-family: 'Raleway', sans-serif;
} }
.En {
font-family: 'Montserrat-Regular', sans-serif;
}
.RTL { .RTL {
direction: rtl; direction: rtl;
} }

@ -1,6 +1,7 @@
<template> <template>
<div class="wrapper" > <div class="wrapper" >
<div v-scroll-reveal="{ delay: 0, duration: 1000 }"><PartTitle TitleFa=" دسترسی سریع " TitleEn=" Quick Links " Color="grey lighten-2" TextColor="black--text"></PartTitle></div> <div v-scroll-reveal="{ delay: 0, duration: 1000 }">
<WM-PartTitle TitleFa=" دسترسی سریع " TitleEn=" Quick Links " Color="grey lighten-2" TextColor="black--text"></WM-PartTitle></div>
<div class="row row-eq-height mt-4 mb-4" v-scroll-reveal="{ delay: 300, duration: 1000 }"> <div class="row row-eq-height mt-4 mb-4" v-scroll-reveal="{ delay: 300, duration: 1000 }">
<div class="col-sm-2"> <div class="col-sm-2">
<QuickLink Counter="65" TitleFa=" محصولات و خدمات " TitleEn=" My Products Services " ThemeColor="Red"></QuickLink> <QuickLink Counter="65" TitleFa=" محصولات و خدمات " TitleEn=" My Products Services " ThemeColor="Red"></QuickLink>
@ -13,7 +14,7 @@
</div> </div>
</div> </div>
<div class="WM-Margin-T-55" v-scroll-reveal="{ delay: 600, duration: 1000 }"> <div class="WM-Margin-T-55" v-scroll-reveal="{ delay: 600, duration: 1000 }">
<PartTitle TitleFa=" خلاصه ای از آمار " TitleEn=" Summery of Statistics " Color="grey lighten-2" TextColor="black--text"></PartTitle> <WM-PartTitle TitleFa=" خلاصه ای از آمار " TitleEn=" Summery of Statistics " Color="grey lighten-2" TextColor="black--text"></WM-PartTitle>
</div> </div>
<div class="row" v-scroll-reveal="{ delay: 900, duration: 1000 }"> <div class="row" v-scroll-reveal="{ delay: 900, duration: 1000 }">

@ -15,10 +15,10 @@
</template> </template>
<script> <script>
import Nav from "./components/Body/Header/Nav.vue"; import Nav from "@Global/components/Body/Header/Nav.vue";
import Loading from "./components/Misc/Loading.vue"; import Loading from "@Global/components/Misc/Loading.vue";
import HeaderBG from "./components/Body/Header/HeaderBG.vue"; import HeaderBG from "@Global/components/Body/Header/HeaderBG.vue";
import Footer from "./components/Body/Footer.vue"; import Footer from "@Global/components/Body/Footer.vue";
export default { export default {
data: () => { data: () => {

@ -1,3 +1,4 @@
import Vue from 'vue' import Vue from 'vue'
import App from './App.vue' import App from './App.vue'
import router from './router' import router from './router'
@ -10,24 +11,21 @@ import 'bootstrap-v4-rtl'
import 'bootstrap-v4-rtl/scss/bootstrap-rtl.scss' import 'bootstrap-v4-rtl/scss/bootstrap-rtl.scss'
import 'bootstrap-select' import 'bootstrap-select'
import 'bootstrap-select/dist/css/bootstrap-select.css' import 'bootstrap-select/dist/css/bootstrap-select.css'
// import 'material-design-icons-iconfont/dist/material-design-icons.css'
// import '@mdi/font/css/materialdesignicons.css'
// import 'font-awesome/css/font-awesome.min.css'
import 'vuetify/dist/vuetify.min.css' // Ensure you are using css-loader import 'vuetify/dist/vuetify.min.css' // Ensure you are using css-loader
import './assets/Font-Icons/css/fontello.css' import '@Global/assets/Font-Icons/css/fontello.css'
import "./scss/style.scss"; import "@Global/scss/style.scss";
// components // components
import PartTitle from "./components/Dividers/PartTitle.vue"; import PartTitle from "@Global/components/Dividers/PartTitle.vue";
import PageTitle from "./components/Dividers/PageTitle.vue"; import PageTitle from "@Global/components/Dividers/PageTitle.vue";
import Checkbox from "./components/Inputs/Checkbox.vue"; import Checkbox from "@Global/components/Inputs/Checkbox.vue";
import ButtonShodowed from "./components/Inputs/ButtonShodowed.vue"; import InfoBlock from "@Global/components/Misc/InfoBlock.vue";
Vue.component('PartTitle', PartTitle) Vue.component('WM-PartTitle', PartTitle)
Vue.component('PageTitle', PageTitle) Vue.component('WM-PageTitle', PageTitle)
Vue.component('Checkbox', Checkbox) Vue.component('WM-Checkbox', Checkbox)
Vue.component('ButtonShodowed', ButtonShodowed) Vue.component('WM-InfoBlock', InfoBlock)
/** /**
* First we will load all of this project's JavaScript dependencies which * First we will load all of this project's JavaScript dependencies which

@ -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,70 @@
<template>
<v-data-table :headers="headers" :items="OrderItems" class="WM-Align-R WM-Margin-RL-15">
<template slot="items" slot-scope="props">
<td style="width:5%"> </td>
<td style="width:10%" class="En">{{ props.item.ID }}</td>
<td style="width:5%" class="">{{ props.item.UserName }}</td>
<td style="width:10%" class="">
<v-chip color="orange darken-2" text-color="white"> {{ props.item.Quantity }} </v-chip> آیتم
</td>
<td style="width:10%"><span class="WM-Font-24"> {{ props.item.Value }} </span> تومان</td>
<td style="width:10%" class="" v-html="props.item.UpdatedAt"></td>
<td style="width:50%" class="">
<v-tooltip top color="black">
<v-btn @click.native="$store.state.OrderDetails = true" slot="activator" fab color="cyan" dark><v-icon dark>fas fa-align-right</v-icon></v-btn>
<span> جزئیات سفارش </span>
</v-tooltip>
<v-tooltip top color="black">
<v-btn @click.native="$store.state.OrderStatus = true" slot="activator" fab color="black" dark><v-icon dark>fas fa-exchange-alt</v-icon></v-btn>
<span> تغییر وضعیت سفارش </span>
</v-tooltip>
<v-tooltip top color="black">
<v-btn slot="activator" fab color="black" dark><v-icon dark>fas fa-angle-left</v-icon></v-btn>
<span> تغییر وضعیت سفارش به وضعیت بعدی </span>
</v-tooltip>
<v-tooltip top color="black">
<v-btn @click.native="$store.state.SendEmail = true" slot="activator" fab color="purple" dark><v-icon dark>fas fa-envelope</v-icon></v-btn>
<span> ارسال ایمیل </span>
</v-tooltip>
<v-tooltip top color="black">
<v-btn @click.native="$store.state.SendSMS = true" slot="activator" fab color="orange" dark><v-icon dark>fas fa-comment-alt</v-icon></v-btn>
<span> ارسال پیام کوتاه </span>
</v-tooltip>
<v-tooltip top color="black">
<v-btn slot="activator" fab color="red" dark><v-icon dark>fas fa-trash-alt</v-icon></v-btn>
<span> حذف سفارش </span>
</v-tooltip>
</td>
</template>
<template slot="pageText" slot-scope="props">
صفحه ی {{ props.pageStart }} - {{ props.pageStop }} از {{ props.itemsLength }}
</template>
</v-data-table>
</template>
<script>
export default {
data () {
return {
headers: [
{ text: '#', align:'right', sortable: false, value: 'name'},
{ text: ' شناسه ی سفارش ', align:'right', value: 'calories' },
{ text: ' سفارش دهنده ', align:'right', value: 'fat' },
{ text: ' تعداد آیتم ها ', align:'right', value: 'carbs' },
{ text: ' مبلغ سفارش ', align:'right', value: 'protein' },
{ text: ' تاریخ ثبت ', align:'right', value: 'protein' },
{ text: ' ابزارها ', align:'right', sortable: false, value: 'iron' }
],
OrderItems: [
{ ID: 'WM457', UserName: ' علیرضا حسنی ', Quantity: 12, Value: 350000, UpdatedAt:' سه شنبه، 27 آذر <br> 22:33', Status: 'inProgress'},
],
Status: {
'inProgress': { TitleFa: ' در حال آماده سازی ', Color:''},
'ReadyToDeliver': { TitleFa: ' آماده ی تحویل ', Color:''},
}
}
},
};
</script>

@ -0,0 +1,33 @@
<template>
<v-dialog v-model="$store.state.OrderDetails" width="90%" transition="slide-x-transition">
<v-card class="RTL">
<v-card-title class=" grey lighten-3" primary-title>
<WM-PartTitle class="WM-Margin-T-20" TitleFa=" اطلاعات سفارش دهنده " TitleEn=" Orderer's Info " Color="cyan"></WM-PartTitle>
</v-card-title>
<v-card-text>
<v-layout class="container-fluid" row wrap text-md-right>
<WM-InfoBlock Title=" نام و نام خانوادگی " Value=" علیرضا حسنی " Icon="user"></WM-InfoBlock>
<WM-InfoBlock Title=" شماره ی همراه " Value=" 09127004945 " Icon="phone"></WM-InfoBlock>
<WM-InfoBlock Title=" آدرس آیمیل " Value=" Alireza-Hassani@outlook.com " Icon="envelope"></WM-InfoBlock>
<WM-InfoBlock Title=" تاریخ ثبت سفارش " Value=" سه شنبه، 27 آذر در 22:31 " Icon="calendar-alt"></WM-InfoBlock>
<WM-InfoBlock Title=" شهر " Value=" قم " Icon="map-marker-alt"></WM-InfoBlock>
<WM-InfoBlock Size="xs12 sm12 md8" Title=" آدرس ارسال " Value=" قم، 45 متری صدوقی، کوچه ی 47 پلاک 2، واحد 2 - ویلامال " Icon="map-marked-alt"></WM-InfoBlock>
</v-layout>
</v-card-text>
<v-divider></v-divider>
<v-card-actions>
<v-spacer></v-spacer>
<v-btn color="cyan" depressed dark @click="$store.state.OrderDetails = false">
<v-icon dark right>fas fa-check</v-icon> بسیار خب، ممنونم
</v-btn>
</v-card-actions>
</v-card>
</v-dialog>
</template>
<script>
export default {};
</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;

@ -5,8 +5,10 @@ Vue.use(Vuex)
export default new Vuex.Store({ export default new Vuex.Store({
state: { state: {
UserDetail: false, UserDetails: false,
UserRoles: false, UserRoles: false,
OrderDetails: false,
OrderStatus: false,
SendEmail: false, SendEmail: false,
SendSMS: false SendSMS: false
} }

@ -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;

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save