parent
c7e48d2706
commit
b10d0e148a
17 changed files with 429 additions and 244 deletions
@ -0,0 +1,34 @@ |
|||||||
|
import request from '@/router/axios'; |
||||||
|
|
||||||
|
// =====================参数===========================
|
||||||
|
|
||||||
|
export const historyFlowList = (current, size, params) => { |
||||||
|
return request({ |
||||||
|
url: '/api/blade-flow/process/history-flow-list', |
||||||
|
method: 'get', |
||||||
|
params: { |
||||||
|
...params, |
||||||
|
current, |
||||||
|
size, |
||||||
|
} |
||||||
|
}) |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
// =====================请假流程===========================
|
||||||
|
|
||||||
|
export const leaveProcess = (data) => { |
||||||
|
return request({ |
||||||
|
url: '/api/blade-desk/process/leave/start-process', |
||||||
|
method: 'post', |
||||||
|
data |
||||||
|
}) |
||||||
|
} |
||||||
|
|
||||||
|
export const leaveDetail = (params) => { |
||||||
|
return request({ |
||||||
|
url: '/api/blade-desk/process/leave/detail', |
||||||
|
method: 'get', |
||||||
|
params |
||||||
|
}) |
||||||
|
} |
||||||
@ -1,26 +1,27 @@ |
|||||||
const getters = { |
const getters = { |
||||||
tag: state => state.tags.tag, |
tag: state => state.tags.tag, |
||||||
language: state => state.common.language, |
language: state => state.common.language, |
||||||
website: state => state.common.website, |
website: state => state.common.website, |
||||||
userInfo: state => state.user.userInfo, |
userInfo: state => state.user.userInfo, |
||||||
colorName: state => state.common.colorName, |
colorName: state => state.common.colorName, |
||||||
themeName: state => state.common.themeName, |
themeName: state => state.common.themeName, |
||||||
isShade: state => state.common.isShade, |
isShade: state => state.common.isShade, |
||||||
isCollapse: state => state.common.isCollapse, |
isCollapse: state => state.common.isCollapse, |
||||||
keyCollapse: (state, getters) => getters.screen > 1 ? getters.isCollapse : false, |
keyCollapse: (state, getters) => getters.screen > 1 ? getters.isCollapse : false, |
||||||
screen: state => state.common.screen, |
screen: state => state.common.screen, |
||||||
isLock: state => state.common.isLock, |
isLock: state => state.common.isLock, |
||||||
isFullScren: state => state.common.isFullScren, |
isFullScren: state => state.common.isFullScren, |
||||||
lockPasswd: state => state.common.lockPasswd, |
lockPasswd: state => state.common.lockPasswd, |
||||||
tagList: state => state.tags.tagList, |
tagList: state => state.tags.tagList, |
||||||
tagWel: state => state.tags.tagWel, |
tagWel: state => state.tags.tagWel, |
||||||
token: state => state.user.token, |
token: state => state.user.token, |
||||||
roles: state => state.user.roles, |
roles: state => state.user.roles, |
||||||
permission: state => state.user.permission, |
permission: state => state.user.permission, |
||||||
menu: state => state.user.menu, |
menu: state => state.user.menu, |
||||||
menuAll: state => state.user.menuAll, |
menuAll: state => state.user.menuAll, |
||||||
logsList: state => state.logs.logsList, |
logsList: state => state.logs.logsList, |
||||||
logsLen: state => state.logs.logsList.length || 0, |
logsLen: state => state.logs.logsList.length || 0, |
||||||
logsFlag: (state, getters) => getters.logsLen === 0 |
logsFlag: (state, getters) => getters.logsLen === 0, |
||||||
|
flowRoutes: state => state.dict.flowRoutes, |
||||||
} |
} |
||||||
export default getters |
export default getters |
||||||
@ -1,94 +1,95 @@ |
|||||||
import { |
import { |
||||||
setStore, |
setStore, |
||||||
getStore, |
getStore, |
||||||
removeStore |
removeStore |
||||||
} from '@/util/store' |
} from '@/util/store' |
||||||
import website from '@/config/website' |
import website from '@/config/website' |
||||||
|
|
||||||
const common = { |
const common = { |
||||||
|
|
||||||
state: { |
state: { |
||||||
language: getStore({ name: 'language' }) || 'zh', |
language: getStore({name: 'language'}) || 'zh', |
||||||
isCollapse: false, |
isCollapse: false, |
||||||
isFullScren: false, |
isFullScren: false, |
||||||
isShade: false, |
isShade: false, |
||||||
screen: -1, |
screen: -1, |
||||||
isLock: getStore({ name: 'isLock' }) || false, |
isLock: getStore({name: 'isLock'}) || false, |
||||||
showTag: true, |
showTag: true, |
||||||
showDebug: true, |
showDebug: true, |
||||||
showCollapse: true, |
showCollapse: true, |
||||||
showSearch: true, |
showSearch: true, |
||||||
showLock: true, |
showLock: true, |
||||||
showFullScren: true, |
showFullScren: true, |
||||||
showTheme: true, |
showTheme: true, |
||||||
showMenu: true, |
showMenu: true, |
||||||
showColor: true, |
showColor: true, |
||||||
colorName: getStore({ name: 'colorName' }) || '#409EFF', |
colorName: getStore({name: 'colorName'}) || '#409EFF', |
||||||
themeName: getStore({ name: 'themeName' }) || 'theme-default', |
themeName: getStore({name: 'themeName'}) || 'theme-default', |
||||||
lockPasswd: getStore({ name: 'lockPasswd' }) || '', |
lockPasswd: getStore({name: 'lockPasswd'}) || '', |
||||||
website: website, |
website: website, |
||||||
|
}, |
||||||
|
mutations: { |
||||||
|
SET_LANGUAGE: (state, language) => { |
||||||
|
state.language = language |
||||||
|
setStore({ |
||||||
|
name: 'language', |
||||||
|
content: state.language |
||||||
|
}) |
||||||
|
}, |
||||||
|
SET_SHADE: (state, active) => { |
||||||
|
state.isShade = active; |
||||||
|
}, |
||||||
|
SET_COLLAPSE: (state) => { |
||||||
|
state.isCollapse = !state.isCollapse; |
||||||
|
}, |
||||||
|
SET_FULLSCREN: (state) => { |
||||||
|
state.isFullScren = !state.isFullScren; |
||||||
|
}, |
||||||
|
SET_LOCK: (state) => { |
||||||
|
state.isLock = true; |
||||||
|
setStore({ |
||||||
|
name: 'isLock', |
||||||
|
content: state.isLock, |
||||||
|
type: 'session' |
||||||
|
}) |
||||||
|
}, |
||||||
|
SET_SCREEN: (state, screen) => { |
||||||
|
state.screen = screen; |
||||||
|
}, |
||||||
|
SET_COLOR_NAME: (state, colorName) => { |
||||||
|
state.colorName = colorName; |
||||||
|
setStore({ |
||||||
|
name: 'colorName', |
||||||
|
content: state.colorName, |
||||||
|
}) |
||||||
|
}, |
||||||
|
SET_THEME_NAME: (state, themeName) => { |
||||||
|
state.themeName = themeName; |
||||||
|
setStore({ |
||||||
|
name: 'themeName', |
||||||
|
content: state.themeName, |
||||||
|
}) |
||||||
|
}, |
||||||
|
SET_LOCK_PASSWD: (state, lockPasswd) => { |
||||||
|
state.lockPasswd = lockPasswd; |
||||||
|
setStore({ |
||||||
|
name: 'lockPasswd', |
||||||
|
content: state.lockPasswd, |
||||||
|
type: 'session' |
||||||
|
}) |
||||||
|
}, |
||||||
|
CLEAR_LOCK: (state) => { |
||||||
|
state.isLock = false; |
||||||
|
state.lockPasswd = ''; |
||||||
|
removeStore({ |
||||||
|
name: 'lockPasswd', |
||||||
|
type: 'session' |
||||||
|
}); |
||||||
|
removeStore({ |
||||||
|
name: 'isLock', |
||||||
|
type: 'session' |
||||||
|
}); |
||||||
}, |
}, |
||||||
mutations: { |
} |
||||||
SET_LANGUAGE: (state, language) => { |
|
||||||
state.language = language |
|
||||||
setStore({ |
|
||||||
name: 'language', |
|
||||||
content: state.language |
|
||||||
}) |
|
||||||
}, |
|
||||||
SET_SHADE: (state, active) => { |
|
||||||
state.isShade = active; |
|
||||||
}, |
|
||||||
SET_COLLAPSE: (state) => { |
|
||||||
state.isCollapse = !state.isCollapse; |
|
||||||
}, |
|
||||||
SET_FULLSCREN: (state) => { |
|
||||||
state.isFullScren = !state.isFullScren; |
|
||||||
}, |
|
||||||
SET_LOCK: (state) => { |
|
||||||
state.isLock = true; |
|
||||||
setStore({ |
|
||||||
name: 'isLock', |
|
||||||
content: state.isLock, |
|
||||||
type: 'session' |
|
||||||
}) |
|
||||||
}, |
|
||||||
SET_SCREEN: (state, screen) => { |
|
||||||
state.screen = screen; |
|
||||||
}, |
|
||||||
SET_COLOR_NAME: (state, colorName) => { |
|
||||||
state.colorName = colorName; |
|
||||||
setStore({ |
|
||||||
name: 'colorName', |
|
||||||
content: state.colorName, |
|
||||||
}) |
|
||||||
}, |
|
||||||
SET_THEME_NAME: (state, themeName) => { |
|
||||||
state.themeName = themeName; |
|
||||||
setStore({ |
|
||||||
name: 'themeName', |
|
||||||
content: state.themeName, |
|
||||||
}) |
|
||||||
}, |
|
||||||
SET_LOCK_PASSWD: (state, lockPasswd) => { |
|
||||||
state.lockPasswd = lockPasswd; |
|
||||||
setStore({ |
|
||||||
name: 'lockPasswd', |
|
||||||
content: state.lockPasswd, |
|
||||||
type: 'session' |
|
||||||
}) |
|
||||||
}, |
|
||||||
CLEAR_LOCK: (state) => { |
|
||||||
state.isLock = false; |
|
||||||
state.lockPasswd = ''; |
|
||||||
removeStore({ |
|
||||||
name: 'lockPasswd', |
|
||||||
type: 'session' |
|
||||||
}); |
|
||||||
removeStore({ |
|
||||||
name: 'isLock', |
|
||||||
type: 'session' |
|
||||||
}); |
|
||||||
}, |
|
||||||
} |
|
||||||
} |
} |
||||||
export default common |
export default common |
||||||
@ -0,0 +1,36 @@ |
|||||||
|
import {getStore, setStore} from '@/util/store' |
||||||
|
|
||||||
|
import {getDictionary} from '@/api/system/dict' |
||||||
|
|
||||||
|
const dict = { |
||||||
|
state: { |
||||||
|
flowRoutes: getStore({name: 'flowRoutes'}) || {}, |
||||||
|
}, |
||||||
|
actions: { |
||||||
|
//发送错误日志
|
||||||
|
FlowRoutes({commit}) { |
||||||
|
return new Promise((resolve, reject) => { |
||||||
|
getDictionary({code: 'flow'}).then(res => { |
||||||
|
commit('SET_FLOW_ROUTES', res.data.data); |
||||||
|
resolve(); |
||||||
|
}).catch(error => { |
||||||
|
reject(error) |
||||||
|
}) |
||||||
|
}) |
||||||
|
}, |
||||||
|
}, |
||||||
|
mutations: { |
||||||
|
SET_FLOW_ROUTES: (state, data) => { |
||||||
|
state.flowRoutes = data.map(item => { |
||||||
|
return { |
||||||
|
routeKey: `${item.code}_${item.dictKey}`, |
||||||
|
routeValue: item.remark, |
||||||
|
}; |
||||||
|
}); |
||||||
|
setStore({name: 'flowRoutes', content: state.flowRoutes, type: 'session'}) |
||||||
|
}, |
||||||
|
} |
||||||
|
|
||||||
|
}; |
||||||
|
|
||||||
|
export default dict; |
||||||
@ -1,72 +1,72 @@ |
|||||||
import { setStore, getStore } from '@/util/store' |
import {setStore, getStore} from '@/util/store' |
||||||
import { diff } from '@/util/util' |
import {diff} from '@/util/util' |
||||||
import website from '@/config/website' |
import website from '@/config/website' |
||||||
|
|
||||||
const isFirstPage = website.isFirstPage; |
const isFirstPage = website.isFirstPage; |
||||||
const tagWel = website.fistPage; |
const tagWel = website.fistPage; |
||||||
const tagObj = { |
const tagObj = { |
||||||
label: '', //标题名称
|
label: '', //标题名称
|
||||||
value: '', //标题的路径
|
value: '', //标题的路径
|
||||||
params: '', //标题的路径参数
|
params: '', //标题的路径参数
|
||||||
query: '', //标题的参数
|
query: '', //标题的参数
|
||||||
meta: {},//额外参数
|
meta: {},//额外参数
|
||||||
group: [], //分组
|
group: [], //分组
|
||||||
} |
} |
||||||
|
|
||||||
//处理首个标签
|
//处理首个标签
|
||||||
function setFistTag(list) { |
function setFistTag(list) { |
||||||
if (list.length == 1) { |
if (list.length == 1) { |
||||||
list[0].close = false; |
list[0].close = false; |
||||||
} else { |
} else { |
||||||
list.forEach(ele => { |
list.forEach(ele => { |
||||||
if (ele.value === tagWel.value && isFirstPage === false) { |
if (ele.value === tagWel.value && isFirstPage === false) { |
||||||
ele.close = false |
ele.close = false |
||||||
} else { |
} else { |
||||||
ele.close = true |
ele.close = true |
||||||
} |
} |
||||||
}) |
}) |
||||||
} |
} |
||||||
} |
} |
||||||
|
|
||||||
|
|
||||||
const navs = { |
const navs = { |
||||||
state: { |
state: { |
||||||
tagList: getStore({ name: 'tagList' }) || [], |
tagList: getStore({name: 'tagList'}) || [], |
||||||
tag: getStore({ name: 'tag' }) || tagObj, |
tag: getStore({name: 'tag'}) || tagObj, |
||||||
tagWel: tagWel |
tagWel: tagWel |
||||||
|
}, |
||||||
|
actions: {}, |
||||||
|
mutations: { |
||||||
|
ADD_TAG: (state, action) => { |
||||||
|
state.tag = action; |
||||||
|
setStore({name: 'tag', content: state.tag, type: 'session'}) |
||||||
|
if (state.tagList.some(ele => diff(ele, action))) return |
||||||
|
state.tagList.push(action) |
||||||
|
setFistTag(state.tagList); |
||||||
|
setStore({name: 'tagList', content: state.tagList, type: 'session'}) |
||||||
}, |
}, |
||||||
actions: { |
DEL_TAG: (state, action) => { |
||||||
|
state.tagList = state.tagList.filter(item => { |
||||||
|
return !diff(item, action); |
||||||
|
}) |
||||||
|
setFistTag(state.tagList); |
||||||
|
setStore({name: 'tagList', content: state.tagList, type: 'session'}) |
||||||
|
}, |
||||||
|
DEL_ALL_TAG: (state) => { |
||||||
|
state.tagList = [state.tagWel]; |
||||||
|
setStore({name: 'tagList', content: state.tagList, type: 'session'}) |
||||||
|
}, |
||||||
|
DEL_TAG_OTHER: (state) => { |
||||||
|
state.tagList = state.tagList.filter(item => { |
||||||
|
if (item.value === state.tag.value) { |
||||||
|
return true; |
||||||
|
} else if (!website.isFirstPage && item.value === website.fistPage.value) { |
||||||
|
return true; |
||||||
|
} |
||||||
|
}) |
||||||
|
setFistTag(state.tagList); |
||||||
|
setStore({name: 'tagList', content: state.tagList, type: 'session'}) |
||||||
}, |
}, |
||||||
mutations: { |
} |
||||||
ADD_TAG: (state, action) => { |
|
||||||
state.tag = action; |
|
||||||
setStore({ name: 'tag', content: state.tag, type: 'session' }) |
|
||||||
if (state.tagList.some(ele => diff(ele, action))) return |
|
||||||
state.tagList.push(action) |
|
||||||
setFistTag(state.tagList); |
|
||||||
setStore({ name: 'tagList', content: state.tagList, type: 'session' }) |
|
||||||
}, |
|
||||||
DEL_TAG: (state, action) => { |
|
||||||
state.tagList = state.tagList.filter(item => { |
|
||||||
return !diff(item, action); |
|
||||||
}) |
|
||||||
setFistTag(state.tagList); |
|
||||||
setStore({ name: 'tagList', content: state.tagList, type: 'session' }) |
|
||||||
}, |
|
||||||
DEL_ALL_TAG: (state) => { |
|
||||||
state.tagList = [state.tagWel]; |
|
||||||
setStore({ name: 'tagList', content: state.tagList, type: 'session' }) |
|
||||||
}, |
|
||||||
DEL_TAG_OTHER: (state) => { |
|
||||||
state.tagList = state.tagList.filter(item => { |
|
||||||
if (item.value === state.tag.value) { |
|
||||||
return true; |
|
||||||
} else if (!website.isFirstPage && item.value === website.fistPage.value) { |
|
||||||
return true; |
|
||||||
} |
|
||||||
}) |
|
||||||
setFistTag(state.tagList); |
|
||||||
setStore({ name: 'tagList', content: state.tagList, type: 'session' }) |
|
||||||
}, |
|
||||||
} |
|
||||||
} |
} |
||||||
export default navs |
export default navs |
||||||
@ -0,0 +1,92 @@ |
|||||||
|
/** |
||||||
|
* 不为空 |
||||||
|
* @param val |
||||||
|
* @returns {boolean} |
||||||
|
*/ |
||||||
|
export function notEmpty(val) { |
||||||
|
return !this.isEmpty(val); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 为空 |
||||||
|
* @param val |
||||||
|
* @returns {boolean} |
||||||
|
*/ |
||||||
|
export function isEmpty(val) { |
||||||
|
if ( |
||||||
|
val === null || |
||||||
|
typeof val === 'undefined' || |
||||||
|
(typeof val === 'string' && val === '' && val !== 'undefined') |
||||||
|
) { |
||||||
|
return true; |
||||||
|
} |
||||||
|
return false; |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 强转int型 |
||||||
|
* @param val |
||||||
|
* @param defaultValue |
||||||
|
* @returns {number} |
||||||
|
*/ |
||||||
|
export function toInt(val, defaultValue) { |
||||||
|
if (this.isEmpty(val)) { |
||||||
|
return defaultValue === undefined ? -1 : defaultValue; |
||||||
|
} |
||||||
|
const num = parseInt(val, 0); |
||||||
|
return Number.isNaN(num) ? (defaultValue === undefined ? -1 : defaultValue) : num; |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* Json强转为Form类型 |
||||||
|
* @param obj |
||||||
|
* @returns {FormData} |
||||||
|
*/ |
||||||
|
export function toFormData(obj) { |
||||||
|
const data = new FormData(); |
||||||
|
Object.keys(obj).forEach(key => { |
||||||
|
data.append(key, Array.isArray(obj[key]) ? obj[key].join(',') : obj[key]); |
||||||
|
}); |
||||||
|
return data; |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* date类转为字符串格式 |
||||||
|
* @param date |
||||||
|
* @param format |
||||||
|
* @returns {null} |
||||||
|
*/ |
||||||
|
export function format(date, format = 'YYYY-MM-DD HH:mm:ss') { |
||||||
|
return date ? date.format(format) : null; |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 根据逗号联合 |
||||||
|
* @param arr |
||||||
|
* @returns {string} |
||||||
|
*/ |
||||||
|
export function join(arr) { |
||||||
|
return arr ? arr.join(',') : ''; |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 根据逗号分隔 |
||||||
|
* @param str |
||||||
|
* @returns {string} |
||||||
|
*/ |
||||||
|
export function split(str) { |
||||||
|
return str ? String(str).split(',') : ''; |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 根据key获取流程路由 |
||||||
|
* @param routes |
||||||
|
* @param key |
||||||
|
*/ |
||||||
|
export function getFlowRoute(routes, key) { |
||||||
|
const data = routes.filter(d => { |
||||||
|
return d.routeKey === key; |
||||||
|
}); |
||||||
|
return data.length === 0 ? [] : data[0].routeValue; |
||||||
|
} |
||||||
|
|
||||||
Loading…
Reference in new issue