RoadFlow2.1 临时演示

Set_Flow.aspx 13KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292
  1. <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Set_Flow.aspx.cs" Inherits="WebForm.Platform.WorkFlowDesigner.Set_Flow" %>
  2. <!DOCTYPE html>
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4. <head runat="server">
  5. <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
  6. <title></title>
  7. </head>
  8. <body>
  9. <form id="form1" runat="server">
  10. <div id="tabdiv">
  11. <div id="div_base" title="基本信息">
  12. <div style="height:8px;"></div>
  13. <table cellpadding="0" cellspacing="1" border="0" width="99%" class="formtable">
  14. <tr>
  15. <th style="width:100px;">流程ID:</th>
  16. <td><input type="text" id="base_ID" name="base_ID" readonly="readonly" value="<%=flowID %>" class="mytext" style="width:75%" /></td>
  17. </tr>
  18. <tr>
  19. <th>流程名称:</th>
  20. <td><input type="text" id="base_Name" name="base_Name" class="mytext" style="width:75%" /></td>
  21. </tr>
  22. <tr>
  23. <th>流程分类:</th>
  24. <td>
  25. <select id="base_Type" name="base_Type" class="myselect" style="margin-right:5px;"><option value=""></option><%=base_TypesOptions %></select>
  26. <!--
  27. 类型:<select class="myselect" id="base_FlowType" name="base_FlowType">
  28. <%//=bworkFlow.GetFlowTypeOptions("") %>
  29. </select>
  30. -->
  31. </td>
  32. </tr>
  33. <tr>
  34. <th>管理者:</th>
  35. <td><input type="text" id="base_Manager" value="<%=defaultManager %>" name="base_Manager" class="mymember" title="选择流程管理者" more="1" user="1" dept="1" station="1" workgroup="1" style="width:75%" /></td>
  36. </tr>
  37. <tr>
  38. <th>实例管理者:</th>
  39. <td><input type="text" id="base_InstanceManager" value="<%=defaultManager %>" name="base_InstanceManager" class="mymember" title="选择流程实例管理者" more="1" user="1" dept="1" station="1" workgroup="1" style="width:75%" /></td>
  40. </tr>
  41. <tr>
  42. <th>删除已完成:</th>
  43. <td>
  44. <select id="base_RemoveCompleted" name="base_RemoveCompleted" class="myselect" style="width:120px;" >
  45. <option value="0">不删除</option>
  46. <option value="1">删除</option>
  47. </select>
  48. </td>
  49. </tr>
  50. <tr>
  51. <th>调试模式:</th>
  52. <td>
  53. <select class="myselect" id="base_Debug">
  54. <option value="0">关闭</option>
  55. <option value="1">开启(有调试窗口)</option>
  56. <option value="2">开启(无调试窗口)</option>
  57. </select>
  58. <input type="text" id="base_DebugUsers" title="选择调试人员" class="mymember" /> //调试人员
  59. </td>
  60. </tr>
  61. <tr>
  62. <th>备注:</th>
  63. <td><textarea rows="1" cols="1" id="base_Note" name="base_Note" class="mytext" style="width:90%; height:40px;" ></textarea></td>
  64. </tr>
  65. </table>
  66. </div>
  67. <div id="div_data" title="数据连接">
  68. <div style="height:8px;"></div>
  69. <table cellpadding="0" cellspacing="1" border="0" width="99%" style="width:99%" class="listtable" id="link_listtable">
  70. <thead>
  71. <tr>
  72. <th style="width:28%">数据库连接</th>
  73. <th style="width:28%">数据表</th>
  74. <th style="width:30%">主键</th>
  75. <th><a href="javascript:link_add();"><img alt="" src="../../Images/ico/add.gif" style="border:0; vertical-align:middle;" /><span style="vertical-align:middle;">添加</span></a></th>
  76. </tr>
  77. </thead>
  78. <tbody>
  79. </tbody>
  80. </table>
  81. </div>
  82. <div id="div_title" title="标识字段">
  83. <div style="height:8px;"></div>
  84. <table cellpadding="0" cellspacing="1" border="0" width="99%" class="formtable">
  85. <tr>
  86. <th style="width:100px;">数据连接:</th>
  87. <td><select id="title_dbconn" name="title_dbconn" class="myselect"
  88. onchange="title_db_change(this)" style="width:400px;" ><option value=""></option><%=link_DBConnOptions %></select></td>
  89. </tr>
  90. <tr>
  91. <th>数据表:</th>
  92. <td><select id="title_tables" onchange="title_table_change(this)" name="title_tables" class="myselect" style="width:400px;" ></select></td>
  93. </tr>
  94. <tr>
  95. <th>完成标识:</th>
  96. <td><select id="title_title" name="title_title" class="myselect" style="width:400px;" ></select></td>
  97. </tr>
  98. </table>
  99. </div>
  100. </div>
  101. <div style="width:99%; margin:8px auto 0 auto; text-align:center;">
  102. <input type="button" class="mybutton" value=" 确 定 " onclick="confirm1(this)" />
  103. <input type="button" class="mybutton" value=" 取 消 " onclick="new RoadUI.Window().close();" />
  104. </div>
  105. </form>
  106. <script type="text/javascript">
  107. var link_options = '<option value=""></option><%=link_DBConnOptions%>'; //数据连接选项
  108. var isAdd = '1' == '<%=Request.QueryString["isadd"]%>';
  109. var openerid = '<%=Request.QueryString["openerid"]%>';
  110. var flowID = '<%=flowID%>';
  111. var defaultManager = '<%=defaultManager%>';
  112. var win = new RoadUI.Window();
  113. var frame = null;
  114. $(function ()
  115. {
  116. new RoadUI.Tab({ id: "tabdiv", replace: true, contextmenu: false });
  117. var iframes = top.frames;
  118. for (var i = 0; i < iframes.length; i++)
  119. {
  120. if (iframes[i].name == openerid + "_iframe")
  121. {
  122. frame = iframes[i]; break;
  123. }
  124. }
  125. if (frame == null) return;
  126. if (!isAdd)
  127. {
  128. var json = frame.wf_json;
  129. if (json)
  130. {
  131. $("#base_Name").val(json.name);
  132. $("#base_Type").val(json.type);
  133. $("#base_Manager").val(json.manager || defaultManager); new RoadUI.Member().setValue($("#base_Manager"));
  134. $("#base_InstanceManager").val(json.instanceManager || defaultManager); new RoadUI.Member().setValue($("#base_InstanceManager"));
  135. $("#base_RemoveCompleted").val(json.removeCompleted);
  136. $("#base_Note").val(json.note);
  137. $("#base_Debug").val(json.debug);
  138. $("#base_DebugUsers").val(json.debugUsers); new RoadUI.Member().setValue($("#base_DebugUsers"));
  139. $("#base_FlowType").val(json.flowType || "");
  140. var databases = json.databases;
  141. if (databases)
  142. {
  143. for (var i = 0; i < databases.length; i++)
  144. {
  145. link_add(databases[i].link, databases[i].table, databases[i].primaryKey);
  146. }
  147. }
  148. if (json.titleField)
  149. {
  150. $("#title_dbconn").val(json.titleField.link);
  151. $("#title_tables").html(getTables(json.titleField.link, json.titleField.table));
  152. $("#title_title").html(getFields(json.titleField.link, json.titleField.table, json.titleField.field));
  153. }
  154. }
  155. }
  156. });
  157. function link_add(db, table, field)
  158. {
  159. var tableOptions = '';
  160. var fieldOptions = '';
  161. if (db && table)
  162. {
  163. tableOptions = getTables(db, table);
  164. }
  165. if (db && table && field)
  166. {
  167. fieldOptions = getFields(db, table, field);
  168. }
  169. var index = $("#link_listtable tbody tr").size() + 1;
  170. var tr = '<tr>';
  171. tr += '<td style="background:#ffffff; height:30px;">';
  172. tr += '<input type="hidden" name="link_index" value="' + index.toString() + '"/>';
  173. tr += '<select class="myselect" style="width:120px" onchange="link_db_change(this);" id="link_db_' + index.toString() + '" name="link_db_' + index.toString() + '">' + link_options + '</select></td>';
  174. tr += '<td style="background:#ffffff;"><select class="myselect" style="width:120px" onchange="link_table_change(this)" id="link_table_' + index.toString() + '" name="link_table_' + index.toString() + '">' + tableOptions + '</select></td>';
  175. tr += '<td style="background:#ffffff;"><select class="myselect" style="width:120px" id="link_key_' + index.toString() + '" name="link_key_' + index.toString() + '">' + fieldOptions + '</select></td>';
  176. tr += '<td style="background:#ffffff;"><a href="javascript:link_delete(' + index.toString() + ');" class="deletelink">删除</a></td>';
  177. tr += '</tr>';
  178. $("#link_listtable tbody").append(tr);
  179. new RoadUI.Select().init($(".myselect", $("#link_listtable tbody")));
  180. if (db)
  181. {
  182. $("#link_db_" + index.toString()).val(db);
  183. }
  184. }
  185. function link_delete(index)
  186. {
  187. $("#link_listtable tbody tr td input[type='hidden']").each(function ()
  188. {
  189. if ($(this).val() == index.toString())
  190. {
  191. $(this).parent().parent().remove();
  192. }
  193. });
  194. }
  195. function link_db_change(obj, table)
  196. {
  197. if (!obj || !obj.value) return;
  198. var html = getTables(obj.value, table);
  199. $("select", $(obj).parent().next()).html(html);
  200. }
  201. function getTables(connid, table)
  202. {
  203. var options = '<option value=""></option>';
  204. var tableds = frame.getTables(connid);
  205. for (var i = 0; i < tableds.length; i++)
  206. {
  207. options += '<option value="' + tableds[i].name + '" ' + (tableds[i].name == table ? 'selected="selected"' : '') + '>' + tableds[i].name + '</option>';
  208. }
  209. return options;
  210. }
  211. function link_table_change(obj, field)
  212. {
  213. if (!obj || !obj.value) return;
  214. var conn = $("select", $(obj).parent().prev()).val();
  215. $("select", $(obj).parent().next()).html(getFields(conn, obj.value, field));
  216. }
  217. function getFields(connid, table, field)
  218. {
  219. var options = '<option value=""></option>';
  220. var fields = frame.getFields(connid, table);
  221. for (var i = 0; i < fields.length; i++)
  222. {
  223. options += '<option value="' + fields[i].name + '" ' + (fields[i].name == field ? 'selected="selected"' : '') + '>' + fields[i].name + (fields[i].note ? '(' + fields[i].note + ')' : '') + '</option>';
  224. }
  225. return options;
  226. }
  227. function title_db_change(obj, table)
  228. {
  229. if (!obj || !obj.value) return;
  230. $("#title_tables").html(getTables(obj.value, table));
  231. }
  232. function title_table_change(obj, fields)
  233. {
  234. if (!obj || !obj.value) return;
  235. var conn = $("#title_dbconn").val();
  236. $("#title_title").html(getFields(conn, obj.value, fields));
  237. }
  238. function confirm1(but)
  239. {
  240. $(but).prop("disabled", true);
  241. if (isAdd)
  242. {
  243. frame.initwf();
  244. }
  245. var json = frame.wf_json;
  246. json.id = flowID;
  247. json.name = $("#base_Name").val() || '';
  248. json.type = $("#base_Type").val() || '';
  249. json.manager = $("#base_Manager").val() || '';
  250. json.instanceManager = $("#base_InstanceManager").val() || '';
  251. json.removeCompleted = $("#base_RemoveCompleted").val() || '';
  252. json.debug = $("#base_Debug").val() || "0";
  253. json.debugUsers = $("#base_DebugUsers").val() || '';
  254. json.note = $("#base_Note").val() || '';
  255. json.flowType = $("#base_FlowType").val() || "";
  256. json.databases = [];
  257. $("input[type='hidden'][name='link_index']").each(function ()
  258. {
  259. var index = $(this).val();
  260. json.databases.push({
  261. link: $('#link_db_' + index).val() || '',
  262. linkName: $("#link_db_" + index + " option[value='" + ($('#link_db_' + index).val() || '') + "']").text(),
  263. table: $('#link_table_' + index).val() || '',
  264. primaryKey: $('#link_key_' + index).val() || ''
  265. });
  266. });
  267. json.titleField = {
  268. link: $("#title_dbconn").val() || '',
  269. table: $("#title_tables").val() || '',
  270. field: $("#title_title").val() || ''
  271. };
  272. frame.wf_id = flowID;
  273. frame.initLinks_Tables_Fields(json.databases);
  274. new RoadUI.Window().close();
  275. }
  276. </script>
  277. </body>
  278. </html>