123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147 |
- /**
- * 字典 util
- * author: scott
- * date: 20190109
- */
- import {ajaxGetDictItems,getDictItemsFromCache} from '@/api/api'
- import {getAction} from '@/api/manage'
- /**
- * 获取字典数组
- * @param dictCode 字典Code
- * @return List<Map>
- */
- export async function initDictOptions(dictCode) {
- if (!dictCode) {
- return '字典Code不能为空!';
- }
- //优先从缓存中读取字典配置
- if(getDictItemsFromCache(dictCode)){
- let res = {}
- res.result = getDictItemsFromCache(dictCode);
- res.success = true;
- return res;
- }
- //获取字典数组
- let res = await ajaxGetDictItems(dictCode);
- return res;
- }
- /**
- * 字典值替换文本通用方法
- * @param dictOptions 字典数组
- * @param text 字典值
- * @return String
- */
- export function filterDictText(dictOptions, text) {
- // --update-begin----author:sunjianlei---date:20200323------for: 字典翻译 text 允许逗号分隔 ---
- if (text != null && Array.isArray(dictOptions)) {
- let result = []
- // 允许多个逗号分隔,允许传数组对象
- let splitText
- if (Array.isArray(text)) {
- splitText = text
- } else {
- splitText = text.toString().trim().split(',')
- }
- for (let txt of splitText) {
- let dictText = txt
- for (let dictItem of dictOptions) {
- if (txt.toString() === dictItem.value.toString()) {
- dictText = (dictItem.text || dictItem.title || dictItem.label)
- break
- }
- }
- result.push(dictText)
- }
- return result.join(',')
- }
- return text
- // --update-end----author:sunjianlei---date:20200323------for: 字典翻译 text 允许逗号分隔 ---
- }
- /**
- * 字典值替换文本通用方法(多选)
- * @param dictOptions 字典数组
- * @param text 字典值
- * @return String
- */
- export function filterMultiDictText(dictOptions, text) {
- //js “!text” 认为0为空,所以做提前处理
- if(text === 0 || text === '0'){
- if(dictOptions){
- for (let dictItem of dictOptions) {
- if (text == dictItem.value) {
- return dictItem.text
- }
- }
- }
- }
- if(!text || text=='null' || !dictOptions || dictOptions.length==0){
- return ""
- }
- let re = "";
- text = text.toString()
- let arr = text.split(",")
- dictOptions.forEach(function (option) {
- if(option){
- for(let i=0;i<arr.length;i++){
- if (arr[i] === option.value) {
- re += option.text+",";
- break;
- }
- }
- }
- });
- if(re==""){
- return text;
- }
- return re.substring(0,re.length-1);
- }
- /**
- * 翻译字段值对应的文本
- * @param children
- * @returns string
- */
- export function filterDictTextByCache(dictCode, key) {
- if(key==null ||key.length==0){
- return;
- }
- if (!dictCode) {
- return '字典Code不能为空!';
- }
- //优先从缓存中读取字典配置
- if(getDictItemsFromCache(dictCode)){
- let item = getDictItemsFromCache(dictCode).filter(t => t["value"] == key)
- if(item && item.length>0){
- return item[0]["text"]
- }
- }
- }
- /** 通过code获取字典数组 */
- export async function getDictItems(dictCode, params) {
- //优先从缓存中读取字典配置
- if(getDictItemsFromCache(dictCode)){
- let desformDictItems = getDictItemsFromCache(dictCode).map(item => ({...item, label: item.text}))
- return desformDictItems;
- }
- //缓存中没有,就请求后台
- return await ajaxGetDictItems(dictCode, params).then(({success, result}) => {
- if (success) {
- let res = result.map(item => ({...item, label: item.text}))
- console.log('------- 从DB中获取到了字典-------dictCode : ', dictCode, res)
- return Promise.resolve(res)
- } else {
- console.error('getDictItems error: : ', res)
- return Promise.resolve([])
- }
- }).catch((res) => {
- console.error('getDictItems error: ', res)
- return Promise.resolve([])
- })
- }
|