Skip to content
网游世界
网游世界

吾生有涯,而知无涯。

  • 首页
  • PHP
    • ThinkPHP
    • FastAdmin
    • webman
  • JavaScript
    • jQuery
    • AdminLTE
  • Free Pascal
  • Java
    • JeeSite
    • 若依
    • ruoyi-vue-pro
  • 其它
    • 操作系统
    • 树莓派
    • 前端
    • Null
  • 关于
网游世界

吾生有涯,而知无涯。

JeeSite treeselect 自定义请求地址

3Vshej, 2024年1月5日 周五2024年1月5日 周五

JeeSite treeselect 组件封装 layer + zTree 实现树结构选择组件、支持单选多选、异步加载下级节点、支持回显选择状态。

官方提供的方法,通过修改 options.content 值来改变弹框展示内容。

但这样要求,需要存在 Select 页面才行。

这里提供另一个方法,修改 options.contentFormData.url 值,不需要 Select 页面。

具体的业务是这样的:

选择产品时,需要关联所在订单,只展示订单中的产品。

通过定义 openFuncName 回调来实现,这个回调在弹窗前调用,在里面修改弹框展示地址。

HTML 页面

<div class="col-xs-6">
    <div class="form-group">
        <label class="control-label col-sm-4" title="">
        <span class="required ">*</span> ${text('产品名称')}:<i class="fa icon-question hide"></i></label>
        <div class="col-sm-8">
        <#form:treeselect id="proCatalog" title="${text('产品选择')}"
        path="proCatalog.proCode" labelPath="proCatalog.proName"
        url="${ctx}/order/workOrder/productTreeData"
        class=" required" allowClear="true" openFuncName="proCatalogOpenCallback"/>

        </div>
    </div>
</div>

JS 脚本

function proCatalogOpenCallback(id, options) {

    if ($("#workOrderCode").val() === "") {
        js.showMessage('请选择订单!');
        return false;
    }
    options.contentFormData.url = ctx + "/order/workOrder/productTreeData?workOrder.workOrderCode="+$("#workOrderCode").val();

}

控制器

@RequestMapping(value = "productTreeData")
@RequiresUser
@ResponseBody
public List<Map<String, Object>> productTreeData(WorkOrderRecord workOrderRecord,String excludeCode, String isShowCode) {
    List<Map<String, Object>> mapList = ListUtils.newArrayList();
    List<WorkOrderRecord> list = workOrderRecordService.findList(workOrderRecord);
    for (int i = 0; i < list.size(); i++) {
        WorkOrderRecord e = list.get(i);
        Map<String, Object> map = MapUtils.newHashMap();
        map.put("id", e.getProCode());
        map.put("pId", "0");
        map.put("name", e.getProName());
        map.put("fullName", e.getProTypeName() + " " + e.getProName() + " " + e.getProSpecification());
        mapList.add(map);
    }
    return mapList;
}

查看 openFuncName 回调方法,options 对象:

{
  "type": 2,
  "maxmin": true,
  "shadeClose": true,
  "title": "产品选择",
  "area": [
    "300px",
    "400px"
  ],
  "content": "/js/tags/treeselect",
  "contentFormData": {
    "url": "/js/a/order/workOrder/productTreeData",
    "checkbox": "false",
    "chkboxType": "",
    "expandLevel": "-1",
    "selectCodes": "",
    "isReturnValue": "false",
    "fastSearch": "true"
  },
  "btn": [
    "<i class=\"fa fa-check\"></i> 确定",
    "<i class=\"fa fa-eraser\"></i> 清除",
    "<i class=\"fa fa-close\"></i> 关闭"
  ]
}

通过修改该对象属性来达到控制弹窗,其中 area 控制弹窗大小,content 弹窗地址,contentFormData 弹窗表单数据,其中contentFormData.url 为请求数据地址。

相关文章:

  1. JeeSite 列表中增加日期范围筛选 在开发中,需要进行日期范围筛选,那么可以按以下方法来进行。...
  2. JeeSite 导出数据 默认情况下,JeeSite 会自动生成导出代码,但有时候忘记了。这里介绍如何手动添加导出功能。...
  3. JeeSite 后端数据验证 验证数据的有效性可以通过前端进行过滤,后端再进行验证。...
  4. JeeSite 正则替换 HTML 单元格 在开发中遇到一个问题,需要将表单填写的内容,同步到 HTML 表格中。因为源表格很复杂,最终使用的方......
Java JeeSite JeeSite 框架treeselect

文章导航

Previous post
Next post

近期文章

  • Android Studio Gradle 配置国内镜像
  • 为什么重新发明轮子
  • ruoyi-vue-pro 匿名访问
  • VUE 中接收 code 异常
  • 关于 AI

归档

  • 2025 年 4 月
  • 2025 年 3 月
  • 2025 年 2 月
  • 2025 年 1 月
  • 2024 年 12 月
  • 2024 年 11 月
  • 2024 年 10 月
  • 2024 年 9 月
  • 2024 年 8 月
  • 2024 年 7 月
  • 2024 年 6 月
  • 2024 年 5 月
  • 2024 年 4 月
  • 2024 年 3 月
  • 2024 年 2 月
  • 2024 年 1 月
  • 2023 年 12 月
除非特殊说明,本站作品采用知识共享署名 4.0 国际许可协议进行许可。
豫公网安备 41010402002622号 豫ICP备2020029609号-3
©2025 3Vshej