Regions.cshtml 8.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206
  1. @using ShwasherSys.Authorization.Permissions
  2. @using ShwasherSys.Models
  3. @using ShwasherSys.Models.Modal
  4. @*@model WisdomRehearsal.Roles.Dto.RoleDto*@
  5. @{
  6. ViewBag.Title = "区域维护";
  7. ViewBag.ActiveMenu = PermissionNames.PagesBasicInfoRegions; //The menu item will be active for this page.
  8. //CurrentUserViewModel currentUser = ViewBag.CurrentUser;
  9. }
  10. <link href="~/Content/Plugins/bootstrap-table/extensions/treegrid/jquery.treegrid.min.css" rel="stylesheet" />
  11. <div class="table-box mr-4">
  12. @Html.Action("ToolMenu", "Layout", new { pageName = ViewBag.ActiveMenu, SelectList = new { } })
  13. <table id="table"
  14. data-url="/api/services/app/Regions/GetAll"
  15. data-striped="true" data-id-field="id" data-unique-id="id"
  16. data-method="post"
  17. data-side-pagination="server"
  18. data-content-type="application/x-www-form-urlencoded; charset=UTF-8"
  19. data-cache="false"
  20. data-pagination="true"
  21. data-page-size="1000"
  22. data-page-number="1"
  23. data-page-list="[1000]"
  24. data-buttons-class="primary btn-sm"
  25. data-query-params="QueryParams"
  26. data-response-handler="ResponseHandler"
  27. data-click-to-select="false"
  28. data-single-select="true">
  29. <thead>
  30. <tr class="row" id="header">
  31. <th data-field="state" data-checkbox="true"></th>
  32. <th data-align="" data-field="regionName">名称</th>
  33. <th data-align="center" data-field="id">编号</th>
  34. <th data-align="center" data-formatter="ActionsFormatter">操作菜单</th>
  35. @*<th data-align="center" data-field="LastModificationTime">@L("LastModificationTime")</th>
  36. <th data-align="center" data-field="LastModifierUserId">@L("LastModifierUserId")</th>*@
  37. </tr>
  38. </thead>
  39. </table>
  40. </div>
  41. @section modal {
  42. <!-- Modal -->
  43. <div class="modal fade" id="modal" role="dialog" tabindex="-1" aria-labelledby="ModalLabel" aria-hidden="true">
  44. <div class="modal-dialog modal-dialog-centered" role="document">
  45. <div class="modal-content">
  46. @Html.Partial("Modals/_ModalHeader", new ModalHeaderViewModel("功能菜单"))
  47. @{
  48. var inputs = new List<InputViewModel>
  49. {
  50. new InputViewModel("fatherRegionID", hide:true),
  51. new InputViewModel("id", displayName: "编号"),
  52. new InputViewModel("regionName", displayName: "区域名称"),
  53. new InputViewModel("sort", displayName: "同级序号",@class:"number"),
  54. };
  55. //var specials = new List<SpecialInputModel>();
  56. }
  57. @Html.Partial("Modals/_ModalBody", new ModalBodyViewModel(inputs))
  58. @Html.Partial("Modals/_ModalFooter", "0")
  59. </div>
  60. </div>
  61. </div>
  62. }
  63. @section scripts
  64. {
  65. <script src="~/Content/Plugins/bootstrap-table/extensions/treegrid/bootstrap-table-treegrid.js"></script>
  66. <script src="~/Content/Plugins/bootstrap-table/extensions/treegrid/jquery.treegrid.min.js"></script>
  67. <script type="text/javascript">
  68. $("#Tool1").css("display", "none");
  69. var $table = $("#table");
  70. var actions = [];
  71. $(function() {
  72. LoadTable();
  73. $("#Tool1").find(".btn[data-type]").each(function (i, e) {
  74. var btnType = $(e).data("type").replace("_", "");
  75. var btnUrl = $(e).data("url") || "";
  76. var btnName = $(e).text();
  77. var btnClass = $(e).attr("class");
  78. var btnIcon = $(e).find("i").attr("class");
  79. actions.push({ type: btnType, name: btnName, "class": btnClass, icon: btnIcon, url: btnUrl });
  80. $(e).remove();
  81. });
  82. //$("#Tool1").css("display", "block");
  83. });
  84. function LoadTable() {
  85. $.extend($.fn.bootstrapTable.defaults, $.fn.bootstrapTable.locales[window.lang]);
  86. $table.bootstrapTable({
  87. idField: 'id',
  88. treeShowField: 'regionName',
  89. parentIdField: 'fatherRegionID',
  90. onLoadSuccess: OnLoadSuccess,
  91. onAll: OnAll
  92. //onClickRow: OnClickRow,
  93. //queryParams: QueryParams
  94. // bootstrap-table-treetreegrid.js 插件配置
  95. });
  96. }
  97. function OnLoadSuccess() {
  98. $table.treegrid({
  99. //initialState: 'collapsed',
  100. treeColumn: 1,
  101. expanderExpandedClass: 'iconfont icon-folder-open-fill',
  102. expanderCollapsedClass: 'iconfont icon-folder-fill',
  103. onChange: function() {
  104. //$table.bootstrapTable('resetWidth');
  105. }
  106. });
  107. $(".level-2").closest("tr").treegrid("collapse");
  108. $("td span.treegrid-expander:not(.iconfont)").addClass("iconfont icon-folder");
  109. abp.ui.clearBusy();
  110. $("td").off("dblclick").on("dblclick",function() { $($(this).closest("tr")).treegrid("toggle"); });
  111. }
  112. function btnCreate(id, $this) {
  113. console.log("Add", id);
  114. var row;
  115. if (typeof id === "string" && id !== "") {
  116. row = $table.bootstrapTable("getRowByUniqueId", id);
  117. }
  118. if (row) {
  119. var url = $($this).data("url") + "";
  120. OpenModal({
  121. modaltitle: window.opCreate,
  122. url:url,
  123. data: { fatherRegionID: row.id }
  124. /*save: function() {
  125. SaveAjax({
  126. url: url,
  127. success: function (res) {
  128. console.log(res);
  129. if (res.success) {
  130. abp.message.success(abp.localization.localize("OpSuccess"));
  131. $("#modal").modal("hide");
  132. RefreshTable();
  133. }
  134. }
  135. });
  136. }*/
  137. });
  138. } else {
  139. abp.message.warn(abp.localization.localize("ChooseOneToOp"));
  140. }
  141. }
  142. function btnUpdate(id, $this) {
  143. console.log("Update", id);
  144. var row;
  145. if (typeof id === "string" && id !== "") {
  146. row = $table.bootstrapTable("getRowByUniqueId", id);
  147. }
  148. if (row) {
  149. var url = $($this).data("url") + "";
  150. OpenModal({ modaltitle: window.opUpdate, data: row, url: url, disabled: "id" });
  151. } else {
  152. abp.message.warn(abp.localization.localize("ChooseOneToOp"));
  153. }
  154. }
  155. function btnDelete(id, $this) {
  156. console.log("Delete", id);
  157. var row;
  158. if (typeof id === "string" && id !== "") {
  159. row = $table.bootstrapTable("getRowByUniqueId", id);
  160. }
  161. if (row) {
  162. var url = $($this).data("url") + "";
  163. abp.message.confirm(abp.localization.localize("DeleteConfirmMsg"), abp.localization.localize("DeleteConfirmTitle"), function () {
  164. SaveAjax({ url: url, data: { Id: row.id }, isValidate: false });
  165. });
  166. } else {
  167. abp.message.warn(abp.localization.localize("ChooseOneToOp"));
  168. }
  169. }
  170. //格式化图标
  171. function IconFormatter(v) {
  172. if (v !== "") {
  173. return '<span class="iconfont ' + v + '"></span>';
  174. }
  175. return v;
  176. }
  177. //操作按钮
  178. function ActionsFormatter(v,r) {
  179. var str = '<div class="btn-group btn-group-xs">';
  180. for (var i = 0; i < actions.length; i++) {
  181. str += '<span class="' + actions[i]["class"] + '" data-url="' + actions[i]["url"] + '" onclick="' + actions[i]["type"] + '(\'' + r.id + '\',this)"><i class="' + actions[i]["icon"] + '"></i>' + actions[i]["name"]+' </span>';
  182. }
  183. str += '</div>';
  184. return str;
  185. }
  186. //自定义属性
  187. function RowAttributes(r) {
  188. return {
  189. //"data-level": r._level,
  190. "data-function": r.id,
  191. "data-parent": r.fatherRegionID
  192. };
  193. }
  194. </script>
  195. }