ToBePackageInfo.cshtml 9.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253
  1. @using ShwasherSys.Authorization.Permissions
  2. @using ShwasherSys.Models.Layout
  3. @using ShwasherSys.Models.Modal
  4. @{
  5. /**/
  6. ViewBag.ActiveMenu = PermissionNames.PagesPackInfoToBePackageInfoMg; //The menu item will be active for this page.
  7. ViewBag.Title = "产品待包装信息";
  8. string employee = ViewBag.Employee;
  9. List<SelectListItem> productApplyStatus = ViewBag.ProductApplyStatus;
  10. List<SelectListItem> applyStatus = ViewBag.ApplyStatus;
  11. List<SelectListItem> closeStatus = new List<SelectListItem>()
  12. {
  13. new SelectListItem(){Text = @"未关闭",Value = "false",Selected = true},
  14. new SelectListItem(){Text = @"已关闭",Value = "true"}
  15. };
  16. var searchForm = new SearchFormViewModal(new List<SearchItem>()
  17. {
  18. new SearchItem("productionOrderNo","排产单号"),
  19. new SearchItem("productName","产品名称"),
  20. new SearchItem("model","规格"),
  21. new SearchItem("material","材质"),
  22. new SearchItem("applyDate", "申请日期",FiledType.Dnull,ExpType.GreaterOrEqual),
  23. new SearchItem("applyDate", "到",FiledType.Dnull,ExpType.LessOrEqual),
  24. new SearchItem("semiProductNo","半成品编码").SetSearchIcon("query_semiProduct_modal"),
  25. new SearchItem("applyStatus","申请状态" )
  26. .SetSearchItem(applyStatus),
  27. new SearchItem("isClose","关闭状态" ,FiledType.B,ExpType.Equal)
  28. .SetSearchItem(closeStatus),
  29. }, false);
  30. }
  31. @section css{
  32. <link href="~/Content/Plugins/bootstrap-datetimepicker/css/bootstrap-datetimepicker.min.css" rel="stylesheet" />
  33. }
  34. <section style="display: none">
  35. @Html.DropDownList("hide-ApplyStatus", applyStatus)
  36. @Html.DropDownList("hide-ProductApplyStatus", productApplyStatus)
  37. </section>
  38. <style>
  39. .tool-radio {
  40. display: inline-block;
  41. margin-left: 10px;
  42. }
  43. [type="radio"]:not(:checked) + label, [type="radio"]:checked + label {
  44. padding-left: 25px;
  45. font-size: 1.5rem;
  46. color: #dad9db;
  47. }
  48. .package-unit {
  49. border: 1px solid #583d9c;
  50. border-radius: 3px;
  51. padding: 10px 0 0;
  52. display: table;
  53. width: 96%;
  54. margin-left: 2%;
  55. }
  56. .package-unit:not(:last-of-type) {
  57. margin-bottom: 5px;
  58. }
  59. .package-unit .form-group-sm > div {
  60. margin-bottom: 10px;
  61. }
  62. #showZoreCheckBox + label::before, #showZoreCheckBox:not(.filled-in) + label::after {
  63. top: -10px;
  64. left: -5px;
  65. width: 18px;
  66. height: 18px;
  67. }
  68. #showZoreCheckBox:checked + label::before {
  69. top: -10px;
  70. left: -8px;
  71. width: 11px;
  72. height: 15px;
  73. border-top: 2px solid transparent;
  74. border-left: 2px solid transparent;
  75. border-right: 2px solid #26a69a;
  76. border-bottom: 2px solid #26a69a;
  77. transform: rotate(40deg);
  78. -webkit-backface-visibility: hidden;
  79. backface-visibility: hidden;
  80. -webkit-transform-origin: 100% 100%;
  81. transform-origin: 100% 100%;
  82. }
  83. </style>
  84. <div class="table-box iwb-bootstrap-table">
  85. @Html.Action("ToolMenu", "Layout", new { pageName = ViewBag.ActiveMenu, searchForm })
  86. <table id="table"
  87. data-url="/api/services/app/PackInfoApply/GetAll" data-id-field="id" data-unique-id="id"
  88. data-striped="true" data-click-to-select="true" data-single-select="true"
  89. data-method="post" data-side-pagination="server" data-content-type="application/x-www-form-urlencoded; charset=UTF-8"
  90. data-cache="false" data-pagination="true" data-page-size="30" data-page-number="1" data-page-list="[30,50,100,200]"
  91. data-pagination-h-align="left" data-pagination-detail-h-align="right"
  92. data-query-params="QueryParams" data-response-handler="ResponseHandler">
  93. <thead>
  94. <tr class="row" id="header">
  95. <th data-field="state" data-checkbox="true"></th>
  96. <th data-align="center" data-field="processingNum" data-formatter="ProcessingNumFormatter">待处理明细</th>
  97. <th data-align="center" data-field="productionOrderNo">流转单编号</th>
  98. <th data-align="center" data-field="" data-formatter="PackageProductNoFormatter">包装前产品编码</th>
  99. <th data-align="center" data-field="applyQuantity">申请包装数量</th>
  100. <th data-align="center" data-field="remainApplyQuantity" data-formatter="RemainApplyQuantityFormatter">待包装数量</th>
  101. <th data-align="center" data-field="surfaceColor">表色</th>
  102. <th data-align="center" data-field="productName">产品名称</th>
  103. <th data-align="center" data-field="model">规格</th>
  104. <th data-align="center" data-field="material">材质</th>
  105. <th data-align="center" data-field="rigidity">硬度</th>
  106. <th data-align="center" data-field="partNo">零件号</th>
  107. <th data-align="center" data-field="remark">备注</th>
  108. <th data-align="center" data-field="applyDate" data-formatter="DateFormatter">申请时间</th>
  109. <th data-align="center" data-field="applyStatus" data-formatter="ApplyStatusFormatter">申请状态</th>
  110. </tr>
  111. </thead>
  112. </table>
  113. </div>
  114. @section modal{
  115. <!--Main Modal-->
  116. @Html.Partial("Modals/Query/_SemiProduct", "KeyWords-6")
  117. @Html.Partial("Modals/Query/_Product", "productNo,productName")
  118. }
  119. @section scripts
  120. {
  121. <script src="~/Content/Plugins/bootstrap-datetimepicker/js/bootstrap-datetimepicker.min.js"></script>
  122. <script src="~/Content/Plugins/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.zh-CN.js"></script>
  123. <script type="text/javascript">
  124. $(function () {
  125. $("#KeyWords-9").val("false").select2();
  126. $("#Tool1").append(
  127. '<div class="tool-radio"><input name="packType" type="radio" id="sProduct" checked value="1"/><label for="sProduct">半成品包装</label></div>' +
  128. '<div class="tool-radio"><input name="packType" type="radio" id="fProduct" value="2"/><label for="fProduct">成品包装</label></div>');
  129. $(".tool-radio input[type='radio']").on('click',
  130. function (e) {
  131. //document.getElementById("SearchForm").reset();
  132. GetSearchList();
  133. RefreshTable();
  134. //$("#table").bootstrapTable('resetView', { height: 800 });
  135. });
  136. GetSearchList();
  137. LoadTable();
  138. });
  139. function GetSearchList() {
  140. var count = $("#SearchForm").find(".KeyWords").length;
  141. window._searchList = [];
  142. var packType = $('input[name="packType"]:checked').val();
  143. if (packType) {
  144. window._searchList.push({ KeyWords: packType, KeyField: "PackType", FieldType: "1", ExpType: "0" });
  145. window._searchList.push({ KeyWords: 0, KeyField: "RemainApplyQuantity", FieldType: "7", ExpType: "2" });
  146. }
  147. for (var i = 1; i <= count; i++) {
  148. var keyWords = $("#KeyWords-" + i).val();
  149. if (keyWords) {
  150. var keyField = $("#KeyField-" + i).val();
  151. var fieldType = $("#FieldType-" + i).val();
  152. var expType = $("#ExpType-" + i).val();
  153. window._searchList.push({
  154. KeyWords: keyWords,
  155. KeyField: keyField,
  156. FieldType: fieldType,
  157. ExpType: expType
  158. });
  159. }
  160. }
  161. }
  162. </script>
  163. <script>
  164. function PackageProductNoFormatter(v, r) {
  165. var packType = $('input[name="packType"]:checked').val();
  166. if (packType === "1") {
  167. return '<span class="label label-info">' + r.semiProductNo + '</span>';
  168. } else {
  169. return '<span class="label label-danger">' + r.productNo + '</span>';
  170. }
  171. }
  172. function ProcessingNumFormatter(v, r) {
  173. if (v === 0) {
  174. //return '<span class="label label-info">' + v+ '</span>';
  175. return '';
  176. } else {
  177. return '<span class="label label-danger">待处理:' + v + '</span>';
  178. }
  179. }
  180. function ApplyStatusFormatter(v, r) {
  181. if (r.isClose) {
  182. return '<span class="label label-primary">已结束</span>';
  183. }
  184. var name = $("#hide-ApplyStatus option[value='" + v + "']").text();
  185. if (v === "1") {
  186. return '<span class="label label-info">' + name + '</span>';
  187. } else if (v === "2") {
  188. return '<span class="label label-success">' + name + '</span>';
  189. } else if (v === "3") {
  190. return '<span class="label label-danger">' + name + '</span>';
  191. }
  192. return '<span class="label label-info">' + name + '</span>';
  193. }
  194. function ProductApplyStatusFormatter(v, r) {
  195. if (r.isClose) {
  196. return '<span class="label label-primary">已结束</span>';
  197. }
  198. var name = $("#hide-ProductApplyStatus option[value='" + v + "']").text();
  199. if (v === 1) {
  200. return '<span class="label label-info">' + name + '</span>';
  201. } else if (v === 2) {
  202. return '<span class="label label-success">' + name + '</span>';
  203. } else if (v === 3) {
  204. return '<span class="label label-warning">' + name + '</span>';
  205. } else if (v === 4) {
  206. return '<span class="label label-danger">' + name + '</span>';
  207. } else if (v === 5) {
  208. return '<span class="label label-info">' + name + '</span>';
  209. }
  210. return '<span class="label label-info">' + name + '</span>';
  211. }
  212. function RemainApplyQuantityFormatter(v, r) {
  213. if (v > 0) {
  214. return '<span class="label label-danger" style="font-size:13px;">' + v + '</span>'
  215. }
  216. }
  217. </script>
  218. }