(function ($, zou) { "use strict"; $.lrformselect = { init: function ($self) { var dfop = $self[0]._lrformselect.dfop; $self.addClass('z-formselect'); $self.attr('type', 'formselect'); var $input = $('' + dfop.placeholder + '
清空
'); $self.on('click', $.lrformselect.click); $self.html($input); }, click: function (e) { var $self = $(this); var dfop = $self[0]._lrformselect.dfop; var et = e.target || e.srcElement; var $et = $(et); if ($et.hasClass('clear-btn')) { dfop._itemValue = { value: "", text: dfop.placeholder }; $self.removeClass('selected'); $self.find('span').text(dfop._itemValue.text); if (!!dfop.select) { dfop.select(dfop._itemValue); } } else { var value = dfop._itemValue ? dfop._itemValue.value : ""; var _url = dfop.layerUrl; if (_url.indexOf('?') != -1) { _url += '&dfopid=' + dfop.id; } else { _url += '?dfopid=' + dfop.id; } _url += '&selectValue=' + value; _url += '&selectText=' + encodeURI(encodeURI($self.find('span').text())); zou.layerForm({ id: dfop.id, title: dfop.placeholder, url: _url, width: dfop.layerUrlW, height: dfop.layerUrlH, maxmin: true, callBack: function (id) { return top[id].acceptClick($.lrformselect.callback); } }); } }, callback: function (item, id, obj) { var $self = $('#' + id); var dfop = $self[0]._lrformselect.dfop; top['lr_selectform_' + id] = { _obj: obj }; dfop._itemValue = dfop._itemValue || {}; if (dfop._itemValue.value != item.value) { if (!!dfop.select) { dfop.select(item); } $self.trigger('change'); } if (item.value == "") { item.text = dfop.placeholder; } else { $self.addClass('selected'); } $self.find('span').text(item.text); dfop._itemValue = item; } }; $.fn.lrformselect = function (op) { var dfop = { placeholder: "请选择", icon: 'fa-plus', layerUrl: false, // 弹层地址 layerParam: false, layerUrlW: 600, layerUrlH: 400, dataUrl: null, // 获取数据地址 select: false, // 选择事件 }; $.extend(dfop, op || {}); var $self = $(this); dfop.id = $self.attr('id'); if (!dfop.id) { return false; } if (!!$self[0]._lrformselect) { return $self; } $self[0]._lrformselect = { dfop: dfop }; $.lrformselect.init($self); return $self; }; $.fn.lrformselectRefresh = function (op) { var $self = $(this); var dfop = $self[0]._lrformselect.dfop; $.extend(dfop, op || {}); dfop._itemValue = null; $self.find('span').text(dfop.placeholder); }; $.fn.lrformselectGet = function () { var $self = $(this); var dfop = $self[0]._lrformselect.dfop; return dfop._itemValue ? dfop._itemValue.value : ""; }; $.fn.lrformselectSet = function (value) { var $self = $(this); var dfop = $self[0]._lrformselect.dfop; if (value == '') { dfop._itemValue = { value: '', text: '' }; $self.removeClass('selected'); $self.find('span').text(dfop.placeholder); return false; } dfop._itemValue = { value: value }; zou.httpAsync('GET', dfop.dataUrl, { keyValue: value }, function (data) { if (!!data && data !="") { dfop._itemValue.text = data; $self.addClass('selected'); $self.find('span').text(data); } }); }; // 弹层列表选择 $.lrGirdSelect = { init: function ($self) { var dfop = $self[0]._lrGirdSelect.dfop; $self.addClass('z-formselect'); $self.attr('type', 'lrGirdSelect'); var $input = $('' + dfop.placeholder + '
清空
'); $self.on('click', $.lrGirdSelect.click); $self.html($input); // 异步加载数据 zou.httpAsync('GET', dfop.url, dfop.param, function (data) { dfop._loaded = true; dfop._data = data || []; }); top.lrGirdSelect = top.lrGirdSelect || {}; top.lrGirdSelect[dfop.id] = dfop; }, click: function (e) { var $self = $(this); var dfop = $self[0]._lrGirdSelect.dfop; var et = e.target || e.srcElement; var $et = $(et); if ($et.hasClass('clear-btn')) { dfop._itemValue = { value: "", text: dfop.placeholder }; $self.removeClass('selected'); $self.find('span').text(dfop._itemValue.text); if (!!dfop.select) { dfop.select(dfop._itemValue); } } else { var value = dfop._itemValue ? dfop._itemValue.value : ""; zou.layerForm({ id: dfop.id, title: dfop.placeholder, url: top.$.rootUrl + '/Utility/GirdSelectIndex?dfopid=' + dfop.id, width: dfop.width, height: dfop.height, maxmin: true, callBack: function (id) { return top[id].acceptClick($.lrGirdSelect.callback); } }); } }, callback: function (item, id) { var $self = $('#' + id); var dfop = $self[0]._lrGirdSelect.dfop; dfop._itemValue = dfop._itemValue || {}; if (dfop._itemValue[dfop.value] != item[dfop.value]) { if (!!dfop.select) { dfop.select(item); } $self.trigger('change'); } if (!item) { item.text = dfop.placeholder; } else { $self.addClass('selected'); } $self.find('span').text(item[dfop.text]); dfop._itemValue = item; } } $.fn.lrGirdSelect = function (op) { var dfop = { placeholder: "请选择", icon: 'fa-plus', url: '', selectWord: '', headData: [], value: '', text: '', width: 600, height: 400, select: false, // 选择事件 param: {}, _loaded: false }; $.extend(dfop, op || {}); var $self = $(this); dfop.id = $self.attr('id'); if (!dfop.id) { return false; } if (!!$self[0]._lrGirdSelect) { return $self; } $self[0]._lrGirdSelect = { dfop: dfop }; $.lrGirdSelect.init($self); return $self; } $.fn.lrGirdSelectGet = function () { var $this = $(this); var dfop = $this[0]._lrGirdSelect.dfop; dfop._itemValue = dfop._itemValue || {}; var res = dfop._itemValue[dfop.value] || ""; return res; } $.fn.lrGirdSelectSet = function (value) { var $this = $(this); var dfop = $this[0]._lrGirdSelect.dfop; function set(_value) { if (dfop._loaded) { $.each(dfop._data, function (id, item) { if (item[dfop.value] == _value) { if (!!dfop.select) { dfop.select(item); } $this.trigger('change'); $this.addClass('selected'); $this.find('span').text(item[dfop.text]); dfop._itemValue = item; return false; } }); } else { setTimeout(function () { set(_value); }, 100); } } set(value); } })(window.jQuery, top.zou);