12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- import Vue from 'vue'
- export default {
- namespaced: true,
- state: {
- role: 'shop',
- info: {},
- menus: [],
- },
- getters: {},
- mutations: {
- UPDATE_USER (state, { role, data }) {
- const { token, token_ttl: ttl, menu, ...info } = data
- window.localStorage.setItem('token', token)
- const timestamp = ttl > 1e+9 ? ttl : new Date().getTime() + ttl * 60 * 1000
- window.localStorage.setItem('token_ttl', timestamp)
- state.role = role
- state.info = info
- const defaultMenus = [
- {
- name: 'product',
- title: '商品管理',
- },
- {
- name: 'category',
- title: '分类管理',
- },
- {
- name: 'attribute',
- title: '属性管理',
- },
- {
- name: 'comment',
- title: '评论管理',
- },
- {
- name: 'trash',
- title: '回收站',
- },
- ]
- state.menus = window.parent !== window ? menu : defaultMenus
- },
- },
- actions: {
- async login ({ commit }, payload) {
- try {
- commit('UPDATE_USER', await Vue.http.post('/admin/login', payload))
- return Promise.resolve()
- } catch (e) {
- return Promise.reject(e)
- }
- },
- async refresh ({ commit }) {
- try {
- commit('UPDATE_USER', await Vue.http.post('/admin/refresh'))
- } catch {
- window.localStorage.removeItem('token')
- window.localStorage.removeItem('token_ttl')
- }
- },
- },
- }
|