commit
bd37355e14
@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
"/js/vue/Authentication/app.js": "/js/vue/Authentication/app.js?id=7fcd283086b499f2c4eb",
|
||||||
|
"/js/vue/Home/app.js": "/js/vue/Home/app.js?id=4271ddf84160f6db9559",
|
||||||
|
"/js/vue/Modules/CRM/app.js": "/js/vue/Modules/CRM/app.js?id=42a67229cb063f0afead",
|
||||||
|
"/js/vue/Modules/Reservation/app.js": "/js/vue/Modules/Reservation/app.js?id=31627036c5ddd8a0c6ba",
|
||||||
|
"/js/vue/User/app.js": "/js/vue/User/app.js?id=140e6ef646d3001986ba"
|
||||||
|
}
|
@ -0,0 +1,26 @@
|
|||||||
|
<template>
|
||||||
|
<v-card-text>
|
||||||
|
<v-textarea
|
||||||
|
:label="element.label"
|
||||||
|
:placeholder="element.placeholder"
|
||||||
|
:hint="element.hint"
|
||||||
|
:color="element.color"
|
||||||
|
:append-icon="element.append_icon"
|
||||||
|
:prepend-icon="element.prepend_icon || 'fas fa-align-right' "
|
||||||
|
v-model="values[element.slug]"
|
||||||
|
></v-textarea>
|
||||||
|
</v-card-text>
|
||||||
|
</template>
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
props: {
|
||||||
|
element: {
|
||||||
|
type: Object
|
||||||
|
},
|
||||||
|
values: {
|
||||||
|
type: Object,
|
||||||
|
default: () => ({})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
</script>
|
@ -1,4 +1,2 @@
|
|||||||
export default {
|
export default {
|
||||||
getClientTypes: state => state.clientTypes,
|
|
||||||
getPhoneTypes: state => state.phoneTypes
|
|
||||||
};
|
};
|
||||||
|
@ -1,4 +1,2 @@
|
|||||||
export default {
|
export default {
|
||||||
PaymentConfirmation: false,
|
|
||||||
TrialConfirmation: false,
|
|
||||||
};
|
};
|
@ -1,215 +1,259 @@
|
|||||||
<template>
|
<template>
|
||||||
<v-container fluid>
|
<v-container fluid>
|
||||||
<div class="Tile Shadowed Padd-0 WM-Margin-B-10">
|
<div class="Tile Shadowed Padd-0 WM-Margin-B-10">
|
||||||
<wm-breadcrumbs LinkClass="WM-Link-Cyan" :items="breadcrumbItems"></wm-breadcrumbs>
|
<wm-breadcrumbs LinkClass="WM-Link-Cyan" :items="breadcrumbItems"></wm-breadcrumbs>
|
||||||
</div>
|
</div>
|
||||||
<div class="Tile Shadowed">
|
<div class="Tile Shadowed">
|
||||||
<WM-PageTitle titleFaClass="black--text" color="black" titleFa=" افزودن بخش جدید " titleEn=" Add a New Section "></WM-PageTitle>
|
<WM-PageTitle
|
||||||
<div v-for="(module, index) in modules" :key="index">
|
titleFaClass="black--text"
|
||||||
<div :class="'ModuleItem '+module.color+'Border'">
|
color="black"
|
||||||
<div :class="'itrator En '+module.color+'--text'"> {{index+1}} </div>
|
titleFa=" افزودن بخش جدید "
|
||||||
<v-layout row wrap class="WM-Margin-0">
|
titleEn=" Add a New Section "
|
||||||
<v-flex lg4 class="Title">
|
></WM-PageTitle>
|
||||||
<div class="FA"> {{ module.nameFa }} </div>
|
<div v-for="(module, index) in getAllModules" :key="index">
|
||||||
<div class="EN"> {{ module.nameEn }} </div>
|
<div :class="'ModuleItem '+module.color_class+'Border'">
|
||||||
</v-flex>
|
<div :class="'itrator En '+module.color_class+'--text'">{{index+1}}</div>
|
||||||
<v-flex lg4 class="Price">
|
<v-layout row wrap class="WM-Margin-0">
|
||||||
<div class="Old En" v-if="module.oldPrice"> {{ module.oldPrice }} </div>
|
<v-flex lg4 class="Title">
|
||||||
<div class="Main En"> {{ module.price }} <span class="Unit">IRT</span></div>
|
<div class="FA">{{ module.title_fa }}</div>
|
||||||
</v-flex>
|
<div class="EN">{{ module.title_en }}</div>
|
||||||
<v-flex lg4 class="WM-Align-L">
|
</v-flex>
|
||||||
<v-tooltip top color="black">
|
<v-flex lg4 class="Price">
|
||||||
|
<div class="Old En" v-if="module.old_price">{{ Intl.NumberFormat().format(module.old_price) }}</div>
|
||||||
|
<div class="Main En">
|
||||||
|
{{ Intl.NumberFormat().format(module.price) }}
|
||||||
|
<span class="Unit">IRT</span>
|
||||||
|
</div>
|
||||||
|
</v-flex>
|
||||||
|
<v-flex lg4 class="WM-Align-L">
|
||||||
|
<v-tooltip top color="black">
|
||||||
|
<v-btn
|
||||||
|
small
|
||||||
|
outline
|
||||||
|
@click.native="$_openModal('role_permission/trial_confirmation'), SET_CURRENT_MODULE(module)"
|
||||||
|
slot="activator"
|
||||||
|
fab
|
||||||
|
:color="module.color_class"
|
||||||
|
>
|
||||||
|
<v-icon dark>fas fa-history</v-icon>
|
||||||
|
</v-btn>
|
||||||
|
<span>فعالسازی نسخه ی 15 روزه، آزمایشی</span>
|
||||||
|
</v-tooltip>
|
||||||
|
<!-- <v-tooltip top color="black">
|
||||||
<v-btn
|
<v-btn
|
||||||
small
|
@click.native="$_openModal('role_permission/payment_confirmation'), SET_CURRENT_ALL_MODULE(module)"
|
||||||
outline
|
|
||||||
@click.native="$store.state.TrialConfirmation = true"
|
|
||||||
slot="activator"
|
slot="activator"
|
||||||
fab
|
fab
|
||||||
:color="module.color"
|
:color="module.color_class"
|
||||||
>
|
|
||||||
<v-icon dark> fas fa-history </v-icon>
|
|
||||||
</v-btn>
|
|
||||||
<span> فعالسازی نسخه ی 15 روزه، آزمایشی </span>
|
|
||||||
</v-tooltip>
|
|
||||||
<v-tooltip top color="black">
|
|
||||||
<v-btn
|
|
||||||
@click.native="$store.state.PaymentConfirmation = true"
|
|
||||||
slot="activator"
|
|
||||||
fab
|
|
||||||
:color="module.color"
|
|
||||||
dark
|
dark
|
||||||
>
|
>
|
||||||
<v-icon dark> fas fa-plus </v-icon>
|
<v-icon dark> fas fa-plus </v-icon>
|
||||||
</v-btn>
|
</v-btn>
|
||||||
<span> خرید </span>
|
<span> خرید </span>
|
||||||
</v-tooltip>
|
</v-tooltip>-->
|
||||||
</v-flex>
|
</v-flex>
|
||||||
<v-flex lg12 class="description RTL" v-if="module.descriptionTitle">
|
<v-flex lg12 class="description RTL" v-if="module.description_title">
|
||||||
<v-expansion-panel popout style="margin-bottom:0px;">
|
<v-expansion-panel popout style="margin-bottom:0px;">
|
||||||
<v-expansion-panel-content>
|
<v-expansion-panel-content>
|
||||||
<template v-slot:header>
|
<template v-slot:header>
|
||||||
<v-flex lg12 class="text-lg-right Title"><v-icon> fas fa-align-right </v-icon> {{ module.descriptionTitle }} </v-flex>
|
<v-flex lg12 class="text-lg-right Title">
|
||||||
</template>
|
<v-icon>fas fa-align-right</v-icon>
|
||||||
<v-card>
|
{{ module.description_title }}
|
||||||
<v-card-text style="padding:0px 40px 10px 40px">
|
</v-flex>
|
||||||
<div class="WM-Tile" >
|
</template>
|
||||||
<v-layout row wrap class="WM-Margin-0">
|
<v-card>
|
||||||
<v-flex lg12 class="text-lg-right zIndex99 Text" v-html="module.descriptionText"> </v-flex>
|
<v-card-text style="padding:0px 40px 10px 40px">
|
||||||
</v-layout>
|
<div class="WM-Tile">
|
||||||
</div>
|
<v-layout row wrap class="WM-Margin-0">
|
||||||
</v-card-text>
|
<v-flex lg12 class="text-lg-right zIndex99 Text" v-html="module.description"></v-flex>
|
||||||
</v-card>
|
</v-layout>
|
||||||
</v-expansion-panel-content>
|
</div>
|
||||||
</v-expansion-panel>
|
</v-card-text>
|
||||||
</v-flex>
|
</v-card>
|
||||||
</v-layout>
|
</v-expansion-panel-content>
|
||||||
</div>
|
</v-expansion-panel>
|
||||||
</div>
|
</v-flex>
|
||||||
</div>
|
</v-layout>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<!-- --------------------------------------------------------------------
|
<!-- --------------------------------------------------------------------
|
||||||
Modals :: BEGIN
|
Modals :: BEGIN
|
||||||
-------------------------------------------------------------------- -->
|
---------------------------------------------------------------------->
|
||||||
<template>
|
<template>
|
||||||
<div class="text-xs-center">
|
<div class="text-xs-center">
|
||||||
<wm-payment-confirmation></wm-payment-confirmation>
|
<!-- <wm-payment-confirmation></wm-payment-confirmation> -->
|
||||||
<wm-trial-confirmation></wm-trial-confirmation>
|
<wm-trial-confirmation></wm-trial-confirmation>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<!-- --------------------------------------------------------------------
|
<!-- --------------------------------------------------------------------
|
||||||
Modals :: END
|
Modals :: END
|
||||||
-------------------------------------------------------------------- -->
|
---------------------------------------------------------------------->
|
||||||
|
</v-container>
|
||||||
</v-container>
|
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import PaymentConfirmation from "@Common/components/Misc/PaymentConfirmation.vue";
|
// import PaymentConfirmation from "@Common/components/Misc/PaymentConfirmation.vue";
|
||||||
import TrialConfirmation from "@Common/components/Misc/TrialConfirmation.vue";
|
import TrialConfirmation from "@Common/components/Misc/TrialConfirmation.vue";
|
||||||
|
import { mapGetters, mapActions, mapMutations } from "vuex";
|
||||||
export default {
|
export default {
|
||||||
components: {
|
components: {
|
||||||
'wm-payment-confirmation' : PaymentConfirmation,
|
// "wm-payment-confirmation": PaymentConfirmation,
|
||||||
'wm-trial-confirmation' : TrialConfirmation,
|
"wm-trial-confirmation": TrialConfirmation
|
||||||
},
|
},
|
||||||
props: {
|
props: {
|
||||||
color: { default: 'grey darken-4' },
|
color: { default: "grey darken-4" }
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
breadcrumbItems: [
|
breadcrumbItems: [
|
||||||
{
|
{
|
||||||
text: "",
|
text: "",
|
||||||
disabled: false,
|
disabled: false,
|
||||||
routeName: "Home",
|
routeName: "Home",
|
||||||
icon: "home"
|
icon: "home"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
text: " افزودن بخش جدید ",
|
text: " افزودن بخش جدید ",
|
||||||
disabled: true,
|
disabled: true
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
modules: [
|
modules: [
|
||||||
{ nameFa: ' باشگاه مشتریان ', nameEn: ' Members Club ', price: '1,500,000', id: 1, color:"red",
|
{
|
||||||
descriptionTitle: ' باشگاه مشتریان در واقع بستری است برای اینکه بتوانید مشتریان خود را ثبت، آنها را مدیریت و با آنها ارتباط بر قرار کنید. ',
|
nameFa: " باشگاه مشتریان ",
|
||||||
descriptionText: ' امکانات مشتریان به طور خلاصه به شرح زیر می باشد: <div class="WM-Margin-R-10"> 1. ثبت و ویرایش اعضای باشگاه <br> 2. امکان ثبت تاریخ تولد و ازدواج</div> '
|
nameEn: " Members Club ",
|
||||||
},
|
price: "1,500,000",
|
||||||
{ nameFa: ' مدیریت ارتباط با مشتری ', nameEn: ' Customers Relationship Management ', price: '3,500,000', oldPrice: '3,000,000', id: 2, color:"orange" },
|
id: 1,
|
||||||
{ nameFa: ' مدیریت فروشگاه ', nameEn: ' Store Management ', price: '2,500,000', id: 3, color:"cyan" },
|
color: "red",
|
||||||
{ nameFa: ' سیستم رزرو وقت ', nameEn: ' Reservations System ', price: '1,000,000', id: 4, color:"purple" },
|
descriptionTitle:
|
||||||
],
|
" باشگاه مشتریان در واقع بستری است برای اینکه بتوانید مشتریان خود را ثبت، آنها را مدیریت و با آنها ارتباط بر قرار کنید. ",
|
||||||
}
|
descriptionText:
|
||||||
}
|
' امکانات مشتریان به طور خلاصه به شرح زیر می باشد: <div class="WM-Margin-R-10"> 1. ثبت و ویرایش اعضای باشگاه <br> 2. امکان ثبت تاریخ تولد و ازدواج</div> '
|
||||||
};
|
},
|
||||||
|
{
|
||||||
|
nameFa: " مدیریت ارتباط با مشتری ",
|
||||||
|
nameEn: " Customers Relationship Management ",
|
||||||
|
price: "3,500,000",
|
||||||
|
oldPrice: "3,000,000",
|
||||||
|
id: 2,
|
||||||
|
color: "orange"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
nameFa: " مدیریت فروشگاه ",
|
||||||
|
nameEn: " Store Management ",
|
||||||
|
price: "2,500,000",
|
||||||
|
id: 3,
|
||||||
|
color: "cyan"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
nameFa: " سیستم رزرو وقت ",
|
||||||
|
nameEn: " Reservations System ",
|
||||||
|
price: "1,000,000",
|
||||||
|
id: 4,
|
||||||
|
color: "purple"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
};
|
||||||
|
},
|
||||||
|
computed: {
|
||||||
|
...mapGetters("role_permission", ["getAllModules"])
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
...mapActions("role_permission", ["loadAllModules"]),
|
||||||
|
...mapMutations("role_permission", ["SET_CURRENT_MODULE"]),
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
this.loadAllModules({ home_page: true });
|
||||||
|
}
|
||||||
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped lang="scss">
|
<style scoped lang="scss">
|
||||||
.ModuleItem {
|
.ModuleItem {
|
||||||
position: relative;
|
position: relative;
|
||||||
padding: 10px;
|
padding: 10px;
|
||||||
border: 1px solid #eeeeee;
|
border: 1px solid #eeeeee;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
}
|
}
|
||||||
.ModuleItem.redBorder {
|
.ModuleItem.redBorder {
|
||||||
border-right:2px solid #ee3552;
|
border-right: 2px solid #ee3552;
|
||||||
}
|
}
|
||||||
.ModuleItem.orangeBorder {
|
.ModuleItem.orangeBorder {
|
||||||
border-right:2px solid #ff6b57;
|
border-right: 2px solid #ff6b57;
|
||||||
}
|
}
|
||||||
.ModuleItem.cyanBorder {
|
.ModuleItem.cyanBorder {
|
||||||
border-right:2px solid #32c5d2;
|
border-right: 2px solid #32c5d2;
|
||||||
}
|
}
|
||||||
.ModuleItem.purpleBorder {
|
.ModuleItem.purpleBorder {
|
||||||
border-right:2px solid #ac3773;
|
border-right: 2px solid #ac3773;
|
||||||
}
|
}
|
||||||
.ModuleItem .itrator {
|
.ModuleItem .itrator {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
font-size: 60px;
|
font-size: 60px;
|
||||||
right: -5px;
|
right: -5px;
|
||||||
bottom: -25px;
|
bottom: -25px;
|
||||||
opacity: 0.1;
|
opacity: 0.1;
|
||||||
font-family: "Montserrat-ExtraBold";
|
font-family: "Montserrat-ExtraBold";
|
||||||
z-index: 100;
|
z-index: 100;
|
||||||
}
|
}
|
||||||
.ModuleItem .Title {
|
.ModuleItem .Title {
|
||||||
text-align: right;
|
text-align: right;
|
||||||
}
|
}
|
||||||
.ModuleItem .FA {
|
.ModuleItem .FA {
|
||||||
font-size: 26px;
|
font-size: 26px;
|
||||||
}
|
}
|
||||||
.ModuleItem .EN {
|
.ModuleItem .EN {
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
letter-spacing: 5px;
|
letter-spacing: 5px;
|
||||||
text-transform: uppercase;
|
text-transform: uppercase;
|
||||||
color: #9a9a9a
|
color: #9a9a9a;
|
||||||
}
|
}
|
||||||
.ModuleItem .Price {
|
.ModuleItem .Price {
|
||||||
text-align: left;
|
text-align: left;
|
||||||
padding-top: 10px;
|
padding-top: 10px;
|
||||||
}
|
}
|
||||||
.ModuleItem .Price .Main {
|
.ModuleItem .Price .Main {
|
||||||
font-size: 26px;
|
font-size: 26px;
|
||||||
// font-family: "Montserrat-ExtraBold";
|
// font-family: "Montserrat-ExtraBold";
|
||||||
}
|
}
|
||||||
.ModuleItem .Price .Old {
|
.ModuleItem .Price .Old {
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
color: #ee3552;
|
color: #ee3552;
|
||||||
text-decoration: line-through;
|
text-decoration: line-through;
|
||||||
margin-bottom: -10px;
|
margin-bottom: -10px;
|
||||||
margin-left: 0px;
|
margin-left: 0px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.v-expansion-panel--inset .v-expansion-panel__container--active,
|
.v-expansion-panel--inset .v-expansion-panel__container--active,
|
||||||
.v-expansion-panel--popout .v-expansion-panel__container--active {
|
.v-expansion-panel--popout .v-expansion-panel__container--active {
|
||||||
border: 1px solid #eeeeee !important;
|
border: 1px solid #eeeeee !important;
|
||||||
border-right:2px solid #000 !important;
|
border-right: 2px solid #000 !important;
|
||||||
box-shadow: none;
|
box-shadow: none;
|
||||||
}
|
}
|
||||||
.v-expansion-panel__container {
|
.v-expansion-panel__container {
|
||||||
transition: 0.2s;
|
transition: 0.2s;
|
||||||
border: 1px solid transparent !important;
|
border: 1px solid transparent !important;
|
||||||
border-right:2px solid transparent !important;
|
border-right: 2px solid transparent !important;
|
||||||
}
|
}
|
||||||
.v-expansion-panel__container:hover {
|
.v-expansion-panel__container:hover {
|
||||||
border: 1px solid #eeeeee !important;
|
border: 1px solid #eeeeee !important;
|
||||||
border-right:2px solid #000 !important;
|
border-right: 2px solid #000 !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.ModuleItem .description .Title {
|
|
||||||
font-size: 16px;
|
|
||||||
color: #000;
|
|
||||||
}
|
|
||||||
.ModuleItem .description .v-icon {
|
|
||||||
margin-left: 5px;
|
|
||||||
line-height: 27px;
|
|
||||||
}
|
|
||||||
.ModuleItem .description .Text {
|
|
||||||
font-size: 14px;
|
|
||||||
color: #6d6d6d;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
.ModuleItem .description .Title {
|
||||||
|
font-size: 16px;
|
||||||
|
color: #000;
|
||||||
|
}
|
||||||
|
.ModuleItem .description .v-icon {
|
||||||
|
margin-left: 5px;
|
||||||
|
line-height: 27px;
|
||||||
|
}
|
||||||
|
.ModuleItem .description .Text {
|
||||||
|
font-size: 14px;
|
||||||
|
color: #6d6d6d;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -1,8 +0,0 @@
|
|||||||
import sharedPath from './path';
|
|
||||||
|
|
||||||
|
|
||||||
// let paths = [];
|
|
||||||
|
|
||||||
// paths = paths.concat(sharedPath);
|
|
||||||
|
|
||||||
export default sharedPath;
|
|
@ -1,7 +0,0 @@
|
|||||||
export default [
|
|
||||||
// {
|
|
||||||
// path: '/CRM/MyTasks',
|
|
||||||
// name: 'MyTasks',
|
|
||||||
// view: 'Common/views/Tasks'
|
|
||||||
// }
|
|
||||||
];
|
|
@ -1,56 +0,0 @@
|
|||||||
|
|
||||||
window._ = require('lodash');
|
|
||||||
|
|
||||||
/**
|
|
||||||
* We'll load jQuery and the Bootstrap jQuery plugin which provides support
|
|
||||||
* for JavaScript based Bootstrap features such as modals and tabs. This
|
|
||||||
* code may be modified to fit the specific needs of your application.
|
|
||||||
*/
|
|
||||||
|
|
||||||
try {
|
|
||||||
window.Popper = require('popper.js').default;
|
|
||||||
window.$ = window.jQuery = require('jquery');
|
|
||||||
|
|
||||||
require('bootstrap');
|
|
||||||
} catch (e) {}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* We'll load the axios HTTP library which allows us to easily issue requests
|
|
||||||
* to our Laravel back-end. This library automatically handles sending the
|
|
||||||
* CSRF token as a header based on the value of the "XSRF" token cookie.
|
|
||||||
*/
|
|
||||||
|
|
||||||
window.axios = require('axios');
|
|
||||||
|
|
||||||
window.axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Next we will register the CSRF Token as a common header with Axios so that
|
|
||||||
* all outgoing HTTP requests automatically have it attached. This is just
|
|
||||||
* a simple convenience so we don't have to attach every token manually.
|
|
||||||
*/
|
|
||||||
|
|
||||||
let token = document.head.querySelector('meta[name="csrf-token"]');
|
|
||||||
|
|
||||||
if (token) {
|
|
||||||
window.axios.defaults.headers.common['X-CSRF-TOKEN'] = token.content;
|
|
||||||
} else {
|
|
||||||
console.error('CSRF token not found: https://laravel.com/docs/csrf#csrf-x-csrf-token');
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Echo exposes an expressive API for subscribing to channels and listening
|
|
||||||
* for events that are broadcast by Laravel. Echo and event broadcasting
|
|
||||||
* allows your team to easily build robust real-time web applications.
|
|
||||||
*/
|
|
||||||
|
|
||||||
// import Echo from 'laravel-echo'
|
|
||||||
|
|
||||||
// window.Pusher = require('pusher-js');
|
|
||||||
|
|
||||||
// window.Echo = new Echo({
|
|
||||||
// broadcaster: 'pusher',
|
|
||||||
// key: process.env.MIX_PUSHER_APP_KEY,
|
|
||||||
// cluster: process.env.MIX_PUSHER_APP_CLUSTER,
|
|
||||||
// encrypted: true
|
|
||||||
// });
|
|
@ -1,17 +0,0 @@
|
|||||||
import { TokenService } from '@/services'
|
|
||||||
|
|
||||||
const $hasRole = function(roles) {
|
|
||||||
if (TokenService.getToken()) {
|
|
||||||
roles = roles.split('|');
|
|
||||||
for (const role of roles) {
|
|
||||||
if(TokenService.getInfo().roles && Array.isArray(TokenService.getInfo().roles) && TokenService.getInfo().roles.includes(role)) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
};
|
|
||||||
|
|
||||||
export {
|
|
||||||
$hasRole
|
|
||||||
}
|
|
@ -1,49 +0,0 @@
|
|||||||
import axios from "axios";
|
|
||||||
import toast from "./toast.service";
|
|
||||||
// import {TokenService, ApiService} from '@/services';
|
|
||||||
// import store from "@/store"
|
|
||||||
// import router from '@/router'
|
|
||||||
function errorResponseHandler(error) {
|
|
||||||
|
|
||||||
// check for errorHandle config
|
|
||||||
if (
|
|
||||||
error.config.hasOwnProperty("errorHandle") &&
|
|
||||||
error.config.errorHandle === false
|
|
||||||
) {
|
|
||||||
return Promise.reject(error);
|
|
||||||
}
|
|
||||||
|
|
||||||
// if has response show the error
|
|
||||||
if (error.response) {
|
|
||||||
if(typeof error.response.data.errors !== 'undefined') {
|
|
||||||
for (const key in error.response.data.errors) {
|
|
||||||
if (error.response.data.errors.hasOwnProperty(key)) {
|
|
||||||
let title = (error.response.data.title) ? error.response.data.title : undefined;
|
|
||||||
toast.error(error.response.data.errors[key], title);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if(error.response.status == 401) {
|
|
||||||
// TokenService.removeToken();
|
|
||||||
// TokenService.removeRefreshToken();
|
|
||||||
// TokenService.removeInfo();
|
|
||||||
// ApiService.removeAuthHeader();
|
|
||||||
// store.commit('auth/logoutSuccess', {}, {root: true})
|
|
||||||
// router.push({ name: `Dashboard` });
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
function successHandler(response) {
|
|
||||||
if(response.status == 200) {
|
|
||||||
if(typeof response.data.message !== 'undefined') {
|
|
||||||
toast.success(response.data.message, response.data.title);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return response;
|
|
||||||
}
|
|
||||||
|
|
||||||
// apply interceptor on response
|
|
||||||
axios.interceptors.response.use(successHandler, errorResponseHandler);
|
|
||||||
|
|
||||||
export default errorResponseHandler;
|
|
@ -1,21 +0,0 @@
|
|||||||
import "izitoast/dist/css/iziToast.min.css";
|
|
||||||
import iZtoast from "izitoast";
|
|
||||||
|
|
||||||
const toast = {
|
|
||||||
error: (message, title = "Error") => {
|
|
||||||
return iZtoast.error({
|
|
||||||
title: title,
|
|
||||||
message: message,
|
|
||||||
position: "bottomCenter"
|
|
||||||
});
|
|
||||||
},
|
|
||||||
success: (message, title = "Success") => {
|
|
||||||
return iZtoast.success({
|
|
||||||
title: title,
|
|
||||||
message: message,
|
|
||||||
position: "bottomCenter"
|
|
||||||
});
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
export default toast;
|
|
@ -1,6 +0,0 @@
|
|||||||
import {$hasRole} from '../acl/role';
|
|
||||||
export default {
|
|
||||||
methods: {
|
|
||||||
$hasRole
|
|
||||||
},
|
|
||||||
}
|
|
Loading…
Reference in new issue