//数据字典选择 ; 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(''); } }; }