logwire-wms-pda-ui
Version:
运匠科技wms-PDA基础组件库
74 lines (62 loc) • 1.77 kB
JavaScript
/*
* 字典数据
* @author 张文
* @date 2022-02-10
* */
import {dict} from "../api/common/Dict";
export const Dict = {
/**
* 设置字典数据
* @author 张文
* @param {Object|Array} data 需要设置的数据
* @param {String} key 需要设置字典的某一项,为空时将修改全部数据
* */
set(data, key = null) {
if (key) {
window.lwWindowGlobalData.set('dict.'+key, data)
} else {
window.lwWindowGlobalData.set('dict', data)
}
},
/**
* 根据字典key获取数据
* @author 张文
* @param {String} key 字典类型名称,为空时返回全部数据
* @return {*} 字典项的数据
*/
get(key = null) {
return key ? window.lwWindowGlobalData.get('dict.'+key) : window.lwWindowGlobalData.get('dict')
},
/**
* 根据字典项的值获取对应项的名称
* @author 张文
* @param key 字典类型名称
* @param value 字典项的值
* @param def 默认值
* @returns {*} 字典项的名称,如果未找到且默认值为空,则返回字典项的值
*/
getDictLabel(key, value, def) {
const list = this.get(key)
if (Array.isArray(list)) {
const item = list.find(i => i.value === value)
if (item && item.label) {
return item.label
}
}
return def || value
},
/**
* 异步获取字典数据
* @author 张文
* @param {String} key 字典类型名称,为空时返回全部数据
* @returns {Promise} 字典项的数据
*/
asyncGet(key = null) {
return new Promise((PR, PE) => {
dict.get().then(res=>{
this.set(res)
PR(this.get(key))
}).catch(err => PE(err))
})
},
}