vue-form10
Version:
A Vue.js project
43 lines (41 loc) • 1.08 kB
JavaScript
import Vue from 'vue';
import Vuex from 'vuex';
import * as VueDeepSet from 'vue-deepset';
Vue.use(VueDeepSet);
Vue.use(Vuex);
export default () => new Vuex.Store({
state: {
model: null,
selected: null,
inherit: {}
},
mutations: {
mergeState(state, target) {
if (!target) {
return;
}
state.inherit = Object.assign({}, target);
},
setModel(state, { path, value }) {
if (path) {
VueDeepSet.vuexSet(path, value);
} else {
state.model = value;
}
},
remove(state, path) {
let obj = state;
path.forEach((section, i) => {
if (i !== path.length - 1) {
obj = obj[section];
} else {
Vue.delete(obj, section);
}
});
},
setSelected(state, path) {
state.selected = path;
},
VUEX_DEEP_SET: VueDeepSet.VUEX_DEEP_SET,
}
});