; (function ($, window, document, undefined) {
|
//定义Beautifier的构造函数
|
var createzeone = function (ele, opt) {
|
this.$element = ele,
|
this.defaults = {
|
'search': true,
|
'clear': true,
|
'link': false,
|
url: "",
|
searchEnd: undefined,
|
clearEnd: undefined,
|
isMulti: false
|
|
|
|
};
|
var options = $.extend(this.defaults, opt);
|
|
var id = "";
|
var html = '';
|
html += ' <input type="text" style="background-color:transparent;" txtobj=' + encodeURI(JSON.stringify(options)) + ' name="selecttext" readonly="true" class="form-control" placeholder="请选择内容" >';
|
html += ' <span class="input-group-btn">';
|
if (options.search) {
|
html += ' <button type="button" name="datasearchbtn" class="btn btn-successs btn-outline" style=" border-color:#e5e6e7"><i class="fa fa-search "></i></button>';
|
}
|
if (options.link) {
|
html += ' <button type="button" class="btn btn-successs btn-outline " name="datalinkbtn" style="border-color:#e5e6e7"><i class="fa fa-chain "></i></button>';
|
}
|
if (options.clear) {
|
html += ' <button type="button" class="btn btn-successs btn-outline " name="dataclearbtn" style="color:Red; border-color:#e5e6e7"><i class="fa fa-times"></i></button>';
|
}
|
html += ' </span>';
|
this.$element.html(html);
|
this.$element.find("input[name='selecttext']").attr("ismult", options.isMulti);
|
// $(this).attr("ismult", options.isMulti);
|
// this.$element.find("button[name='onanedsads']")
|
this.$element.find("button[name='datasearchbtn']").bind("click", function () {
|
ToSearch(ele, options);
|
});
|
this.$element.find("button[name='datalinkbtn']").bind("click", function () {
|
// alert("点击了链接页面");
|
});
|
|
this.$element.find("button[name='dataclearbtn']").bind("click", function () {
|
ToClear(ele, options);
|
|
});
|
}
|
|
function ToSearch(obj, options) {
|
|
var txtonbj = obj.find("input[name='selecttext']");
|
var nval = txtonbj.attr("valcode");
|
|
var val = encodeURI(nval);
|
var cars = ["确认", "取消"];
|
var u = options.url;
|
if (u.indexOf('?') > -1) {
|
|
u = u + "&multiselect=" + options.isMulti + "&val=" + val;
|
}
|
else {
|
|
u = u + "?multiselect=" + options.isMulti + "&val=" + val;
|
}
|
|
|
dlog.open("内容选择", cars, "lg", u,
|
function (res) {
|
if (res == undefined) {
|
alert("无数据");
|
return false;
|
}
|
var isarea = jQuery.isArray(res);
|
if ((options.isMulti == "true") != isarea) {
|
alert("基础配置不正确,当前设置是否多选:" + options.isMulti + " 返回是否多选数据:" + jQuery.isArray(res));
|
return false;
|
}
|
|
if (options.isMulti != "true") {
|
if (res == undefined || res.lable == undefined) {
|
alert("无数据");
|
return false;
|
}
|
var chaneg = false;
|
if (ToGetVal(false, obj) != res.code) {
|
chaneg = true;
|
|
}
|
ToSetVal(false, obj, res.code, res.lable)
|
if (chaneg) {
|
|
|
//查询控件
|
if (typeof (options.searchEnd) === "function") {
|
options.searchEnd(obj);
|
|
}
|
else
|
{
|
if (options.searchEnd != undefined && options.searchEnd != "")
|
{
|
var objbtns = eval(options.searchEnd);
|
if (typeof (objbtns) === "function") {
|
objbtns(obj);
|
}
|
}
|
}
|
}
|
}
|
else {
|
|
ToSetVal(true, obj, res)
|
if (typeof (options.searchEnd) === "function") {
|
options.searchEnd(obj);
|
|
}
|
else {
|
if (options.searchEnd != undefined && options.searchEnd != "") {
|
var objbtns = eval(options.searchEnd);
|
if (typeof (objbtns) === "function") {
|
objbtns(obj);
|
}
|
}
|
}
|
}
|
//LoadGrid(res);
|
});
|
}
|
function ToClear(obj, options) {
|
|
var txtonbj = obj.find("input[name='selecttext']");
|
var nval = txtonbj.attr("valcode");
|
txtonbj.val("");
|
txtonbj.attr("valcode", "");
|
txtonbj.focus();
|
if (nval != undefined && nval != "") {
|
if (typeof (options.clearEnd) === "function") {
|
options.clearEnd(obj);
|
} else {
|
if (options.clearEnd != undefined && options.clearEnd != "") {
|
var objbtns = eval(options.clearEnd);
|
if (typeof (objbtns) === "function") {
|
objbtns(obj);
|
}
|
}
|
}
|
}
|
|
}
|
|
function ToGetVal(ismult, obj) {
|
var txtobj = obj.find("input[name='selecttext']");
|
//获取值
|
var va = txtobj.attr("valcode");
|
if (va == undefined || va == "") {
|
return "";
|
} else {
|
var JsonData = jQuery.parseJSON(va);
|
if (!ismult) {
|
return JsonData.code;
|
}
|
else {
|
|
//字符串编号列
|
var str = "";
|
$.each(JsonData, function (index, item) {
|
str += "," + item.code;
|
});
|
if (str == "") {
|
|
return "";
|
}
|
return str.substring(1);
|
|
}
|
|
|
|
}
|
//
|
|
}
|
|
//设置及获取值 _code//可能是jsong数组 必须是[{}] 格式复制
|
function ToSetVal(ismult, obj, _code, _lable) {
|
var txtobj = obj.find("input[name='selecttext']");
|
if (!ismult) {
|
|
var json = {};
|
|
if (_lable != undefined && _code != undefined) {
|
json = { code: _code, lable: _lable }
|
}
|
else {
|
|
if (_code == undefined) {
|
|
_code = _lable;
|
json = { code: _code, lable: _lable }
|
}
|
|
if(_code!=undefined&&_lable==undefined)
|
{
|
|
var isjson = typeof (_code) == "object" && Object.prototype.toString.call(_code).toLowerCase() == "[object object]" && !_code.length
|
if (isjson) {
|
json = _code;
|
_lable = _code.lable;
|
|
} else {
|
|
_lable = _code;
|
json = { code: _code, lable: _lable }
|
|
}
|
}
|
|
}
|
|
txtobj.attr("valcode", JSON.stringify(json));
|
txtobj.val(_lable);
|
return "";
|
}
|
else {
|
|
|
var Json = [];
|
if (_lable != undefined && _lable != null && _code.indexOf('code') == -1) {
|
var codesz = _code.split(",");
|
var lbsz = _lable.split(",");
|
for (var i = 0; i < codesz.length; i++) {
|
|
var cdstr = codesz[i];
|
var lbstr = "";
|
if (lbsz.length > i) {
|
lbstr = lbsz[i];
|
}
|
Json.push({ code: cdstr, lable: lbstr })
|
|
}
|
|
|
|
}
|
if (Json.length > 0) {
|
_code = Json;
|
}
|
|
|
// var josn = [{ code: "123", lable: "1124312" }]
|
|
txtobj.attr("valcode", JSON.stringify(_code));
|
var str = "";
|
$.each(_code, function (index, item) {
|
str += "," + item.lable;
|
});
|
if (str == "") {
|
txtobj.val("");
|
return "";
|
}
|
txtobj.val(str.substring(1));
|
return "";
|
|
}
|
}
|
$.fn.ival = function (code, lable) {
|
var ismut = false;
|
var b = this.find("input[name='selecttext']").attr("ismult");
|
if (b == "true") {
|
ismut = true;
|
}
|
if (code == undefined && lable == undefined) {
|
return ToGetVal(ismut, this);
|
}
|
else {
|
return ToSetVal(ismut, this, code, lable);
|
}
|
}
|
$.fn.disabled = function (isdisabled) {
|
|
if (isdisabled) {
|
this.find("button[name='datasearchbtn']").attr("disabled", true);
|
this.find("button[name='dataclearbtn']").attr("disabled", true);
|
|
}
|
else {
|
this.find("button[name='datasearchbtn']").removeAttr("disabled")
|
this.find("button[name='dataclearbtn']").removeAttr("disabled")
|
}
|
|
}
|
$.fn.search = function () {
|
|
var op = this.find("input[name='selecttext']") .attr("txtobj");
|
ToSearch(this, jQuery.parseJSON(decodeURI(op)));
|
|
}
|
$.fn.clear = function () {
|
|
|
var op = this.find("input[name='selecttext']").attr("txtobj");
|
ToClear(this, jQuery.parseJSON(decodeURI(op)));
|
}
|
|
$.fn.iTexbox = function (options) {
|
var beautifier = new createzeone(this, options);
|
}
|
})(jQuery, window, document);
|