style: 移除 store 中无用的 Promise 声明以及优化代码格式 增强部分健壮性
This commit is contained in:
@@ -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,
|
||||||
|
|||||||
@@ -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',
|
||||||
|
|||||||
@@ -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'
|
||||||
|
|||||||
@@ -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',
|
||||||
|
|||||||
@@ -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) {
|
||||||
|
|||||||
@@ -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,38 +13,22 @@ 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 })
|
||||||
// 开始请求登录接口
|
// 设置 cookie 一定要存 uuid 和 token 两个 cookie
|
||||||
AccountLogin({
|
// 整个系统依赖这两个数据进行校验和存储
|
||||||
username,
|
// uuid 是用户身份唯一标识 用户注册的时候确定 并且不可改变 不可重复
|
||||||
password
|
// token 代表用户当前登录状态 建议在网络请求中携带 token
|
||||||
})
|
// 如有必要 token 需要定时更新,默认保存一天
|
||||||
.then(async res => {
|
util.cookies.set('uuid', res.uuid)
|
||||||
// 设置 cookie 一定要存 uuid 和 token 两个 cookie
|
util.cookies.set('token', res.token)
|
||||||
// 整个系统依赖这两个数据进行校验和存储
|
// 设置 vuex 用户信息
|
||||||
// uuid 是用户身份唯一标识 用户注册的时候确定 并且不可改变 不可重复
|
await dispatch('d2admin/user/set', { name: res.name }, { root: true })
|
||||||
// token 代表用户当前登录状态 建议在网络请求中携带 token
|
// 用户登录后从持久化数据加载一系列的设置
|
||||||
// 如有必要 token 需要定时更新,默认保存一天
|
await dispatch('load')
|
||||||
util.cookies.set('uuid', res.uuid)
|
|
||||||
util.cookies.set('token', res.token)
|
|
||||||
// 设置 vuex 用户信息
|
|
||||||
await dispatch('d2admin/user/set', {
|
|
||||||
name: res.name
|
|
||||||
}, { root: true })
|
|
||||||
// 用户登录后从持久化数据加载一系列的设置
|
|
||||||
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()
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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,50 +14,42 @@ 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 赋值
|
state.value = color || process.env.VUE_APP_ELEMENT_COLOR
|
||||||
state.value = color || process.env.VUE_APP_ELEMENT_COLOR
|
// 持久化
|
||||||
// 持久化
|
await dispatch('d2admin/db/set', {
|
||||||
await dispatch('d2admin/db/set', {
|
dbName: 'sys',
|
||||||
dbName: 'sys',
|
path: 'color.value',
|
||||||
path: 'color.value',
|
value: state.value,
|
||||||
value: state.value,
|
user: true
|
||||||
user: true
|
}, { root: true })
|
||||||
}, { root: true })
|
// 应用
|
||||||
// 应用
|
commit('apply', {
|
||||||
commit('apply', {
|
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 赋值
|
state.value = await dispatch('d2admin/db/get', {
|
||||||
state.value = await dispatch('d2admin/db/get', {
|
dbName: 'sys',
|
||||||
dbName: 'sys',
|
path: 'color.value',
|
||||||
path: 'color.value',
|
defaultValue: process.env.VUE_APP_ELEMENT_COLOR,
|
||||||
defaultValue: process.env.VUE_APP_ELEMENT_COLOR,
|
user: true
|
||||||
user: true
|
}, { root: true })
|
||||||
}, { root: true })
|
// 应用
|
||||||
// 应用
|
commit('apply', {
|
||||||
commit('apply', {
|
oldColor: old,
|
||||||
oldColor: old,
|
newColor: state.value
|
||||||
newColor: state.value
|
|
||||||
})
|
|
||||||
// end
|
|
||||||
resolve()
|
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -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)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -23,17 +23,13 @@ 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)
|
} else {
|
||||||
} else {
|
screenfull.request()
|
||||||
screenfull.request()
|
commit('set', true)
|
||||||
commit('set', true)
|
}
|
||||||
}
|
|
||||||
// end
|
|
||||||
resolve()
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
mutations: {
|
mutations: {
|
||||||
|
|||||||
@@ -17,56 +17,44 @@ 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
|
// 持久化
|
||||||
// 持久化
|
await dispatch('d2admin/db/set', {
|
||||||
await dispatch('d2admin/db/set', {
|
dbName: 'sys',
|
||||||
dbName: 'sys',
|
path: 'menu.asideCollapse',
|
||||||
path: 'menu.asideCollapse',
|
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
|
// 持久化
|
||||||
// 持久化
|
await dispatch('d2admin/db/set', {
|
||||||
await dispatch('d2admin/db/set', {
|
dbName: 'sys',
|
||||||
dbName: 'sys',
|
path: 'menu.asideCollapse',
|
||||||
path: 'menu.asideCollapse',
|
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',
|
path: 'menu.asideCollapse',
|
||||||
path: 'menu.asideCollapse',
|
defaultValue: setting.menu.asideCollapse,
|
||||||
defaultValue: setting.menu.asideCollapse,
|
user: true
|
||||||
user: true
|
}, { root: true })
|
||||||
}, { root: true })
|
|
||||||
// end
|
|
||||||
resolve()
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
mutations: {
|
mutations: {
|
||||||
|
|||||||
@@ -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,22 +37,22 @@ 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',
|
path: 'page.opened',
|
||||||
path: 'page.opened',
|
defaultValue: setting.page.opened,
|
||||||
defaultValue: setting.page.opened,
|
user: true
|
||||||
user: true
|
}, { root: true })
|
||||||
}, { root: true })
|
// 在处理函数中进行数据优化 过滤掉现在已经失效的页签或者已经改变了信息的页签
|
||||||
// 在处理函数中进行数据优化 过滤掉现在已经失效的页签或者已经改变了信息的页签
|
// 以 fullPath 字段为准
|
||||||
// 以 fullPath 字段为准
|
// 如果页面过多的话可能需要优化算法
|
||||||
// 如果页面过多的话可能需要优化算法
|
// valid 有效列表 1, 1, 0, 1 => 有效, 有效, 失效, 有效
|
||||||
// valid 有效列表 1, 1, 0, 1 => 有效, 有效, 失效, 有效
|
const valid = []
|
||||||
const valid = []
|
// 处理数据
|
||||||
// 处理数据
|
state.opened = value
|
||||||
state.opened = value.map(opened => {
|
.map(opened => {
|
||||||
// 忽略首页
|
// 忽略首页
|
||||||
if (opened.fullPath === '/index') {
|
if (opened.fullPath === '/index') {
|
||||||
valid.push(1)
|
valid.push(1)
|
||||||
@@ -67,31 +65,25 @@ export default {
|
|||||||
// 返回合并后的数据 新的覆盖旧的
|
// 返回合并后的数据 新的覆盖旧的
|
||||||
// 新的数据中一般不会携带 params 和 query, 所以旧的参数会留存
|
// 新的数据中一般不会携带 params 和 query, 所以旧的参数会留存
|
||||||
return Object.assign({}, opened, find)
|
return Object.assign({}, opened, find)
|
||||||
}).filter((opened, index) => valid[index] === 1)
|
})
|
||||||
// 标记已经加载多标签页数据 https://github.com/d2-projects/d2-admin/issues/201
|
.filter((opened, index) => valid[index] === 1)
|
||||||
state.openedLoaded = true
|
// 标记已经加载多标签页数据 https://github.com/d2-projects/d2-admin/issues/201
|
||||||
// 根据 opened 数据生成缓存设置
|
state.openedLoaded = true
|
||||||
commit('keepAliveRefresh')
|
// 根据 opened 数据生成缓存设置
|
||||||
// end
|
commit('keepAliveRefresh')
|
||||||
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',
|
path: 'page.opened',
|
||||||
path: 'page.opened',
|
value: state.opened,
|
||||||
value: state.opened,
|
user: true
|
||||||
user: true
|
}, { root: true })
|
||||||
}, { root: true })
|
|
||||||
// end
|
|
||||||
resolve()
|
|
||||||
})
|
|
||||||
},
|
},
|
||||||
/**
|
/**
|
||||||
* @class opened
|
* @class opened
|
||||||
@@ -99,19 +91,15 @@ 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
|
page.query = query || page.query
|
||||||
page.query = query || page.query
|
page.fullPath = fullPath || page.fullPath
|
||||||
page.fullPath = fullPath || page.fullPath
|
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,24 +121,18 @@ 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
|
newTag.query = query || newTag.query
|
||||||
newTag.query = query || newTag.query
|
newTag.fullPath = fullPath || newTag.fullPath
|
||||||
newTag.fullPath = fullPath || newTag.fullPath
|
// 添加进当前显示的页面数组
|
||||||
// 添加进当前显示的页面数组
|
state.opened.push(newTag)
|
||||||
state.opened.push(newTag)
|
// 如果这个页面需要缓存 将其添加到缓存设置
|
||||||
// 如果这个页面需要缓存 将其添加到缓存设置
|
if (isKeepAlive(newTag)) commit('keepAlivePush', tag.name)
|
||||||
if (isKeepAlive(newTag)) {
|
// 持久化
|
||||||
commit('keepAlivePush', tag.name)
|
await dispatch('opened2db')
|
||||||
}
|
|
||||||
// 持久化
|
|
||||||
await dispatch('opened2db')
|
|
||||||
// end
|
|
||||||
resolve()
|
|
||||||
})
|
|
||||||
},
|
},
|
||||||
/**
|
/**
|
||||||
* @class current
|
* @class current
|
||||||
@@ -162,47 +140,41 @@ 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
|
// 判断此页面是否已经打开 并且记录位置
|
||||||
// 判断此页面是否已经打开 并且记录位置
|
let pageOpendIndex = 0
|
||||||
let pageOpendIndex = 0
|
const pageOpend = opened.find((page, index) => {
|
||||||
const pageOpend = opened.find((page, index) => {
|
const same = page.fullPath === fullPath
|
||||||
const same = page.fullPath === fullPath
|
pageOpendIndex = same ? index : pageOpendIndex
|
||||||
pageOpendIndex = same ? index : pageOpendIndex
|
return same
|
||||||
return same
|
})
|
||||||
|
if (pageOpend) {
|
||||||
|
// 页面以前打开过
|
||||||
|
await dispatch('openedUpdate', {
|
||||||
|
index: pageOpendIndex,
|
||||||
|
params,
|
||||||
|
query,
|
||||||
|
fullPath
|
||||||
})
|
})
|
||||||
if (pageOpend) {
|
} else {
|
||||||
// 页面以前打开过
|
// 页面以前没有打开过
|
||||||
await dispatch('openedUpdate', {
|
let page = state.pool.find(t => t.name === name)
|
||||||
index: pageOpendIndex,
|
// 如果这里没有找到 page 代表这个路由虽然在框架内 但是不参与标签页显示
|
||||||
|
if (page) {
|
||||||
|
await dispatch('add', {
|
||||||
|
tag: Object.assign({}, page),
|
||||||
params,
|
params,
|
||||||
query,
|
query,
|
||||||
fullPath
|
fullPath
|
||||||
})
|
})
|
||||||
} else {
|
|
||||||
// 页面以前没有打开过
|
|
||||||
let page = state.pool.find(t => t.name === name)
|
|
||||||
// 如果这里没有找到 page 代表这个路由虽然在框架内 但是不参与标签页显示
|
|
||||||
if (page) {
|
|
||||||
await dispatch('add', {
|
|
||||||
tag: Object.assign({}, page),
|
|
||||||
params,
|
|
||||||
query,
|
|
||||||
fullPath
|
|
||||||
})
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
// 如果这个页面需要缓存 将其添加到缓存设置
|
}
|
||||||
if (isKeepAlive({ meta })) {
|
// 如果这个页面需要缓存 将其添加到缓存设置
|
||||||
commit('keepAlivePush', name)
|
if (isKeepAlive({ meta })) commit('keepAlivePush', name)
|
||||||
}
|
// 设置当前的页面
|
||||||
// 设置当前的页面
|
commit('currentSet', fullPath)
|
||||||
commit('currentSet', fullPath)
|
|
||||||
// end
|
|
||||||
resolve()
|
|
||||||
})
|
|
||||||
},
|
},
|
||||||
/**
|
/**
|
||||||
* @class opened
|
* @class opened
|
||||||
@@ -210,49 +182,42 @@ 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
|
// 如果关闭的页面就是当前显示的页面
|
||||||
// 如果关闭的页面就是当前显示的页面
|
if (isCurrent) {
|
||||||
if (isCurrent) {
|
// 去找一个新的页面
|
||||||
// 去找一个新的页面
|
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) newPage = state.opened[i + 1]
|
||||||
if (i < len - 1) {
|
else newPage = state.opened[i - 1]
|
||||||
newPage = state.opened[i + 1]
|
break
|
||||||
} else {
|
|
||||||
newPage = state.opened[i - 1]
|
|
||||||
}
|
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// 找到这个页面在已经打开的数据里是第几个
|
}
|
||||||
const index = state.opened.findIndex(page => page.fullPath === tagName)
|
// 找到这个页面在已经打开的数据里是第几个
|
||||||
if (index >= 0) {
|
const index = state.opened.findIndex(page => page.fullPath === tagName)
|
||||||
// 如果这个页面是缓存的页面 将其在缓存设置中删除
|
if (index >= 0) {
|
||||||
commit('keepAliveRemove', state.opened[index].name)
|
// 如果这个页面是缓存的页面 将其在缓存设置中删除
|
||||||
// 更新数据 删除关闭的页面
|
commit('keepAliveRemove', state.opened[index].name)
|
||||||
state.opened.splice(index, 1)
|
// 更新数据 删除关闭的页面
|
||||||
|
state.opened.splice(index, 1)
|
||||||
|
}
|
||||||
|
// 持久化
|
||||||
|
await dispatch('opened2db')
|
||||||
|
// 最后需要判断是否需要跳到首页
|
||||||
|
if (isCurrent) {
|
||||||
|
const { name = '', params = {}, query = {} } = newPage
|
||||||
|
let routerObj = {
|
||||||
|
name,
|
||||||
|
params,
|
||||||
|
query
|
||||||
}
|
}
|
||||||
// 持久化
|
router.push(routerObj)
|
||||||
await dispatch('opened2db')
|
}
|
||||||
// 最后需要判断是否需要跳到首页
|
|
||||||
if (isCurrent) {
|
|
||||||
const { name = '', params = {}, query = {} } = newPage
|
|
||||||
let routerObj = {
|
|
||||||
name,
|
|
||||||
params,
|
|
||||||
query
|
|
||||||
}
|
|
||||||
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) currentIndex = index
|
||||||
if (page.fullPath === pageAim) {
|
|
||||||
currentIndex = index
|
|
||||||
}
|
|
||||||
})
|
|
||||||
if (currentIndex > 0) {
|
|
||||||
// 删除打开的页面 并在缓存设置中删除
|
|
||||||
state.opened.splice(1, currentIndex - 1).forEach(({ name }) => commit('keepAliveRemove', name))
|
|
||||||
}
|
|
||||||
state.current = pageAim
|
|
||||||
if (router.app.$route.fullPath !== pageAim) {
|
|
||||||
router.push(pageAim)
|
|
||||||
}
|
|
||||||
// 持久化
|
|
||||||
await dispatch('opened2db')
|
|
||||||
// end
|
|
||||||
resolve()
|
|
||||||
})
|
})
|
||||||
|
if (currentIndex > 0) {
|
||||||
|
// 删除打开的页面 并在缓存设置中删除
|
||||||
|
state.opened.splice(1, currentIndex - 1).forEach(({ name }) => commit('keepAliveRemove', name))
|
||||||
|
}
|
||||||
|
state.current = pageAim
|
||||||
|
if (router.app.$route.fullPath !== pageAim) router.push(pageAim)
|
||||||
|
// 持久化
|
||||||
|
await dispatch('opened2db')
|
||||||
},
|
},
|
||||||
/**
|
/**
|
||||||
* @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) currentIndex = index
|
||||||
if (page.fullPath === pageAim) {
|
|
||||||
currentIndex = index
|
|
||||||
}
|
|
||||||
})
|
|
||||||
// 删除打开的页面 并在缓存设置中删除
|
|
||||||
state.opened.splice(currentIndex + 1).forEach(({ name }) => commit('keepAliveRemove', name))
|
|
||||||
// 设置当前的页面
|
|
||||||
state.current = pageAim
|
|
||||||
if (router.app.$route.fullPath !== pageAim) {
|
|
||||||
router.push(pageAim)
|
|
||||||
}
|
|
||||||
// 持久化
|
|
||||||
await dispatch('opened2db')
|
|
||||||
// end
|
|
||||||
resolve()
|
|
||||||
})
|
})
|
||||||
|
// 删除打开的页面 并在缓存设置中删除
|
||||||
|
state.opened.splice(currentIndex + 1).forEach(({ name }) => commit('keepAliveRemove', name))
|
||||||
|
// 设置当前的页面
|
||||||
|
state.current = pageAim
|
||||||
|
if (router.app.$route.fullPath !== pageAim) router.push(pageAim)
|
||||||
|
// 持久化
|
||||||
|
await dispatch('opened2db')
|
||||||
},
|
},
|
||||||
/**
|
/**
|
||||||
* @class opened
|
* @class opened
|
||||||
@@ -317,53 +266,39 @@ 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) currentIndex = index
|
||||||
if (page.fullPath === pageAim) {
|
|
||||||
currentIndex = index
|
|
||||||
}
|
|
||||||
})
|
|
||||||
// 删除打开的页面数据 并更新缓存设置
|
|
||||||
if (currentIndex === 0) {
|
|
||||||
state.opened.splice(1).forEach(({ name }) => commit('keepAliveRemove', name))
|
|
||||||
} else {
|
|
||||||
state.opened.splice(currentIndex + 1).forEach(({ name }) => commit('keepAliveRemove', name))
|
|
||||||
state.opened.splice(1, currentIndex - 1).forEach(({ name }) => commit('keepAliveRemove', name))
|
|
||||||
}
|
|
||||||
// 设置新的页面
|
|
||||||
state.current = pageAim
|
|
||||||
if (router.app.$route.fullPath !== pageAim) {
|
|
||||||
router.push(pageAim)
|
|
||||||
}
|
|
||||||
// 持久化
|
|
||||||
await dispatch('opened2db')
|
|
||||||
// end
|
|
||||||
resolve()
|
|
||||||
})
|
})
|
||||||
|
// 删除打开的页面数据 并更新缓存设置
|
||||||
|
if (currentIndex === 0) {
|
||||||
|
state.opened.splice(1).forEach(({ name }) => commit('keepAliveRemove', name))
|
||||||
|
} else {
|
||||||
|
state.opened.splice(currentIndex + 1).forEach(({ name }) => commit('keepAliveRemove', name))
|
||||||
|
state.opened.splice(1, currentIndex - 1).forEach(({ name }) => commit('keepAliveRemove', name))
|
||||||
|
}
|
||||||
|
// 设置新的页面
|
||||||
|
state.current = pageAim
|
||||||
|
if (router.app.$route.fullPath !== pageAim) router.push(pageAim)
|
||||||
|
// 持久化
|
||||||
|
await dispatch('opened2db')
|
||||||
},
|
},
|
||||||
/**
|
/**
|
||||||
* @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({ name: 'index' })
|
||||||
router.push({
|
}
|
||||||
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
|
||||||
|
|||||||
@@ -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,41 +37,33 @@ 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
|
// 应用
|
||||||
// 应用
|
dispatch('apply', true)
|
||||||
dispatch('apply', true)
|
// 持久化
|
||||||
// 持久化
|
await dispatch('d2admin/db/set', {
|
||||||
await dispatch('d2admin/db/set', {
|
dbName: 'sys',
|
||||||
dbName: 'sys',
|
path: 'size.value',
|
||||||
path: 'size.value',
|
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',
|
path: 'size.value',
|
||||||
path: 'size.value',
|
defaultValue: 'default',
|
||||||
defaultValue: 'default',
|
user: true
|
||||||
user: true
|
}, { root: true })
|
||||||
}, { root: true })
|
// 应用
|
||||||
// 应用
|
dispatch('apply')
|
||||||
dispatch('apply')
|
|
||||||
// end
|
|
||||||
resolve()
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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,12 +23,35 @@ 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
|
commit('dom')
|
||||||
commit('dom')
|
// 持久化
|
||||||
|
await dispatch('d2admin/db/set', {
|
||||||
|
dbName: 'sys',
|
||||||
|
path: 'theme.activeName',
|
||||||
|
value: state.activeName,
|
||||||
|
user: true
|
||||||
|
}, { root: true })
|
||||||
|
},
|
||||||
|
/**
|
||||||
|
* @description 从持久化数据加载主题设置 * @param {Object} context
|
||||||
|
*/
|
||||||
|
async load ({ state, commit, dispatch }) {
|
||||||
|
// store 赋值
|
||||||
|
let activeName = await dispatch('d2admin/db/get', {
|
||||||
|
dbName: 'sys',
|
||||||
|
path: 'theme.activeName',
|
||||||
|
defaultValue: state.list[0].name,
|
||||||
|
user: true
|
||||||
|
}, { root: true })
|
||||||
|
// 检查这个主题在主题列表里是否存在
|
||||||
|
if (state.list.find(e => e.name === activeName)) {
|
||||||
|
state.activeName = activeName
|
||||||
|
} else {
|
||||||
|
state.activeName = state.list[0].name
|
||||||
// 持久化
|
// 持久化
|
||||||
await dispatch('d2admin/db/set', {
|
await dispatch('d2admin/db/set', {
|
||||||
dbName: 'sys',
|
dbName: 'sys',
|
||||||
@@ -36,40 +59,9 @@ export default {
|
|||||||
value: state.activeName,
|
value: state.activeName,
|
||||||
user: true
|
user: true
|
||||||
}, { root: true })
|
}, { root: true })
|
||||||
// end
|
}
|
||||||
resolve()
|
// 将 vuex 中的主题应用到 dom
|
||||||
})
|
commit('dom')
|
||||||
},
|
|
||||||
/**
|
|
||||||
* @description 从持久化数据加载主题设置 * @param {Object} context
|
|
||||||
*/
|
|
||||||
load ({ state, commit, dispatch }) {
|
|
||||||
return new Promise(async resolve => {
|
|
||||||
// store 赋值
|
|
||||||
let activeName = await dispatch('d2admin/db/get', {
|
|
||||||
dbName: 'sys',
|
|
||||||
path: 'theme.activeName',
|
|
||||||
defaultValue: state.list[0].name,
|
|
||||||
user: true
|
|
||||||
}, { root: true })
|
|
||||||
// 检查这个主题在主题列表里是否存在
|
|
||||||
if (state.list.find(e => e.name === activeName)) {
|
|
||||||
state.activeName = activeName
|
|
||||||
} else {
|
|
||||||
state.activeName = state.list[0].name
|
|
||||||
// 持久化
|
|
||||||
await dispatch('d2admin/db/set', {
|
|
||||||
dbName: 'sys',
|
|
||||||
path: 'theme.activeName',
|
|
||||||
value: state.activeName,
|
|
||||||
user: true
|
|
||||||
}, { root: true })
|
|
||||||
}
|
|
||||||
// 将 vuex 中的主题应用到 dom
|
|
||||||
commit('dom')
|
|
||||||
// end
|
|
||||||
resolve()
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
mutations: {
|
mutations: {
|
||||||
|
|||||||
@@ -13,37 +13,29 @@ 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
|
// 持久化
|
||||||
// 持久化
|
await dispatch('d2admin/db/set', {
|
||||||
await dispatch('d2admin/db/set', {
|
dbName: 'sys',
|
||||||
dbName: 'sys',
|
path: 'transition.active',
|
||||||
path: 'transition.active',
|
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',
|
path: 'transition.active',
|
||||||
path: 'transition.active',
|
defaultValue: setting.transition.active,
|
||||||
defaultValue: setting.transition.active,
|
user: true
|
||||||
user: true
|
}, { root: true })
|
||||||
}, { root: true })
|
|
||||||
// end
|
|
||||||
resolve()
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,37 +10,29 @@ 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
|
// 持久化
|
||||||
// 持久化
|
await dispatch('d2admin/db/set', {
|
||||||
await dispatch('d2admin/db/set', {
|
dbName: 'sys',
|
||||||
dbName: 'sys',
|
path: 'user.info',
|
||||||
path: 'user.info',
|
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',
|
path: 'user.info',
|
||||||
path: 'user.info',
|
defaultValue: {},
|
||||||
defaultValue: {},
|
user: true
|
||||||
user: true
|
}, { root: true })
|
||||||
}, { root: true })
|
|
||||||
// end
|
|
||||||
resolve()
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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,
|
||||||
|
|||||||
Reference in New Issue
Block a user