欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

业务字典的使用步骤

程序员文章站 2022-03-25 16:29:36
一:登录前端,创建业务字典 系统管理——>业务字典——>新增业务字典,输入 字典编号:settlementMethod 字典名称:结算方式 字典排序:1 是否封存:否 然后保存 然后右边增加业务字典详情: 字典名称:微信 字典键值:1 字典排序:1 是否封存:否 保存,增加第二个字典详细: 字典名称 ......

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

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

字典编号: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",要和数据库字段的类似对应,否则可能显示不正确