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