xm-select下拉自定义列表

var initChannels = function () {
    // 关联中心频道下拉组件
    channelSelect = xmSelect.render({
        el: document.getElementById("channels"),
        tips: "请选择频道",
        direction: 'down',                    //下拉框展开方向,下方展开
        radio: true,
        filterable: true,
        height: "400px",
        theme: {
            color: '#278AFF',                 //主题颜色
        },
        prop: {
            name: "channelName",          //将name字段更改为navTemplateInfo字段
            value: "channelId"                       //将value字段更改为id字段
        },
        model: {
            label: {
                type: 'block',
                block: {
                    //最大显示数量, 0:不限制
                    showCount: 0,
                    //是否显示删除图标
                    showIcon: false,
                }
            }
        },
        content: `
		<table class="layui-table" id="channelList" lay-filter="channelFilter">
		</table>`
    });
    layui.table.render({
        elem: "#channelList",
        url: $appRoot + "/tstvchannel/tstvChannelExt/getListAndPackages",
        cols: [[
            {field: 'channelName', width: 150, title: '名称', templet: channelNameTemp},
            // {field: 'dataStatus', width: 40, templet: statusTemp, title: '状态'},
            {field: 'tstvStatus', width: 40, title: '时移', templet: tstvStatusTemp},
            {field: 'replayStatus', width: 40, title: '回看', templet: replayStatusTemp},
            {field: 'relatedChannels', width: 180, title: '关联套餐', templet: packageStatusTemp}
        ]],
        loading: true,
        id: "channelList",
        page: {
            layout: ['limit', 'count', 'prev', 'page', 'next'] //自定义分页布局
            , first: false //不显示首页
            , last: false //不显示尾页
            , theme: '#5CB85C'
        },
        parseData: function (res) { //res 即为原始返回的数据
            return {
                "code": 0, //解析接口状态
                "msg": "", //解析提示文本
                "count": res.total, //解析数据长度
                "data": res.rows //解析数据列表
            };
        },
        done: function (res, curr, count) {
            if ($("#searchChannel").length == 0) {
                // 添加搜索
                var parent = $(".xm-body, .absolute")[0];
                var searchDiv = document.createElement("div");
                searchDiv.className = "xm-search";
                var searchIcon = document.createElement("i");
                searchIcon.className = "xm-iconfont xm-icon-sousuo";
                searchIcon.style = "margin-left: 10px;";
                searchIcon.id = "searchChannel";
                var searchInput = document.createElement("input");
                searchInput.style = "    width: 93%;height: 33px;border: none;" +
                    "border-bottom: 1px solid #E6E6E6;";
                searchInput.id = "searchContent";
                searchInput.placeholder = "频道搜索";

                searchDiv.append(searchInput);
                searchDiv.append(searchIcon);

                parent.prepend(searchDiv);
            }

            if (curr === 1 && centerChannel != "") {
                var info = eval('(' + centerChannel + ')');
                channelSelect.setValue([info]);
            }

            // 防止点击冒泡
            $("#searchContent").click(function (event) {
                event.preventDefault();
                window.event.returnValue = false;
                return false;
            });

            $("#searchChannel").on("click", function () {
                event.preventDefault();
                window.event.returnValue = false;

                searchContent = $("#searchContent").val();
                layui.table.reload('channelList', {
                    url: $appRoot + "/tstvchannel/tstvChannelExt/getListAndPackages"
                    , where: {
                        channelName: searchContent
                    },
                    page: {
                        curr: 1
                    }
                });
                return false;
            });

            $(".layui-icon")[0].innerHTML = "<";
            $(".layui-icon")[1].innerHTML = ">";
        }
    });

    layui.table.on('row(channelFilter)', function (obj) {
        channelSelect.setValue([obj.data]);
        // var data = layui.table.cache["channelList"];
        // console.log(data);
        $(".layui-table-box").find("tbody").find("tr").find("span").each(function () {
            if ($(this).attr("class") == "channelName") {
                $(this).css('color', 'black');
            }
        })

        obj.tr.find("span")[0].style = "color: red;";
    });

    $(".scroll-body")[0].style.margin = "-15px 0px";
}

function channelNameTemp(data) {
    if (centerChannel != "") {
        var info = eval("(" + centerChannel + ")");
        if (data.channelId == info.channelId) {
            return '<span style="color: red;" class="channelName">' + data.channelName + '</span>';
        }
    }

    return '<span class="channelName">' + data.channelName + '</span>';
}

要实现下拉列表的多选功能,并使用 xm-select 插件进行操作,可以按照以下步骤进行: 1. 引入必要的依赖文件。在 HTML 页面中引入 jQuery 和 xm-select 的 CSS 和 JavaScript 文件。 ```html <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.min.js"></script> <link rel="stylesheet" href="https://cdn.bootcdn.net/ajax/libs/xm-select/2.4.1/xm-select.css"> <script src="https://cdn.bootcdn.net/ajax/libs/xm-select/2.4.1/xm-select.js"></script> ``` 2. 创建一个 `<select>` 元素,并为其添加一个唯一的 id。 ```html <select id="mySelect" multiple> <!-- 动态生成的选项将在这里插入 --> </select> ``` 3. 使用 JavaScript 动态生成选项,并初始化 xm-select 插件。 ```javascript // 获取需要插入选项的 select 元素 var selectElement = document.getElementById("mySelect"); // 定义动态生成的选项数据 var options = [ { name: "选项1", value: "option1" }, { name: "选项2", value: "option2" }, { name: "选项3", value: "option3" }, // 其他选项... ]; // 动态生成选项 options.forEach(function (option) { var optionElement = document.createElement("option"); optionElement.text = option.name; optionElement.value = option.value; selectElement.appendChild(optionElement); }); // 初始化 xm-select 插件 xmSelect.render({ el: '#mySelect', tips: '请选择选项', }); ``` 通过以上步骤,就可以实现使用 xm-select 插件实现下拉列表的动态数据多选功能。请注意,上述代码只是一个简单的示例,你可以根据自己的实际需求进行相应的修改和扩展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值