bladex代碼生成改造字典(表管理字段帶入)


需求,我在一個表單,devices中,它有一個所屬分類,meansType,我在添加或者修改的時候,需要下拉選擇,選擇的數據是一棵樹(單選)

1.前端  

加入如下代碼,meansTypeId管理menasType的字段,meansTypeName,devices的VO對象deviceVO里面的字段

<template slot-scope="{row}"
                    slot="meansTypeId">
            <el-tag>{{row.meansTypeName}}</el-tag>
      </template>

 

位置如下

 

 

 2.

修改字段屬性

注意:meansTypeId字段名,title固定寫法

  {
              label: "資產分類",
              prop: "meansTypeId",
              type: "tree",
              multiple: false,
              dicData: [],
              props: {
                  label: "title"
              },
              checkStrictly: true,
              slot: true,
              rules: [{
                  required: true,
                  message: "請選擇資產分類",
                  trigger: "click"
              }]
            },

3.下面改造主要是回顯字典。

粉色部分是修改之后添加的內容。

getMeansTypeDetail方法要來源於對應的js文件的方法,調用的時候不能直接var result= getMeansTypeDetail();這樣調用,要像下面貼出那樣調用。

 import {getList, getDetail, getMeansTypeDetail ,add, update, remove} from "@/api/subway/devices";
     beforeOpen(done, type) {
        if (["edit", "view"].includes(type)) {
            getDetail(this.form.id).then(res => {
            this.form = res.data.data;
          
            //this.form.meansTypeId = this.form.meansTypeId.split(",");
           
            this.form.meansTypeId.forEach((ele, index) => {
                getMeansTypeDetail(ele).then(res =>{
                this.form.meansTypeId[index] = res.data.data.name; }); }); 

          });
        }
        done();
      },

4.改造onLoad,紅色代碼為添加的代碼。

      onLoad(page, params = {}) {
        this.loading = true;
        getList(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => {
          const data = res.data.data;
          this.page.total = data.total;
          this.data = data.records;
          this.loading = false;
          this.selectionClear();
        });
        getDeptTree().then(res => {
        const index = this.$refs.crud.findColumnIndex("meansTypeId");
        this.option.column[index].dicData = res.data.data; });
       
      }

 

二、后端改造

添加wrapper

 

 粉色是關鍵位置,看了就明白了,就是在返回的數據設置字典的name。

public class DevicesWrapper extends BaseEntityWrapper<Devices, DevicesVO> {

    public static DevicesWrapper build() {
        return new DevicesWrapper();
    }

    @Override
    public DevicesVO entityVO(Devices devices) {
        DevicesVO devicesVO = Objects.requireNonNull(BeanUtil.copy(devices, DevicesVO.class));
        String dictValue = DictCache.getValue("devices_status", devicesVO.getStatus());
        devicesVO.setStatusName(dictValue);
        IMeansTypeService service=(IMeansTypeService)SpringUtil.getBean(IMeansTypeService.class);
        MeansType meansType = service.getById(devices.getMeansTypeId());
        devicesVO.setMeansTypeName(meansType.getName());
        return devicesVO;
    }

}

控制器,將數據重新封裝返回。

    /**
     * 分頁 設備管理
     */
    @GetMapping("/list")
    @ApiOperationSupport(order = 2)
    @ApiOperation(value = "分頁", notes = "傳入devices")
    public R<IPage<DevicesVO>> list(Devices devices, Query query) {
        IPage<Devices> pages = devicesService.page(Condition.getPage(query), Condition.getQueryWrapper(devices));
        return R.data(DevicesWrapper.build().pageVO(pages));
    }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM