InventoryCheckCreate.cshtml 28 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652
  1. @using System.Text
  2. @using Abp.Timing
  3. @using ShwasherSys.Authorization.Permissions
  4. @using ShwasherSys.BasicInfo
  5. @using ShwasherSys.Models.Layout
  6. @using ShwasherSys.Views.Shared.New.Modals
  7. @using ShwasherSys.Views.Shared.New.Table
  8. @{
  9. ViewBag.Title = "盘点任务维护";
  10. string activeMenu = PermissionNames.PagesInventoryCheckInfoInventoryCheckCreate; //The menu item will be active for this page.
  11. ViewBag.ActiveMenu = activeMenu;
  12. List<StoreHouse> storeHouseList = ViewBag.StoreHouseList;
  13. List<SelectListItem> checkStateList = ViewBag.CheckState;
  14. StringBuilder strOptionStoreHouse = new StringBuilder();
  15. strOptionStoreHouse.Append("<option value=\"\">请选择</option>");
  16. foreach (var c in storeHouseList)
  17. {
  18. strOptionStoreHouse.Append(string.Format("<option data-type="+c.StoreHouseTypeId+" value=\"{0}\">{1}</option>", c.Id, c.StoreHouseName));
  19. }
  20. string newCheckNo = "SC" + Clock.Now.ToString("yyMMddHHmmss");
  21. var searchForm = new SearchFormViewModal(new List<SearchItem>()
  22. {
  23. new SearchItem("checkNo","盘点编号"),
  24. new SearchItem("checkState","盘点状态",FiledType.I,ExpType.Equal).SetSearchItem(checkStateList),
  25. });
  26. var table = new TableViewModel("/api/services/app/InventoryCheck/GetAll", activeMenu, searchForm)
  27. .SetFields(new List<FieldItem>()
  28. {
  29. new FieldItem("actionExecute", "",formatter:"ActionExecuteFormatter"),
  30. new FieldItem("checkNo", "盘点编号"),
  31. new FieldItem("storeHouseId", "仓库",formatter:"StoreHouseFormatter"),
  32. new FieldItem("storeAreaCode", "区号"),
  33. new FieldItem("shelfNumber", "货架"),
  34. new FieldItem("shelfLevel", "层次"),
  35. new FieldItem("sequenceNo", "序列号"),
  36. new FieldItem("checkUserName", "待盘点人员"),
  37. new FieldItem("planStartDate", "计划执行时间","DateTimeFormatter"),
  38. new FieldItem("planEndDate", "计划完成时间","PlanEndDateFormatter"),
  39. new FieldItem("checkState", "盘点状态",formatter:"CheckStateFormatter"),
  40. });
  41. }
  42. @section css{
  43. <link href="~/Content/Plugins/bootstrap-datetimepicker/css/bootstrap-datetimepicker.min.css" rel="stylesheet" />
  44. <style>
  45. .form-box {
  46. min-height: 50px;
  47. }
  48. .form-box .input-group-addon {
  49. background: #d1dcf9;
  50. border-color: #d1dcf9;
  51. color: #563d7c;
  52. }
  53. .form-box .form-control {
  54. border-color: #d1dcf9;
  55. }
  56. .form-box .form-box-column {
  57. float: left;
  58. min-width: 250px;
  59. width: 16%;
  60. margin: 5px 5px;
  61. min-height: 32px;
  62. }
  63. .btn-action {
  64. margin-left: 20px;
  65. width: 100px;
  66. margin-top: 0px;
  67. }
  68. .select2-container .select2-selection--multiple {
  69. min-height: 22px;
  70. }
  71. </style>
  72. }
  73. <div class="row" style="margin: 0 0;">
  74. <div class="col-xs-12" style="padding: 0 5px;">
  75. <div class="nav-tabs-custom" style="margin-bottom: 5px;">
  76. <ul class="nav nav-tabs" id="tabIndex">
  77. <li class="active"><a href="#createInvoice_tab" data-toggle="tab">创建盘点</a></li>
  78. <li><a href="#query_tab" data-toggle="tab">查询信息页</a></li>
  79. </ul>
  80. <div class="tab-content form-box">
  81. <div class="tab-pane active" id="createInvoice_tab" style="width: 100%; ">
  82. <form id="formQuery">
  83. <div style="width: 100%; height:65px;margin: 1px 0 5px 0;">
  84. <div class="form-box-column">
  85. <div class="form-group-sm input-group">
  86. <div class="input-group-addon" style="">
  87. <span>仓库</span>
  88. </div>
  89. <select class="form-control selectFrom" Required id="storeHouseId" name="storeHouseId" placeholder="请输入..." value="" style="width: 100%;" type="text" onchange="RefreshHouseType(this)" autocomplete="off">
  90. @Html.Raw(strOptionStoreHouse)
  91. </select>
  92. </div>
  93. </div>
  94. <div class="form-box-column">
  95. <div class="form-group-sm input-group">
  96. <div class="input-group-addon">
  97. <span>库区</span>
  98. </div>
  99. @*<input type="text" class="form-control" id="storeAreaCode" name="storeAreaCode" />*@
  100. <select class="form-control selectFrom" id="storeAreaCode" name="storeAreaCode" onchange="RefreshArea(this)"></select>
  101. </div>
  102. </div>
  103. <div class="form-box-column">
  104. <div class="form-group-sm input-group">
  105. <div class="input-group-addon">
  106. <span>货架</span>
  107. </div>
  108. @*<input type="text" class="form-control" id="shelfNumber" name="shelfNumber" />*@
  109. <select class="form-control selectFrom" id="shelfNumber" name="shelfNumber" onchange="RefreshShelfNumber(this)"></select>
  110. </div>
  111. </div>
  112. <div class="form-box-column">
  113. <div class="form-group-sm input-group">
  114. <div class="input-group-addon">
  115. <span>层次</span>
  116. </div>
  117. @*<select class="form-control selectFrom" id="shelfLevel" name="shelfLevel" multiple="multiple"></select>*@
  118. <select class="form-control selectFrom" id="shelfLevel" name="shelfLevel" onchange="RefreshLevelNumber(this)"></select>
  119. </div>
  120. </div>
  121. <div class="form-box-column">
  122. <div class="form-group-sm input-group">
  123. <div class="input-group-addon">
  124. <span>序列号</span>
  125. </div>
  126. @*<input type="text" class="form-control" id="sequenceNo" name="sequenceNo" />*@
  127. <select class="form-control selectFrom" id="sequenceNo" name="sequenceNo"></select>
  128. </div>
  129. </div>
  130. <!--<div class="form-box-column" style="min-width: 300px;">
  131. <div class="form-group-sm input-group">
  132. <div class="input-group-addon">
  133. <span>产品编号</span>
  134. </div>
  135. <input type="text" class="form-control" id="productNo" name="productNo" autocomplete="off"/>
  136. <div class="input-group-addon" id="productId" >
  137. <i class="iconfont icon-search"></i>-->@*query_semiProduct_modal*@
  138. <!--</div>
  139. </div>
  140. </div>-->
  141. <div class="form-box-column" style="min-width: 100px; width: 100px;">
  142. <button type="button" class="btn btn-block btn-info btn-sm" onclick="QueryCurrentStore()"><i class="iconfont icon-search"></i><span style="font-size: 1.3rem;"><strong>查询预览</strong></span></button>
  143. </div>
  144. </div>
  145. <div style="width: 100%; height:45px;margin: 15px 0 5px 0; padding-top: 3px; border-top: 1px solid #d1dcf9; display: none;" id="createFrom" >
  146. <div class="form-box-column">
  147. <div class="form-group-sm input-group">
  148. <div class="input-group-addon">
  149. <span>盘点编号</span>
  150. </div>
  151. <input type="text" class="form-control" id="checkNo" name="checkNo" value="@newCheckNo" />
  152. </div>
  153. </div>
  154. <div class="form-box-column">
  155. <div class="form-group-sm input-group">
  156. <div class="input-group-addon">
  157. <span>计划执行日期</span>
  158. </div>
  159. <input type="text" class="form-control iwb-date-time" id="planStartDate" name="planStartDate" />
  160. </div>
  161. </div>
  162. <div class="form-box-column">
  163. <div class="form-group-sm input-group">
  164. <div class="input-group-addon">
  165. <span>计划完成日期</span>
  166. </div>
  167. <input type="text" class="form-control iwb-date-time" id="planEndDate" name="planEndDate" />
  168. </div>
  169. </div>
  170. <div class="form-box-column">
  171. <div class="form-group-sm input-group">
  172. <div class="input-group-addon">
  173. <span>盘点人员</span>
  174. </div>
  175. <input type="hidden" class="form-control" id="checkUser" name="checkUser" />
  176. <input type="text" class="form-control" id="checkUserName" name="checkUserName" disabled=""/>
  177. <div class="input-group-addon" onclick="ShowQueryModal('query_employee_modal','#formQuery');">
  178. <i class="iconfont icon-search"></i>
  179. </div>
  180. </div>
  181. </div>
  182. <div class="form-box-column">
  183. <button type="button" class="btn btn-block btn-info btn-sm" style="width: 160px;" onclick="CreateTask()"><i class="iconfont icon-add"></i><span style="font-size: 1.3rem;"><strong>创建盘点任务</strong></span></button>
  184. </div>
  185. </div>
  186. </form>
  187. <div class="table-box iwb-bootstrap-table">
  188. <table id="tableSendItem"
  189. data-striped="true" data-id-field="id" data-unique-id="id"
  190. data-method="post"
  191. data-side-pagination="server"
  192. data-content-type="application/x-www-form-urlencoded; charset=UTF-8"
  193. data-cache="false"
  194. data-pagination="true" data-page-size="30" data-page-number="1" data-page-list="[30,50,100,200]" data-pagination-detail-h-align="right" data-pagination-h-align="left"
  195. data-query-params="QueryParams"
  196. data-response-handler="ResponseHandler"
  197. data-click-to-select="true"
  198. data-single-select="true">
  199. <thead>
  200. <tr class="row" id="header">
  201. @*<th data-field="state" data-checkbox="false"></th>*@
  202. <th data-align="center" data-field="productionOrderNo">排产单号</th>
  203. <th data-align="center" data-field="storeHouse" data-formatter="StoreHouseFormatter">仓库</th>
  204. <th data-align="center" data-field="storeLocationNo">库位 </th>
  205. @*<th data-align="center" data-field="customerId">客户编号</th>*@
  206. <th data-align="center" data-field="productNo">产品编号</th>
  207. <th data-align="center" data-field="productDesc">产品描述</th>
  208. @*<th data-align="center" data-field="partNo">零件号</th>*@
  209. <th data-align="center" data-field="productName">产品名称</th>
  210. <th data-align="center" data-field="model">规格</th>
  211. <th data-align="center" data-field="surfaceColor">表色</th>
  212. <th data-align="center" data-field="rigidity">硬度</th>
  213. <th data-align="center" data-field="quantity">数量</th>
  214. <th data-align="center" data-field="freezeQuantity">冻结数量</th>
  215. @*<th data-align="center" data-field="orderDate">订单日期</th>
  216. <th data-align="center" data-field="sendDate">送货日期</th>
  217. <th data-align="center" data-field="linkName">联系人</th>*@
  218. </tr>
  219. </thead>
  220. </table>
  221. </div>
  222. </div>
  223. <div class="tab-pane" id="query_tab" style="width: 100%;">
  224. @Html.Partial("New/Table/_Table", table)
  225. </div>
  226. </div>
  227. </div>
  228. </div>
  229. </div>
  230. @section modal{
  231. <!--Main Modal-->
  232. @{
  233. var modal = new ModalViewModel("人员", new ModalBodyViewModel(new List<Input>()
  234. {
  235. new InputHide("id"),
  236. new Input("checkNo", "盘点编号"),
  237. new Input("planStartDate", "计划执行日期",@class:"iwb-date-time").SetNotRequired(),
  238. new Input("planEndDate", "计划完成日期",@class:"iwb-date-time").SetNotRequired(),
  239. }));
  240. // var accountModal = new ModalViewModel("绑定账号", new ModalBodyViewModel(new List<Input>()
  241. //{
  242. // new InputHide("id"),
  243. // new Input("userName", "登陆账号",InputTypes.List),
  244. // }), "Account_Modal");
  245. }
  246. @Html.Partial("New/Modals/_Modal", modal)
  247. @*@Html.Partial("New/Modals/_Modal", accountModal)*@
  248. <section>
  249. @Html.Partial("Modals/Query/_Product", "productNo")
  250. @Html.Partial("Modals/Query/_SemiProduct", "productNo")
  251. @Html.Partial("Modals/Query/_Employee", "checkUser,checkUserName")
  252. </section>
  253. }
  254. @section scripts
  255. {
  256. <script type="text/javascript">
  257. var $table = $('#table');
  258. $(function() {
  259. $(".selectFrom").select2();
  260. LoadTable();
  261. var funs = window.funs || { none: function() { console.log("No type"); } };
  262. //funs["btnCreate"] = function () { BtnCreate({ data: { id: "" } }); }
  263. funs["btnUpdate"] = function(url) {
  264. var row = $table.bootstrapTable("getSelections")[0];
  265. if (row) {
  266. OpenModal({
  267. url: url,
  268. data: row,
  269. disabled: "checkNo"
  270. });
  271. }
  272. };
  273. funs["btnShow"] = function() {
  274. var row = $table.bootstrapTable("getSelections")[0];
  275. @*window.open("@Url.Action("InvoiceDetail","InvoiceInfo")/" + row.id, "_blank");*@
  276. }
  277. $("#tableSendItem").hide();
  278. });
  279. function RefreshHouseType(that) {
  280. $("#productId").off('click.aa');
  281. var storeHouseId = $(that).val();
  282. var ty = $(that).find("option:selected").data('type');
  283. $("#storeAreaCode").empty();
  284. $("#shelfNumber").empty();
  285. $("#shelfLevel").empty();
  286. // $("#productNo").val('');
  287. $("#sequenceNo").empty();
  288. if (!storeHouseId) {
  289. return;
  290. }
  291. if (ty === 1) {
  292. $("#productId").off('click.aa').on('click.aa',
  293. function() { ShowQueryModal('query_Product_modal', '#formQuery') });
  294. } else {
  295. $("#productId").off('click.aa').on('click.aa',
  296. function() { ShowQueryModal('query_semiProduct_modal', '#formQuery') });
  297. }
  298. SaveAjax({
  299. url: window.appUrl + 'Common/FilterLocationInfo?storeId=' + storeHouseId,
  300. isValidate: false,
  301. isAlert: false,
  302. success: function(res) {
  303. if (res) {
  304. var str = '';
  305. res.forEach(function(v, i) {
  306. str += '<option value="' + v.value + '">' + v.value + '</option>';
  307. });
  308. $("#storeAreaCode").append(str);
  309. $("#storeAreaCode").trigger('change');
  310. }
  311. }
  312. });
  313. }
  314. function RefreshArea(that) {
  315. var storeId = $("#storeHouseId").val();
  316. var areaNo = $(that).val();
  317. $("#shelfNumber").empty();
  318. $("#shelfLevel").empty();
  319. $("#sequenceNo").empty();
  320. if (!storeId || !areaNo) {
  321. return;
  322. }
  323. SaveAjax({
  324. url: window.appUrl + 'Common/FilterLocationInfo?storeId=' + storeId + '&areaNo=' + areaNo,
  325. isValidate: false,
  326. isAlert: false,
  327. success: function(res) {
  328. if (res) {
  329. var str = '';
  330. res.forEach(function(v, i) {
  331. str += '<option value="' + v.value + '">' + v.value + '</option>';
  332. });
  333. $("#shelfNumber").append(str);
  334. $("#shelfNumber").trigger('change');
  335. }
  336. }
  337. });
  338. }
  339. function RefreshShelfNumber(that) {
  340. var storeId = $("#storeHouseId").val();
  341. var areaNo = $("#storeAreaCode").val();
  342. var shelfNum = $("#shelfNumber").val();
  343. $("#shelfLevel").empty();
  344. $("#sequenceNo").empty();
  345. if (!storeId || !areaNo || !shelfNum) {
  346. return;
  347. }
  348. SaveAjax({
  349. url: window.appUrl +
  350. 'Common/FilterLocationInfo?storeId=' +
  351. storeId +
  352. '&areaNo=' +
  353. areaNo +
  354. '&shelfNo=' +
  355. shelfNum,
  356. isValidate: false,
  357. isAlert: false,
  358. success: function(res) {
  359. if (res) {
  360. var str = '';
  361. res.forEach(function(v, i) {
  362. str += '<option value="' + v.value + '">' + v.value + '</option>';
  363. });
  364. $("#shelfLevel").append(str);
  365. $("#shelfLevel").trigger('change');
  366. }
  367. }
  368. });
  369. }
  370. function RefreshLevelNumber(that) {
  371. var storeId = $("#storeHouseId").val();
  372. var areaNo = $("#storeAreaCode").val();
  373. var shelfNum = $("#shelfNumber").val();
  374. var shelfLevel = $("#shelfLevel").val();
  375. $("#sequenceNo").empty();
  376. if (!storeId || !areaNo || !shelfNum || !shelfLevel) {
  377. return;
  378. }
  379. SaveAjax({
  380. url: window.appUrl +
  381. 'Common/FilterLocationInfo?storeId=' +
  382. storeId +
  383. '&areaNo=' +
  384. areaNo +
  385. '&shelfNo=' +
  386. shelfNum +
  387. '&levelNo=' +
  388. shelfLevel,
  389. isValidate: false,
  390. isAlert: false,
  391. success: function (res) {
  392. if (res) {
  393. var str = '';
  394. res.forEach(function (v, i) {
  395. str += '<option value="' + v.value + '">' + v.value + '</option>';
  396. });
  397. $("#sequenceNo").append(str);
  398. }
  399. }
  400. });
  401. }
  402. function QueryCurrentStore() {
  403. var storeHouseId = $("#storeHouseId").val();
  404. var storeAreaCode = $("#storeAreaCode").val();
  405. var shelfNumber = $("#shelfNumber").val(); //shelfLevel sequenceNo productNo
  406. if (storeHouseId && storeAreaCode && shelfNumber) {
  407. $("#tableSendItem").show();
  408. $("#createFrom").fadeIn();
  409. $("#checkNo").val('SC' + (new Date()).Format("yyMMddhhmmss"));
  410. } else {
  411. $("#tableSendItem").hide();
  412. $("#createFrom").fadeOut();
  413. $("#checkNo").val('SC' + (new Date()).Format("yyMMddhhmmss"));
  414. abp.message.warn('盘点请精确到货架!');
  415. return;
  416. }
  417. var shelfLevel = $("#shelfLevel").val();
  418. var sequenceNo = $("#sequenceNo").val();
  419. //var productNo = $("#productNo").val();
  420. //if (shelfLevel) {
  421. // shelfLevel = shelfLevel.join(',');
  422. //}
  423. //if (sequenceNo) {
  424. // sequenceNo = sequenceNo.join(',');
  425. //}
  426. var searchObj = [
  427. { KeyField: 'storeHouseId', KeyWords: storeHouseId, FieldType: '1', ExpType: '0' },
  428. { KeyField: 'storeAreaCode', KeyWords: storeAreaCode, FieldType: '0', ExpType: '0' },
  429. { KeyField: 'shelfNumber', KeyWords: shelfNumber, FieldType: '0', ExpType: '6' },
  430. { KeyField: 'shelfLevel', KeyWords: shelfLevel, FieldType: '0', ExpType: '6' },
  431. { KeyField: 'sequenceNo', KeyWords: sequenceNo, FieldType: '0', ExpType: '0' },
  432. //{ KeyField: 'productNo', KeyWords: productNo, FieldType: '0', ExpType: '0' }
  433. ];
  434. $("#tableSendItem").bootstrapTable("destroy");
  435. $("#tableSendItem").bootstrapTable({
  436. url: window.appUrl + 'InventoryCheck/QueryCheckStoreItems',
  437. queryParams: function(params) {
  438. var sorting = '';
  439. if (params.sort) {
  440. sorting = params.sort;
  441. if (params.order) {
  442. sorting += ' ' + params.order;
  443. }
  444. }
  445. return {
  446. //limit: params.limit, //页面大小
  447. //page: (params.offset / params.limit) + 1, //页码
  448. MaxResultCount: params.limit,
  449. SkipCount: params.offset,
  450. Sorting: sorting, //排序列名
  451. sortOrder: params.order, //排位命令(desc,asc)
  452. SearchList: searchObj
  453. };
  454. },
  455. onPostBody: OnPostBody,
  456. onAll: function() {
  457. $("#createInvoice_tab .btn-action").prop('disabled',
  458. !$("#tableSendItem").bootstrapTable('getSelections').length);
  459. },
  460. onLoadSuccess: OnLoadSuccess
  461. });
  462. }
  463. function CreateTask() {
  464. var storeHouseId = $("#storeHouseId").val();
  465. var storeAreaCode = $("#storeAreaCode").val();
  466. var shelfNumber = $("#shelfNumber").val(); //shelfLevel sequenceNo productNo
  467. if (storeHouseId && storeAreaCode && shelfNumber) {
  468. $("#tableSendItem").show();
  469. $("#createFrom").fadeIn();
  470. } else {
  471. $("#tableSendItem").hide();
  472. $("#createFrom").fadeOut();
  473. $("#checkNo").val('SC' + (new Date()).Format("yyMMddhhmmss"));
  474. abp.message.warn('盘点请精确到货架!');
  475. return;
  476. }
  477. var start = $("#planStartDate").val();
  478. var end = $("#planEndDate").val();
  479. var checkNo = $("#checkNo").val();
  480. var checkUser = $("#checkUser").val();
  481. if (!start || !end || !checkNo || !checkUser) {
  482. abp.message.warn('请填写有效的盘点编码|开始结束日期|待盘点人员!');
  483. return;
  484. }
  485. var d = $.formSerialize($("#formQuery"));
  486. console.log('d', d);
  487. var shelfLevel = $("#shelfLevel").val();
  488. //if (shelfLevel) {
  489. // shelfLevel = shelfLevel.join(',');
  490. //}
  491. d.shelfLevel = shelfLevel;
  492. d.sequenceNo = $("#sequenceNo").val();
  493. SaveAjax({
  494. url: window.appUrl + "InventoryCheck/Create",
  495. data: d,
  496. dataType: "json",
  497. isValidate: false,
  498. isAlert: false,
  499. success: function(res) {
  500. //QueryOrderSend(customerId);
  501. @*abp.message.success("创建成功!").done(function() {
  502. window.open("@Url.Action("OrderSendBillDetail")/" + res.id, "_blank");
  503. });*@
  504. $('#tabIndex li:eq(1) a').tab('show');
  505. RefreshTable();
  506. }
  507. });
  508. }
  509. </script>
  510. <!--格式化-->
  511. <script id="formatter-script" type="text/javascript">
  512. function StoreHouseFormatter(v, r) {
  513. var name = $('#hid-storeHouse option[value="' + r.storeHouseId + '"]').text();
  514. if (name) {
  515. return '<span class="label label-info">' + name + '</span>';
  516. }
  517. return '';
  518. }
  519. function CheckStateFormatter(v) {
  520. var name = $('#hid-checkState option[value="' + v + '"]').text();
  521. switch (v) {
  522. case 1:
  523. return '<span class="label label-info">' + name + '</span>';
  524. case 2:
  525. return '<span class="label label-danger">' + name + '</span>';
  526. default:
  527. return '<span class="label label-info">' + name + '</span>';
  528. }
  529. }
  530. function ActionExecuteFormatter(v, r) {
  531. var str;
  532. if (r.checkState === 1) {
  533. str = '<span class="table-action" onclick="f_cancel(\'' +
  534. r.id +
  535. '\',4)"><i class="iconfont icon-right"></i>取消</span>';
  536. } else {
  537. str = '<span class="table-action">暂无操作</span>';
  538. }
  539. str += '<span class="table-action" onclick="f_showRecord(\'' +
  540. r.id +
  541. '\',\'' +
  542. r.storeHouseId +
  543. '\')"><i class="iconfont icon-right"></i>盘点详情</span>';
  544. str += '<span class="table-action" onclick="f_exportRecord(\'' +
  545. r.checkNo +
  546. '\',\'' +
  547. r.storeHouseId +
  548. '\')"><i class="iconfont icon-right"></i>导出任务</span>';
  549. return str;
  550. }
  551. function f_cancel(id, state) {
  552. SaveAjax({
  553. url: window.appUrl + "InventoryCheck/ChangeState",
  554. data: { Id: id, CheckState: state },
  555. dataType: "json",
  556. isValidate: false,
  557. isAlert: false,
  558. success: function(res) {
  559. RefreshTable();
  560. }
  561. });
  562. }
  563. function f_showRecord(id, storeHouseId) {
  564. if (storeHouseId === '1') {
  565. window.open("@Url.Action("InventoryCheckRecord")/" + id, "_blank");
  566. } else {
  567. window.open("@Url.Action("InventoryCheckRecordSemi")/" + id, "_blank");
  568. }
  569. }
  570. function f_exportRecord(checkNo, storeHouseId) {
  571. abp.ajax({
  572. url: window.appUrl + "InventoryCheck/ExportRecord",
  573. async: true,
  574. data: { checkNo: checkNo, storeHouseId: storeHouseId },
  575. type: "Post",
  576. //contentType: 'application/json',
  577. contentType: 'application/x-www-form-urlencoded',
  578. isValidate: false,
  579. dataType: "json",
  580. success: function (res) {
  581. window.location.href = "/" + res;
  582. }
  583. });
  584. }
  585. function PlanEndDateFormatter(v, r, i, f) {
  586. var value = DateDiffBeforeToAfter(v);
  587. v = DateTimeFormatter(v, r, i, f);
  588. if (value > 0) {
  589. return '<span style="color:red">'+v+'</span>';
  590. }
  591. return '<span class="text-default">'+v+'</span>';
  592. }
  593. </script>
  594. }
  595. <section style="display: none">
  596. <select id="hid-storeHouse">
  597. @Html.Raw(strOptionStoreHouse)
  598. </select>
  599. @*@Html.DropDownList("hid-du", duty)
  600. @Html.DropDownList("hid-de", depart)
  601. @Html.DropDownList("hid-gender", gender)*@
  602. @Html.DropDownList("hid-checkState", checkStateList)
  603. </section>