style: 移除 store 中无用的 Promise 声明以及优化代码格式 增强部分健壮性

This commit is contained in:
FairyEver
2020-04-22 11:03:48 +08:00
parent d249c86406
commit 98eaba77df
18 changed files with 382 additions and 531 deletions

View File

@@ -1,6 +1,6 @@
import request from '@/plugin/axios' import request from '@/plugin/axios'
export function ComponentsMarkdownBase (url) { export function componentsMarkdownBase (url) {
return request({ return request({
baseURL: process.env.BASE_URL, baseURL: process.env.BASE_URL,
url, url,

View File

@@ -1,6 +1,6 @@
import request from '@/plugin/axios' import request from '@/plugin/axios'
export function BusinessTable1List (params) { export function businessTable1List (params) {
return request({ return request({
url: '/demo/business/table/1/fetch', url: '/demo/business/table/1/fetch',
method: 'get', method: 'get',

View File

@@ -1,6 +1,6 @@
import request from '@/plugin/axios' import request from '@/plugin/axios'
export function PluginMocksAjax () { export function pluginMocksAjax () {
return request({ return request({
url: '/demo/plugins/mock/ajax', url: '/demo/plugins/mock/ajax',
method: 'get' method: 'get'

View File

@@ -1,6 +1,6 @@
import request from '@/plugin/axios' import request from '@/plugin/axios'
export function AccountLogin (data) { export function accountLogin (data) {
return request({ return request({
url: '/login', url: '/login',
method: 'post', method: 'post',

View File

@@ -12,7 +12,7 @@ import marked from 'marked'
import highlight from 'highlight.js' import highlight from 'highlight.js'
import bandupan from './plugin/baidupan' import bandupan from './plugin/baidupan'
import 'github-markdown-css' import 'github-markdown-css'
import { ComponentsMarkdownBase } from '@api/components.markdown' import { componentsMarkdownBase } from '@api/components.markdown'
export default { export default {
name: 'd2-markdown', name: 'd2-markdown',
props: { props: {
@@ -64,7 +64,7 @@ export default {
}, },
// 从 url 加载原始数据 // 从 url 加载原始数据
async getReadme (url) { async getReadme (url) {
const data = await ComponentsMarkdownBase(url) const data = await componentsMarkdownBase(url)
return this.marked(data) return this.marked(data)
}, },
marked (data) { marked (data) {

View File

@@ -1,7 +1,7 @@
import { Message, MessageBox } from 'element-ui' import { Message, MessageBox } from 'element-ui'
import util from '@/libs/util.js' import util from '@/libs/util.js'
import router from '@/router' import router from '@/router'
import { AccountLogin } from '@api/sys.login' import { accountLogin } from '@api/sys.login'
export default { export default {
namespaced: true, namespaced: true,
@@ -13,17 +13,11 @@ export default {
* @param {Object} payload password {String} 密码 * @param {Object} payload password {String} 密码
* @param {Object} payload route {Object} 登录成功后定向的路由对象 任何 vue-router 支持的格式 * @param {Object} payload route {Object} 登录成功后定向的路由对象 任何 vue-router 支持的格式
*/ */
login ({ dispatch }, { async login ({ dispatch }, {
username = '', username = '',
password = '' password = ''
} = {}) { } = {}) {
return new Promise((resolve, reject) => { const res = await accountLogin({ username, password })
// 开始请求登录接口
AccountLogin({
username,
password
})
.then(async res => {
// 设置 cookie 一定要存 uuid 和 token 两个 cookie // 设置 cookie 一定要存 uuid 和 token 两个 cookie
// 整个系统依赖这两个数据进行校验和存储 // 整个系统依赖这两个数据进行校验和存储
// uuid 是用户身份唯一标识 用户注册的时候确定 并且不可改变 不可重复 // uuid 是用户身份唯一标识 用户注册的时候确定 并且不可改变 不可重复
@@ -32,19 +26,9 @@ export default {
util.cookies.set('uuid', res.uuid) util.cookies.set('uuid', res.uuid)
util.cookies.set('token', res.token) util.cookies.set('token', res.token)
// 设置 vuex 用户信息 // 设置 vuex 用户信息
await dispatch('d2admin/user/set', { await dispatch('d2admin/user/set', { name: res.name }, { root: true })
name: res.name
}, { root: true })
// 用户登录后从持久化数据加载一系列的设置 // 用户登录后从持久化数据加载一系列的设置
await dispatch('load') await dispatch('load')
// 结束
resolve()
})
.catch(err => {
console.log('err: ', err)
reject(err)
})
})
}, },
/** /**
* @description 注销用户并返回登录页面 * @description 注销用户并返回登录页面
@@ -62,25 +46,19 @@ export default {
// 清空 vuex 用户信息 // 清空 vuex 用户信息
await dispatch('d2admin/user/set', {}, { root: true }) await dispatch('d2admin/user/set', {}, { root: true })
// 跳转路由 // 跳转路由
router.push({ router.push({ name: 'login' })
name: 'login'
})
} }
// 判断是否需要确认 // 判断是否需要确认
if (confirm) { if (confirm) {
commit('d2admin/gray/set', true, { root: true }) commit('d2admin/gray/set', true, { root: true })
MessageBox.confirm('确定要注销当前用户吗', '注销用户', { MessageBox.confirm('确定要注销当前用户吗', '注销用户', { type: 'warning' })
type: 'warning'
})
.then(() => { .then(() => {
commit('d2admin/gray/set', false, { root: true }) commit('d2admin/gray/set', false, { root: true })
logout() logout()
}) })
.catch(() => { .catch(() => {
commit('d2admin/gray/set', false, { root: true }) commit('d2admin/gray/set', false, { root: true })
Message({ Message({ message: '取消注销操作' })
message: '取消注销操作'
})
}) })
} else { } else {
logout() logout()
@@ -90,25 +68,21 @@ export default {
* @description 用户登录后从持久化数据加载一系列的设置 * @description 用户登录后从持久化数据加载一系列的设置
* @param {Object} context * @param {Object} context
*/ */
load ({ dispatch }) { async load ({ dispatch }) {
return new Promise(async resolve => { // 加载用户名
// DB -> store 加载用户名
await dispatch('d2admin/user/load', null, { root: true }) await dispatch('d2admin/user/load', null, { root: true })
// DB -> store 加载主题 // 加载主题
await dispatch('d2admin/theme/load', null, { root: true }) await dispatch('d2admin/theme/load', null, { root: true })
// DB -> store 加载页面过渡效果设置 // 加载页面过渡效果设置
await dispatch('d2admin/transition/load', null, { root: true }) await dispatch('d2admin/transition/load', null, { root: true })
// DB -> store 持久化数据加载上次退出时的多页列表 // 持久化数据加载上次退出时的多页列表
await dispatch('d2admin/page/openedLoad', null, { root: true }) await dispatch('d2admin/page/openedLoad', null, { root: true })
// DB -> store 持久化数据加载侧边栏折叠状态 // 持久化数据加载侧边栏折叠状态
await dispatch('d2admin/menu/asideCollapseLoad', null, { root: true }) await dispatch('d2admin/menu/asideCollapseLoad', null, { root: true })
// DB -> store 持久化数据加载全局尺寸 // 持久化数据加载全局尺寸
await dispatch('d2admin/size/load', null, { root: true }) await dispatch('d2admin/size/load', null, { root: true })
// DB -> store 持久化数据加载颜色设置 // 持久化数据加载颜色设置
await dispatch('d2admin/color/load', null, { root: true }) await dispatch('d2admin/color/load', null, { root: true })
// end
resolve()
})
} }
} }
} }

View File

@@ -1,3 +1,4 @@
import { cloneDeep } from 'lodash'
import client from 'webpack-theme-color-replacer/client' import client from 'webpack-theme-color-replacer/client'
import forElementUI from 'webpack-theme-color-replacer/forElementUI' import forElementUI from 'webpack-theme-color-replacer/forElementUI'
@@ -13,8 +14,7 @@ export default {
* @param {Object} context * @param {Object} context
* @param {String} color 尺寸 * @param {String} color 尺寸
*/ */
set ({ state, dispatch, commit }, color) { async set ({ state, dispatch, commit }, color) {
return new Promise(async resolve => {
// 记录上个值 // 记录上个值
const old = state.value const old = state.value
// store 赋值 // store 赋值
@@ -31,16 +31,12 @@ export default {
oldColor: old, oldColor: old,
newColor: state.value newColor: state.value
}) })
// end
resolve()
})
}, },
/** /**
* @description 从持久化数据读取颜色设置 * @description 从持久化数据读取颜色设置
* @param {Object} context * @param {Object} context
*/ */
load ({ state, dispatch, commit }) { async load ({ state, dispatch, commit }) {
return new Promise(async resolve => {
// 记录上个值 // 记录上个值
const old = state.value const old = state.value
// store 赋值 // store 赋值
@@ -55,9 +51,6 @@ export default {
oldColor: old, oldColor: old,
newColor: state.value newColor: state.value
}) })
// end
resolve()
})
} }
}, },
mutations: { mutations: {
@@ -69,8 +62,8 @@ export default {
*/ */
apply (state, { oldColor, newColor }) { apply (state, { oldColor, newColor }) {
var options = { var options = {
oldColors: [...forElementUI.getElementUISeries(oldColor)], oldColors: cloneDeep(forElementUI.getElementUISeries(oldColor)),
newColors: [...forElementUI.getElementUISeries(newColor)] newColors: cloneDeep(forElementUI.getElementUISeries(newColor))
} }
client.changer.changeColor(options) client.changer.changeColor(options)
} }

View File

@@ -23,7 +23,6 @@ export default {
* @param {Object} context * @param {Object} context
*/ */
toggle ({ commit }) { toggle ({ commit }) {
return new Promise(resolve => {
if (screenfull.isFullscreen) { if (screenfull.isFullscreen) {
screenfull.exit() screenfull.exit()
commit('set', false) commit('set', false)
@@ -31,9 +30,6 @@ export default {
screenfull.request() screenfull.request()
commit('set', true) commit('set', true)
} }
// end
resolve()
})
} }
}, },
mutations: { mutations: {

View File

@@ -17,8 +17,7 @@ export default {
* @param {Object} context * @param {Object} context
* @param {Boolean} collapse is collapse * @param {Boolean} collapse is collapse
*/ */
asideCollapseSet ({ state, dispatch }, collapse) { async asideCollapseSet ({ state, dispatch }, collapse) {
return new Promise(async resolve => {
// store 赋值 // store 赋值
state.asideCollapse = collapse state.asideCollapse = collapse
// 持久化 // 持久化
@@ -28,16 +27,12 @@ export default {
value: state.asideCollapse, value: state.asideCollapse,
user: true user: true
}, { root: true }) }, { root: true })
// end
resolve()
})
}, },
/** /**
* 切换侧边栏展开和收缩 * 切换侧边栏展开和收缩
* @param {Object} context * @param {Object} context
*/ */
asideCollapseToggle ({ state, dispatch }) { async asideCollapseToggle ({ state, dispatch }) {
return new Promise(async resolve => {
// store 赋值 // store 赋值
state.asideCollapse = !state.asideCollapse state.asideCollapse = !state.asideCollapse
// 持久化 // 持久化
@@ -47,16 +42,12 @@ export default {
value: state.asideCollapse, value: state.asideCollapse,
user: true user: true
}, { root: true }) }, { root: true })
// end
resolve()
})
}, },
/** /**
* 从持久化数据读取侧边栏展开或者收缩 * 从持久化数据读取侧边栏展开或者收缩
* @param {Object} context * @param {Object} context
*/ */
asideCollapseLoad ({ state, dispatch }) { async asideCollapseLoad ({ state, dispatch }) {
return new Promise(async resolve => {
// store 赋值 // store 赋值
state.asideCollapse = await dispatch('d2admin/db/get', { state.asideCollapse = await dispatch('d2admin/db/get', {
dbName: 'sys', dbName: 'sys',
@@ -64,9 +55,6 @@ export default {
defaultValue: setting.menu.asideCollapse, defaultValue: setting.menu.asideCollapse,
user: true user: true
}, { root: true }) }, { root: true })
// end
resolve()
})
} }
}, },
mutations: { mutations: {

View File

@@ -11,7 +11,7 @@ export default {
// 可以在多页 tab 模式下显示的页面 // 可以在多页 tab 模式下显示的页面
pool: [], pool: [],
// 当前显示的多页面列表 // 当前显示的多页面列表
opened: setting.page.opened, opened: get(setting, 'page.opened', []),
// 已经加载多标签页数据 https://github.com/d2-projects/d2-admin/issues/201 // 已经加载多标签页数据 https://github.com/d2-projects/d2-admin/issues/201
openedLoaded: false, openedLoaded: false,
// 当前页面 // 当前页面
@@ -28,9 +28,7 @@ export default {
if (state.openedLoaded) return Promise.resolve() if (state.openedLoaded) return Promise.resolve()
return new Promise(resolve => { return new Promise(resolve => {
const timer = setInterval(() => { const timer = setInterval(() => {
if (state.openedLoaded) { if (state.openedLoaded) resolve(clearInterval(timer))
resolve(clearInterval(timer))
}
}, 10) }, 10)
}) })
}, },
@@ -39,8 +37,7 @@ export default {
* @description 从持久化数据载入标签页列表 * @description 从持久化数据载入标签页列表
* @param {Object} context * @param {Object} context
*/ */
openedLoad ({ state, commit, dispatch }) { async openedLoad ({ state, commit, dispatch }) {
return new Promise(async resolve => {
// store 赋值 // store 赋值
const value = await dispatch('d2admin/db/get', { const value = await dispatch('d2admin/db/get', {
dbName: 'sys', dbName: 'sys',
@@ -54,7 +51,8 @@ export default {
// valid 有效列表 1, 1, 0, 1 => 有效, 有效, 失效, 有效 // valid 有效列表 1, 1, 0, 1 => 有效, 有效, 失效, 有效
const valid = [] const valid = []
// 处理数据 // 处理数据
state.opened = value.map(opened => { state.opened = value
.map(opened => {
// 忽略首页 // 忽略首页
if (opened.fullPath === '/index') { if (opened.fullPath === '/index') {
valid.push(1) valid.push(1)
@@ -67,21 +65,18 @@ export default {
// 返回合并后的数据 新的覆盖旧的 // 返回合并后的数据 新的覆盖旧的
// 新的数据中一般不会携带 params 和 query, 所以旧的参数会留存 // 新的数据中一般不会携带 params 和 query, 所以旧的参数会留存
return Object.assign({}, opened, find) return Object.assign({}, opened, find)
}).filter((opened, index) => valid[index] === 1) })
.filter((opened, index) => valid[index] === 1)
// 标记已经加载多标签页数据 https://github.com/d2-projects/d2-admin/issues/201 // 标记已经加载多标签页数据 https://github.com/d2-projects/d2-admin/issues/201
state.openedLoaded = true state.openedLoaded = true
// 根据 opened 数据生成缓存设置 // 根据 opened 数据生成缓存设置
commit('keepAliveRefresh') commit('keepAliveRefresh')
// end
resolve()
})
}, },
/** /**
* 将 opened 属性赋值并持久化 在这之前请先确保已经更新了 state.opened * 将 opened 属性赋值并持久化 在这之前请先确保已经更新了 state.opened
* @param {Object} context * @param {Object} context
*/ */
opened2db ({ state, dispatch }) { async opened2db ({ state, dispatch }) {
return new Promise(async resolve => {
// 设置数据 // 设置数据
dispatch('d2admin/db/set', { dispatch('d2admin/db/set', {
dbName: 'sys', dbName: 'sys',
@@ -89,9 +84,6 @@ export default {
value: state.opened, value: state.opened,
user: true user: true
}, { root: true }) }, { root: true })
// end
resolve()
})
}, },
/** /**
* @class opened * @class opened
@@ -99,8 +91,7 @@ export default {
* @param {Object} context * @param {Object} context
* @param {Object} payload { index, params, query, fullPath } 路由信息 * @param {Object} payload { index, params, query, fullPath } 路由信息
*/ */
openedUpdate ({ state, commit, dispatch }, { index, params, query, fullPath }) { async openedUpdate ({ state, commit, dispatch }, { index, params, query, fullPath }) {
return new Promise(async resolve => {
// 更新页面列表某一项 // 更新页面列表某一项
let page = state.opened[index] let page = state.opened[index]
page.params = params || page.params page.params = params || page.params
@@ -109,9 +100,6 @@ export default {
state.opened.splice(index, 1, page) state.opened.splice(index, 1, page)
// 持久化 // 持久化
await dispatch('opened2db') await dispatch('opened2db')
// end
resolve()
})
}, },
/** /**
* @class opened * @class opened
@@ -119,17 +107,13 @@ export default {
* @param {Object} context * @param {Object} context
* @param {Object} payload { oldIndex, newIndex } 位置信息 * @param {Object} payload { oldIndex, newIndex } 位置信息
*/ */
openedSort ({ state, commit, dispatch }, { oldIndex, newIndex }) { async openedSort ({ state, commit, dispatch }, { oldIndex, newIndex }) {
return new Promise(async resolve => {
// 重排页面列表某一项 // 重排页面列表某一项
let page = state.opened[oldIndex] let page = state.opened[oldIndex]
state.opened.splice(oldIndex, 1) state.opened.splice(oldIndex, 1)
state.opened.splice(newIndex, 0, page) state.opened.splice(newIndex, 0, page)
// 持久化 // 持久化
await dispatch('opened2db') await dispatch('opened2db')
// end
resolve()
})
}, },
/** /**
* @class opened * @class opened
@@ -137,8 +121,7 @@ export default {
* @param {Object} context * @param {Object} context
* @param {Object} payload new tag info * @param {Object} payload new tag info
*/ */
add ({ state, commit, dispatch }, { tag, params, query, fullPath }) { async add ({ state, commit, dispatch }, { tag, params, query, fullPath }) {
return new Promise(async resolve => {
// 设置新的 tag 在新打开一个以前没打开过的页面时使用 // 设置新的 tag 在新打开一个以前没打开过的页面时使用
let newTag = tag let newTag = tag
newTag.params = params || newTag.params newTag.params = params || newTag.params
@@ -147,14 +130,9 @@ export default {
// 添加进当前显示的页面数组 // 添加进当前显示的页面数组
state.opened.push(newTag) state.opened.push(newTag)
// 如果这个页面需要缓存 将其添加到缓存设置 // 如果这个页面需要缓存 将其添加到缓存设置
if (isKeepAlive(newTag)) { if (isKeepAlive(newTag)) commit('keepAlivePush', tag.name)
commit('keepAlivePush', tag.name)
}
// 持久化 // 持久化
await dispatch('opened2db') await dispatch('opened2db')
// end
resolve()
})
}, },
/** /**
* @class current * @class current
@@ -162,8 +140,7 @@ export default {
* @param {Object} context * @param {Object} context
* @param {Object} payload 从路由钩子的 to 对象上获取 { name, params, query, fullPath, meta } 路由信息 * @param {Object} payload 从路由钩子的 to 对象上获取 { name, params, query, fullPath, meta } 路由信息
*/ */
open ({ state, commit, dispatch }, { name, params, query, fullPath, meta }) { async open ({ state, commit, dispatch }, { name, params, query, fullPath, meta }) {
return new Promise(async resolve => {
// 已经打开的页面 // 已经打开的页面
let opened = state.opened let opened = state.opened
// 判断此页面是否已经打开 并且记录位置 // 判断此页面是否已经打开 并且记录位置
@@ -195,14 +172,9 @@ export default {
} }
} }
// 如果这个页面需要缓存 将其添加到缓存设置 // 如果这个页面需要缓存 将其添加到缓存设置
if (isKeepAlive({ meta })) { if (isKeepAlive({ meta })) commit('keepAlivePush', name)
commit('keepAlivePush', name)
}
// 设置当前的页面 // 设置当前的页面
commit('currentSet', fullPath) commit('currentSet', fullPath)
// end
resolve()
})
}, },
/** /**
* @class opened * @class opened
@@ -210,8 +182,7 @@ export default {
* @param {Object} context * @param {Object} context
* @param {Object} payload { tagName: 要关闭的标签名字 } * @param {Object} payload { tagName: 要关闭的标签名字 }
*/ */
close ({ state, commit, dispatch }, { tagName }) { async close ({ state, commit, dispatch }, { tagName }) {
return new Promise(async resolve => {
// 下个新的页面 // 下个新的页面
let newPage = state.opened[0] let newPage = state.opened[0]
const isCurrent = state.current === tagName const isCurrent = state.current === tagName
@@ -221,11 +192,8 @@ export default {
let len = state.opened.length let len = state.opened.length
for (let i = 1; i < len; i++) { for (let i = 1; i < len; i++) {
if (state.opened[i].fullPath === tagName) { if (state.opened[i].fullPath === tagName) {
if (i < len - 1) { if (i < len - 1) newPage = state.opened[i + 1]
newPage = state.opened[i + 1] else newPage = state.opened[i - 1]
} else {
newPage = state.opened[i - 1]
}
break break
} }
} }
@@ -250,9 +218,6 @@ export default {
} }
router.push(routerObj) router.push(routerObj)
} }
// end
resolve()
})
}, },
/** /**
* @class opened * @class opened
@@ -260,28 +225,20 @@ export default {
* @param {Object} context * @param {Object} context
* @param {Object} payload { pageSelect: 当前选中的tagName } * @param {Object} payload { pageSelect: 当前选中的tagName }
*/ */
closeLeft ({ state, commit, dispatch }, { pageSelect } = {}) { async closeLeft ({ state, commit, dispatch }, { pageSelect } = {}) {
return new Promise(async resolve => {
const pageAim = pageSelect || state.current const pageAim = pageSelect || state.current
let currentIndex = 0 let currentIndex = 0
state.opened.forEach((page, index) => { state.opened.forEach((page, index) => {
if (page.fullPath === pageAim) { if (page.fullPath === pageAim) currentIndex = index
currentIndex = index
}
}) })
if (currentIndex > 0) { if (currentIndex > 0) {
// 删除打开的页面 并在缓存设置中删除 // 删除打开的页面 并在缓存设置中删除
state.opened.splice(1, currentIndex - 1).forEach(({ name }) => commit('keepAliveRemove', name)) state.opened.splice(1, currentIndex - 1).forEach(({ name }) => commit('keepAliveRemove', name))
} }
state.current = pageAim state.current = pageAim
if (router.app.$route.fullPath !== pageAim) { if (router.app.$route.fullPath !== pageAim) router.push(pageAim)
router.push(pageAim)
}
// 持久化 // 持久化
await dispatch('opened2db') await dispatch('opened2db')
// end
resolve()
})
}, },
/** /**
* @class opened * @class opened
@@ -289,27 +246,19 @@ export default {
* @param {Object} context * @param {Object} context
* @param {Object} payload { pageSelect: 当前选中的tagName } * @param {Object} payload { pageSelect: 当前选中的tagName }
*/ */
closeRight ({ state, commit, dispatch }, { pageSelect } = {}) { async closeRight ({ state, commit, dispatch }, { pageSelect } = {}) {
return new Promise(async resolve => {
const pageAim = pageSelect || state.current const pageAim = pageSelect || state.current
let currentIndex = 0 let currentIndex = 0
state.opened.forEach((page, index) => { state.opened.forEach((page, index) => {
if (page.fullPath === pageAim) { if (page.fullPath === pageAim) currentIndex = index
currentIndex = index
}
}) })
// 删除打开的页面 并在缓存设置中删除 // 删除打开的页面 并在缓存设置中删除
state.opened.splice(currentIndex + 1).forEach(({ name }) => commit('keepAliveRemove', name)) state.opened.splice(currentIndex + 1).forEach(({ name }) => commit('keepAliveRemove', name))
// 设置当前的页面 // 设置当前的页面
state.current = pageAim state.current = pageAim
if (router.app.$route.fullPath !== pageAim) { if (router.app.$route.fullPath !== pageAim) router.push(pageAim)
router.push(pageAim)
}
// 持久化 // 持久化
await dispatch('opened2db') await dispatch('opened2db')
// end
resolve()
})
}, },
/** /**
* @class opened * @class opened
@@ -317,14 +266,11 @@ export default {
* @param {Object} context * @param {Object} context
* @param {Object} payload { pageSelect: 当前选中的tagName } * @param {Object} payload { pageSelect: 当前选中的tagName }
*/ */
closeOther ({ state, commit, dispatch }, { pageSelect } = {}) { async closeOther ({ state, commit, dispatch }, { pageSelect } = {}) {
return new Promise(async resolve => {
const pageAim = pageSelect || state.current const pageAim = pageSelect || state.current
let currentIndex = 0 let currentIndex = 0
state.opened.forEach((page, index) => { state.opened.forEach((page, index) => {
if (page.fullPath === pageAim) { if (page.fullPath === pageAim) currentIndex = index
currentIndex = index
}
}) })
// 删除打开的页面数据 并更新缓存设置 // 删除打开的页面数据 并更新缓存设置
if (currentIndex === 0) { if (currentIndex === 0) {
@@ -335,35 +281,24 @@ export default {
} }
// 设置新的页面 // 设置新的页面
state.current = pageAim state.current = pageAim
if (router.app.$route.fullPath !== pageAim) { if (router.app.$route.fullPath !== pageAim) router.push(pageAim)
router.push(pageAim)
}
// 持久化 // 持久化
await dispatch('opened2db') await dispatch('opened2db')
// end
resolve()
})
}, },
/** /**
* @class opened * @class opened
* @description 关闭所有 tag * @description 关闭所有 tag
* @param {Object} context * @param {Object} context
*/ */
closeAll ({ state, commit, dispatch }) { async closeAll ({ state, commit, dispatch }) {
return new Promise(async resolve => {
// 删除打开的页面 并在缓存设置中删除 // 删除打开的页面 并在缓存设置中删除
state.opened.splice(1).forEach(({ name }) => commit('keepAliveRemove', name)) state.opened.splice(1).forEach(({ name }) => commit('keepAliveRemove', name))
// 持久化 // 持久化
await dispatch('opened2db') await dispatch('opened2db')
// 关闭所有的标签页后需要判断一次现在是不是在首页 // 关闭所有的标签页后需要判断一次现在是不是在首页
if (router.app.$route.name !== 'index') { if (router.app.$route.name !== 'index') {
router.push({ router.push({ name: 'index' })
name: 'index'
})
} }
// end
resolve()
})
} }
}, },
mutations: { mutations: {
@@ -381,9 +316,8 @@ export default {
* @param {String} name name * @param {String} name name
*/ */
keepAliveRemove (state, name) { keepAliveRemove (state, name) {
const list = [ ...state.keepAlive ] const list = cloneDeep(state.keepAlive)
const index = list.findIndex(item => item === name) const index = list.findIndex(item => item === name)
if (index !== -1) { if (index !== -1) {
list.splice(index, 1) list.splice(index, 1)
state.keepAlive = list state.keepAlive = list

View File

@@ -28,9 +28,7 @@ export default {
if (state.value) return Promise.resolve() if (state.value) return Promise.resolve()
return new Promise(resolve => { return new Promise(resolve => {
const timer = setInterval(() => { const timer = setInterval(() => {
if (state.value) { if (state.value) resolve(clearInterval(timer))
resolve(clearInterval(timer))
}
}, 10) }, 10)
}) })
}, },
@@ -39,8 +37,7 @@ export default {
* @param {Object} context * @param {Object} context
* @param {String} size 尺寸 * @param {String} size 尺寸
*/ */
set ({ state, dispatch }, size) { async set ({ state, dispatch }, size) {
return new Promise(async resolve => {
// store 赋值 // store 赋值
state.value = size state.value = size
// 应用 // 应用
@@ -52,16 +49,12 @@ export default {
value: state.value, value: state.value,
user: true user: true
}, { root: true }) }, { root: true })
// end
resolve()
})
}, },
/** /**
* @description 从持久化数据读取尺寸设置 * @description 从持久化数据读取尺寸设置
* @param {Object} context * @param {Object} context
*/ */
load ({ state, dispatch }) { async load ({ state, dispatch }) {
return new Promise(async resolve => {
// store 赋值 // store 赋值
state.value = await dispatch('d2admin/db/get', { state.value = await dispatch('d2admin/db/get', {
dbName: 'sys', dbName: 'sys',
@@ -71,9 +64,6 @@ export default {
}, { root: true }) }, { root: true })
// 应用 // 应用
dispatch('apply') dispatch('apply')
// end
resolve()
})
} }
} }
} }

View File

@@ -1,13 +1,13 @@
// 设置文件 import { get } from 'lodash'
import setting from '@/setting.js' import setting from '@/setting.js'
export default { export default {
namespaced: true, namespaced: true,
state: { state: {
// 主题 // 主题
list: setting.theme.list, list: get(setting, 'theme.list', []),
// 现在激活的主题 这应该是一个名字 不是对象 // 现在激活的主题 这应该是一个名字 不是对象
activeName: setting.theme.list[0].name activeName: get(setting, 'theme.list[0].name', 'd2')
}, },
getters: { getters: {
/** /**
@@ -23,8 +23,7 @@ export default {
* @description 激活一个主题 * @description 激活一个主题
* @param {String} themeValue 需要激活的主题名称 * @param {String} themeValue 需要激活的主题名称
*/ */
set ({ state, commit, dispatch }, themeName) { async set ({ state, commit, dispatch }, themeName) {
return new Promise(async resolve => {
// 检查这个主题在主题列表里是否存在 // 检查这个主题在主题列表里是否存在
state.activeName = state.list.find(e => e.name === themeName) ? themeName : state.list[0].name state.activeName = state.list.find(e => e.name === themeName) ? themeName : state.list[0].name
// 将 vuex 中的主题应用到 dom // 将 vuex 中的主题应用到 dom
@@ -36,15 +35,11 @@ export default {
value: state.activeName, value: state.activeName,
user: true user: true
}, { root: true }) }, { root: true })
// end
resolve()
})
}, },
/** /**
* @description 从持久化数据加载主题设置 * @param {Object} context * @description 从持久化数据加载主题设置 * @param {Object} context
*/ */
load ({ state, commit, dispatch }) { async load ({ state, commit, dispatch }) {
return new Promise(async resolve => {
// store 赋值 // store 赋值
let activeName = await dispatch('d2admin/db/get', { let activeName = await dispatch('d2admin/db/get', {
dbName: 'sys', dbName: 'sys',
@@ -67,9 +62,6 @@ export default {
} }
// 将 vuex 中的主题应用到 dom // 将 vuex 中的主题应用到 dom
commit('dom') commit('dom')
// end
resolve()
})
} }
}, },
mutations: { mutations: {

View File

@@ -13,8 +13,7 @@ export default {
* @param {Object} context * @param {Object} context
* @param {Boolean} active 新的状态 * @param {Boolean} active 新的状态
*/ */
set ({ state, dispatch }, active) { async set ({ state, dispatch }, active) {
return new Promise(async resolve => {
// store 赋值 // store 赋值
state.active = active state.active = active
// 持久化 // 持久化
@@ -24,16 +23,12 @@ export default {
value: state.active, value: state.active,
user: true user: true
}, { root: true }) }, { root: true })
// end
resolve()
})
}, },
/** /**
* 从数据库读取页面过渡动画设置 * 从数据库读取页面过渡动画设置
* @param {Object} context * @param {Object} context
*/ */
load ({ state, dispatch }) { async load ({ state, dispatch }) {
return new Promise(async resolve => {
// store 赋值 // store 赋值
state.active = await dispatch('d2admin/db/get', { state.active = await dispatch('d2admin/db/get', {
dbName: 'sys', dbName: 'sys',
@@ -41,9 +36,6 @@ export default {
defaultValue: setting.transition.active, defaultValue: setting.transition.active,
user: true user: true
}, { root: true }) }, { root: true })
// end
resolve()
})
} }
} }
} }

View File

@@ -10,8 +10,7 @@ export default {
* @param {Object} context * @param {Object} context
* @param {*} info info * @param {*} info info
*/ */
set ({ state, dispatch }, info) { async set ({ state, dispatch }, info) {
return new Promise(async resolve => {
// store 赋值 // store 赋值
state.info = info state.info = info
// 持久化 // 持久化
@@ -21,16 +20,12 @@ export default {
value: info, value: info,
user: true user: true
}, { root: true }) }, { root: true })
// end
resolve()
})
}, },
/** /**
* @description 从数据库取用户数据 * @description 从数据库取用户数据
* @param {Object} context * @param {Object} context
*/ */
load ({ state, dispatch }) { async load ({ state, dispatch }) {
return new Promise(async resolve => {
// store 赋值 // store 赋值
state.info = await dispatch('d2admin/db/get', { state.info = await dispatch('d2admin/db/get', {
dbName: 'sys', dbName: 'sys',
@@ -38,9 +33,6 @@ export default {
defaultValue: {}, defaultValue: {},
user: true user: true
}, { root: true }) }, { root: true })
// end
resolve()
})
} }
} }
} }

View File

@@ -17,7 +17,7 @@
</template> </template>
<script> <script>
import { BusinessTable1List } from '@api/demo.business.table.1' import { businessTable1List } from '@api/demo.business.table.1'
export default { export default {
// name 值和本页的 $route.name 一致才可以缓存页面 // name 值和本页的 $route.name 一致才可以缓存页面
name: 'demo-business-table-1', name: 'demo-business-table-1',
@@ -57,7 +57,7 @@ export default {
this.$notify({ this.$notify({
title: '开始请求模拟表格数据' title: '开始请求模拟表格数据'
}) })
BusinessTable1List({ businessTable1List({
...form, ...form,
...this.page ...this.page
}) })

View File

@@ -10,7 +10,7 @@ export default `<template>
</template> </template>
<script> <script>
import { BusinessTable1List } from '@api/demo.business.table.1' import { businessTable1List } from '@api/demo.business.table.1'
export default { export default {
data () { data () {
@@ -57,7 +57,7 @@ export default {
}, },
fetchData () { fetchData () {
this.loading = true this.loading = true
BusinessTable1List({ businessTable1List({
...this.pagination ...this.pagination
}).then(res => { }).then(res => {
this.data = res.list this.data = res.list

View File

@@ -24,7 +24,7 @@
import '../install' import '../install'
import doc from './doc.md' import doc from './doc.md'
import code from './code.js' import code from './code.js'
import { BusinessTable1List } from '@api/demo.business.table.1' import { businessTable1List } from '@api/demo.business.table.1'
export default { export default {
data () { data () {
@@ -73,7 +73,7 @@ export default {
}, },
fetchData () { fetchData () {
this.loading = true this.loading = true
BusinessTable1List({ businessTable1List({
...this.pagination ...this.pagination
}).then(res => { }).then(res => {
this.data = res.list this.data = res.list

View File

@@ -23,7 +23,7 @@
</template> </template>
<script> <script>
import { PluginMocksAjax } from '@api/demo.plugins.mocks.ajax' import { pluginMocksAjax } from '@api/demo.plugins.mocks.ajax'
export default { export default {
name: 'demo-plugins-mock-ajax', name: 'demo-plugins-mock-ajax',
data () { data () {
@@ -39,7 +39,7 @@ export default {
}, },
methods: { methods: {
ajax () { ajax () {
PluginMocksAjax() pluginMocksAjax()
.then(res => { .then(res => {
this.table.columns = Object.keys(res.list[0]).map(e => ({ this.table.columns = Object.keys(res.list[0]).map(e => ({
label: e, label: e,