commonTree.jsp 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287
  1. <%@page language="java" pageEncoding="UTF-8"%>
  2. <%@include file="/commons/include/html_doctype.html"%>
  3. <html>
  4. <head>
  5. <title>编辑 自定义显示的树结构</title>
  6. <%@include file="/commons/include/form.jsp" %>
  7. <%@include file="/js/msg.jsp"%>
  8. <script type="text/javascript"src="${ctx}/js/hotent/platform/system/ScriptDialog.js"></script>
  9. <style type="text/css">
  10. .hide{
  11. display: none;
  12. }
  13. #leftArea{
  14. float: left;
  15. width:32%;
  16. height:550px;
  17. }
  18. #centerArea{
  19. float: left;
  20. height:550px;
  21. width:8%;
  22. }
  23. #rightArea{
  24. float: left;
  25. width:60%;
  26. height:550px;
  27. }
  28. .moveSelect{
  29. margin:4px auto;
  30. }
  31. </style>
  32. <script type="text/javascript">
  33. var curField;
  34. $(function(){
  35. var inputArgs = window.dialogArguments;
  36. var isAdd=inputArgs.isAdd;
  37. var fields=inputArgs.fields;
  38. var setting=inputArgs.setting;
  39. // var conditions=inputArgs.conditions;
  40. // fields=$.parseJSON(fields);
  41. initColumns(fields);
  42. if(setting){
  43. // setting=$.parseJSON(setting);
  44. initSetting(setting);
  45. }
  46. $("input.treeField").focus(function(){
  47. curField=$(this);
  48. });
  49. });
  50. /*
  51. *初始化树设置
  52. */
  53. function initSetting(setting){
  54. if(setting){
  55. var node=setting.node;
  56. var parentNode=setting.parent;
  57. var displayField=setting.display;
  58. $("#nodeId").val(node.name);
  59. $("#nodeId").attr("field",JSON2.stringify(node));
  60. $("#parentNodeId").val(parentNode.name);
  61. $("#parentNodeId").attr("field",JSON2.stringify(parentNode));
  62. $("#displayField").val(displayField.name);
  63. $("#displayField").attr("field",JSON2.stringify(displayField));
  64. }
  65. }
  66. /*
  67. *初始化数据列的表
  68. */
  69. function initColumns(fields){
  70. var columnsTbl = $("#columnsTbl tbody").html("");
  71. for(var i=0;i<fields.length;i++){
  72. var field=fields[i];
  73. var tr = constructColumnTr(field);
  74. columnsTbl.append(tr);
  75. }
  76. }
  77. /*
  78. *构造SQL语句选择的列的<tr>///////////////
  79. */
  80. function constructColumnTr(field){
  81. var index = field.index;
  82. var type = field.type;
  83. var name = field.name;
  84. var qualifiedName=field.qualifiedName;
  85. var label=field.label;
  86. var comment = field.comment;
  87. if(!comment){
  88. comment=label;
  89. }
  90. var display=false;
  91. if(typeof(field.display)!='undefined'){
  92. display = field.display;
  93. }
  94. //first td checkbox
  95. var $tdChk = $("<td></td>");
  96. var $inputChk = $("<input></input>")
  97. $inputChk.attr("name","fieldCheckBox");
  98. $inputChk.attr("type","checkbox");
  99. $tdChk.append($inputChk);
  100. $inputHidden=$("<input type='hidden'/>")
  101. $inputHidden.val(JSON2.stringify(field));
  102. $tdChk.append($inputHidden);
  103. //second td field name
  104. var $tdName = $("<td></td>");
  105. $tdName.append(name);
  106. //third td field comment
  107. var $tdComment = $("<td></td>");
  108. var $inputComment=$("<input></input>");
  109. $inputComment.attr("name","fieldComment");
  110. $inputComment.val(comment);
  111. $tdComment.append($inputComment);
  112. //four td column select checkedbox
  113. // var $tdSelect = $("<td></td>");
  114. // var $checkbox = $("<input></input>")
  115. // $checkbox.attr("name","fieldDisplay");
  116. // $checkbox.attr("type","checkbox");
  117. // if(display){
  118. // $checkbox.attr("checked","checked");
  119. // }
  120. // $tdSelect.append($checkbox);
  121. //Tr
  122. var $tr=$("<tr></tr>");
  123. $tr.append($tdChk);
  124. $tr.append($tdName);
  125. $tr.append($tdComment);
  126. // $tr.append($tdSelect);
  127. return $tr;
  128. }
  129. /*
  130. *设置树的节点,左边字段选择
  131. */
  132. function selectTreeField(){
  133. var obj=$("#columnsTbl input:[name='fieldCheckBox']:checked");
  134. if(curField==null || curField.length==0){
  135. $.ligerDialog.error("请选择右边的输入框!",'提示信息');
  136. return;
  137. }
  138. if(obj.length==0){
  139. $.ligerDialog.error("请选择左边的字段!",'提示信息');
  140. return;
  141. }
  142. if(obj.length>1){
  143. $.ligerDialog.error("只能选择一个左边的字段!",'提示信息');
  144. return;
  145. }
  146. var field=obj.next('input[type="hidden"]').val();
  147. var comment = obj.closest("tr").find("input[name='fieldComment']").val();
  148. if(!comment){
  149. field.comment=comment;
  150. }
  151. var fieldJson=$.parseJSON(field);
  152. curField.val(fieldJson.name);
  153. curField.attr("field",field);
  154. }
  155. /*
  156. * 取得参数设置
  157. */
  158. function getAllSetting(){
  159. var settings={
  160. };
  161. //取树节点设置
  162. var node=$("#nodeId").attr("field");
  163. if(!node){
  164. $.ligerDialog.error("请选择节点ID!");
  165. return false;
  166. }
  167. var parentNode=$("#parentNodeId").attr("field");
  168. if(!parentNode){
  169. $.ligerDialog.error("请选择父节点ID!");
  170. return false;
  171. }
  172. var display=$("#displayField").attr("field");
  173. if(!display){
  174. $.ligerDialog.error("请选显示字段!");
  175. return false;
  176. }
  177. var setting = {
  178. node:$.parseJSON(node),
  179. parent:$.parseJSON(parentNode),
  180. display:$.parseJSON(display)
  181. };
  182. settings.setting=setting;
  183. return settings;
  184. }
  185. function saveForm(){
  186. var settings =getAllSetting();
  187. if(!settings){
  188. return;
  189. }
  190. window.returnValue=settings;
  191. window.close();
  192. }
  193. /*
  194. *构造标签
  195. */
  196. function constructTag(name,props,text){
  197. var tag = $("<"+name+"></"+name+">");
  198. for(var key in props){
  199. tag.attr(key,props[key]);
  200. }
  201. tag.text(text);
  202. return tag;
  203. }
  204. </script>
  205. </head>
  206. <body>
  207. <div>
  208. <div id="leftArea">
  209. <div style="border: 1px solid rgb(123, 171, 207);height: 548px;overflow: auto;">
  210. <table id="columnsTbl" class="table-grid">
  211. <thead>
  212. <tr>
  213. <th>选择</th>
  214. <th>列名</th>
  215. <th>注释</th>
  216. <!-- <th>显示</th> -->
  217. </tr>
  218. </thead>
  219. <tbody>
  220. </tbody>
  221. </table>
  222. </div>
  223. </div>
  224. <div id="centerArea" >
  225. <div style="text-align: center;">
  226. <a href='#' class='button' style="margin-top: 50px" onclick="selectTreeField()" >
  227. <span >==></span>
  228. </a>
  229. </div>
  230. </div>
  231. <div id="rightArea">
  232. <div style="border: 1px solid rgb(123, 171, 207);height: 548px;overflow: auto;">
  233. <div id="TreeSettings">
  234. <table id="treeTbl" class="table-grid">
  235. <tr>
  236. <th>名称</th>
  237. <th>字段</th>
  238. </tr>
  239. <tr>
  240. <td>节点ID</td>
  241. <td>
  242. <input id="nodeId" name="nodeId" class="treeField"/>
  243. </td>
  244. </tr>
  245. <tr>
  246. <td>父节点ID</td>
  247. <td>
  248. <input id="parentNodeId" name="parentNodeId" class="treeField"/>
  249. </td>
  250. </tr>
  251. <tr>
  252. <td>显示字段</td>
  253. <td>
  254. <input id="displayField" name="displayField" class="treeField"/>
  255. </td>
  256. </tr>
  257. </table>
  258. </div>
  259. </div>
  260. </div>
  261. </div>
  262. <div style="clear: both;"></div>
  263. <div position="bottom" class="bottom" style="padding-top: 15px;">
  264. <a href='#' class='button' onclick="saveForm()" ><span class="icon ok"></span><span >确定</span></a>
  265. <a href='#' class='button' style='margin-left:10px;' onclick="window.close()"><span class="icon cancel"></span><span >取消</span></a>
  266. </div>
  267. </body>
  268. </html>