1. 自定义字典

使用场景:该数据为一个枚举类型,数据库存储的是对应的英文缩写或者数字,页面需要显示类型对应的中文名称

例如:订单状态有 待付款、待发货、已完成、退款中 对应数据库的状态为1、2、3、4

接口返回的只有对应的数字,怎么一一对应?

解决方案:字典新增订单类型

使用接口获取:项目/mdiy/dict/list.do?dictType="订单状态"&pageSize=10 获取状态对的的值

具体参考以下后台管理中自定页面列表使用

<!--自定义页面部分代码示例-->
<el-table v-loading="loading" ref="multipleTable"  height="calc(100% - 68px)" class="ms-table-pagination" border :data="treeList" tooltip-effect="dark" @selection-change="handleSelectionChange">
    <template slot="empty">
        {{emptyText}}
    </template>
    <el-table-column type="selection" :selectable="isChecked" width="40"></el-table-column>
            <el-table-column label="标题" min-width="150px" align="left" prop="pageTitle">
            </el-table-column>
        <el-table-column label="分类"  :formatter="PageTypeFormat" align="left" prop="pageType">
        </el-table-column>
            <el-table-column label="绑定模板" min-width="200px" align="left" prop="pagePath">
            </el-table-column>
            <el-table-column label="路径关键字" min-width="150px" align="left" prop="pageKey">
            </el-table-column>
    <el-table-column label="访问地址" min-width="150px" align="left" >
        <template slot-scope="scope">
            <el-link :underline="false" target="_blank" type="primary" size="medium"
                     :href="location.origin+ms.base+'/'+(scope.row.pageKey.startsWith('people/')?scope.row.pageKey:'mdiyPage/'+scope.row.pageKey)+'.do'">
                {{location.origin+ms.base+'/'+(scope.row.pageKey.startsWith('people/')?scope.row.pageKey:'mdiyPage/'+scope.row.pageKey)+'.do'}}</el-link>
        </template>
    </el-table-column>
        <@shiro.hasPermission name="mdiy:page:update">
        <el-table-column label="操作" align="center" width="180">
            <template slot-scope="scope">
                <el-link :underline="false" type="primary" size="medium"  @click="save(scope.row.pageId)">编辑</el-link>
                        <@shiro.hasPermission name="mdiy:page:del">
                        <el-link :underline="false" type="primary"  v-if="scope.row.del != 3" @click="del([scope.row])">删除</el-link>
                        </@shiro.hasPermission>
                    </template>
        </el-table-column>
        </@shiro.hasPermission>
    </el-table>
// vue 方法代码
PageTypeFormat(row, column, cellValue, index) {
    var value = cellValue;
    var data = this.pageTypeOptions.find(function(value) {
        return value.dictValue == cellValue;
    })
    if(data){
        value = data.dictLabel;
    }
    return value;
},

//获取pageType字典数据源
pageTypeOptionsGet() {
    var that = this;
    ms.http.get(ms.base+'/mdiy/dict/list.do', {dictType:'自定义页面类型',pageSize:99999}).then(function (data) {
        that.pageTypeOptions = data.rows;
    }).catch(function (err) {
        console.log(err);
    });
}

java DictUtil工具类

package net.mingsoft.mdiy.util;

import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSON;
import net.mingsoft.basic.util.BasicUtil;
import net.mingsoft.basic.util.SpringUtil;
import net.mingsoft.mdiy.biz.IDictBiz;
import net.mingsoft.mdiy.entity.DictEntity;
import org.apache.commons.lang3.StringUtils;

import java.util.ArrayList;
import java.util.List;

public class DictUtil {
    /**
     * 获取字典实体
     * @param dictLabel 标签名
     * @param dictType 类型
     * @return DictEntity 字典实体
     */
    public static DictEntity get(String dictLabel,String dictType){
        DictEntity dict = new DictEntity();
        dict.setDictLabel(dictLabel);
        dict.setDictType(dictType);
        dict.setAppId(BasicUtil.getAppId());
        return (DictEntity) SpringUtil.getBean(IDictBiz.class).getEntity(dict);
    }
    /**
     * 获取字典实体
     * @param dictLabel 标签名
     * @param dictType 类型
     * @param dictValue 数据值
     * @return DictEntity 字典实体
     */
    public static DictEntity get(String dictType,String dictLabel,String dictValue){
        DictEntity dict = new DictEntity();
        dict.setDictLabel(dictLabel);
        dict.setDictType(dictType);
        dict.setDictValue(dictValue);
        dict.setAppId(BasicUtil.getAppId());
        return (DictEntity) SpringUtil.getBean(IDictBiz.class).getEntity(dict);
    }
    /**
     * 获取字典实体Json数据
     * @param dictLabel 标签名
     * @param dictType 类型
     * @param dictValue 数据值
     * @return DictEntity 字典实体
     */
    public static String getToJson(String dictType,String dictLabel,String dictValue){
        DictEntity dict = new DictEntity();
        dict.setDictLabel(dictLabel);
        dict.setDictType(dictType);
        dict.setDictValue(dictValue);
        dict.setAppId(BasicUtil.getAppId());
        DictEntity dictEntity = (DictEntity) SpringUtil.getBean(IDictBiz.class).getEntity(dict);
        return JSON.toJSONString(dictEntity);
    }
    /**
     * 根据字典类型获取列表
     * @param dictType 字典类型
     * @return
     */
    public static List<DictEntity> list(String dictType){
        DictEntity dict = new DictEntity();
        dict.setDictType(dictType);
        dict.setAppId(BasicUtil.getAppId());
        return (List<DictEntity>) SpringUtil.getBean(IDictBiz.class).query(dict);
    }

    /**
     * 根据字典类型获取列表json数据
     * @param dictType 字典类型
     * @return
     */
    public static String listJson(String dictType){
        return JSON.toJSONString(list(dictType));
    }
    /**
     * 根据字典类型与标签名获取字典值
     * @param dictType 字典类型
     * @param dictLabel 标签名
     * @param defaultValue 默认值
     * @return
     */
    public static String getDictValue(String dictType, String dictLabel, String defaultValue) {
        if (StringUtils.isNotBlank(dictType) && StringUtils.isNotBlank(dictLabel)) {
            DictEntity dictEntity = get(dictType, dictLabel, null);
            if(ObjectUtil.isNotNull(dictEntity)){
                return dictEntity.getDictValue();
            }
        }
        return defaultValue;
    }

    /**
     * 根据字典类型与标签名获取字典值
     * @param dictType 字典类型
     * @param dictLabel 数据值
     * @return
     */
    public static String getDictValue(String dictType, String dictLabel) {
        return getDictValue(dictType,dictLabel,"");
    }

    /**根据字典类型与字典值获取标签名
     * @param dictType 字典类型
     * @param dictValue 数据值
     * @param defaultValue 默认值
     * @return
     */
    public static String getDictLabel(String dictType, String dictValue, String defaultValue) {
        if (StringUtils.isNotBlank(dictType) && StringUtils.isNotBlank(dictValue)) {
            DictEntity dictEntity = get(dictType, null, dictValue);
            if(ObjectUtil.isNotNull(dictEntity)){
                return dictEntity.getDictLabel();
            }
        }
        return defaultValue;
    }
    /**
     * 根据字典类型与字典值获取标签名
     * @param dictType 字典类型
     * @param dictValue 数据值
     * @return
     */
    public static String getDictLabel(String dictType, String dictValue) {
        return getDictLabel(dictType,dictValue,"");
    }
    /**
     * 根据字典类型与逗号分隔的字典值获取逗号分隔的字典名
     * @param dictType 字典类型
     * @param dictValues  逗号分隔的字典值
     * @param defaultValue 默认值
     * @return
     */
    public static String getDictLabels(String dictType, String dictValues, String defaultValue) {
        if (StringUtils.isNotBlank(dictType) && StringUtils.isNotBlank(dictValues)) {
            List labels = new ArrayList();
            String[] values = dictValues.split(",");
            for(int i = 0; i < values.length;i++) {
                String value = values[i];
                String dictLabel = getDictLabel(dictType, value, defaultValue);
                if(!StringUtils.isBlank(dictLabel)){
                    labels.add(dictLabel);
                }
            }
            return StringUtils.join(labels, ",");
        } else {
            return defaultValue;
        }
    }
    /**
     * 根据字典类型与逗号分隔的字典值获取字典集合
     * @param dictType  字典类型
     * @param dictValues 逗号分隔的字典值
     * @return
     */
    public static String getJsonByValues(String dictType, String dictValues) {
        List labels = new ArrayList();
        if (StringUtils.isNotBlank(dictType) && StringUtils.isNotBlank(dictValues)) {
            String[] values = dictValues.split(",");
            for(int i = 0; i < values.length;i++) {
                String value = values[i];
                DictEntity dictEntity = get(dictType, null, value);
                if(ObjectUtil.isNotNull(dictEntity)){
                    labels.add(dictEntity);
                }
            }
        }
        return JSON.toJSONString(labels);
    }
    /**
     * 根据字典类型与逗号分隔的字典值获取逗号分隔的字典名
     * @param dictType 字典类型
     * @param dictValues 逗号分隔的字典值
     * @return
     */
    public static String getDictLabels(String dictType, String dictValues) {

            return getDictLabels(dictType,dictValues,"");
    }
    /**
     * 根据字典类型与逗号分隔的字典值获取字典集合
     * @param dictType 字典类型
     * @param dictLabels 逗号分隔的字典值
     * @return
     */
    public static String getJsonByLabels(String dictType, String dictLabels) {
        List values = new ArrayList();
        if (StringUtils.isNotBlank(dictType) && StringUtils.isNotBlank(dictLabels)) {
            String[] labels = dictLabels.split(",");
            for(int i = 0; i < labels.length;i++) {
                String value = labels[i];
                DictEntity dictEntity = get(dictType, value,null );
                if(ObjectUtil.isNotNull(dictEntity)){
                    values.add(dictEntity);
                }
            }
        }
        return JSON.toJSONString(values);
    }
    /**
     * 根据字典类型与逗号分隔的字典名获取逗号分隔的字典值
     * @param dictType 字典类型
     * @param dictLabels 逗号分隔的字典名
     * @param defaultValue 默认值
     * @return
     */
    public static String getDictValues(String dictType, String dictLabels, String defaultValue) {
        if (StringUtils.isNotBlank(dictType) && StringUtils.isNotBlank(dictLabels)) {
            List  values= new ArrayList();
            String[] labels = dictLabels.split(",");
            for(int i = 0; i < labels.length;i++) {
                String value = labels[i];
                values.add(getDictValue(dictType, value, defaultValue));
            }
            return StringUtils.join(values, ",");
        } else {
            return defaultValue;
        }
    }
    /**
     * 根据字典类型与逗号分隔的字典名获取逗号分隔的字典值
     * @param dictType 字典类型
     * @param dictLabels 逗号分隔的字典名
     * @return
     */
    public static String getDictValues(String dictType, String dictLabels) {
      return getDictValues(dictType,dictLabels,"");
    }
}

Copyright © mingsoft.net 2019 all right reserved,powered by Gitbook该文件修订时间: 2020-01-10 21:24:50

results matching ""

    No results matching ""

    results matching ""

      No results matching ""