CodeBuilder.cshtml 41 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773
  1. @{
  2. ViewBag.Title = "在线开发(单表)";
  3. Layout = "~/Views/Shared/_Form.cshtml";
  4. }
  5. <link href="~/Content/scripts/plugins/jqgrid/jqgrid.css" rel="stylesheet" />
  6. <script src="~/Content/scripts/plugins/jqgrid/grid.locale-cn.js"></script>
  7. <script src="~/Content/scripts/plugins/jqgrid/jqgrid.min.js"></script>
  8. <script src="~/Content/scripts/plugins/layout/jquery.layout.js"></script>
  9. <link href="~/Content/styles/learun-applayout.css" rel="stylesheet" />
  10. <script src="~/Content/scripts/plugins/syntaxhighlighter/scripts/shCore.js"></script>
  11. <script src="~/Content/scripts/plugins/syntaxhighlighter/scripts/shBrushCSharp.js"></script>
  12. <script type="text/javascript" src="~/Content/scripts/plugins/syntaxhighlighter/scripts/shBrushJScript.js"></script>
  13. <link type="text/css" rel="stylesheet" href="~/Content/scripts/plugins/syntaxhighlighter/styles/shCoreDefault.css" />
  14. <script>
  15. $(function () {
  16. initialPage();
  17. GetDataSource();
  18. })
  19. //初始化页面
  20. function initialPage() {
  21. //所在区域
  22. $("#OutputAreas").ComboBox({
  23. description: "==请选择==",
  24. height: "200px"
  25. }).ComboBoxSetValue('BaseManage');
  26. //功能上级
  27. $("#ModuleParentId").ComboBoxTree({
  28. url: "../../AuthorizeManage/Module/GetTreeJson",
  29. description: "==请选择==",
  30. height: "300px",
  31. allowSearch: true
  32. });
  33. //加载导向
  34. $('#wizard').wizard().on('change', function (e, data) {
  35. var $finish = $("#btn_finish");
  36. var $next = $("#btn_next");
  37. if (data.direction == "next") {
  38. switch (data.step) {
  39. case 1:
  40. var pk = $("#gridTable").jqGridRowValue("pk");
  41. var name = $("#gridTable").jqGridRowValue("name");
  42. var tdescription = $("#gridTable").jqGridRowValue("tdescription");
  43. if (!pk) {
  44. return false;
  45. } else {
  46. $("#DataBaseTablePK").ComboBox({
  47. url: "../../SystemManage/DataBaseTable/GetTableFiledListJson",
  48. param: { dataBaseLinkId: $("#txt_DataBase").val(), tableName: name },
  49. id: "column",
  50. text: "column",
  51. height: "350px"
  52. }).ComboBoxSetValue(pk);
  53. $("#Description").val(tdescription);
  54. $("#EntityClassName").val(name + "Entity").attr('tableName', name);
  55. $("#MapClassName").val(name + "Map");
  56. $("#ServiceClassName").val(name + "Service");
  57. $("#IServiceClassName").val(name + "IService");
  58. $("#BusinesClassName").val(name + "BLL");
  59. $("#ControllerName").val(name + "Controller");
  60. $("#IndexPageName").val(name + "Index");
  61. $("#FormPageName").val(name + "Form");
  62. }
  63. break;
  64. case 2://绑定列表
  65. //验证初始化配置表单
  66. if (!$('#step-2').Validform()) {
  67. return false;
  68. }
  69. BindingIndex();
  70. break;
  71. case 3://绑定表单
  72. BindingForm();
  73. break;
  74. case 4://查看代码
  75. LookCode();
  76. break;
  77. case 5://创建代码
  78. CreateCode();
  79. $finish.removeAttr('disabled');
  80. $next.attr('disabled', 'disabled');
  81. //发布功能事件
  82. $("#publish_btn").click(function () {
  83. $(this).attr('moduleForm', '1');
  84. $("#publish_panel").show().animate({ top: 50, speed: 2000 });
  85. $("#ModuleEnCode").val($("#EntityClassName").attr('tableName'));
  86. $("#ModuleFullName").val($("#Description").val());
  87. return false;
  88. });
  89. //选取功能图标
  90. $("#ModuleIcon").next('.input-button').click(function () {
  91. dialogOpen({
  92. id: "SelectIcon",
  93. title: '选取图标',
  94. url: '/AuthorizeManage/Module/Icon?ControlId=ModuleIcon',
  95. width: "1000px",
  96. height: "600px",
  97. btn: false
  98. })
  99. })
  100. break;
  101. default:
  102. break;
  103. }
  104. } else {
  105. $finish.attr('disabled', 'disabled');
  106. $next.removeAttr('disabled');
  107. }
  108. });
  109. //完成
  110. $("#btn_finish").click(function () {
  111. if ($("#publish_btn").attr('moduleForm') == 1) {
  112. //自动创建功能菜单
  113. if (!$('#publish_panel').Validform()) {
  114. return false;
  115. }
  116. var baseConfig = $("#step-2").GetWebControls();
  117. baseConfig["DataBaseLinkId"] = $("#txt_DataBase").val();
  118. baseConfig["DataBaseTableName"] = $("#gridTable").jqGridRowValue("name");
  119. var postData = {
  120. EnCode: $("#ModuleEnCode").val(),
  121. FullName: $("#ModuleFullName").val(),
  122. ParentId: $("#ModuleParentId").attr('data-value'),
  123. Icon: $("#ModuleIcon").val(),
  124. Description: $("#ModuleDescription").val(),
  125. baseInfoJson: JSON.stringify(baseConfig)
  126. }
  127. $.SaveForm({
  128. //url: "../../SystemManage/CodeGenerator/PublishModule",
  129. url: "../../GeneratorManage/SingleTable/PublishModule",
  130. param: postData,
  131. loading: "正在发布功能...",
  132. success: function () {
  133. dialogClose();
  134. }
  135. })
  136. } else {
  137. dialogClose();
  138. }
  139. });
  140. }
  141. /*=========选择数据源(begin)================================================================*/
  142. function GetDataSource() {
  143. $.ajax({
  144. url: "../../SystemManage/DataBaseLink/GetListJson",
  145. type: "get",
  146. dataType: "json",
  147. async: false,
  148. success: function (data) {
  149. $.each(data, function (i) {
  150. $("#txt_DataBase").append($("<option title='" + data[i].DBName + "'></option>").val(data[i].DatabaseLinkId).html(data[i].DBAlias));
  151. });
  152. }
  153. });
  154. var $gridTable = $("#gridTable");
  155. $gridTable.jqGrid({
  156. url: "../../SystemManage/DataBaseTable/GetTableListJson",
  157. postData: { dataBaseLinkId: $("#txt_DataBase").val(), keyword: $("#txt_Keyword").val() },
  158. datatype: "json",
  159. height: $(window).height() - 255,
  160. autowidth: true,
  161. colModel: [
  162. { label: "表名", name: "name", width: 260, align: "left", sortable: false },
  163. { label: '主键', name: 'pk', width: 150, align: "left", sortable: false },
  164. {
  165. label: "记录数", name: "sumrows", width: 100, align: "left", sortable: false,
  166. formatter: function (cellvalue, options, rowObject) {
  167. return cellvalue + "条";
  168. }
  169. },
  170. { label: "使用大小", name: "reserved", width: 100, align: "left", sortable: false },
  171. { label: "更新时间", name: "updatetime", width: 120, align: "left", sortable: false },
  172. { label: "说明", name: "tdescription", width: 120, align: "left", sortable: false }
  173. ],
  174. rowNum: "1000",
  175. rownumbers: true,
  176. shrinkToFit: false,
  177. gridview: true,
  178. subGrid: true,
  179. subGridRowExpanded: function (subgrid_id, row_id) {
  180. var tableName = $gridTable.jqGrid('getRowData', row_id)['name'];
  181. var subgrid_table_id = subgrid_id + "_t";
  182. $("#" + subgrid_id).html("<table id='" + subgrid_table_id + "'></table>");
  183. $("#" + subgrid_table_id).jqGrid({
  184. url: "../../SystemManage/DataBaseTable/GetTableFiledListJson",
  185. postData: { dataBaseLinkId: $("#txt_DataBase").val(), tableName: tableName },
  186. datatype: "json",
  187. height: "100%",
  188. colModel: [
  189. { label: "列名", name: "column", index: "column", width: 250, sortable: false },
  190. { label: "数据类型", name: "datatype", index: "datatype", width: 120, align: "center", sortable: false },
  191. { label: "长度", name: "length", index: "length", width: 57, align: "center", sortable: false },
  192. {
  193. label: "允许空", name: "isnullable", index: "isnullable", width: 58, align: "center", sortable: false,
  194. formatter: function (cellvalue, options, rowObject) {
  195. return cellvalue == 1 ? "<i class=\"fa fa-check-square-o\"></i>" : "<i class=\"fa fa-square-o\"></i>";
  196. }
  197. },
  198. {
  199. label: "标识", name: "identity", index: "identity", width: 58, align: "center", sortable: false,
  200. formatter: function (cellvalue, options, rowObject) {
  201. return cellvalue == 1 ? "<i class=\"fa fa-check-square-o\"></i>" : "<i class=\"fa fa-square-o\"></i>";
  202. }
  203. },
  204. {
  205. label: "主键", name: "key", index: "key", width: 57, align: "center", sortable: false,
  206. formatter: function (cellvalue, options, rowObject) {
  207. return cellvalue == 1 ? "<i class=\"fa fa-check-square-o\"></i>" : "<i class=\"fa fa-square-o\"></i>";
  208. }
  209. },
  210. { label: "默认值", name: "default", index: "default", width: 120, align: "center", sortable: false },
  211. { label: "说明", name: "remark", index: "remark", width: 100, sortable: false }
  212. ],
  213. caption: "表字段信息",
  214. rowNum: "1000",
  215. rownumbers: true,
  216. shrinkToFit: false,
  217. gridview: true,
  218. hidegrid: false
  219. });
  220. }
  221. });
  222. //查询事件
  223. $("#btn_Search").click(function () {
  224. $gridTable.jqGrid('setGridParam', {
  225. url: "../../SystemManage/DataBaseTable/GetTableListJson",
  226. postData: { dataBaseLinkId: $("#txt_DataBase").val(), keyword: $("#txt_Keyword").val() },
  227. }).trigger('reloadGrid');
  228. });
  229. }
  230. /*=========选择数据源(end)==================================================================*/
  231. /*=========绑定表格(begin)==================================================================*/
  232. var bindingTableJson = [];
  233. function BindingIndex() {
  234. $(".editview").hover(function () {
  235. $(this).find('.editviewtitle').show();
  236. }, function (e) {
  237. $(this).find('.editviewtitle').hide();
  238. });
  239. $(".sys_spec_text li").click(function () {
  240. if (!!$(this).hasClass("active")) {
  241. $(this).removeClass("active");
  242. } else {
  243. $(this).addClass("active").siblings("li");
  244. }
  245. });
  246. $("#editgrid").click(function () {
  247. var dataBaseLinkId = $("#txt_DataBase").val();
  248. var tableName = $("#gridTable").jqGridRowValue("name");
  249. dialogOpen({
  250. id: "Member",
  251. title: '绑定表格数据',
  252. url: '/GeneratorManage/SingleTable/EditGrid?dataBaseLinkId=' + dataBaseLinkId + '&tableName=' + tableName,
  253. width: "800px",
  254. height: "520px",
  255. callBack: function (iframeId) {
  256. top.frames[iframeId].AcceptClick(function (dataJson) {
  257. bindingTableJson = dataJson;
  258. $('.editviewbody').html("<table id='Binding_gridTable'></table><div id='Binding_gridPager'></div>");
  259. $("#Binding_gridTable").jqGrid({
  260. unwritten: false,
  261. datatype: "json",
  262. height: 300,
  263. autowidth: true,
  264. colModel: dataJson.colModel,
  265. viewrecords: true,
  266. rowNum: 30,
  267. rowList: [30, 50, 100],
  268. pager: (dataJson.pager != true ? true : "#Binding_gridPager"),
  269. sortname: '',
  270. rownumbers: true,
  271. shrinkToFit: false,
  272. gridview: true
  273. });
  274. });
  275. }
  276. });
  277. })
  278. }
  279. /*=========绑定表格(end)====================================================================*/
  280. /*=========绑定表单(begin)==================================================================*/
  281. var bindingFormJson = [];
  282. function BindingForm() {
  283. var dataBaseLinkId = $("#txt_DataBase").val();
  284. var tableName = $("#gridTable").jqGridRowValue("name");
  285. var nameArray = [];
  286. if (bindingFormJson) {
  287. $.each(bindingFormJson, function (i) {
  288. nameArray.push(bindingFormJson[i].ControlId)
  289. });
  290. }
  291. $("#FormFieldTree").treeview({
  292. height: 572,
  293. showcheck: true,
  294. url: "../../SystemManage/DataBaseTable/GetTableFiledTreeJson",
  295. param: { dataBaseLinkId: dataBaseLinkId, tableName: tableName, nameId: String(nameArray) },
  296. oncheckboxclick: function (item, status) {
  297. if (status == 1) {
  298. bindingFormJson.push({
  299. ControlName: item.value,
  300. ControlId: item.id,
  301. ControlValidator: '',
  302. ControlType: 'input'
  303. })
  304. //添加字段
  305. var $item = $('<div class="item_row" data-value="' + item.id + '"><div class="item_field_label"><span>' + item.value + '</span></div><div class="item_field_value"></div><div class="editviewtitle">编辑控件</div></div>');
  306. $("#Form_layout .item_table").append($item);
  307. $item.find('.editviewtitle').click(function () {
  308. var Id = $item.attr('data-value');
  309. btn_editcontrol(Id);
  310. })
  311. $item.hover(function () {
  312. $(this).find('.editviewtitle').show();
  313. }, function (e) {
  314. $(this).find('.editviewtitle').hide();
  315. });
  316. } else if (status == 0) {
  317. $.each(bindingFormJson, function (i) {
  318. if (bindingFormJson[i].ControlId == item.id) {
  319. bindingFormJson.splice(i, 1);
  320. return false;
  321. }
  322. });
  323. //删除字段
  324. $("#Form_layout .item_table").find('[data-value=' + item.id + ']').remove();
  325. }
  326. }
  327. });
  328. //表单控件可以拖动
  329. $("#Form_layout_list").sortable({
  330. handle: '.item_field_label',
  331. placeholder: "ui-state-highlight"
  332. });
  333. //点击切换表单类型(一排、二排)
  334. $("#FormshowType").find('a').click(function () {
  335. $("#FormshowType").find('a').removeClass('active')
  336. if ($(this).attr('id') == "FormType1") {
  337. $(this).addClass('active')
  338. $(".app_layout .item_row").css({ width: "100%", float: "left" })
  339. } else if ($(this).attr('id') == "FormType2") {
  340. $(this).addClass('active');
  341. $(".app_layout .item_row").css({ width: "50%", float: "left" })
  342. }
  343. });
  344. //编辑控件
  345. function btn_editcontrol(Id) {
  346. dialogOpen({
  347. id: "EditControl",
  348. title: '编辑控件',
  349. url: '/GeneratorManage/SingleTable/EditControl?controlId=' + Id,
  350. width: "450px",
  351. height: "360px",
  352. callBack: function (iframeId) {
  353. top.frames[iframeId].AcceptClick(function (data) {
  354. if (data.ControlColspan == 1) {
  355. $("#Form_layout .item_table").find('[data-value=' + Id + ']').css({ width: "100%", float: "left" })
  356. } else {
  357. $("#Form_layout .item_table").find('[data-value=' + Id + ']').css({ width: "50%", float: "left" })
  358. }
  359. $("#Form_layout .item_table").find('[data-value=' + Id + ']').find('.item_field_label span').html(data.ControlName);
  360. $.each(bindingFormJson, function (i) {
  361. if (bindingFormJson[i].ControlId == Id) {
  362. bindingFormJson[i] = data;
  363. return false;
  364. }
  365. });
  366. });
  367. }
  368. });
  369. }
  370. }
  371. /*=========绑定表单(end)====================================================================*/
  372. /*=========查看代码(begin)==================================================================*/
  373. var LookCodeJson = [];
  374. function LookCode() {
  375. Loading(true, "正在生成代码...");
  376. window.setTimeout(function () {
  377. var baseConfig = $("#step-2").GetWebControls();
  378. baseConfig["DataBaseLinkId"] = $("#txt_DataBase").val();
  379. baseConfig["DataBaseTableName"] = $("#gridTable").jqGridRowValue("name");
  380. var gridInfoJson = {
  381. IsPage: bindingTableJson.pager,
  382. }
  383. var formJson = {
  384. width: $("#Formwidth").val(),
  385. height: $("#Formheight").val(),
  386. FormType: $("#FormshowType .active").attr('data-value')
  387. }
  388. $.ajax({
  389. url: "../../GeneratorManage/SingleTable/LookCode",
  390. data: {
  391. baseInfoJson: JSON.stringify(baseConfig),
  392. gridInfoJson: JSON.stringify(gridInfoJson),
  393. gridColumnJson: JSON.stringify(bindingTableJson.colModel),
  394. formInfoJson: JSON.stringify(formJson),
  395. formFieldJson: JSON.stringify(bindingFormJson)
  396. },
  397. type: "post",
  398. dataType: "json",
  399. async: false,
  400. success: function (data) {
  401. var dataJons = data;
  402. LookCodeJson = data;
  403. $('#showCodeAreas').html('<textarea name="SyntaxHighlighter" class="brush: c-sharp;">' + dataJons["entityCode"] + '</textarea>');
  404. SyntaxHighlighter.highlight();
  405. $("#step-5 .nav-tabs li").click(function () {
  406. var id = $(this).attr('id');
  407. $('#showCodeAreas').html('<textarea name="SyntaxHighlighter" class="brush: c-sharp;">' + dataJons[id.substring(4)] + '</textarea>');
  408. SyntaxHighlighter.highlight();
  409. })
  410. },
  411. complete: function () {
  412. Loading(false);
  413. }
  414. });
  415. }, 500);
  416. }
  417. /*=========查看代码(end)====================================================================*/
  418. /*=========自动创建(begin)==================================================================*/
  419. function CreateCode() {
  420. Loading(true, "正在创建代码...");
  421. window.setTimeout(function () {
  422. var baseConfig = $("#step-2").GetWebControls();
  423. $.ajax({
  424. url: "../../GeneratorManage/SingleTable/CreateCode",
  425. data: { baseInfoJson: JSON.stringify(baseConfig), strCode: encodeURIComponent(JSON.stringify(LookCodeJson)) },
  426. type: "post",
  427. dataType: "json",
  428. async: false,
  429. success: function (data) {
  430. $(".drag-tip").show();
  431. if (data.type == 1) {
  432. $("#finish-msg").html(data.message).css("color", "#0FA74F");
  433. $("#finish-msg").prev('i').attr('class', 'fa fa-check-circle').css("color", "#0FA74F");
  434. $("#finish-msg").next('p').show();
  435. } else {
  436. $("#finish-msg").html(data.message).css("color", "#d9534f");
  437. $("#finish-msg").prev('i').attr('class', 'fa fa-times-circle').css("color", "#d9534f");
  438. $("#finish-msg").next('p').hide();
  439. }
  440. },
  441. complete: function () {
  442. Loading(false);
  443. }
  444. });
  445. }, 500);
  446. }
  447. /*=========自动创建(end)====================================================================*/
  448. </script>
  449. <div class="widget-body">
  450. <div id="wizard" class="wizard" data-target="#wizard-steps" style="border-left: none; border-top: none; border-right: none;">
  451. <ul class="steps">
  452. <li data-target="#step-1" class="active"><span class="step">1</span>选择数据表<span class="chevron"></span></li>
  453. <li data-target="#step-2"><span class="step">2</span>基本配置<span class="chevron"></span></li>
  454. <li data-target="#step-3"><span class="step">3</span>列表页面<span class="chevron"></span></li>
  455. <li data-target="#step-4"><span class="step">4</span>表单页面<span class="chevron"></span></li>
  456. <li data-target="#step-5"><span class="step">5</span>查看代码<span class="chevron"></span></li>
  457. <li data-target="#step-6"><span class="step">6</span>自动创建<span class="chevron"></span></li>
  458. </ul>
  459. </div>
  460. <div class="step-content" id="wizard-steps" style="border-left: none; border-bottom: none; border-right: none;">
  461. <div class="step-pane active" id="step-1" style="margin: 10px; margin-bottom: 0px;">
  462. <div class="alert alert-danger" style="text-align: left; margin-bottom: 10px;">
  463. <i class="fa fa-question-circle alert-dismissible" style="position: relative; top: 1px; font-size: 15px; padding-right: 5px;"></i>
  464. 注:请选种表格中的一行 然后点击下一步进行操作
  465. </div>
  466. <div class="titlePanel">
  467. <div class="title-search">
  468. <table>
  469. <tr>
  470. <th style="white-space: nowrap; font-weight: normal;">数据库:</th>
  471. <td>
  472. <select id="txt_DataBase" class="form-control" style="width: 100px">
  473. </select>
  474. </td>
  475. <td style="padding-left: 1px;">
  476. <input id="txt_Keyword" type="text" class="form-control" placeholder="请输入要查询关键字" style="width: 200px;" />
  477. </td>
  478. <td style="padding-left: 5px;">
  479. <a id="btn_Search" class="btn btn-primary"><i class="fa fa-search"></i>&nbsp;查询</a>
  480. </td>
  481. </tr>
  482. </table>
  483. </div>
  484. </div>
  485. <div class="gridPanel">
  486. <table id="gridTable"></table>
  487. </div>
  488. </div>
  489. <div class="step-pane" id="step-2" style="margin: 10px; margin-bottom: 0px;">
  490. <div class="panel panel-default" style="margin-bottom: 10px;">
  491. <div class="panel-heading">
  492. <h3 class="panel-title">文件名配置</h3>
  493. </div>
  494. <div class="panel-body" style="width: 99%;">
  495. <table class="form">
  496. <tr>
  497. <th class="formTitle">创建人员<font face="宋体">*</font></th>
  498. <td class="formValue">
  499. <input id="CreateUser" type="text" class="form-control" value="@ViewBag.UserName" isvalid="yes" checkexpession="NotNull" />
  500. </td>
  501. <th class="formTitle">创建日期</th>
  502. <td class="formValue">
  503. <input id="CreateDate" type="text" class="form-control" value="@DateTime.Now.ToString("yyyy-MM-dd HH:mm")" isvalid="yes" checkexpession="NotNull" />
  504. </td>
  505. <th class="formTitle">类名描述<font face="宋体">*</font></th>
  506. <td class="formValue">
  507. <input id="Description" type="text" class="form-control" isvalid="yes" checkexpession="NotNull" />
  508. </td>
  509. </tr>
  510. <tr>
  511. <th class="formTitle">表主键名<font face="宋体">*</font></th>
  512. <td class="formValue">
  513. <div id="DataBaseTablePK" type="select" class="ui-select" isvalid="yes" checkexpession="NotNull">
  514. </div>
  515. </td>
  516. <th class="formTitle">实体类名<font face="宋体">*</font></th>
  517. <td class="formValue">
  518. <input id="EntityClassName" type="text" class="form-control" isvalid="yes" checkexpession="NotNull" />
  519. </td>
  520. <th class="formTitle">映射类名<font face="宋体">*</font></th>
  521. <td class="formValue">
  522. <input id="MapClassName" type="text" class="form-control" isvalid="yes" checkexpession="NotNull" />
  523. </td>
  524. </tr>
  525. <tr>
  526. <th class="formTitle">服务类名<font face="宋体">*</font></th>
  527. <td class="formValue">
  528. <input id="ServiceClassName" type="text" class="form-control" isvalid="yes" checkexpession="NotNull" />
  529. </td>
  530. <th class="formTitle">接口类名<font face="宋体">*</font></th>
  531. <td class="formValue">
  532. <input id="IServiceClassName" type="text" class="form-control" isvalid="yes" checkexpession="NotNull" />
  533. </td>
  534. <th class="formTitle">业务类名<font face="宋体">*</font></th>
  535. <td class="formValue">
  536. <input id="BusinesClassName" type="text" class="form-control" isvalid="yes" checkexpession="NotNull" />
  537. </td>
  538. </tr>
  539. <tr>
  540. <th class="formTitle">控制器名<font face="宋体">*</font></th>
  541. <td class="formValue">
  542. <input id="ControllerName" type="text" class="form-control" isvalid="yes" checkexpession="NotNull" />
  543. </td>
  544. <th class="formTitle">列表页名<font face="宋体">*</font></th>
  545. <td class="formValue">
  546. <input id="IndexPageName" type="text" class="form-control" isvalid="yes" checkexpession="NotNull" />
  547. </td>
  548. <th class="formTitle">表单页名<font face="宋体">*</font></th>
  549. <td class="formValue">
  550. <input id="FormPageName" type="text" class="form-control" isvalid="yes" checkexpession="NotNull" />
  551. </td>
  552. </tr>
  553. </table>
  554. </div>
  555. </div>
  556. <div class="panel panel-default">
  557. <div class="panel-heading">
  558. <h3 class="panel-title">输出目录</h3>
  559. </div>
  560. <div class="panel-body" style="width: 99%;">
  561. <table class="form">
  562. <tr>
  563. <th class="formTitle">输出到所在区域</th>
  564. <td class="formValue">
  565. <div id="OutputAreas" type="select" class="ui-select" isvalid="yes" checkexpession="NotNull">
  566. <ul>
  567. <li data-value="AuthorizeManage">AuthorizeManage</li>
  568. <li data-value="BaseManage">BaseManage</li>
  569. <li data-value="CustomerManage">CustomerManage</li>
  570. <li data-value="FlowManage">FlowManage</li>
  571. <li data-value="PublicInfoManage">PublicInfoManage</li>
  572. <li data-value="ReportManage">ReportManage</li>
  573. <li data-value="SystemManage">SystemManage</li>
  574. <li data-value="WeChatManage">WeChatManage</li>
  575. </ul>
  576. </div>
  577. </td>
  578. </tr>
  579. <tr>
  580. <th class="formTitle">实体层输出目录</th>
  581. <td class="formValue">
  582. <input id="OutputEntity" readonly type="text" class="form-control" value="@ViewBag.OutputDirectory\LeaRun.Application.Entity"/>
  583. </td>
  584. </tr>
  585. <tr>
  586. <th class="formTitle">映射层输出目录</th>
  587. <td class="formValue">
  588. <input id="OutputMap" readonly type="text" class="form-control" value="@ViewBag.OutputDirectory\LeaRun.Application.Mapping" />
  589. </td>
  590. </tr>
  591. <tr>
  592. <th class="formTitle">服务层输出目录</th>
  593. <td class="formValue">
  594. <input id="OutputService" readonly type="text" class="form-control" value="@ViewBag.OutputDirectory\LeaRun.Application.Service"/>
  595. </td>
  596. </tr>
  597. <tr>
  598. <th class="formTitle">接口层输出目录</th>
  599. <td class="formValue">
  600. <input id="OutputIService" readonly type="text" class="form-control" value="@ViewBag.OutputDirectory\LeaRun.Application.IService"/>
  601. </td>
  602. </tr>
  603. <tr>
  604. <th class="formTitle">业务层输出目录</th>
  605. <td class="formValue">
  606. <input id="OutputBusines" readonly type="text" class="form-control" value="@ViewBag.OutputDirectory\LeaRun.Application.Busines"/>
  607. </td>
  608. </tr>
  609. <tr>
  610. <th class="formTitle">应用层输出目录</th>
  611. <td class="formValue">
  612. <input id="OutputController" readonly type="text" class="form-control" value="@ViewBag.OutputDirectory\LeaRun.Application.Web" />
  613. </td>
  614. </tr>
  615. </table>
  616. </div>
  617. </div>
  618. </div>
  619. <div class="step-pane" id="step-3">
  620. <div id="BindingList" style="margin: 10px;">
  621. <div class="editview border" style="height: 60px;">
  622. <div style="float: right;">
  623. <ul class="sys_spec_text">
  624. <li class="active"><a data-value="lr-replace"><i class="fa fa-refresh"></i>&nbsp;刷新</a></li>
  625. <li class="active"><a data-value="lr-add"><i class="fa fa-plus"></i>&nbsp;新增</a></li>
  626. <li class="active"><a data-value="lr-edit"><i class="fa fa-pencil-square-o"></i>&nbsp;编辑</a></li>
  627. <li class="active"><a data-value="lr-delete"><i class="fa fa-trash-o"></i>&nbsp;删除</a></li>
  628. </ul>
  629. </div>
  630. </div>
  631. <div class="editview border" style="height: 490px; padding: 10px;">
  632. <div class="editviewtitle" id="editgrid">
  633. 编辑表格
  634. </div>
  635. <div class="editviewbody">
  636. </div>
  637. <div class="editviewbodybackground" style="position: fixed; top: 120px; left: 13px; z-index: 2; width: 1073px; height: 485px; background: #fff; filter: alpha(opacity=10); opacity: 0.1;"></div>
  638. </div>
  639. </div>
  640. </div>
  641. <div class="step-pane" id="step-4">
  642. <div>
  643. <div id="FormFieldTree" class="border-right" style="width: 260px; float: left;"></div>
  644. <div style="margin: 0px auto; height: 100%; overflow: hidden;">
  645. <div class="alert alert-danger" style="text-align: left; margin: 10px;">
  646. <i class="fa fa-question-circle alert-dismissible" style="position: relative; top: 1px; font-size: 15px; padding-right: 5px;"></i>
  647. 注:1、请在左侧勾选需要在表单中显示的字段。2、可编辑控件参数。3、可拖动控件显示位置。
  648. </div>
  649. <div style="float: left; position: absolute; top: 117px; padding-left: 11px; width: 150px;">
  650. <input id="Formwidth" type="text" class="form-control" placeholder="表单宽度" style="float: left; width: 60px; margin-right: 5px;" />
  651. <input id="Formheight" type="text" class="form-control" placeholder="表单高度" style="float: left; width: 60px;" />
  652. </div>
  653. <div class="row" style="text-align: center;">
  654. <div id="FormshowType" class="btn-group">
  655. <a id="FormType1" class="btn btn-default active" data-value="1">一排</a>
  656. <a id="FormType2" class="btn btn-default" data-value="2">二排</a>
  657. </div>
  658. </div>
  659. <div id="Form_layout" class="app_layout" style="height: 450px; border-left: none;">
  660. <div id="Form_layout_list" class="item_table"></div>
  661. </div>
  662. </div>
  663. </div>
  664. </div>
  665. <div class="step-pane" id="step-5" style="margin: 5px;">
  666. <ul class="nav nav-tabs">
  667. <li class="active" id="Tab_entityCode" title="Entity"><a href="#" data-toggle="tab">实体类</a></li>
  668. <li id="Tab_entitymapCode" title="Mapping"><a href="#" data-toggle="tab">实体映射类</a></li>
  669. <li id="Tab_serviceCode" title="Service"><a href="#" data-toggle="tab">服务类</a></li>
  670. <li id="Tab_iserviceCode" title="IService"><a href="#" data-toggle="tab">服务接口类</a></li>
  671. <li id="Tab_businesCode" title="Busines"><a href="#" data-toggle="tab">业务类</a></li>
  672. <li id="Tab_controllerCode" title="Controller"><a href="#" data-toggle="tab">控制器</a></li>
  673. <li id="Tab_indexCode" title="Index"><a href="#" data-toggle="tab">列表页</a></li>
  674. <li id="Tab_formCode" title="Form"><a href="#" data-toggle="tab">表单页</a></li>
  675. </ul>
  676. <div id="showCodeAreas" class="tab-content" style="height: 525px; padding-left: 5px; padding-right: 5px; overflow: auto;">
  677. </div>
  678. </div>
  679. <div class="step-pane" id="step-6" style="margin: 5px; overflow: hidden; height: 600px;">
  680. <div class="drag-tip" style="text-align: center; padding-top: 100px; display: none;">
  681. <i class="fa fa-check-circle" style="font-size: 204px; color: #0FA74F;"></i>
  682. <div id="finish-msg" style="font-weight: bold; font-size: 24px; color: #0FA74F; margin-top: 20px;"></div>
  683. <p style="color: #666; font-size: 12px; margin-top: 10px;">
  684. <a id="publish_btn" href="#">发布功能</a>
  685. </p>
  686. </div>
  687. <div id="publish_panel" style="position: absolute; height: 400px; top: 700px; z-index: 100; background: #ffffff; margin-top: 15px; margin-right: 30px; display: none;">
  688. <table class="form">
  689. <tr>
  690. <th class="formTitle">功能编号<font face="宋体">*</font></th>
  691. <td class="formValue">
  692. <input id="ModuleEnCode" type="text" class="form-control" placeholder="请输入编号" isvalid="yes" checkexpession="NotNull" />
  693. </td>
  694. </tr>
  695. <tr>
  696. <th class="formTitle">功能名称<font face="宋体">*</font></th>
  697. <td class="formValue">
  698. <input id="ModuleFullName" type="text" class="form-control" placeholder="请输入名称" isvalid="yes" checkexpession="NotNull" />
  699. </td>
  700. </tr>
  701. <tr>
  702. <th class="formTitle">功能上级<font face="宋体">*</font></th>
  703. <td class="formValue">
  704. <div id="ModuleParentId" type="selectTree" class="ui-select" isvalid="yes" checkexpession="NotNull"></div>
  705. </td>
  706. </tr>
  707. <tr>
  708. <th class="formTitle">功能图标<font face="宋体">*</font></th>
  709. <td class="formValue">
  710. <input id="ModuleIcon" type="text" class="form-control" isvalid="yes" checkexpession="NotNull" />
  711. <span class="input-button" title="选取图标">...</span>
  712. </td>
  713. </tr>
  714. <tr>
  715. <th class="formTitle" valign="top" style="padding-top: 4px;">功能描述
  716. </th>
  717. <td class="formValue">
  718. <textarea id="ModuleDescription" class="form-control" style="height: 70px;"></textarea>
  719. </td>
  720. </tr>
  721. </table>
  722. </div>
  723. </div>
  724. </div>
  725. <div class="form-button" id="wizard-actions">
  726. <a id="btn_last" disabled class="btn btn-default btn-prev">上一步</a>
  727. <a id="btn_next" class="btn btn-default btn-next">下一步</a>
  728. <a id="btn_finish" disabled class="btn btn-success">完成</a>
  729. </div>
  730. </div>
  731. <style>
  732. body {
  733. overflow: hidden;
  734. }
  735. .app_layout .item_table {
  736. overflow: hidden;
  737. border-top: 1px solid #eeecec;
  738. border-bottom: none;
  739. min-height: 400px;
  740. }
  741. .app_layout .item_row {
  742. cursor: default;
  743. position: relative;
  744. }
  745. .app_layout .item_row .item_field_label {
  746. cursor: move;
  747. }
  748. .app_layout .item_row:hover {
  749. border: 1px dashed #337ab7;
  750. }
  751. .app_layout .item_row:last-child {
  752. border-bottom: 1px solid #eeecec;
  753. }
  754. .app_layout .ui-state-highlight {
  755. border: none;
  756. }
  757. </style>