parent
68244dabb0
commit
6fe39599a4
@ -0,0 +1,111 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
|
||||||
|
namespace App\Console\Commands;
|
||||||
|
|
||||||
|
|
||||||
|
use Illuminate\Support\Facades\Storage;
|
||||||
|
use Illuminate\Support\Str;
|
||||||
|
|
||||||
|
class Vuex
|
||||||
|
{
|
||||||
|
private static bool $isCategory = false;
|
||||||
|
private static string $module;
|
||||||
|
private static string $storeModule;
|
||||||
|
private static bool $replace = false;
|
||||||
|
private static $instance = null;
|
||||||
|
|
||||||
|
private function __construct($arguments, $options)
|
||||||
|
{
|
||||||
|
static::$isCategory = $options['category'];
|
||||||
|
static::$replace = $options['replace'];
|
||||||
|
static::$module = $arguments['module'];
|
||||||
|
static::$storeModule = $arguments['store-module'];
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function initialize ($arguments, $options) {
|
||||||
|
|
||||||
|
if (!self::$instance) {
|
||||||
|
self::$instance = new static($arguments, $options);
|
||||||
|
}
|
||||||
|
|
||||||
|
return self::$instance;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public function createAllFiles () {
|
||||||
|
|
||||||
|
if (static::$storeModule && static::$module) {
|
||||||
|
static::createStoreFiles();
|
||||||
|
static::createRepositoryFile();
|
||||||
|
static::createResourceFile();
|
||||||
|
|
||||||
|
if (!static::$isCategory) {
|
||||||
|
static::createStorageFile();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function createStoreFiles () {
|
||||||
|
$moduleFiles = ['actions', 'mutations', 'state', 'getters'];
|
||||||
|
$basePath = 'modules/wm-' . static::$module . '/resources/js/store/modules/' . static::$storeModule . '/';
|
||||||
|
$baseDefaultPath = static::$isCategory ? 'resources/js/Default/store/category/' : 'resources/js/Default/store/store/';
|
||||||
|
|
||||||
|
foreach ($moduleFiles as $moduleFile) {
|
||||||
|
if (static::hasExists($basePath . $moduleFile)) {
|
||||||
|
$data = Storage::disk('local')->get($baseDefaultPath . $moduleFile . '.text');
|
||||||
|
$data = static::replacer($data);
|
||||||
|
Storage::disk('local')->put($basePath . $moduleFile . '.js', $data);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function createRepositoryFile () {
|
||||||
|
$baseRepositoryPath = 'modules/wm-' . static::$module . '/resources/js/abstraction/repositories/' . static::$storeModule . '/' . static::$storeModule . 'Repository.js';
|
||||||
|
$baseDefaultPath = static::$isCategory ? 'resources/js/Default/abstraction/repositories/categoryRepository.text' : 'resources/js/Default/abstraction/repositories/repository.text';
|
||||||
|
|
||||||
|
if (static::hasExists($baseRepositoryPath)) {
|
||||||
|
$data = Storage::disk('local')->get($baseDefaultPath);
|
||||||
|
$data = static::replacer($data);
|
||||||
|
Storage::disk('local')->put($baseRepositoryPath, $data);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function createResourceFile() {
|
||||||
|
$baseResourcePath = 'modules/wm-' . static::$module . '/resources/js/abstraction/resources/' . static::$storeModule . '/' . static::$storeModule . 'Resource.js';
|
||||||
|
$baseDefaultPath = static::$isCategory ? 'resources/js/Default/abstraction/resources/categoryResource.text' : 'resources/js/Default/abstraction/resources/resource.text';
|
||||||
|
|
||||||
|
if (static::hasExists($baseResourcePath)) {
|
||||||
|
$data = Storage::disk('local')->get($baseDefaultPath);
|
||||||
|
$data = static::replacer($data);
|
||||||
|
Storage::disk('local')->put($baseResourcePath, $data);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public static function createStorageFile() {
|
||||||
|
$baseStoragePath = 'modules/wm-' . static::$module . '/resources/js/services/' . static::$storeModule . '.storage.js';
|
||||||
|
$baseDefaultPath = 'resources/js/Default/services/storage.text';
|
||||||
|
|
||||||
|
if (static::hasExists($baseStoragePath)) {
|
||||||
|
$data = Storage::disk('local')->get($baseDefaultPath);
|
||||||
|
$data = static::replacer($data);
|
||||||
|
Storage::disk('local')->put($baseStoragePath, $data);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static function hasExists($path) {
|
||||||
|
$continue = true;
|
||||||
|
if (Storage::disk('local')->exists($path)) {
|
||||||
|
$continue = static::$replace;
|
||||||
|
}
|
||||||
|
return $continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static function replacer($data) {
|
||||||
|
$data = str_replace('|-module-|', Str::snake(static::$storeModule), $data);
|
||||||
|
$data = str_replace('|-Module-|', Str::title(static::$storeModule), $data);
|
||||||
|
$data = str_replace('|-MODULE-|', Str::upper(static::$storeModule), $data);
|
||||||
|
$data = str_replace('|-BaseModule-|', Str::title(static::$module), $data);
|
||||||
|
return str_replace('|-baseModule-|', Str::camel(static::$module), $data);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,54 @@
|
|||||||
|
import {setData, getJson, getArray} from '@|-BaseModule-|/abstraction/resources/productCategory/|-module-|CategoryResource'
|
||||||
|
import axios from "axios";
|
||||||
|
import url from "@|-Module-|/router/urls";
|
||||||
|
|
||||||
|
export default class |-module-|CategoryRepository {
|
||||||
|
|
||||||
|
async index() {
|
||||||
|
|
||||||
|
let response = await axios.get(url('url'));
|
||||||
|
|
||||||
|
if (response && response.status === 200) {
|
||||||
|
|
||||||
|
return getArray(response.data.data);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
async store(data) {
|
||||||
|
|
||||||
|
const params = setData(data);
|
||||||
|
|
||||||
|
let response = await axios.post(url('url'), params);
|
||||||
|
|
||||||
|
if (response && response.status === 201) {
|
||||||
|
|
||||||
|
return getJson(response.data.data);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
async update(data) {
|
||||||
|
|
||||||
|
const params = setData(data, true);
|
||||||
|
|
||||||
|
let response = await axios.post(url('url', {|-module-|Category: data.id}), params);
|
||||||
|
|
||||||
|
if (response && response.status === 200) {
|
||||||
|
|
||||||
|
return getJson(response.data.data);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
async destroy(dataId) {
|
||||||
|
let response = await axios.delete(url('url', {|-module-|Category: dataId}));
|
||||||
|
|
||||||
|
if (response && response.status === 200) {
|
||||||
|
|
||||||
|
return true;
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,82 @@
|
|||||||
|
import {setQuery, setData, getJson, getArray} from "@|-BaseModule-|/abstraction/repositories/|-module-|Recource";
|
||||||
|
import axios from "axios";
|
||||||
|
import url from "@|-BaseModule-|/router/urls";
|
||||||
|
|
||||||
|
export default class |-Module-|Repository {
|
||||||
|
|
||||||
|
|
||||||
|
async index(data) {
|
||||||
|
|
||||||
|
const params = setQuery(data);
|
||||||
|
|
||||||
|
let response = await axios.get(url('url'), {params});
|
||||||
|
|
||||||
|
if (response && response.status === 200) {
|
||||||
|
|
||||||
|
return getArray(response.data);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
async store(data) {
|
||||||
|
|
||||||
|
const params = setData(data);
|
||||||
|
|
||||||
|
let response = await axios.post(url('url'), params);
|
||||||
|
|
||||||
|
if (response && response.status === 201) {
|
||||||
|
|
||||||
|
return getJson(response.data);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
async update(data) {
|
||||||
|
|
||||||
|
const params = setData(data, true);
|
||||||
|
|
||||||
|
let response = await axios.post(url('url', {|-module-|: data.id}), params);
|
||||||
|
|
||||||
|
if (response && response.status === 200) {
|
||||||
|
|
||||||
|
return getJson(response.data.data);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
async show(dataId) {
|
||||||
|
|
||||||
|
let response = await axios.get(url('url', {|-module-|: dataId}));
|
||||||
|
|
||||||
|
if (response && response.status === 200) {
|
||||||
|
|
||||||
|
return getJson(response.data.data);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
async destroy(dataId) {
|
||||||
|
|
||||||
|
let response = await axios.delete(url('url', {|-module-|: dataId}));
|
||||||
|
|
||||||
|
if (response && response.status === 200) {
|
||||||
|
|
||||||
|
return true;
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
async destroyList(dataIds) {
|
||||||
|
|
||||||
|
let response = await axios.delete(url('url'), {params: {ids: dataIds}});
|
||||||
|
|
||||||
|
if (response && response.status === 200) {
|
||||||
|
|
||||||
|
return true;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,32 @@
|
|||||||
|
import {SetQueries} from "@Global/utils/common/CreateQueriesObject";
|
||||||
|
import {objectToFormData} from "@Global/utils/object-to-formdata";
|
||||||
|
import {addToTags} from "@Global/utils/common/addToTags";
|
||||||
|
|
||||||
|
|
||||||
|
const getJson = (data) => {
|
||||||
|
return {
|
||||||
|
...data,
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
const getArray = (data) => {
|
||||||
|
return data.map((Item) => (getJson(Item)));
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
const setQuery = (data) => {
|
||||||
|
return SetQueries(data);
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
const setData = (data, hasUpdate = false) => {
|
||||||
|
//data = addToTags(data, ['name', 'name_en']);
|
||||||
|
return objectToFormData(
|
||||||
|
{
|
||||||
|
...data,
|
||||||
|
_method: hasUpdate ? 'put' : 'post'
|
||||||
|
}
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
export {setData, setQuery, getArray, getJson};
|
@ -0,0 +1,32 @@
|
|||||||
|
import {SetQueries, SetPagination} from "@Global/utils/common/CreateQueriesObject";
|
||||||
|
import {objectToFormData} from "@Global/utils/object-to-formdata";
|
||||||
|
|
||||||
|
|
||||||
|
const getJson = (data) => {
|
||||||
|
return {
|
||||||
|
...data,
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
const getArray = ({data, meta}) => {
|
||||||
|
const pagination = SetPagination(meta);
|
||||||
|
data = data.map((Item) => (getJson(Item)));
|
||||||
|
return {data, pagination};
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
const setQuery = (data) => {
|
||||||
|
return SetQueries(data);
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
const setData = (data, hasUpdate = false) => {
|
||||||
|
return objectToFormData(
|
||||||
|
{
|
||||||
|
...data,
|
||||||
|
_method: hasUpdate ? 'put' : 'post'
|
||||||
|
}
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
export {setData, setQuery, getArray, getJson};
|
@ -0,0 +1,42 @@
|
|||||||
|
import { Paginate, Sort } from '@Global/services/storage.|-module-|';
|
||||||
|
const |-MODULE-| = '|-module-|';
|
||||||
|
|
||||||
|
const |-Module-|Paginate = {
|
||||||
|
get() {
|
||||||
|
return Paginate.get(|-MODULE-|);
|
||||||
|
},
|
||||||
|
getWithDefault() {
|
||||||
|
if(this.get()) {
|
||||||
|
return this.get();
|
||||||
|
}
|
||||||
|
return {
|
||||||
|
page: 1,
|
||||||
|
pageCount: 1,
|
||||||
|
pageStart: 1,
|
||||||
|
pageStop: 1,
|
||||||
|
itemsLength: 1,
|
||||||
|
itemsPerPage: 12,
|
||||||
|
};
|
||||||
|
},
|
||||||
|
save(paginate) {
|
||||||
|
return Paginate.save(|-MODULE-|, paginate);
|
||||||
|
},
|
||||||
|
remove() {
|
||||||
|
return Paginate.remove(|-MODULE-|);
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
const SortPaginate = {
|
||||||
|
get() {
|
||||||
|
return Sort.get(|-MODULE-|);
|
||||||
|
},
|
||||||
|
save() {
|
||||||
|
return Sort.save(|-MODULE-|);
|
||||||
|
},
|
||||||
|
remove() {
|
||||||
|
return Sort.remove(|-MODULE-|);
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
export { |-Module-|Paginate, SortPaginate }
|
@ -0,0 +1,14 @@
|
|||||||
|
export default {
|
||||||
|
getList|-Module-|: state => {
|
||||||
|
if (state.has_filter) {
|
||||||
|
return state.filtered_|-module-|;
|
||||||
|
}
|
||||||
|
return state.|-module-|;
|
||||||
|
},
|
||||||
|
get|-Module-|: state => state.|-module-|,
|
||||||
|
isFilter|-Module-|: state =>state.has_filter,
|
||||||
|
getFilter|-Module-|: state =>state.filter,
|
||||||
|
get|-Module-|Loading: state => state.loading,
|
||||||
|
get|-Module-|Selected: state => state.selected,
|
||||||
|
|
||||||
|
};
|
@ -0,0 +1,19 @@
|
|||||||
|
export default {
|
||||||
|
module_info:{
|
||||||
|
name: '|-module-|',
|
||||||
|
module: '|-baseModule-|',
|
||||||
|
},
|
||||||
|
filter: [],
|
||||||
|
has_filter: false,
|
||||||
|
|-module-|: [],
|
||||||
|
filtered_|-module-|: [],
|
||||||
|
|-module-|_selected: [],
|
||||||
|
loading: false,
|
||||||
|
default_category: {
|
||||||
|
id: null,
|
||||||
|
name: "بدون دسته بندی",
|
||||||
|
name_en: "No Category",
|
||||||
|
type: "default"
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
@ -1,7 +0,0 @@
|
|||||||
export default {
|
|
||||||
get|-Module-|: state => state.|-module-|,
|
|
||||||
get|-Module-|Loading: state => state.loading,
|
|
||||||
get|-Module-|Pagination: state => state.pagination,
|
|
||||||
get|-Module-|Selected: state => state.selected,
|
|
||||||
|
|
||||||
};
|
|
@ -1,14 +0,0 @@
|
|||||||
//import { |-module-|Paginate } from "@|-BaseModule-|/services/localStorage/|-module-|.storage";
|
|
||||||
|
|
||||||
export default {
|
|
||||||
module_info:{
|
|
||||||
name: '|-module-|',
|
|
||||||
module: '|-baseModule-|',
|
|
||||||
},
|
|
||||||
|-module-|: [],
|
|
||||||
|-module-|_selected: [],
|
|
||||||
//pagination: newsPaginate.getWithDefault(),
|
|
||||||
loading: false,
|
|
||||||
filters:{},
|
|
||||||
};
|
|
||||||
|
|
Loading…
Reference in new issue