写的扩展组件在dataGrid里显示

写的扩展组件在dataGrid里显示要在 rewrite-easyui.js里加下面

$.extend($.fn.datagrid.defaults.editors, {
    plantSearchGrid:{
        init: function(container, options){

            var input = $('<div class="easyui-plantSearchGrid" >').appendTo(container);
            $(container).find(".easyui-plantSearchGrid").plantSearchGrid(options);
            return input;
        },
        getValue: function(target){
            $(target).plantSearchGrid("getValue");
        },
        setValue: function(target, value){
            $(target).combogrid("setValue",value);
        },
        resize: function(target, width){
            $(target).combogrid("resize",width);
        }
    },

});

在component.js里写的扩展组件

$.parser.plugins.push("plantSearchGrid");//注册扩展组件
$.fn.plantSearchGrid = function (options, param) {//定义扩展组件
    if (typeof options == "string") {
        return $.fn.plantSearchGrid.method[options].apply(this, arguments);
    }
    options = options || {};
    options = $.extend({}, $.fn.plantSearchGrid.options, options);
    return this.each(function () { //当该组件在页面出现多次时  是一个集合 所以用each来遍历
        var opts = $.extend(true, options, $.fn.combogrid.parseOptions(this));
        var jq = $(this);
        opts.delay = 200;
        opts.panelWidth = 800;
        opts.panelHeight = 300;
        opts.mode = "remote";
        opts.url = '/common/searchPlant';
        opts.idField = "plantId";
        opts.textField = "plantName";
        opts.invalidMessage = opts.invalidMessage || "请选择厂商!";
        opts.missingMessage = opts.missingMessage || "请选择厂商!";
        opts.validType = "plantSelect";
        opts.frozenColumns = [];
        opts.editable = true;
        opts.validateOnBlur = true;
        opts.multiSelect = false;
        opts.singleSelect = true;
        opts.rownumbers = false;
        opts.validateOnCreate = opts.validateOnCreate == undefined ? false : opts.validateOnCreate;
        opts.selectOnNavigation = true;
        opts.fitColumns = true;
        opts.onSelect = function (index, row) {
            if (opts.onSelectRow) {
                opts.onSelectRow(index, row);
            }
            jq.combogrid("validate");
            $(jq.next().find("input")).select();
        }
        if (opts.checkbox) {
            opts.frozenColumns = [[{field: '', checkbox: true}]];
        }
        ;
        var beforeLoad = opts.onBeforeLoad;
        opts.onBeforeLoad = function (param) {
            param.type = opts.type || "";
            if (beforeLoad) {
                param = beforeLoad(param);
            }

            return param;
        }

        opts.columns = [[
            {
                field: 'plantName',
                align: 'left',
                title: '厂商名称',
                sortable: false,
                width: 200,
                formatter: function (value, row, index) {
                    var str = "";
                    if (row.isProcessing == 1) {
                        str += '<span class="layui-badge layui-bg-orange">加</span>';
                    }


                    if (row.isSupplier == 1) {
                        str += '<span class="layui-badge layui-bg-green">供</span>';
                    }

                    if (row.isProducer == 1) {
                        str += '<span class="layui-badge">生</span>';
                    }

                    var str1 = '<div>' + value + '</div>';
                    if (str != "") {
                        str1 += "<div style='text-align:right'>" + str + "</div>"
                    }
                    ;
                    return str1;
                }
            },
            {field: 'phone', align: 'left', title: '联系电话', sortable: false, width: 150},
            {field: 'linkman', align: 'left', title: '联系人', sortable: false, width: 150},
            {field: 'area', align: 'left', title: '地区', sortable: false, width: 200},
        ]];

        $.fn.combogrid.call(jq, opts);
        $(jq.next().find("input")).bind("focus", function () {
            $(this).select();
        });
    })
};


$.fn.plantSearchGrid.options = {
    pageSize: 6,
    pageList:[6,10,20,50],
    autoRowHeight: true,
    striped: true,
    loadMsg: '加载中',
    reversed: true,
    pagination: true,
    singleSelect: true,
    ctrlSelect: false,
    checkbox: false,
    allowInput: false,
    required: true,
    tipPosition: 'right',
    labelAlign: 'right',
    onSelectRow: null
}
$.fn.plantSearchGrid.method = {
    getValue: function (jq) {

        var opts = $(this).combogrid('options');
        if (!opts.allowInput) {
            if ($(this).combogrid('getValue') == $(this).combogrid('getText')) {
                return "";
            }
        }
        return $(this).combogrid('getValue');
    }

}

显示效果如下

写的扩展组件在dataGrid里显示