ComplianceServer/oldcode/WEB/Scripts/op/ProductSelect.js

99 lines
3.8 KiB
JavaScript

;
(function ($, window, document) {
var defaults, pluginName, ProductSelect;
pluginName = "ProductSelect";
defaults = {
url: "/Level2/Leve2Order/GetZXL2Product",
required: true,
hasAll: false,
Bigproduct_obj: "#BigPuc",
Product_obj: "#Puc",
GetModule: function () { }
};
ProductSelect = (function () {
function ProductSelect(element, options) {
this.element = element;
this.opts = $.extend(true, {}, defaults, options);
this.init();
}
return ProductSelect;
})();
ProductSelect.prototype.init = function () {
var Product_json = [],
_this = this,
$BigPuc = $(this.opts.Bigproduct_obj),
$Product = $(this.opts.Product_obj);
if (typeof this.opts.url === "string") {
$.getJSON(this.opts.url, function (json) {
Product_json = json;
$.data(_this, "ProductJson", Product_json);
_this.BigProductBind(Product_json);
});
$BigPuc.bind("change", function () {
_this.ProductBind();
});
$Product.bind("change", function () {
_this.ModuleBind();
});
}
};
ProductSelect.prototype.BigProductBind = function (json) {
var select_html = "",
_this = this,
$prov = $(this.opts.Bigproduct_obj);
if (this.opts.hasAll) {
select_html = "<option value='请选择'>" + 请选择 + "</option>"
}
$.each(json.Productlist, function (i, n) {
select_html += "<option value='" + n.PRODUCTCODE + "'>" + n.PRODUCTNAME + "</option>";
});
$prov.append(select_html);
return this.ProductBind();
};
ProductSelect.prototype.ProductBind = function () {
var $BigProduct, $Product, select_html, _this, Productdata;
_this = this;
$BigProduct = $(this.opts.Bigproduct_obj);
$Product = $(this.opts.Product_obj);
$Product.empty();
select_html = "";
this.data = $.data(this);
if (this.opts.hasAll) {
select_html = "<option value='请选择'>" + 请选择 + "</option>"
}
if (this.data.ProductJson.Productlist[$BigProduct.get(0).selectedIndex]) {
Productdata = typeof (this.data.ProductJson.Productlist[$BigProduct.get(0).selectedIndex].softProduct) === "undefined" ?
"undefined" : this.data.ProductJson.Productlist[$BigProduct.get(0).selectedIndex].softProduct;
$.data(_this, "ModuleJson", Productdata);
if (Productdata !== "undefined") {
$.each(Productdata, function (i, n) {
select_html += "<option value='" + n.PRODUCTCODE + "'>" + n.PRODUCTNAME + "</option>";
});
$Product.append(select_html);
return this.ModuleBind();
}
}
};
ProductSelect.prototype.ModuleBind = function () {
var $BigProduct, $Product, _this, Productdata, Moduledata;
_this = this;
$BigProduct = $(this.opts.Bigproduct_obj);
$Product = $(this.opts.Product_obj);
this.data = $.data(this);
if (this.data.ModuleJson != "undefined" && this.data.ModuleJson[$Product.get(0).selectedIndex]) {
Moduledata = typeof (this.data.ModuleJson[$Product.get(0).selectedIndex].softModule) === "undefined" ?
"undefined" : this.data.ModuleJson[$Product.get(0).selectedIndex].softModule;
_this.opts.GetModule(Moduledata);
}
}
$.fn[pluginName] = function (options) {
return this.each(function () {
if (!$.data(this, pluginName)) {
$.data(this, pluginName, new ProductSelect(this, options));
}
});
}
})(jQuery, window, document);