material_godownentry.html 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>原料入库管理</title>
  6. <meta name="renderer" content="webkit">
  7. <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
  8. <meta name="viewport"
  9. content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
  10. <link rel="stylesheet" href="../../layuiadmin/layui/css/layui.css" media="all">
  11. <link rel="stylesheet" href="../../layuiadmin/style/admin.css" media="all">
  12. <style type="text/css">
  13. .LAY-btns .layui-nav {padding-left:0;padding-right:10px;top:-4px;margin: 0 10px;border: 0;background-color: #009688;}
  14. .LAY-btns .layui-nav .layui-nav-item{line-height: 30px;}
  15. .LAY-btns .layui-nav .layui-nav-child{top:34px;}
  16. .LAY-btns .layui-nav .layui-nav-bar{display: none;}
  17. .LAY-btns .layui-nav .layui-nav-child dd.layui-this a{color:#333;background-color:#fff;}
  18. .LAY-btns .layui-nav .layui-nav-child dd.layui-this a:hover {background-color: #f2f2f2;color: #000;}
  19. </style>
  20. </head>
  21. <body>
  22. <div class="layui-fluid">
  23. <div class="layui-card">
  24. <div class="layui-card-body" pad15>
  25. <div class="layui-row">
  26. <div class="LAY-btns" style="margin-bottom: 10px;">
  27. <button class="layui-btn layui-btn-sm" data-permission="purchase.add_material_godown_entry" id="btn_add"><i class="layui-icon layui-icon-add-1"></i>添加</button>
  28. <button class="layui-nav" data-permission="purchase.export_material_godown_entry">
  29. <div class="layui-nav-item">
  30. <a href="javascript:;" style="color:#fff;">导出</a>
  31. <dl class="layui-nav-child"> <!-- 二级菜单 -->
  32. <dd><a href="#" id="btn_export">导出列表</a></dd>
  33. <dd><a href="#" id="btn_export_detail">导出明细</a></dd>
  34. </dl>
  35. </div>
  36. </button>
  37. <button class="layui-nav" data-permission="purchase.import_material_godown_entry">
  38. <div class="layui-nav-item">
  39. <a href="javascript:;" style="color:#fff;">导入</a>
  40. <dl class="layui-nav-child"> <!-- 二级菜单 -->
  41. <dd><a href="#" id="btn_import">执行导入</a></dd>
  42. <dd><a href="#" id="btn_download">下载模板</a></dd>
  43. </dl>
  44. </div>
  45. </button>
  46. <button class="layui-btn layui-btn-sm" id="btn_print" data-permission="purchase.print_material_godown_entry"><i class="layui-icon layui-icon-form"></i>打印</button>
  47. <button class="layui-btn layui-btn-sm" id="btn_query"><i class="layui-icon layui-icon-search"></i>查询</button>
  48. </div>
  49. <table class="layui-hide" id="datagrid" lay-filter="datagrid-operate"></table>
  50. <script type="text/html" id="datagrid-operate-bar">
  51. <div class="layui-btn-group">
  52. <a class="layui-btn layui-btn-xs" lay-event="detail">查看</a>
  53. {{# if(d.status == 0){ }}
  54. <a class="layui-btn layui-btn-xs" lay-event="edit" data-permission="purchase.add_material_godown_entry">修改</a>
  55. <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del" data-permission="purchase.delete_material_godown_entry">删除</a>
  56. <a class="layui-btn layui-btn-xs" lay-event="check" data-permission="purchase.check_material_godown_entry">审核</a>
  57. {{# } }}
  58. {{# if(d.status == 1){ }}
  59. <a class="layui-btn layui-btn-xs" lay-event="senior_edit" data-permission="purchase.edit_material_godown_entry">高级修改</a>
  60. {{# } }}
  61. </div>
  62. </script>
  63. </div>
  64. </div>
  65. </div>
  66. </div>
  67. <div id="dlg_query" style="display: none">
  68. <div class="layui-card-body" pad15>
  69. <form class="layui-form" lay-filter="query-form-element">
  70. <div class="layui-row layui-col-space10 layui-form-item">
  71. <div class="layui-col-xs12 layui-col-sm12">
  72. <label class="layui-form-label">创建时间:</label>
  73. <div class="layui-input-block">
  74. <input type="text" class="layui-input" autocomplete="off" name="create_time" id="create_time" placeholder=" - ">
  75. </div>
  76. </div>
  77. <div class="layui-col-xs12 layui-col-sm12">
  78. <label class="layui-form-label">审核时间:</label>
  79. <div class="layui-input-block">
  80. <input type="text" class="layui-input" autocomplete="off" name="check_time" id="check_time" placeholder=" - ">
  81. </div>
  82. </div>
  83. <div class="layui-col-xs12 layui-col-sm12">
  84. <label class="layui-form-label">审核状态:</label>
  85. <div class="layui-input-block">
  86. <select id="id_status" name="status">
  87. <option value="">全部</option>
  88. <option value="0">待审核</option>
  89. <option value="1">已审核</option>
  90. </select>
  91. </div>
  92. </div>
  93. <div class="layui-col-xs12 layui-col-sm12">
  94. <label class="layui-form-label">入库单号:</label>
  95. <div class="layui-input-block">
  96. <input type="text" name="no" class="layui-input">
  97. </div>
  98. </div>
  99. <div class="layui-col-xs12 layui-col-sm12">
  100. <label class="layui-form-label">合同号:</label>
  101. <div class="layui-input-block">
  102. <input type="text" name="purchase_order_no" class="layui-input" autocomplete="off">
  103. </div>
  104. </div>
  105. <div class="layui-col-xs12 layui-col-sm12">
  106. <label class="layui-form-label">供应商:</label>
  107. <div class="layui-input-block">
  108. <input type="text" name="supplier_text" class="layui-input">
  109. </div>
  110. </div>
  111. <div class="layui-col-xs12 layui-col-sm12">
  112. <label class="layui-form-label">创建人:</label>
  113. <div class="layui-input-block">
  114. <input type="text" name="create_user_text" class="layui-input">
  115. </div>
  116. </div>
  117. <div class="layui-col-xs12 layui-col-sm12">
  118. <label class="layui-form-label">产品备注:</label>
  119. <div class="layui-input-block">
  120. <input type="text" name="product_notes" autocomplete="off" class="layui-input">
  121. </div>
  122. </div>
  123. </div>
  124. <div style="display: none" >
  125. <button id="query-submit" lay-submit lay-filter="query-form-element">查询</button>
  126. </div>
  127. </form>
  128. </div>
  129. </div>
  130. <script src="../../layuiadmin/layui/layui.js?t=1"></script>
  131. <script>
  132. var _params = '';
  133. layui.config({
  134. base: '../../../layuiadmin/' //静态资源所在路径
  135. }).extend({
  136. index: 'lib/index', //主入口模块
  137. utils: 'utils'
  138. }).use(['index', 'table', 'laydate', 'form', 'utils'], function () {
  139. var $ = layui.$;
  140. var table = layui.table
  141. , form = layui.form
  142. , utils = layui.utils
  143. ,laydate = layui.laydate;
  144. var is_has = utils.isHasPermissions('material.view_material_cost');
  145. var cols = [];
  146. cols.push({type: 'checkbox', width: 50});
  147. cols.push({field: 'no', title: '入库单号', width: 140});
  148. cols.push({field: 'supplier_text', title: '供应商', width: 145});
  149. cols.push({field: 'total_count', align:'right', title: '合计数量', width: 100});
  150. if (is_has) {
  151. cols.push({field: 'total_amount', align:'right', title: '合计金额', width: 100});
  152. cols.push({field: 'total_invoice_amount', align:'right', title: '合计发票金额', width: 120});
  153. }
  154. cols.push({field: 'warehouse_text', align:'right', title: '仓别', width: 100});
  155. cols.push({field: 'purchase_order_no', align:'right', title: '合同号', width: 150});
  156. cols.push({field: 'create_time', title: '创建时间', width: 150});
  157. cols.push({field: 'create_user_text', title: '创建人', width: 150});
  158. cols.push({field: 'status_text', title: '审核状态', width: 100});
  159. cols.push({field: 'check_time', title: '审核时间', width: 150});
  160. cols.push({field: 'check_user_text', title: '审核人', width: 100});
  161. cols.push({field: 'notes', title: '备注', minWidth: 200});
  162. cols.push({width: 170, align: 'left', fixed: 'right', toolbar: '#datagrid-operate-bar'});
  163. table.render({
  164. elem: '#datagrid'
  165. , url: '/purchase/godownentry/data/?type=0'
  166. , cols: [cols]
  167. , page: true
  168. , height: 'full-104'
  169. , totalRow: true
  170. ,parseData:function(res) {
  171. var cols = this.cols[0];
  172. for (var i in cols) {
  173. if (cols[i].field == 'total_count') {
  174. cols[i].totalRowText = res.more.total_count;
  175. }
  176. if (cols[i].field == 'total_amount') {
  177. cols[i].totalRowText = res.more.total_amount;
  178. }
  179. }
  180. return {
  181. "code": res.code, //解析接口状态
  182. "count": res.count, //解析数据长度
  183. "data": res.data //解析数据列表
  184. };
  185. }
  186. , done: function () {
  187. layui.index.removeNoPermButtons()
  188. }
  189. });
  190. //监听工具条
  191. table.on('tool(datagrid-operate)', function (obj) {
  192. var data = obj.data;
  193. if (obj.event === 'del') {
  194. if (data.status === "1"){
  195. layer.msg('入库单已审核,无法删除!');
  196. return;
  197. }
  198. layer.confirm('确定要删除吗?', function (index) {
  199. layer.close(index);
  200. layui.admin.req({
  201. url: '/purchase/godownentry/delete/?id=' + data.id
  202. , done: function (res) {
  203. table.reload('datagrid', {});
  204. }
  205. });
  206. });
  207. } else if (obj.event === 'edit') {
  208. table.editdata = data;
  209. if (data.status === "1"){
  210. layer.msg('入库单已审核,无法修改!');
  211. return;
  212. }
  213. layer.open({
  214. type: 2,
  215. title: '修改',
  216. shadeClose: false,
  217. area: ['90%', '90%'],
  218. btn: ['保存', '取消'],
  219. yes: function (index, dom) {
  220. layui.onSubmitChild = function (data) {
  221. layer.close(index);
  222. table.reload('datagrid', {});
  223. };
  224. layui.submitChild();
  225. },
  226. btn2: function (index, layero) {
  227. layer.close(index);//关闭当前按钮
  228. },
  229. content: 'material_godownentry_edit.html?id=' + data.id
  230. });
  231. }else if (obj.event === 'senior_edit') {
  232. table.editdata = data;
  233. if (data.status === "0"){
  234. layer.msg('入库单未审核,无法高级修改!');
  235. return;
  236. }
  237. layer.open({
  238. type: 2,
  239. title: '高级修改',
  240. shadeClose: false,
  241. area: ['95%', '90%'],
  242. btn: ['保存', '取消'],
  243. yes: function (index, dom) {
  244. layui.onSubmitChild = function (data) {
  245. layer.close(index);
  246. table.reload('datagrid', {});
  247. };
  248. layui.submitChild();
  249. },
  250. btn2: function (index, layero) {
  251. layer.close(index);//关闭当前按钮
  252. },
  253. content: 'material_godownentry_senior_edit.html?id=' + data.id
  254. });
  255. }else if(obj.event === 'check'){
  256. layer.confirm('确定要审核吗?', function(index){
  257. layer.close(index);
  258. layui.admin.req({
  259. url: '/purchase/godownentry/check/?id='+data.id
  260. ,done: function(res){
  261. table.reload('datagrid',{});
  262. }
  263. });
  264. });
  265. }else if(obj.event === 'detail'){
  266. table.editdata = data;
  267. layer.open({
  268. type: 2,
  269. title: '查看['+ data.no + ']',
  270. shadeClose: true,
  271. area: ['70%', '80%'],
  272. content: 'material_godownentry_detail.html?id='+data.id
  273. });
  274. }
  275. });
  276. laydate.render({
  277. elem: '#create_time'
  278. , range: true
  279. });
  280. laydate.render({
  281. elem: '#check_time'
  282. , range: true
  283. });
  284. $('#btn_export').on('click', function () {
  285. layui.admin.req({
  286. url: '/purchase/godownentry/export/?type=0',
  287. data: _params,
  288. done: function (res) {
  289. layui.view.download(res.data.filename);
  290. }
  291. });
  292. });
  293. $('#btn_export_detail').on('click', function () {
  294. var data = utils.getSelectedRow('datagrid');
  295. if (data == false) {
  296. return;
  297. }
  298. layui.admin.req({
  299. url: '/purchase/godownentry/export_detail/?id='+data.id,
  300. data: _params,
  301. done: function (res) {
  302. layui.view.download(res.data.filename);
  303. }
  304. });
  305. });
  306. $('#btn_add').on('click', function () {
  307. layer.open({
  308. type: 2,
  309. title: '添加入库',
  310. area: ['90%', '90%'],
  311. btn: ['保存', '取消'],
  312. yes: function (index, dom) {
  313. layui.onSubmitChild = function (data) {
  314. layer.close(index);
  315. table.reload('datagrid', {});
  316. };
  317. layui.submitChild();
  318. },
  319. btn2: function (index, layero) {
  320. layer.close(index);//关闭当前按钮
  321. },
  322. content: 'material_godownentry_edit.html'
  323. });
  324. });
  325. $('#btn_query').on('click', function () {
  326. layer.open({
  327. type: 1,
  328. shadeClose: true,
  329. area: ['500px', '510px'],
  330. title: '查询',
  331. btn: ['查询'],
  332. yes: function (index, dom) {
  333. $("#query-submit").click();
  334. },
  335. content: $('#dlg_query')
  336. });
  337. });
  338. form.on('submit(query-form-element)', function (data) {
  339. //layer.msg(JSON.stringify(data.field));
  340. _params = data.field;
  341. table.reload('datagrid', {
  342. where: data.field,
  343. page:{curr:1}
  344. });
  345. layer.closeAll();
  346. return false
  347. });
  348. $('#btn_print').on('click', function () {
  349. var data = utils.getSelectedRow('datagrid');
  350. if (data == false) {
  351. return;
  352. }
  353. layer.open({
  354. type: 2,
  355. title: '打印',
  356. shadeClose: true,
  357. area: ['90%', '90%'],
  358. btn: ['打印', '取消'],
  359. yes: function (index, dom) {
  360. layui.onSubmitChild = function(data){
  361. layer.close(index);
  362. };
  363. layui.submitChild();
  364. },
  365. btn2: function (index, layero) {
  366. layer.close(index);//关闭当前按钮
  367. },
  368. content: 'material_godownentry_print.html?id=' + data.id
  369. });
  370. });
  371. $('#btn_import').on('click', function () {
  372. layer.open({
  373. type: 2,
  374. title: '导入',
  375. shadeClose: false,
  376. area: ['700px', '300px'],
  377. btn: ['选择文件并执行', '取消'],
  378. yes: function (index, dom) {
  379. layui.onSubmitChild = function (data) {
  380. layer.close(index);
  381. table.reload('datagrid', {});
  382. };
  383. layui.submitChild();
  384. },
  385. btn2: function (index, layero) {
  386. layer.close(index);//关闭当前按钮
  387. },
  388. content: 'material_godownentry_import.html'
  389. });
  390. });
  391. $('#btn_download').on('click', function () {
  392. layui.view.download("/static/xls/原料入库导入模板.xlsx");
  393. });
  394. })
  395. </script>
  396. </body>
  397. </html>