Merge pull request 'merge dev to master' (#25) from dev into master

Reviewed-on: WillaEngine-Project/WillaEngine#25
BE.fix-database
f.saravi 4 years ago
commit 1c1588871f

8077
composer.lock generated

File diff suppressed because it is too large Load Diff

@ -45,7 +45,7 @@ return [
'local' => [ 'local' => [
'driver' => 'local', 'driver' => 'local',
'root' => storage_path('app'), 'root' => base_path('/'),
], ],
'public' => [ 'public' => [

@ -129,7 +129,7 @@ return [
* The engine that should perform the image conversions. * The engine that should perform the image conversions.
* Should be either `gd` or `imagick`. * Should be either `gd` or `imagick`.
*/ */
'image_driver' => 'imagick', 'image_driver' => env( 'IMAGE_DRIVER','imagick'),
/* /*
* FFMPEG & FFProbe binaries paths, only used if you try to generate video * FFMPEG & FFProbe binaries paths, only used if you try to generate video

@ -1,7 +1,9 @@
<template> <template>
<div class="info-block" :class='direction'> <div class="info-block" :class='direction'>
<div class="Label"><v-icon v-if="icon">WMi-{{icon}}</v-icon> {{ label }} </div> <div class="Label"><v-icon v-if="icon">WMi-{{icon}}</v-icon> {{ label }} </div>
<div class="Value" :class='valueClass' v-html="value"></div> <div v-if="value" class="Value" :class='valueClass' v-html="value"></div>
<div v-if="secondValue" class="second-value" v-html="secondValue"></div>
<a v-if="link" :href="link" class="link WM-Link">دانلود فایل </a>
</div> </div>
</template> </template>
@ -10,7 +12,9 @@ export default {
props: { props: {
icon: String, icon: String,
label: { default: " عنوان " }, label: { default: " عنوان " },
value: { default: "" }, value: String,
secondValue: String,
link: String,
direction: { default: '' }, direction: { default: '' },
valueClass: { default: '' }, valueClass: { default: '' },
}, },
@ -19,8 +23,7 @@ export default {
<style lang="scss" scoped> <style lang="scss" scoped>
.info-block { .info-block {
text-align: right; text-align: right;
padding: 5px 10px 10px 10px; padding: 3px 10px 3px 10px;
margin: 0px 2px 10px;
border-right: 1px solid #dcdcdc; border-right: 1px solid #dcdcdc;
} }
.info-block.LTR { .info-block.LTR {
@ -31,14 +34,23 @@ export default {
border-left: 1px solid #dcdcdc; border-left: 1px solid #dcdcdc;
} }
.info-block .Label { .info-block .Label {
opacity: 0.7;
color: #797979; color: #797979;
font-size: 12px; font-size: 12px;
margin-bottom: 4px;
} }
.info-block:not(.LTR) .Value { .info-block:not(.LTR) .Value {
color: #000; color: #000;
font-size: 16px; font-size: 16px;
font-family: 'iranyekan-regular'; font-family: 'iranyekan-regular';
margin-right: 3px;
}
.info-block:not(.LTR) .second-value {
opacity: 0.7;
color: #797979;
font-size: 12px;
line-height: 14px;
font-family: 'Montserrat-Regular';
margin-right: 3px;
} }
.info-block .v-icon { .info-block .v-icon {
margin-top: -5px; margin-top: -5px;

@ -1,7 +1,8 @@
<template> <template>
<div :class="`name-block ${theme} `"> <div :class="`name-block ${theme} `">
<div v-if="number!=''" class="number En Bold"> {{ number }} </div> <div v-if="number!=''" class="number En Bold"> {{ number }} </div>
<div v-if="colorBox" :class="`color-box ${colorBox}`"></div> <v-icon v-if="icon" :class="`icon-box`">WMi-{{icon}}</v-icon>
<div v-else-if="colorBox" :class="`color-box ${colorBox}`"></div>
<div class="text"> <div class="text">
<div v-if="top_label" class="top-label Fa Thin" v-html="top_label"></div> <div v-if="top_label" class="top-label Fa Thin" v-html="top_label"></div>
<div class="Fa title-fa"> {{ name_fa }} </div> <div class="Fa title-fa"> {{ name_fa }} </div>
@ -33,6 +34,7 @@
label: String, label: String,
labelIcon: String, labelIcon: String,
colorBox: String, colorBox: String,
icon: String,
}, },
}; };
</script> </script>
@ -133,6 +135,29 @@
font-size: 36px; font-size: 36px;
} }
/*----------------------------------------------------*/
/* Size XS */
/*----------------------------------------------------*/
.name-block.xs {
text-align:right;
padding: 0px 2px;
}
.name-block.xs .title-fa {
font-size: 14px;
line-height: 24px;
}
.name-block.xs .title-en {
font-size: 8px;
line-height: 16px;
letter-spacing: 1px;
text-transform: uppercase;
margin-right: -2px;
}
.name-block.xs .En.number {
font-size: 30px;
}
/*----------------------------------------------------*/ /*----------------------------------------------------*/
/* Size xl */ /* Size xl */
/*----------------------------------------------------*/ /*----------------------------------------------------*/
@ -192,6 +217,11 @@
margin: 0px 0px 5px 15px; margin: 0px 0px 5px 15px;
border-radius: 3px; border-radius: 3px;
} }
.icon-box {
font-size: 30px;
margin-top: 3px;
margin-left: 10px;
}
/*----------------------------------------------------*/ /*----------------------------------------------------*/
/* Colors */ /* Colors */
@ -202,6 +232,9 @@
.name-block.theme-#{$color} { .name-block.theme-#{$color} {
color: $value; color: $value;
} }
.name-block.icon-#{$color} .icon-box {
color: $value;
}
} }

@ -1,5 +1,5 @@
<template> <template>
<div :class="`we-price ${theme}`"> <div :class="`we-price ${theme} ${(price == 0) ? 'zero-label' : ''}`">
<div v-if="original_price && original_price != 0" class="discount"> <div v-if="original_price && original_price != 0" class="discount">
<div class="number-original En Bold" > {{ Intl.NumberFormat().format(Number(original_price)) }} </div> <div class="number-original En Bold" > {{ Intl.NumberFormat().format(Number(original_price)) }} </div>
<div class="percent En Bold"> 12 <v-icon color="white"> WMi-percentage</v-icon> </div> <div class="percent En Bold"> 12 <v-icon color="white"> WMi-percentage</v-icon> </div>
@ -12,7 +12,7 @@
<v-icon v-if="append_icon" class="append-icon">WMi-{{ append_icon }} </v-icon> <v-icon v-if="append_icon" class="append-icon">WMi-{{ append_icon }} </v-icon>
</div> </div>
<!----------------------------Main Value-------------------------> <!----------------------------Main Value------------------------->
<div v-else class="number Fa Bold"> {{ zeroLabel }} </div> <div v-else class="text--24 Fa Bold"> {{ zeroLabel }} </div>
<div class="label Fa" v-html="label"></div> <div class="label Fa" v-html="label"></div>
</div> </div>
</template> </template>
@ -54,6 +54,9 @@
margin-left: -10px; margin-left: -10px;
font-size: 18px; font-size: 18px;
} }
.we-price.icon-mr-5 .prepend-icon {
margin-right: 5px;
}
.we-price .discount { .we-price .discount {
display: flex; display: flex;
@ -91,6 +94,16 @@
text-align: right; text-align: right;
} }
/*----------------------------------------------------*/
/* Zero Label */
/*----------------------------------------------------*/
.we-price.zero-label .label {
display: none;
}
.we-price.zero-label .number-original {
text-decoration: none;
}
/*----------------------------------------------------*/ /*----------------------------------------------------*/
/* Misc */ /* Misc */
/*----------------------------------------------------*/ /*----------------------------------------------------*/
@ -110,6 +123,15 @@
line-height: 25px; line-height: 25px;
} }
/*----------------------------------------------------*/
/* MD Size */
/*----------------------------------------------------*/
.we-price.md {
transform: scale(0.8, 0.8);
}
/*----------------------------------------------------*/ /*----------------------------------------------------*/
/* SM Size */ /* SM Size */
/*----------------------------------------------------*/ /*----------------------------------------------------*/

@ -52,7 +52,7 @@ export default {
margin-left: 10px; margin-left: 10px;
} }
.section-title.icon-ml-15 .v-icon { .section-title.icon-ml-15 .v-icon {
margin-left: 15px; margin-left: 15px !important;
} }
.section-title .Title .Fa { .section-title .Title .Fa {

@ -140,4 +140,5 @@
height: 100%; height: 100%;
} }
</style> </style>

@ -1,17 +1,20 @@
<template> <template>
<div :class="`quantity-select ${theme}`"> <div >
<div class="controls"> <div v-if="topLabel" class="top-label Fa Thin mr-3 light-gray"> {{ topLabel }} </div>
<div class="add"> <div :class="`quantity-select ${theme}`">
<v-icon color="cyan">WMi-plus</v-icon> <div class="controls">
<div class="add">
<v-icon color="cyan">WMi-plus</v-icon>
</div>
<div class="reduce">
<v-icon color="red">WMi-minus</v-icon>
</div>
</div> </div>
<div class="reduce"> <div class="value En Bold">
<v-icon color="red">WMi-minus</v-icon> <div class="number"> {{ quantity }} </div>
<div class="unit Fa Thin"> {{ label }} </div>
</div> </div>
</div> </div>
<div class="value En Bold">
<div class="number"> {{ quantity }} </div>
<div class="unit Fa Thin"> {{ label }} </div>
</div>
</div> </div>
</template> </template>
@ -19,9 +22,11 @@
<script> <script>
export default { export default {
props: { props: {
theme: { default: '' }, theme: { default: '' },
quantity: { default: '' }, quantity: { default: '' },
label: { default: 'نام فارسی' }, label: { default: 'نام فارسی' },
topLabel: String,
}, },
}; };
</script> </script>
@ -55,6 +60,10 @@
.quantity-select .v-icon:hover { .quantity-select .v-icon:hover {
opacity: 1; opacity: 1;
} }
.top-label {
border-radius: 5px;
margin-bottom: 3px;
}
.quantity-select .controls .add { .quantity-select .controls .add {
display: block; display: block;

@ -3,7 +3,7 @@
<v-col v-for="(item, index) in items" :key="index" :xl="item[itemSize]" class="pt-0" @click="changeSelected($event, item || {})"> <v-col v-for="(item, index) in items" :key="index" :xl="item[itemSize]" class="pt-0" @click="changeSelected($event, item || {})">
<div :class="{'active': isActive(item), [item[itemTheme]]: true, ['theme-' + item[itemColor] ]: true, ['bubble']: true}"> <div :class="{'active': isActive(item), [item[itemTheme]]: true, ['theme-' + item[itemColor] ]: true, ['bubble']: true}">
<div class="body"> <div class="body">
<div :class="`icon ${(item[itemIconClass]) ? item[itemIconClass] : ''}`"> <div v-if="item[itemIcon]" :class="`icon ${(item[itemIconClass]) ? item[itemIconClass] : ''}`">
<v-icon>WMi-{{ item[itemIcon] }}</v-icon> <v-icon>WMi-{{ item[itemIcon] }}</v-icon>
</div> </div>
<div class="text"> <div class="text">
@ -184,12 +184,10 @@
border-radius: 10px; border-radius: 10px;
border: 1px solid; border: 1px solid;
} }
.bubble.fa-only .text {
margin-right: 5px;
}
.bubble.fa-only .v-icon { .bubble.fa-only .v-icon {
font-size: 20px !important; font-size: 20px !important;
line-height: 20px; line-height: 20px;
margin-left: 5px;
} }
.bubble.fa-only .Fa { .bubble.fa-only .Fa {
font-size: 14px !important; font-size: 14px !important;

@ -0,0 +1,31 @@
<template>
<v-row>
<v-col v-for="(row, index) in rows" :key="index" xl="12" :class="` pt-1 pb-0`">
<v-row :class="`end-row ${row.rowClass} theme-${row.color}`">
<v-col xl="3" :class="`flex-justified-right ${row.titleClass || ''} color-${row.color} pr-5`">
{{ row.title }}
</v-col>
<v-col xl="6" class="flex-justified-center">
<number-block v-if="row.quantity" :theme="`label-left ${row.quantityClass || ''} color-${row.color}`" :number="row.quantity" :label="row.quantityLabel" />
</v-col>
<v-col xl="3" md="6" class="flex-justified-left pt-1 pb-1">
<price-block :theme="`label-left ${row.valueClass || ''} color-${row.color}`" zero-label="رایگان" :price="row.value" :label="row.valueLabel" />
</v-col>
</v-row>
</v-col>
</v-row>
</template>
<script>
export default {
components: {},
props: {
rows: { default: ""},
},
data() {
return {};
},
}
</script>
<style lang="scss" scoped>
</style>

@ -30,7 +30,7 @@ export default {
width: 110px; width: 110px;
height: 100%; height: 100%;
position: absolute; position: absolute;
padding: 10px; padding: 5px;
right: 0px; right: 0px;
top: 0px; top: 0px;
border: 1px solid transparent; border: 1px solid transparent;

@ -68,11 +68,15 @@ export default {
<style scoped lang="scss"> <style scoped lang="scss">
.we-icon-tile { .we-icon-tile {
width:100%; width:100%;
padding: 10px; padding: 5px;
transition: 0.5s; transition: 0.5s;
border: 1px solid transparent; border: 1px solid transparent;
position: relative; position: relative;
} }
.we-icon-tile.no-background .static-content {
background: none !important;
}
.we-icon-tile:hover { .we-icon-tile:hover {
border: 1px solid #6d6d6d; border: 1px solid #6d6d6d;
border-radius: 5px; border-radius: 5px;
@ -114,6 +118,9 @@ export default {
.we-icon-tile.icon-60 .Content .v-icon { .we-icon-tile.icon-60 .Content .v-icon {
font-size: 60px; font-size: 60px;
} }
.we-icon-tile.icon-50 .Content .v-icon {
font-size: 50px;
}
.we-icon-tile.icon-ml-10 .Content .v-icon { .we-icon-tile.icon-ml-10 .Content .v-icon {
margin-left: 10px; margin-left: 10px;
margin-right: -10px; margin-right: -10px;
@ -210,13 +217,13 @@ export default {
.we-icon-tile.sm .info .En { .we-icon-tile.sm .info .En {
font-size: 12px; font-size: 10px;
letter-spacing: 10px; letter-spacing: 10px;
margin-right: -10px; margin-right: -10px;
margin-top: -5px; margin-top: -3px;
} }
.we-icon-tile.sm .info .Fa { .we-icon-tile.sm .info .Fa {
font-size: 22px; font-size: 20px;
} }
/*---------------------------------------------------------------*/ /*---------------------------------------------------------------*/

@ -0,0 +1,105 @@
<template>
<div class="order-status">
<div :class="`current-status theme-${steps[currentStep].color}`">
<div class="symbol"> <v-icon> WMi-{{ steps[currentStep].icon }} </v-icon> </div>
<div class="text">
<name-block :theme="`theme-${(steps[currentStep].color)}`" :name_fa="steps[currentStep].name_fa" :name_en="steps[currentStep].name_en" :number="parseInt(currentStep)+1" />
</div>
</div>
<v-stepper class="we-stepper">
<v-stepper-header>
<v-stepper-step v-for="(step, index) in steps" :key="index" :step="index+1" :class="`fade-in fast delay-0${index} theme-${step.color} ${getStepStatus(index,currentStep)}`">
<name-block :theme="`sm`" :name_en="step.name_en" :name_fa="step.name_fa" />
</v-stepper-step>
</v-stepper-header>
</v-stepper>
</div>
</template>
<script>
export default {
name: "steps-timeline",
props: {
currentStep: {default: 1},
steps: {default: ""},
},
methods: {
getStepStatus: function(thisStep, currentStep) {
if(thisStep > currentStep) {
return 'waiting';
} else if(thisStep == currentStep) {
return 'active';
} else if(thisStep < currentStep) {
return 'passed';
}
}
},
}
</script>
<style lang="scss" scoped>
.order-status {
border: 1px solid #eeeeee;
border-radius: 5px;
margin-top: 10px;
}
.current-status {
display: flex;
justify-content: space-around;
align-items: center;
padding: 30px;
}
.current-status .symbol .v-icon {
font-size: 90px;
}
.current-status .text {
display: flex;
justify-content: center;
align-items: center;
}
</style>
<style lang="scss">
.we-stepper .v-stepper__step.passed {
filter: grayscale(100%);
opacity: 0.5 !important;
}
.theme--light.v-stepper .v-stepper__step--active .v-stepper__label {
text-shadow: none;
}
/* --------------------------------------------------------
Steps : Colors
-------------------------------------------------------- */
@import "resources/js/Global/scss/_vars.scss";
@each $color,
$value in $colors {
//-------------------Active State-----------------------------
.v-stepper.we-stepper .v-stepper__step.theme-#{$color}.active .v-stepper__label .title-fa,
.v-stepper.we-stepper .v-stepper__step.theme-#{$color}.active .v-stepper__label .title-en,
.v-stepper.we-stepper .v-stepper__step.theme-#{$color}.active .v-stepper__step__step {
color: #fff;
}
.v-stepper.we-stepper .v-stepper__step.theme-#{$color}.active {
background-color: $value;
}
//-------------------Waiting State-----------------------------
.v-stepper.we-stepper .v-stepper__step.theme-#{$color}.waiting .v-stepper__label .title-fa,
.v-stepper.we-stepper .v-stepper__step.theme-#{$color}.waiting .v-stepper__label .title-en {
color: $value;
}
.v-stepper.we-stepper .v-stepper__step.theme-#{$color}.waiting .v-stepper__step__step {
color: $value
}
//-------------------Current Step-----------------------------
.order-status .current-status.theme-#{$color} {
border: 2px solid $value;
}
.order-status .current-status.theme-#{$color} .symbol .v-icon {
color: $value
}
}
</style>

@ -21,50 +21,6 @@ $Value in $colors {
} }
/* --------------------------------------------------------
Steps : Colors
-------------------------------------------------------- */
@each $color,
$value in $colors {
//-------------------Active State-----------------------------
.v-stepper.we-stepper .v-stepper__step.theme-#{$color}.active .v-stepper__label {
color: #fff;
}
.v-stepper.we-stepper .v-stepper__step.theme-#{$color}.active .v-stepper__step__step {
color: #fff;
}
.v-stepper.we-stepper .v-stepper__step.theme-#{$color}.active {
background-color: $value;
}
//-------------------Passed State-----------------------------
.v-stepper.we-stepper .v-stepper__step.theme-#{$color}.passed .v-stepper__label {
color: $value;
}
.v-stepper.we-stepper .v-stepper__step.theme-#{$color}.passed .v-stepper__step__step {
color: $value
}
//-------------------Current Step-----------------------------
.order-status .current-status.theme-#{$color} {
border: 2px solid $value;
}
.order-status .current-status.theme-#{$color} .symbol .v-icon {
color: $value
}
}
@each $backgroundColor,
$value in $backgrounds {
.v-stepper.we-stepper .v-stepper__step.theme-#{$backgroundColor}.passed {
background-color: $value;
}
.bg-#{$backgroundColor} {
background-color: $value;
}
}
.text-gradient.orange-purple { .text-gradient.orange-purple {

@ -348,6 +348,9 @@ $Value in $colors {
border-radius: 8px; border-radius: 8px;
margin-left: 8px; margin-left: 8px;
} }
.v-application .white.color-square {
border: 1px solid #000 !important;
}
.image-square { .image-square {
width: 32px; width: 32px;
@ -405,6 +408,9 @@ $Value in $colors {
.mt--8 { .mt--8 {
margin-top: -8px; margin-top: -8px;
} }
.mr--3 {
margin-right: -3px;
}
/* -------------------------------------------------------- /* --------------------------------------------------------
masonry :: End masonry :: End
@ -654,7 +660,6 @@ $value in $backgrounds {
margin: 0px -20px; margin: 0px -20px;
padding: 5px 20px; padding: 5px 20px;
background-color: #f9f9f9; background-color: #f9f9f9;
margin-bottom: 20px;
} }
.full-row.mr-ml--30 { .full-row.mr-ml--30 {
margin: 0px -30px; margin: 0px -30px;
@ -709,6 +714,10 @@ $value in $colors {
padding-bottom: 2px; padding-bottom: 2px;
padding-top: 2px; padding-top: 2px;
} }
.row.cols-pt-pb-2 .col {
padding-bottom: 4px;
padding-top: 4px;
}
/*---------------------------------------------------------------*/ /*---------------------------------------------------------------*/
@ -729,7 +738,7 @@ $value in $colors {
/*---------------------------------------------------------------*/ /*---------------------------------------------------------------*/
/* hidden states :: Begin /* disable states :: Begin
/*---------------------------------------------------------------*/ /*---------------------------------------------------------------*/
.hidden-by-height { .hidden-by-height {
max-height: 0px; max-height: 0px;
@ -742,6 +751,25 @@ $value in $colors {
opacity: 1; opacity: 1;
} }
.disable-by-gray-scale:not(.active) {
filter: grayscale(100%);
transition: 0.3s;
cursor: not-allowed;
}
.disable-by-gray-scale:not(.active) > * {
pointer-events: none;
}
.disable-by-opacity:not(.active) {
opacity: 0.5;
transition: 0.3s;
cursor: not-allowed;
}
.disable-by-opacity:not(.active) > * {
pointer-events: none;
}
/*---------------------------------------------------------------*/ /*---------------------------------------------------------------*/
/* home Tiles :: Begin /* home Tiles :: Begin
/*---------------------------------------------------------------*/ /*---------------------------------------------------------------*/

@ -591,11 +591,9 @@ $Value in $Shadows {
justify-content: center; justify-content: center;
} }
.v-stepper.we-stepper .v-stepper__step .v-stepper__label { .v-stepper.we-stepper .v-stepper__step .v-stepper__label {
color: #32c5d2;
text-align: right; text-align: right;
} }
.v-stepper.we-stepper .v-stepper__step .v-stepper__step__step { .v-stepper.we-stepper .v-stepper__step .v-stepper__step__step {
color: #32c5d2;
border-radius: 0px; border-radius: 0px;
height: auto; height: auto;
min-width: auto; min-width: auto;
@ -612,29 +610,6 @@ $Value in $Shadows {
color: rgba(0,0,0,.38); color: rgba(0,0,0,.38);
} }
.v-stepper.we-stepper .v-stepper__label .Fa {
font-size: 18px;
}
.v-stepper.we-stepper .v-stepper__label .En {
font-size: 12px;
margin-top: 5px;
text-transform: uppercase;
letter-spacing: 3px;
}
//------------------------------------------------------
// Theme Gray
//------------------------------------------------------
.v-stepper.we-stepper .v-stepper__step.v-stepper__step--inactive {
//border-right: 2px solid #00000061;
background-color: transparent;
}
.v-stepper.we-stepper .v-stepper__step.v-stepper__step--inactive .v-stepper__label {
color: #00000061;
}
.v-stepper.we-stepper .v-stepper__step.v-stepper__step--inactive .v-stepper__step__step {
color: #00000061;
}
//------------------------------------------------------ //------------------------------------------------------

@ -43,7 +43,7 @@ export default {
// -------------------------- // --------------------------
// Products // Products
// -------------------------- // --------------------------
product : 'cyan', product : 'red',
translation : 'blue', translation : 'blue',
pricing_method: 'purple', pricing_method: 'purple',
product_option: 'gold', product_option: 'gold',
@ -53,7 +53,7 @@ export default {
// -------------------------- // --------------------------
// Service // Service
// -------------------------- // --------------------------
service : 'cyan', service : 'orange',
// -------------------------- // --------------------------
// Store // Store
@ -86,6 +86,11 @@ export default {
gallery : 'black', gallery : 'black',
// --------------------------
// Finance
// --------------------------
expense : 'red',

Loading…
Cancel
Save