import http from '../../utils/request'
|
import {equalsIgnoreType} from '../../utils'
|
|
export default {
|
state: {
|
dicts: []
|
},
|
getters: {
|
getDict: state => (dictType) => {
|
var dict = state.dicts[dictType]
|
if (!dict) {
|
dict = []
|
|
// for (let firstDict in state.dicts) {
|
// for (let k = 0; k < state.dicts[firstDict].length; k++) {
|
// //遍历一级字典的元素,如果dataList有值,说明是有二级元素
|
// if (state.dicts[firstDict][k].dataList && dictType==state.dicts[firstDict][k].dictType) {
|
// dict=state.dicts[firstDict][k].dataList;
|
// }
|
//
|
//
|
// }
|
// }
|
}
|
return dict
|
},
|
|
getDictLabel: state => (dictType, value) => {
|
var dictLabel = value
|
let dict = state.dicts[dictType]
|
if (dict) {
|
let option = dict.find(option => equalsIgnoreType(option.dictValue, value))
|
if (option) {
|
dictLabel = option.dictLabel
|
} else {
|
//for(item in dict)
|
}
|
} else {
|
//从全部二级字典里面去找
|
// for (let firstDict in state.dicts) {
|
// for (let k = 0; k < state.dicts[firstDict].length; k++) {
|
// //遍历一级字典的元素,如果dataList有值,说明是有二级元素
|
// if (state.dicts[firstDict][k].dataList && dictType==state.dicts[firstDict][k].dictType) {
|
// for (let dictOne in state.dicts[firstDict][k].dataList) {
|
// if (state.dicts[firstDict][k].dataList[dictOne].dictValue == value) {
|
// //
|
// return state.dicts[firstDict][k].dataList[dictOne].dictLabel;
|
// }
|
// }
|
// }
|
// }
|
// }
|
}
|
return dictLabel
|
}
|
|
},
|
mutations: {
|
setDictList(state, dictList) {
|
dictList = dictList.data || dictList
|
|
let dicts = {}
|
|
// 后台代码定义的字典
|
dictList.forEach(dict => {
|
dicts[dict.dictType] = dict.children || dict.dataList
|
|
// 全局字典
|
let $dict = window.SITE_CONFIG['dict']
|
if (dict.dataList && dict.dataList.length > 0 && dict.dataList[0].name != null) {
|
/* eslint-disable */
|
// 转驼峰
|
let dictType = dict.dictType.replace(/\_(\w)/g, function (all, letter) {
|
return letter.toUpperCase()
|
})
|
// 首字母大写
|
dictType = dictType.substr(0, 1).toUpperCase() + dictType.substr(1)
|
$dict[dictType] = {}
|
dict.dataList.forEach(item => $dict[dictType][item.name] = item.dictValue)
|
}
|
})
|
|
state.dicts = dicts
|
}
|
},
|
actions: {
|
getDictList({commit}) {
|
// 获取字典列表, 添加并全局变量保存
|
http.get('/sys/dict/type/all').then(res => {
|
if (res.code !== 0) {
|
return
|
}
|
commit('setDictList', res.data)
|
|
}).catch(() => {
|
})
|
}
|
}
|
}
|