insertfunction.jsp 7.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263
  1. <%@page language="java" pageEncoding="UTF-8" %>
  2. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4. <head>
  5. <title></title>
  6. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  7. <%@include file="/commons/include/form.jsp" %>
  8. <link rel="stylesheet" type="text/css" href="../input.css">
  9. <link rel="stylesheet" href="${ctx}/js/jquery/plugins/jquery.dragdiv.css" type="text/css" />
  10. <link rel="stylesheet" href="${ctx}/js/tree/zTreeStyle.css" type="text/css" />
  11. <script type="text/javascript" src="${ctx}/js/ueditor2/dialogs/internal.js"></script>
  12. <script type="text/javascript" charset="utf-8" src="${ctx}/js/hontent/platform/form/FormData.js"></script>
  13. <script type="text/javascript" src="${ctx}/js/tree/jquery.ztree.js"></script>
  14. <script type="text/javascript" src="${ctx}/js/jquery/plugins/jquery.dragdiv.js"></script>
  15. <script type="text/javascript">
  16. var _element;
  17. $(function() {
  18. var el = editor.selection.getRange().getClosedNode(),
  19. funcInstance={}, funcexp = el.getAttribute("funcexp");
  20. if (funcexp) {
  21. funcInstance.exp = funcexp;
  22. }
  23. funcInstance.targetEl=el;
  24. editor.funcInstance = funcInstance;
  25. $(".button-td").bind("mouseenter mouseleave", function() {
  26. $(this).toggleClass("button-td-hover");
  27. });
  28. _element = null;
  29. _element = funcInstance;
  30. if (_element) {
  31. bindData();
  32. }
  33. getFileds(editor.tableId);
  34. });
  35. function removeOpt(e){
  36. $("#selectedFields option[value='"+$(e).val()+"']").remove();
  37. }
  38. function bindData() {
  39. var type = FormData.FunctionType,exp=_element.exp;
  40. if (type) {
  41. for(var i=0,c;c=type[i++];){
  42. $("#func-type").append('<option title="'+c.des+'" value="'+c.name+'">'+c.des+'</option>');
  43. }
  44. }
  45. if(!$(editor.funcInstance.targetEl).attr("readonly")){
  46. $("#input_readonly").removeAttr("checked");
  47. }
  48. if(exp){
  49. var expObj=eval("("+exp+")");
  50. setTimeout(function(){
  51. $("#func-type").find("option[value='"+expObj.type+"']").each(function(){
  52. $(this).attr("selected","selected");
  53. }
  54. );
  55. for(var i=0,c;c=expObj.target[i++];){
  56. $("#selectedFields").append('<option title="'+c.des+'" value="'+c.name+'">'+c.des+'</option>');
  57. }
  58. if(expObj.capital){
  59. $("#display_capital").attr("checked","checked");
  60. }
  61. if(expObj.label){
  62. $("#display_label").attr("checked","checked");
  63. }
  64. if(expObj.percentage){
  65. $("#display_percentage").attr("checked","checked");
  66. }
  67. if(expObj.tofixed||expObj.tofixed==0){
  68. $("#display_tofixed").val(expObj.tofixed);
  69. }
  70. },100);
  71. }
  72. };
  73. dialog.onok = function() {
  74. var type=$("#func-type").val(),
  75. target=[],
  76. readonly=$("#input_readonly").attr("checked"),
  77. capital=$("#display_capital").attr("checked"),
  78. label=$("#display_label").attr("checked"),
  79. percentage = $("#display_percentage").attr("checked"),
  80. tofixed = $("#display_tofixed").val();
  81. if(readonly){
  82. $(editor.funcInstance.targetEl).attr("readonly","readonly");
  83. }
  84. else{
  85. $(editor.funcInstance.targetEl).removeAttr("readonly");
  86. }
  87. $("#selectedFields").find("option").each(function(){
  88. var optObj = {name:$(this).val(),des:$(this).text()};
  89. target.push(optObj);
  90. });
  91. if(target.length>0){
  92. var exp = {type:type};
  93. if(capital)
  94. exp.capital = true;
  95. if(label)
  96. exp.label = true;
  97. if(percentage)
  98. exp.percentage = true;
  99. if(tofixed||tofixed==0)
  100. exp.tofixed = tofixed;
  101. exp.target = target;
  102. var expStr = JSON.stringify(exp);
  103. $(editor.funcInstance.targetEl).attr("funcexp",expStr);
  104. $(editor.funcInstance.targetEl).addClass("math-function-input");
  105. }
  106. else{
  107. $(editor.funcInstance.targetEl).removeAttr("funcexp");
  108. $(editor.funcInstance.targetEl).removeClass("math-function-input");
  109. }
  110. };
  111. function initFieldsTree(data){
  112. var mainTable = data.table,
  113. iconFolder = __ctx + '/styles/tree/',
  114. items = [];
  115. mainTable.name = mainTable.tableDesc;
  116. mainTable.icon = iconFolder + 'table.png';
  117. mainTable.open = true;
  118. var mChildren=[];
  119. for ( var i = 0, c; c = mainTable.fieldList[i++];) {
  120. if(c.isHidden!=0)continue;
  121. c.name = c.fieldDesc;
  122. c.icon = iconFolder + c.fieldType + '.png';
  123. c.isMain=true;
  124. c.tableDesc=mainTable.tableDesc;
  125. c.tableName=mainTable.tableName;
  126. mChildren.push(c);
  127. }
  128. for ( var i = 0, c; c = mainTable.subTableList[i++];) {
  129. c.name = c.tableDesc;
  130. c.icon = iconFolder + 'table.png';
  131. c.open = true;
  132. mChildren.push(c);
  133. var sChildren = [];
  134. for ( var y = 0, t; t = c.fieldList[y++];) {
  135. if(t.isHidden!=0)continue;
  136. t.name = t.fieldDesc;
  137. t.icon = iconFolder + t.fieldType + '.png';
  138. t.isMain=false;
  139. t.tableDesc=c.name;
  140. t.tableName=c.tableName;
  141. sChildren.push(t);
  142. }
  143. c.children = sChildren;
  144. }
  145. mainTable.children = mChildren;
  146. items.push(mainTable);
  147. var setting = {
  148. callback : {
  149. onDblClick:function(treeId,treeNode,clickFlag){
  150. addToSelected(clickFlag);
  151. }
  152. }
  153. };
  154. glTypeTree = $.fn.zTree.init($("#colstree"),setting, items);
  155. };
  156. function getFileds(tableId) {
  157. if(tableId){
  158. var url = __ctx
  159. + '/platform/form/bpmFormTable/getTableById.ht?tableId='
  160. + tableId;
  161. $.post(url, function(data) {
  162. initFieldsTree(data);
  163. });
  164. }
  165. else{
  166. var html = editor.getContent();
  167. var params={};
  168. params.html=html;
  169. $.post(__ctx + '/platform/form/bpmFormDef/validDesign.ht', params, function(data){
  170. if(data.valid){
  171. initFieldsTree(data);
  172. }
  173. else{
  174. alert(data.errorMsg);
  175. }
  176. });
  177. }
  178. };
  179. function addToSelected(e){
  180. if(!e)return;
  181. if(e.fieldType!="number"){
  182. alert(editor.getLang("insertfunction.msg_not_num"));
  183. return;
  184. }
  185. var temp=true;
  186. $("#selectedFields").find("option").each(function(){
  187. if($(this).val()==e.fieldName){
  188. temp=false;
  189. return;
  190. }
  191. });
  192. if(temp){
  193. if(e.isMain){
  194. $("#selectedFields").append('<option title="'+e.fieldDesc+'['+e.tableDesc+']" value="m:'+e.tableName+':'+e.fieldName+'">'+e.fieldDesc+'['+e.tableDesc+']</option>');
  195. }else{
  196. $("#selectedFields").append('<option title="'+e.fieldDesc+'['+e.tableDesc+']" value="s:'+e.tableName+':'+e.fieldName+'">'+e.fieldDesc+'['+e.tableDesc+']</option>');
  197. }
  198. }
  199. };
  200. </script>
  201. </head>
  202. <body>
  203. <div id="inputPanel">
  204. <fieldset class="base">
  205. <legend><var id="lang_math_prop"></var></legend>
  206. <table>
  207. <tr>
  208. <th><var id="lang_math_type"></var>:</th>
  209. <td><select id="func-type"></select></td>
  210. </tr>
  211. <tr>
  212. <th>
  213. <var id="lang_all_field"></var>
  214. </th>
  215. <th>
  216. <var id="lang_count_field"></var>
  217. </th>
  218. </tr>
  219. <tr>
  220. <td>
  221. <div id="field-div">
  222. <ul id="colstree" class="ztree fields-ul" style="height:198px;"></ul>
  223. </div>
  224. </td>
  225. <td><select id="selectedFields" style="height:198px;" ondblclick="removeOpt(this)" multiple="multiple" size="15"></select></td>
  226. </tr>
  227. <tr>
  228. <td colspan="2">
  229. <label class="custom-label"><input id="input_readonly" type="checkbox" checked="checked"/>
  230. <var id="lang_input_readonly"></var>
  231. </label>
  232. <label class="custom-label"><input id="display_capital" type="checkbox" />
  233. <var id="lang_dis_rmb"></var>
  234. </label>
  235. <label class="custom-label"><input id="display_label" type="checkbox" />
  236. <var id="lang_dis_span"></var>
  237. </label>
  238. </td>
  239. </tr>
  240. <tr>
  241. <td colspan="2">
  242. <label class="custom-label"><input id="display_percentage" type="checkbox" />
  243. <var id="lang_dis_persent"></var>
  244. </label>
  245. <label class="custom-label"><var id="lang_num_tofixed"></var><input id="display_tofixed" style="width:30px;height:18px;" type="text" /><var id="lang_num_bit"></var>
  246. </label>
  247. </td>
  248. </tr>
  249. </table>
  250. </fieldset>
  251. </div>
  252. </body>
  253. </html>