被Layui坑过的那些天之TreeSelect

我tm服了 ,今天select check功能不管用了。看了下源码如下:

/**
     * 选中节点,因为tree是异步加载,所以必须在success回调中调用checkNode函数,否则无法获取生成的DOM元素
     * @param filter lay-filter属性
     * @param id 选中的id
     */
    TreeSelect.prototype.checkNode = function (filter, id) {
        var o = obj.filter(filter),
            treeInput = o.find('.layui-select-title input'),
            treeObj = obj.treeObj(filter),
            node = treeObj.getNodeByParam("id", id, null),
            name = node.name;
        treeInput.val(name);
        o.find('a[treenode_a]').removeClass('curSelectedNode');
        treeObj.selectNode(node);
    };

它位于treeselect.js 是layui的重要组成部分,看注释可以知道,

 <div class="layui-block">
                                        <label class="layui-form-label">具体地址</label>
                                        <div class="layui-input-block">
                                            <div id="addressDetail">
                                                <input id="dizhi" type="text" name="dizhi" lay-verify="" autocomplete="off"
                                                       placeholder="请输入具体地址" class="layui-input">
                                                @*<dl id="addressTip" class="addressDl"></dl>*@
                                            </div>
                                        </div>
                                    </div>
                                </div>
var treeSelect = layui.treeSelect;
        treeSelect.render({
            elem: '#areas',
            data: apiUrl + "/api/Base_Region/GetRegionAndChildrenListTreeAsync",
            type: 'GET',
            placeholder: '地址',
            search: true,
            click: function (d) {
                $("#area").val(d.current.id);
                var parmas = {
                    url: "/api/Base_Region/GetItem?id=" + d.current.id,
                    type: 'POST'
                };
                interaction(parmas).then(data => {
                    $("#dizhi").val(data);
                    layer.msg("已选择" + data, {
                        icon: 1,
                        time: 2000
                    }, function () {
                    });
                }).catch(err => {
                });
            },
            success: function (d) {
                bindInfo();
            }
        });
var mc_util = youyaboot_all;
        var identify = mc_util.getParameter('id')//从url中检测主键
        function bindInfo() {

            // alert(identify);
            if (identify != null && identify != '') {
                var parmas = {
                    url: "/api/Sys_Organization/GetItem?id=" + identify,
                    type: 'POST'
                };
                interaction(parmas).then(data => {
                    if (data.pic != "") {
                        $("#imgBtn").attr("src", apiUrl + data.pic);
                    }
                    pca.init('select[name=province]', 'select[name=city]', 'select[name=area]', data.province, data.city,data.area);
                    mc_util.mappingEntityToFormUiValue($("body"), data);
                    form.render();
                    treeSelect.checkNode('tree2', data.parentid);

                    treeSelect.checkNode('tree3', data.area);
                }).catch(err => {
                    console.log(err);
                });
            }
            else {
                $("#parentid").val(mc_util.getParameter('parentid'));
                pca.init('select[name=province]', 'select[name=city]', 'select[name=area]');
                if (mc_util.getParameter('parentid') != 0) {
                    treeSelect.checkNode('tree2', mc_util.getParameter('parentid'));
                    treeSelect.checkNode('tree3', data.area);
                }
            }
        }
posted @ 2020-01-02 13:32  ZaraNet  阅读(2530)  评论(0)    收藏  举报