search.js 1.29 KB

const Types = {
    Home: { size: 10 }
}


export default {
    namespaced: true,
    state: {
        Home: []
    },
    mutations: {
        MSetHistoryDatas (state, { key, datas }) {
            state[key] = datas
        },

        MSetHomeHistory (state, datas) {
            state.Home = datas
        },

        MCleanHistory (state, stateKey) {
            state[stateKey] = []
        }
    },
    actions: {
        ACleanHistory ({ commit }, stateKey) {
            commit('MCleanHistory', stateKey)
        },

        APushSearchValue ({ state, commit }, param = {}) {
            const { stateKey, value } = param
            if (Object.hasOwnProperty.call(Types, stateKey)) {
                const newDatas = pushSearchValue(state[stateKey], value, Types[stateKey].size)
                commit('MSetHistoryDatas', { key: stateKey, value: newDatas })
            }
        },
        
        APushHomeSearchValue ({ state, commit }, val) {
            const newDatas = pushSearchValue(state.Home, val, Types.Home.size)
            commit('MSetHomeHistory', newDatas)
        }
    },
    modules: {
    }
}


function pushSearchValue (datas, value, size) {
    const newDatas = [...datas]
    newDatas.unshift(value)
    if (newDatas.length > size) {
        newDatas.pop()
    }
    return newDatas
}