_Layout.cshtml 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266
  1. @using System.Security.Policy
  2. @using System.Web.Optimization
  3. @using Abp.Configuration
  4. @using Abp.Runtime.Session
  5. @using Abp.Timing
  6. @using ShwasherSys.Models.Modal
  7. @using IwbZero.Setting
  8. @{
  9. SetAntiForgeryCookie();
  10. var foot = SettingManager.GetSettingValue(SettingNames.HtmlPagesFooter);
  11. var version = SettingManager.GetSettingValue(SettingNames.AdminSystemVersion);
  12. string currentUser = AbpSession.UserName;
  13. var currentUserId = AbpSession.UserId??0;
  14. //AlertList alerts;
  15. //IocManager.Instance.Using<IAlertManager>(alertManager => alerts = alertManager.Alerts);
  16. }
  17. <!DOCTYPE html>
  18. <html lang="en">
  19. <head>
  20. <meta charset="utf-8">
  21. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  22. <meta name="viewport" content="width=device-width, initial-scale=1">
  23. <meta name="description" content="">
  24. <meta name="author" content="">
  25. <link rel="shortcut icon" href="~/favicon.ico">
  26. <title>@ViewBag.Title-IWB</title>
  27. @Styles.Render("~/Content/css")
  28. @Scripts.Render("~/bundles/modernizr")
  29. @RenderSection("CSS", false)
  30. <link href="~/Content/Plugins/Notice/css/animate.css" rel="stylesheet" />
  31. <link href="~/Content/Plugins/Notice/dist/noticejs.css" rel="stylesheet" />
  32. <!-- View specific styles -->
  33. @RenderSection("styles", false)
  34. <script type="text/javascript">
  35. //This is used to get the application's root path from javascript. It's useful if you're running application in a virtual directory under IIS.
  36. var abp = abp || {}; abp.appPath = '@ApplicationPath';
  37. </script>
  38. <!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries -->
  39. <!--[if lt IE 9]>
  40. <script src="@Url.Content("~/Scripts/Others/html5shiv.js")"></script>
  41. <script src="@Url.Content("~/Scripts/Others/respond.min.js")"></script>
  42. <![endif]-->
  43. <script type="text/javascript">
  44. //This is used to get the application's root path from javascript. It's useful if you're running application in a virtual directory under IIS.
  45. var queryParams = {};
  46. var abp = abp || {}; abp.appPath = '@ApplicationPath', abp.localization = abp.localization || {};
  47. var appUrl = "/api/services/app/";
  48. abp.appUrl = appUrl;
  49. @*var opSuccess = "@L("OpSuccess")",
  50. opFailed = "@L("OpFailed")",
  51. opCreate = "@L("Create")",
  52. opUpdate = "@L("Update")",
  53. opDelete = "@L("Delete")",
  54. btnConfirm = "@L("Confirm")",
  55. btnCancel = "@L("Cancel")";*@
  56. var opSuccess = "操作成功",
  57. opFailed = "操作失败",
  58. opCreate = "添加",
  59. opUpdate = "修改",
  60. opDelete = "删除",
  61. btnConfirm = "确认",
  62. btnCancel = "取消",
  63. lang="zh-CN";
  64. </script>
  65. </head>
  66. <body class="skin-black sidebar-mini">
  67. <div class="wrapper">
  68. <!-- Header Navbar-->
  69. @Html.Action("MainHeader", "Layout")
  70. <!-- Left side column. contains the logo and sidebar -->
  71. @Html.Action("SideBarNav", "Layout", new { activeMenuName = ViewBag.ActiveMenu })
  72. <!-- Content Wrapper. Contains page content -->
  73. <div class="content-wrapper">
  74. @RenderBody()
  75. </div>
  76. <!-- Footer -->
  77. <footer class="main-footer">
  78. <div class="pull-right hidden-xs">
  79. <b>Version</b> @version
  80. </div>
  81. @*<strong>Copyright &copy; 2016-2019 <a href="#">IWB Net</a>.</strong> All rights
  82. reserved.*@
  83. @Html.Raw(foot)
  84. </footer>
  85. </div>
  86. @RenderSection("Modal", false)
  87. <!--Pwd Modal -->
  88. <section>
  89. <div class="modal fade" id="modal_Pwd" role="dialog" tabindex="-1" aria-labelledby="ModalLabel" aria-hidden="true">
  90. <div class="modal-dialog modal-dialog-centered" role="document">
  91. <div class="modal-content">
  92. @Html.Partial("~/Views/Shared/Modals/_ModalHeader.cshtml", new ModalHeaderViewModel(L("AccountChangePassword")))
  93. @{
  94. var inputs = new List<InputViewModel>
  95. {
  96. new InputViewModel("LoginName",displayName: "用户名"),
  97. new InputViewModel("LoginPassword",InputTypes.Password,"原密码"),
  98. new InputViewModel("NewPassword",InputTypes.Password, "新密码"),
  99. new InputViewModel("NewPassword1",InputTypes.Password,"确认密码",other:"equalTo=#NewPassword")
  100. };
  101. }
  102. @Html.Partial("Modals/_ModalBody", new ModalBodyViewModel(inputs, "form_Pwd"))
  103. <div class="modal-footer" style="text-align: center;">
  104. <button type="button" class="btn btn-default waves-effect" data-dismiss="modal" style="min-width: 100px; background: #FFFFFF; border: 1px solid #DDDDDD;">取消</button>
  105. <button type="button" id="Save_Pwd" class="btn btn-success waves-effect" style="min-width: 100px; background-color: #678ceb; border: 1px solid #678ceb;">保存</button>
  106. </div>
  107. </div>
  108. </div>
  109. </div>
  110. <div class="modal fade" id="modal_tongzhi" role="dialog" tabindex="-1" aria-labelledby="ModalLabel" aria-hidden="true">
  111. <div class="modal-dialog modal-dialog-centered" role="document">
  112. <div class="modal-content">
  113. @*@Html.Partial("~/Views/Shared/Modals/_ModalHeader.cshtml", new ModalHeaderViewModel(L("NoticeShow")))*@
  114. <div class="box box-primary">
  115. <div class="box-header with-border">
  116. <h3 class="box-title">@L("NoticeShow")</h3>
  117. </div>
  118. <!-- /.box-header -->
  119. <div class="box-body no-padding">
  120. <div class="mailbox-read-info">
  121. <h3 id="bulletinTitle">Message Subject Is Placed Here</h3>
  122. <h5>
  123. 发布人: <span id="publicPerson"></span>
  124. <span class="mailbox-read-time pull-right" id="promulgatDate">15 Feb. 2016 11:03 PM</span>
  125. </h5>
  126. </div>
  127. <div class="mailbox-read-message" id="bulletinContent">
  128. </div>
  129. <!-- /.mailbox-read-message -->
  130. </div>
  131. </div>
  132. <div class="modal-footer" style="text-align: center;">
  133. <button type="button" class="btn btn-default waves-effect" data-dismiss="modal" style="min-width: 100px; background: #FFFFFF; border: 1px solid #DDDDDD;">取消</button>
  134. </div>
  135. </div>
  136. </div>
  137. </div>
  138. <div class="modal fade" id="modal_alarm" role="dialog" tabindex="-1" aria-labelledby="ModalLabel" aria-hidden="true">
  139. <div class="modal-dialog modal-dialog-centered" role="document">
  140. <div class="modal-content">
  141. @*@Html.Partial("~/Views/Shared/Modals/_ModalHeader.cshtml", new ModalHeaderViewModel(L("NoticeShow")))*@
  142. <div class="box box-primary">
  143. <div class="box-header with-border">
  144. <h3 class="box-title">短消息</h3>
  145. </div>
  146. <!-- /.box-header -->
  147. <div class="box-body no-padding">
  148. <div class="mailbox-read-info">
  149. <h3 id="msgTitle">Message Subject Is Placed Here</h3>
  150. <h5>
  151. 发布人: <span id="sendPerson"></span>
  152. <span class="mailbox-read-time pull-right" id="sendDatetime">15 Feb. 2016 11:03 PM</span>
  153. </h5>
  154. </div>
  155. <div class="mailbox-read-message" id="msgContent">
  156. </div>
  157. <!-- /.mailbox-read-message -->
  158. </div>
  159. </div>
  160. <div class="modal-footer" style="text-align: center;">
  161. <button type="button" class="btn btn-default waves-effect" data-dismiss="modal" style="min-width: 100px; background: #FFFFFF; border: 1px solid #DDDDDD;">取消</button>
  162. <button type="button" class="btn btn-default waves-effect setMsgRead" data-dismiss="modal" style="min-width: 100px; background: #008080; color: #ffffff; border: 1px solid #ffffff;" >已读</button>
  163. </div>
  164. </div>
  165. </div>
  166. </div>
  167. </section>
  168. @Scripts.Render("~/bundles/jquery")
  169. <!-- Dynamic scripts of ABP system (They are created on runtime and can not be bundled) -->
  170. <script src="~/api/AbpServiceProxies/GetAll?v=@(Clock.Now.Ticks)"></script>
  171. <script src="~/AbpScripts/GetScripts?v=@(Clock.Now.Ticks)"></script>
  172. <script>
  173. abp.localization.defaultSourceName = '@LocalizationSourceName';
  174. </script>
  175. @Scripts.Render("~/bundles/abp")
  176. <script src="~/Scripts/jquery.signalR-2.4.0.min.js"></script>
  177. <script src="~/signalr/hubs"></script>
  178. <script src="~/Content/Scripts/Abp/libs/abp.signalr.js"></script>
  179. <script src="~/Content/Plugins/Notice/dist/notice.js"></script>
  180. <script>var iwbHub = $.connection.iwbHub;</script>
  181. <!-- View specific scripts -->
  182. @RenderSection("SCRIPTS", false)
  183. <script>
  184. iwbHub.client.getShortMsg = function (msg) {
  185. if (msg) {
  186. try {
  187. var data = JSON.parse(msg);
  188. var users = data.RecieveUserIds;
  189. if (users) {
  190. var arr = users.split(",");
  191. if(arr.indexOf("@currentUser")>-1) {
  192. new NoticeJs({
  193. text: data.Title,
  194. position: 'bottomRight',
  195. animation: {
  196. open: 'animated bounceIn',
  197. close: 'animated bounceOut'
  198. }
  199. }).show();
  200. QueryShortMsg(data.Id);
  201. }
  202. }
  203. } catch (e) {
  204. console.log(e);
  205. }
  206. }
  207. };
  208. function QueryShortMsg(new_id) {
  209. SaveAjax({
  210. url: window.appUrl+"ShortMsgDetail/GetMsgByUser",
  211. isValidate: false,
  212. isAlert: false,
  213. success: function(res) {
  214. if (res && res.total > 0) {
  215. $("#alarmCount").html(res.total);
  216. var content = '<li>';
  217. content += '<ul class="menu">';
  218. let show_detail_id;
  219. res.items.forEach(function(r) {
  220. content += ' <li onclick="ShowMsg(' + r.msgID + ',' + r.id + ')">';
  221. content += ' <a href="#">';
  222. content += ' <i class="iconfont icon-icon-notice" ></i>' + r.title;
  223. content += ' </a>';
  224. content += ' </li>';
  225. show_detail_id = show_detail_id ? show_detail_id : r.id //模态窗弹出只显示第一个
  226. new_id = new_id ? new_id : r.msgID //模态窗弹出只显示第一个
  227. });
  228. content += ' </ul>';
  229. content += ' </li>';
  230. if (res.total > 5) {
  231. content += ' <li class="footer"><a href="/NotificationInfo/ShortMsgMg">查看全部</a></li>';
  232. }
  233. $("#alarmInfo").html(content);
  234. //if (new_id) { //模态窗弹出只显示第一个
  235. // ShowMsg(new_id, show_detail_id)
  236. // }
  237. } else {
  238. $("#alarmCount").html("0");
  239. }
  240. }
  241. });
  242. }
  243. </script>
  244. </body>
  245. </html>