From 7a1ac225a2300b9f7859c68551cf8491e56a1200 Mon Sep 17 00:00:00 2001 From: Saeid Date: Mon, 4 Nov 2019 17:22:56 +0330 Subject: [PATCH] work in office and change structrue modal task and has bug --- public/mix-manifest.json | 8 ++--- resources/js/Global/mixins/global.js | 2 +- .../js/Global/store/modules/modal/actions.js | 34 ++++++++++++++++--- .../js/Global/store/modules/modal/getters.js | 7 ++++ .../js/Global/store/modules/modal/state.js | 1 + .../Global/utils/common/CreateFilterObject.js | 8 ++++- 6 files changed, 49 insertions(+), 11 deletions(-) diff --git a/public/mix-manifest.json b/public/mix-manifest.json index 37600bf..0ae88cc 100644 --- a/public/mix-manifest.json +++ b/public/mix-manifest.json @@ -1,6 +1,6 @@ { - "/js/vue/Authentication/app.js": "/js/vue/Authentication/app.js?id=ef1264c79c4715437c5f", - "/js/vue/Home/app.js": "/js/vue/Home/app.js?id=effcde9e131519164ea0", - "/js/vue/Modules/CRM/app.js": "/js/vue/Modules/CRM/app.js?id=f672b310d08bd18def06", - "/js/vue/User/app.js": "/js/vue/User/app.js?id=f8e9ae158d99d0712bd3" + "/js/vue/Authentication/app.js": "/js/vue/Authentication/app.js?id=ba0468b2a7b3ddd0a861", + "/js/vue/Home/app.js": "/js/vue/Home/app.js?id=1b0d17349d40abecc170", + "/js/vue/Modules/CRM/app.js": "/js/vue/Modules/CRM/app.js?id=da887fb2dfe98868a044", + "/js/vue/User/app.js": "/js/vue/User/app.js?id=662467cf65cdd52ce013" } diff --git a/resources/js/Global/mixins/global.js b/resources/js/Global/mixins/global.js index 7b753d3..9581840 100644 --- a/resources/js/Global/mixins/global.js +++ b/resources/js/Global/mixins/global.js @@ -12,7 +12,7 @@ const global = { //Modal - ...mapActions("modal", ["$_openModal", "$_closeModal", "$_openModalCallback", "$_closeModalCallback", "dialog"]), + ...mapActions("modal", ["$_openModal", "$_closeModal", "$_openModalCallback", "$_closeModalCallback", "dialog", "$_openModalStack", "$_closeModalStack"]), //Alert diff --git a/resources/js/Global/store/modules/modal/actions.js b/resources/js/Global/store/modules/modal/actions.js index 46125c2..dd676ab 100644 --- a/resources/js/Global/store/modules/modal/actions.js +++ b/resources/js/Global/store/modules/modal/actions.js @@ -7,11 +7,11 @@ export default { rootState.modal[modalArray[0]] = true; } }, - $_openModalCallback: ({ commit }, data) => { - commit(data.module + '/OPEN_MODAL_' + data.type.toUpperCase(), data, { root: true }); + async $_openModalCallback ({ dispatch }, data) { + dispatch(data.module + '/openModal' + data.type.charAt(0).toUpperCase() + data.type.slice(1), data, { root: true }); }, - $_closeModalCallback: ({ commit }, data) => { - commit(data.module + '/CLOSE_MODAL_' + data.type.toUpperCase(), data, { root: true }); + $_closeModalCallback: ({ dispatch }, data) => { + dispatch(data.module + '/closeModal' + data.type.charAt(0).toUpperCase() + data.type.slice(1) , data, { root: true }); }, $_closeModal: ({ state, rootState }, modal) => { @@ -24,8 +24,32 @@ export default { state.properties = null; }, + $_openModalStack({ state, rootState }, data) { // data: {name, rel, model, form_data, data, modal_pop_data, type} + if (state.modals.findIndex(x => x.name == data.name) == -1) { + state.modals.push(data); + let module = data.name.split("_"); + + rootState[module[0]].relation = data.rel ? data.rel : {}; + rootState[module[0]].currentModel = data.model ? data.model : {}; + rootState[module[0]].page_type = data.page_type ? data.page_type : ''; + } + }, + $_closeModalStack({ state, rootState }) { + if (state.modals.length) { + let last_data = [...state.modals].pop(); + if (state.modals.length > 1) { + state.modals[state.modals.length - 2]['last_modal_data'] = last_data; + } + let module = last_data.name.split("_"); + rootState[module[0]].relation = {}; + rootState[module[0]].currentModel = {}; + rootState[module[0]].page_type = ''; + state.modals.pop(); + } + }, + dialog:({state, commit}, properties) => { - state.modal.dialog = true; + state.dialog = true; commit('SET_DIALOG_TYPE', properties.type); commit('SET_DIALOG_PROPERTIES', properties); }, diff --git a/resources/js/Global/store/modules/modal/getters.js b/resources/js/Global/store/modules/modal/getters.js index 71252f4..30563ff 100644 --- a/resources/js/Global/store/modules/modal/getters.js +++ b/resources/js/Global/store/modules/modal/getters.js @@ -10,4 +10,11 @@ export default { getDialogProperties:(state) => state.dialogProperties, getDialogType:(state) => state.dialogType, + getActiveModal:(state) => state.modals[state.modals.length], + getModalsName:(state) => state.modals.map(x => x.name), + getModals:(state) => state.modals.map(x => x.name), + getModal:(state) => (name) => state.modals[state.modals.findIndex(x => x.name == name)], + isActiveModal:(state) => (name) => state.modals[state.modals.length].name == name, + isInModals:(state) => (name) => state.modals.findIndex(x => x.name == name) != -1 , + }; diff --git a/resources/js/Global/store/modules/modal/state.js b/resources/js/Global/store/modules/modal/state.js index 9c43d59..19c4127 100644 --- a/resources/js/Global/store/modules/modal/state.js +++ b/resources/js/Global/store/modules/modal/state.js @@ -5,6 +5,7 @@ export default { modal:{ dialog: false, }, + modals: [], dialogProperties: {}, dialogType: {}, }; diff --git a/resources/js/Global/utils/common/CreateFilterObject.js b/resources/js/Global/utils/common/CreateFilterObject.js index 5127602..d0cf7a0 100644 --- a/resources/js/Global/utils/common/CreateFilterObject.js +++ b/resources/js/Global/utils/common/CreateFilterObject.js @@ -10,7 +10,13 @@ const createFilterObject = filters => { } } } - return {filters: filterObject}; + var filters= {}; + for (var filter in filterObject) { + if(filterObject.hasOwnProperty(filter)){ + filters[`filters[${filter}]`] = filterObject[filter]; + } + } + return filters; }; window['between'] = function (filter) { var value = null;