//数据字典选择
; RoadUI.Dict = function ()
{
var instance = this;
this.init = function ($members)
{
$members.each(function (index)
{
var $_member = $members.eq(index);
var id = $_member.attr("id") || "";
var name = $_member.attr("name") || "";
var value = $_member.val() || "";
var title = $_member.attr("title") || "";
var datasource = $_member.attr("datasource");
var disabled = $_member.prop("disabled");
$_member.prop("readonly", true);
var $hide = $('');
var $but = $('');
$_member.attr("id", id + "_text");
$_member.attr("name", name + "_text");
$_member.css({ "border-top": "1px solid #b7b6b4", "border-left": "1px solid #b7b6b4", "border-bottom": "1px solid #b7b6b4", "border-right": "0" });
$_member.removeClass().addClass("mytext");
if (value && value.length > 0)
{
switch (datasource)
{
case "0":
default:
$.ajax({
url: (top.rootdir || "") + "/Controls/SelectDict/GetNames?values=" + encodeURI(value), type: "get", async: false, cache: false, success: function (txt)
{
$_member.val(txt);
}
});
break;
case "1":
var dbconn = $_member.attr("dbconn");
var sql = $_member.attr("sql");
$.ajax({
url: (top.rootdir || "") + "/Controls/SelectDict/GetNames_SQL?values=" + encodeURI(value) + "&dbconn=" + dbconn + "&sql=" + encodeURI(sql), type: "get", async: false, cache: false, success: function (txt)
{
$_member.val(txt);
}
});
break;
case "2": //url
var url = $_member.attr("url2");
url = url.indexOf('?') >= 0 ? url + "&values=" + encodeURI(value) : url + "?values=" + encodeURI(value);
$.ajax({
url: (top.rootdir || "") + url, type: "get", async: false, cache: false, success: function (txt)
{
$_member.val(txt);
}
});
break;
case "3": //table
var dbconn = $_member.attr("dbconn") || "";
var dbtable = $_member.attr("dbtable") || "";
var valuefield = $_member.attr("valuefield") || "";
var titlefield = $_member.attr("titlefield") || "";
url = (top.rootdir || "") + "/Controls/SelectDict/GetNames_Table?values=" + encodeURI(value);
url += "&dbconn=" + dbconn + "&dbtable=" + dbtable + "&valuefield=" + valuefield + "&titlefield=" + titlefield;
$.ajax({
url: (top.rootdir || "") + url, type: "get", async: false, cache: false, success: function (txt)
{
$_member.val(txt);
}
});
break;
}
}
if ($_member.prop("disabled"))
{
$but.prop("disabled", true);
}
else
{
$but.bind("click", function ()
{
var $obj = $(this).prev().prev();
var val = $obj.val();
var $obj1 = $(this).prev();
var ismore = ($obj1.attr("more") || $obj1.attr("ismore")) || "1";
var isparent = ($obj1.attr("parent") || $obj1.attr("isparent")) || "1";//是否可以选择父节点
var root = $obj1.attr("rootid") || "";
var isroot = $obj1.attr("isroot") || "1";//是否可以选择根
var ischild = $obj1.attr("ischild") || "1";//是否加载所有子节点
var dialogtitle = $obj1.attr("dialogtitle") || "选择数据字典";
var dbconn = $obj1.attr("dbconn") || "";
var sql = $obj1.attr("sql") || "";
var url0 = $obj1.attr("url0") || "";
var url1 = $obj1.attr("url1") || "";
var url2 = $obj1.attr("url2") || "";
//var dbconn = $obj1.attr("dbconn") || "";
var dbtable = $obj1.attr("dbtable") || "";
var valuefield = $obj1.attr("valuefield") || "";
var titlefield = $obj1.attr("titlefield") || "";
var valuefield = $obj1.attr("valuefield") || "";
var parentfield = $obj1.attr("parentfield") || "";
var where = $obj1.attr("where") || "";
var params = "eid=" + id + "&datasource=" + datasource + "&dbconn=" + dbconn + "&sql=" + encodeURI(sql)
+ "&url0=" + encodeURI(url0) + "&url1=" + encodeURI(url1) + "&url2=" + encodeURI(url2)
+ "&ismore=" + ismore + "&isparent=" + isparent + "&root=" + root + "&isroot=" + isroot + "&ischild=" + ischild + "&values=" + encodeURI(val)
+ "&dbtable=" + dbtable + "&valuefield=" + valuefield + "&titlefield=" + titlefield
+ "&parentfield=" + parentfield + "&where1=" + encodeURIComponent(where);
new RoadUI.Window().open({
id: "dict_" + id, url: (top.rootdir || "") + "/Controls/SelectDict/Index?" + params, width: 500, height: 470, resize: false,
title: dialogtitle, openerid: RoadUI.Core.query("tabid") || ""
});
});
}
$_member.after($but).before($hide);
});
};
this.setValue = function (objorid)
{
var $obj;
if (typeof (objorid) == "string")
{
$obj = $("#" + objorid);
}
else
{
$obj = $(objorid);
}
if (!$obj || $obj.size() == 0) return;
var value = $obj.val();
var datasource = $obj.next().attr("datasource");
if (value && value.length > 0)
{
switch (datasource)
{
case "0": //数据字典
default:
$.ajax({
url: (top.rootdir || "") + "/Controls/SelectDict/GetNames?values=" + value, type: "get", async: false, cache: false, success: function (txt)
{
$obj.next().val(txt);
}
});
break;
case "1": //sql
var dbconn = $obj.next().attr("dbconn");
var sql = $obj.next().attr("sql");
$.ajax({
url: (top.rootdir || "") + "/Controls/SelectDict/GetNames_SQL?values=" + encodeURI(value) + "&dbconn=" + dbconn + "&sql=" + encodeURI(sql), type: "get", async: false, cache: false, success: function (txt)
{
$obj.next().val(txt);
}
});
break;
case "2": //url
var url = $obj.next().attr("url2");
url = url.indexOf('?') >= 0 ? url + "&values=" + encodeURI(value) : url + "?values=" + encodeURI(value);
$.ajax({
url: (top.rootdir || "") + url, type: "get", async: false, cache: false, success: function (txt)
{
$obj.next().val(txt);
}
});
break;
case "3": //table
var dbconn = $obj.next().attr("dbconn") || "";
var dbtable = $obj.next().attr("dbtable") || "";
var valuefield = $obj.next().attr("valuefield") || "";
var titlefield = $obj.next().attr("titlefield") || "";
url = (top.rootdir || "") + "/Controls/SelectDict/GetNames_Table?values=" + encodeURI(value);
url += "&dbconn=" + dbconn + "&dbtable=" + dbtable + "&valuefield=" + valuefield + "&titlefield=" + titlefield;
$.ajax({
url: (top.rootdir || "") + url, type: "get", async: false, cache: false, success: function (txt)
{
$obj.next().val(txt);
}
});
break;
}
}
else
{
$obj.next().val('');
}
};
}