业务字典的使用步骤

一:登录前端,创建业务字典

系统管理——>业务字典——>新增业务字典,输入

字典编号:settlementMethod

字典名称:结算方式

字典排序:1

是否封存:否

然后保存

然后右边增加业务字典详情:

字典名称:微信

字典键值:1

字典排序:1

是否封存:否

保存,增加第二个字典详细:

字典名称:支付宝

字典键值:2

字典排序:2

是否封存:否

然后保存

要使用的是字典编号:settlementMethod和字典键值1和2

二:前端VUE页面增加

1:增加模板插槽

      <template slot-scope="{row}"
                slot="settlementMethod">
        <el-tag>{{row.smName}}</el-tag>
      </template>
插槽的slotsettlementMethod要对应列中的prop
而row.smName中的smName即为字典返回的字典名称,如:微信
2:配置列
          {
            label: "结算方式",
            type: "select",
            dicUrl: "/api/blade-system/dict-biz/dictionary?code=settlementMethod",
            props: {
              label: "dictValue",
              value: "dictKey"
            },
            dataType: "number",
            slot: true,
            prop: "settlementMethod",
            search: true,
            rules: [
              {
                required: true,
                message: "请选择结算方式",
                trigger: "blur"
              }
            ]
          },
注意业务字典调用API为:/api/blade-system/dict-biz/dictionary?code=settlementMethod
其中的settlementMethod为第一步创建的业务字典编号
字段prop为settlementMethod,对应插槽的 slot
 
三:后端
1、在VO中增加返回字典值名称的列:smName(第二条第1点中设置的smName)
private String smName;

2、在Wrapper中包装VO,根据字典编号来返回字典名称

String dictValue= DictBizCache.getValue("settlementMethod",paymentVO.getSettlementMethod());
paymentVO.setSmName(dictValue);

3、在Controller中修改返回的对象为上面包装好的VO,而不是Entity

将详情detailAPI
public R<PaymentEntity> detail(PaymentEntity payment) {
PaymentEntity detail = paymentService.getOne(Condition.getQueryWrapper(payment));
return R.data(detail);
}
修改为:
public R<PaymentVO> detail(PaymentEntity payment) {
PaymentEntity detail = paymentService.getOne(Condition.getQueryWrapper(payment));
return R.data(PaymentWrapper.build().entityVO(detail));
}
同样的方法,将List也修改一下,注意是pageVO方法:
PaymentWrapper.build().pageVO(pages)
注意:dataType: "number",要和数据库字段的类似对应,否则可能显示不正确
字段prop为settlementMethod,也是对应插槽的 slot名称,为数据库字段名
原文地址:https://www.cnblogs.com/edrp/p/12703780.html