Alireza Hassani 4 years ago
commit b12a3562e7

5
composer.lock generated

@ -4943,7 +4943,7 @@
"dist": {
"type": "path",
"url": "./modules/wm-core",
"reference": "1389a3d91b3c597a4fe13770060130619969ebeb"
"reference": "6917a33cc028d0c0f3e90ef270ee6d9cd0acfdb1"
},
"require": {
"php": "^7.1.3"
@ -4956,7 +4956,8 @@
"extra": {
"laravel": {
"providers": [
"WM\\Core\\CoreServiceProvider"
"WM\\Core\\CoreServiceProvider",
"WM\\Core\\DependencyProvider"
]
}
},

@ -1 +1,48 @@
readme file
## Prequirements:
1. install editor like vscode
1. install git
1. install xampp
1. Navicat
1. install node.js LTS (last version)
## Steps:
1. login to git.willaspace.com
1. clone willa into your root folder
1. create new folder ```/modules in``` root project folder
1. clone core, common, ... in this folder with `wm-` prefix
1. run ```composer i```
1. run ```npm i```
1. restore database with your new .env file. **if had error refer to MySql Section**
1. run: ```npm run dev```
1. run php artisan migrate or Goto: Host Meshkee.local Section
1. run ```php artisan key:generate```
## MySql Section
1. make sure install Navicat
1. open and connect to mysql
1. open xampp then in mysql admin configuration open mu.ini
1. change max_allowed_packet into 16M
```
[mysqld]
max_allowed_packet=16M
```
## Host Meshkee.local Section
1. create new virtual host
1. create new host in etc driver folder as local name service
by adding this line of configuration
```127.0.0.1 meshkee.local```
into C:\Windows\System32\drivers\etc\hosts
good luck

@ -0,0 +1,66 @@
<template>
<div class="upload-example">
<img class="upload-example-cropper" width="220px" height="220px" :src="media"/>
<div class="button-wrapper">
<v-btn
large
:color="$_color('product_option')"
@click.native="$refs['image_'+uniqueId].click()"
light
>
<input
type="file"
:ref="'image_'+uniqueId"
:name="'image_' + uniqueId"
v-show="false"
@change="uploadImage($event)"
accept="image/*"
/>
<v-icon dark>WMi-upload</v-icon>
آپلود عکس
</v-btn>
</div>
</div>
</template>
<script>
import {makeid} from '@Global/utils/common/math'
export default {
props: {
batch_id: {default: null, type: String},
media: {default: '', type: String},
},
data: () => ({
uniqueId: Math.floor(Math.random() * 10000),
}),
methods: {
uploadImage(event) {
// Reference to the DOM input element
var input = event.target;
// Ensure that you have a file before attempting to read it
if (input.files && input.files[0]) {
let formData = new FormData();
formData.append('file', input.files[0]);
formData.append('batch_id', this.batch_id ? this.batch_id : makeid(50));
this.$emit('before');
this.$axios.post(this.$_url('storeFile'), formData).then((response) => {
this.$emit('after');
this.$emit('uploaded', response.data.data)
}).catch( error => {
this.$emit('after');
this.$emit('error', error);
});
}
}
}
}
</script>
<style lang="scss" scoped>
/*.upload-example-cropper {*/
/* margin: 0 auto;*/
/* border: solid 1px #d2d2d2;*/
/* height: 220px;*/
/* width: 220px;*/
/* border-radius: 5px;*/
/*}*/
</style>

@ -6,9 +6,9 @@ import commonRoute from "@Global/utils/common/routes";
import toast from "./toast.service";
import Vue from "vue";
function errorResponseHandler(error) {
// check for errorHandle config
if (
error.config.hasOwnProperty("errorHandle") &&
@ -19,15 +19,15 @@ function errorResponseHandler(error) {
// if has response show the error
if (error.response) {
if(error.response.status == 401) {
if(error.response.status === 401) {
TokenService.removeToken();
ApiService.removeAuthHeader();
store.commit('auth/logout', {}, {root: true});
if (commonRoute.login() != window.location.pathname) {
if (commonRoute.login() !== window.location.pathname) {
window.location.href = commonRoute.login();
}
toast.error('نام کاربری یا رمز عبور اشتباه است', 'خطا');
} else if(error.response.status == 422) {
} else if(error.response.status === 422) {
if(typeof error.response.data.errors !== 'undefined') {
for (const key in error.response.data.errors) {
if (error.response.data.errors.hasOwnProperty(key)) {
@ -35,13 +35,14 @@ function errorResponseHandler(error) {
}
}
}
} else if(error.response.status == 500) {
} else if(error.response.status === 500) {
toast.error('مشکل از سمت سرور', 'خطا');
}
}
return Promise.reject(error);
}
function successHandler(response) {
if(response.status == 200 || response.status == 201) {
if(response.status === 200 || response.status === 201) {
if(typeof response.data.message !== 'undefined' && typeof response.data.message.content !== 'undefined') {
toast.success(response.data.message.content, response.data.message.title || 'موفق');
}
@ -51,5 +52,5 @@ function successHandler(response) {
// apply interceptor on response
axios.interceptors.response.use(successHandler, errorResponseHandler);
Vue.prototype.$axios = axios;
export default errorResponseHandler;
Loading…
Cancel
Save