DeviceMgPlan.cshtml 8.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194
  1. @using ShwasherSys
  2. @using ShwasherSys.Authorization.Permissions
  3. @using ShwasherSys.Models.Layout
  4. @using ShwasherSys.Views.Shared.New.Modals
  5. @using ShwasherSys.Views.Shared.New.Table
  6. @{
  7. ViewBag.Title = "设备维护计划";
  8. string activeMenu = PermissionNames.PagesCompanyDieMaintenanceDeviceMgPlan; //The menu item will be active for this page.
  9. List<SelectListItem> fixedAsset = ViewBag.FixedAsset, planType = ViewBag.PlanType;
  10. ViewBag.ActiveMenu = activeMenu;
  11. var searchForm = new SearchFormViewModal(new List<SearchItem>()
  12. {
  13. new SearchItem("no","计划编号"),
  14. new SearchItem("name","设备名称").SetSearchItem(fixedAsset,isAddBlank:false),
  15. new SearchItem("expireDate","有效期限",FiledType.D,ExpType.GreaterOrEqual),
  16. new SearchItem("expireDate","至",FiledType.D,ExpType.LessOrEqual),
  17. new SearchItem("maintenanceDate","维护时间",FiledType.D,ExpType.GreaterOrEqual),
  18. new SearchItem("maintenanceDate","至",FiledType.D,ExpType.LessOrEqual),
  19. new SearchItem("nextMaintenanceDate","下一次维护时间",FiledType.Dnull,ExpType.GreaterOrEqual),
  20. new SearchItem("nextMaintenanceDate","至",FiledType.Dnull,ExpType.LessOrEqual),
  21. }, "search-form", false);
  22. var table = new TableViewModel("/api/services/app/DeviceMgPlan/GetAll", activeMenu, searchForm)
  23. .SetFields(new List<FieldItem>()
  24. {
  25. new FieldItem("no", "计划编号"),
  26. new FieldItem("planType", "计划类型","PlanTypeFormatter"),
  27. new FieldItem("name", "设备名称"),
  28. new FieldItem("expireDate", "有效期限","ExDateFormatter"),
  29. new FieldItem("maintenanceCycle", "维护周期"),
  30. new FieldItem("maintenanceDate", "维护时间","DateFormatter"),
  31. new FieldItem("nextMaintenanceDate", "下一次维护时间","MtDateFormatter"),
  32. });
  33. }
  34. @section css{
  35. }
  36. @Html.Partial("New/Table/_Table", table)
  37. @section modal{
  38. <!--Main Modal-->
  39. @{
  40. var modal = new ModalViewModel("设备计划", new ModalBodyViewModel(new List<Input>()
  41. {
  42. new InputHide("id"),
  43. new InputHide("no", "计划编号"),
  44. new Input("planType", "计划类型").SetSelectOptions(planType),
  45. new InputHide("deviceNo").SetNotRequired(),
  46. //new Input("deviceName1", "设备名称",@class:"type type1",other:"onchange=DeviceNameChange(this)").SetSelectOptions(fixedAsset,isAddBlank:false),
  47. new Input("deviceName1", "模具名称",@class:"type type1").SetSearchIcon("query_mold_modal","#modal"),
  48. new Input("deviceName2", "设备名称",@class:"type type2").SetSearchIcon("query_device_modal","#modal"),
  49. new Input("name","设备名称",@class:"type type3"),
  50. new InputDate("expireDate", "有效期限"),
  51. new InputNumber("maintenanceCycle", "维护周期(天)",other:"min=1"),
  52. new InputDate("maintenanceDate", "维护时间"),
  53. new InputTextarea("description", "维护内容").SetNotRequired(),
  54. }));
  55. }
  56. @{
  57. var recordModal = new ModalViewModel("添加维护记录", "", new ModalBodyViewModel(new List<Input>()
  58. {
  59. new InputHide("id"),
  60. new InputHide("no", "计划编号"),
  61. new Input("name", "设备名称"),
  62. new Input("address", "维护地点"),
  63. new InputDate("planDate", "计划维护时间").SetNotRequired(),
  64. new InputTextarea("description", "维护内容").SetNotRequired(),
  65. }), "record-modal");
  66. }
  67. @Html.Partial("New/Modals/_Modal", modal)
  68. @Html.Partial("New/Modals/_Modal", recordModal)
  69. @Html.Partial("Modals/Query/_Device", "deviceNo,name|deviceName2")
  70. @Html.Partial("Modals/Query/_Mold", "deviceNo,name|deviceName1")
  71. }
  72. @section scripts
  73. {
  74. <script type="text/javascript">
  75. var $table = $('#table');
  76. $(function () {
  77. LoadTable();
  78. var funs = window.funs || { none: function () { console.log("No type"); } };
  79. funs["btnCreate"] = function (url) {
  80. $("#modal .type").closest('.form-group-sm').hide();
  81. $('#modal #planType').off("change.planType").off("change.planType1").on("change.planType",PlanTypeChange);
  82. BtnCreate({ data: { id: "",no:"1" }, disabled: "no,deviceName1,deviceName2" });
  83. }
  84. funs["btnUpdate"] = function () {
  85. var row = $table.bootstrapTable("getSelections")[0];
  86. if (row) {
  87. $("#modal .type").closest('.form-group-sm').hide();
  88. var data = $.extend({}, row, { deviceName1: row.name, deviceName2: row.name });
  89. $('#modal #planType').off("change.planType").on("change.planType1",
  90. function() {
  91. PlanTypeChange(row.name);
  92. });
  93. BtnUpdate({ disabled: "no,maintenanceDate,planType,deviceName1,deviceName2" ,data:data});
  94. //$("#modal .type").removeClass('required').closest('.form-group-sm').hide();
  95. //$("#modal .type3").addClass('required').closest('.form-group-sm').fadeIn();
  96. $('#modal #planType').off("change.planType1").on("change.planType",PlanTypeChange);
  97. //$('#modal #planType').trigger("change");
  98. }
  99. };
  100. funs["btnMaintain"] = function (url) {
  101. var row = $table.bootstrapTable("getSelections")[0];
  102. if (row) {
  103. var data = $.extend({}, row, { name: row.deviceName });
  104. OpenModal({
  105. url: url,
  106. disabled: "no,name",
  107. modal: $('#record-modal'),
  108. data: data
  109. });
  110. }
  111. };
  112. });
  113. function PlanTypeChange(name) {
  114. if (typeof name !=="string") {
  115. name = "";
  116. }
  117. var type = $('#modal #planType').val();
  118. $('#modal #deviceName1').val(name);
  119. $('#modal #deviceName2').val(name);
  120. $('#modal #name').val(name);
  121. $('#modal #deviceNo').val('');
  122. $("#modal .type").removeClass('required').closest('.form-group-sm').hide();
  123. if (type) {
  124. $("#modal .type" + type).addClass('required').closest('.form-group-sm').fadeIn();
  125. }
  126. }
  127. function DeviceNameChange(that) {
  128. $('#modal #name').val($(that).find('option:selected').text());
  129. $('#modal #deviceNo').val($(that).val());
  130. }
  131. </script>
  132. <!--格式化-->
  133. <script id="formatter-script" type="text/javascript">
  134. function ExDateFormatter(v, r, i, f) {
  135. return CheckDateFormatter(v, r, i, f, 3 * 30);
  136. }
  137. function MtDateFormatter(v, r, i, f) {
  138. return CheckDateFormatter(v, r, i, f, 10);
  139. }
  140. function CheckDateFormatter(v, r, i, f, day) {
  141. var value = DateFormatter(v, r, i, f);
  142. if (value <= new Date().format('yyyy-MM-dd')) {
  143. return '<span style="color:red" class="iwb-flash2">' + value + ' [已到期]</span>';
  144. }
  145. var date = new Date(new Date(new Date().getTime() + day * 1000 * 60 * 60 * 24)).format('yyyy-MM-dd');
  146. if (date >= value) {
  147. return '<span style="color:orange" class="iwb-flash">' + value + ' [即将到期]</span>';
  148. }
  149. return value;
  150. }
  151. function PlanTypeFormatter(v) {
  152. var name = $('#hid-planType option[value="' + v + '"]').text();
  153. switch (v) {
  154. case 1:
  155. return '<span class="label label-info">' + name + '</span>';
  156. case 2:
  157. return '<span class="label label-warning">' + name + '</span>';
  158. default:
  159. return '<span class="label label-danger">' + name + '</span>';
  160. }
  161. }
  162. function TypeFormatter(v) {
  163. var name = $('#hid-type option[value="' + v + '"]').text();
  164. switch (v) {
  165. case 0:
  166. return '<span class="label label-danger">' + name + '</span>';
  167. default:
  168. return '<span class="label label-info">' + name + '</span>';
  169. }
  170. }
  171. </script>
  172. }
  173. <section style="display: none">
  174. <select id="hid-type">
  175. <option value=""></option>
  176. </select>
  177. @Html.DropDownList("hid-planType", planType)
  178. </section>