generator-wxnode-boilerplate
Version:
Yeoman generator for wxnode boilerplate
111 lines (105 loc) • 3.35 kB
text/typescript
import {StoreOptions} from 'vuex';
import Vue from 'vue';
export function getPersonal(): StoreOptions<any> {
return {
state: {
openid: '',
info: {
selfInfo: {},
userInfo: {
openid: '',
},
},
cnt: {},
caseList: [],
caseFetched: false,
question: {
list: [],
total: 30,
},
answer: {
list: [],
total: 30,
},
share: {
list: [],
total: 30,
},
recommend: {
list: [],
total: 30,
},
fav: {
list: [],
total: 30,
},
follow: {
list: [],
total: 30,
},
},
getters: {
wxaCases: state => {
return state.caseList.filter(item => item.CaseCategory === '1');
},
pluginCases: state => {
return state.caseList.filter(item => item.caseCategory === '2');
},
},
mutations: {
SET_PERSONAL_INFO: (state, {data}) => {
Vue.set(state, 'info', data);
},
SET_PERSONAL_CNT: (state, {data}) => {
Vue.set(state, 'cnt', data);
},
CLEAR_PERSONAL_SELF_INFO: (state) => {
Vue.set(state.info, 'selfInfo', {});
},
SET_PERSONAL_CASE: (state, {data, openid}) => {
Vue.set(state, 'openid', openid);
Vue.set(state, `caseFetched`, true);
Vue.set(state, `caseList`, data.list);
},
DELETE_PERSONAL_CASE: (state, {docId}) => {
Vue.set(state, 'caseList', state.caseList.filter(blog => blog.DocId !== docId));
},
SET_PERSONAL_QUESTION: (state, {data, page, openid}) => {
Vue.set(state, 'question', {
list: data.list,
total: data.total,
});
},
SET_PERSONAL_ANSWER: (state, {data, page, openid}) => {
Vue.set(state, 'answer', {
list: data.list,
total: data.total,
});
},
SET_PERSONAL_SHARE: (state, {data, page, openid}) => {
Vue.set(state, 'share', {
list: data.list,
total: data.total,
});
},
SET_PERSONAL_RECOMMEND: (state, {data, page, openid}) => {
Vue.set(state, 'recommend', {
list: data.list,
total: data.total,
});
},
SET_PERSONAL_FAV: (state, {data, page, openid}) => {
Vue.set(state, 'fav', {
list: data.list,
total: data.total,
});
},
SET_PERSONAL_FOLLOW: (state, {data, page, openid}) => {
Vue.set(state, 'follow', {
list: data.list,
total: data.total,
});
},
},
};
}