consumable_godownentry.html 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396
  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" id="btn_add" data-permission="purchase.add_consumable_godown_entry"><i class="layui-icon layui-icon-add-1"></i>添加</button>
  28. <button class="layui-nav" data-permission="purchase.export_consumable_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_consumable_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" data-permission="purchase.print_consumable_godown_entry" id="btn_print"><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" data-permission="purchase.add_consumable_godown_entry" lay-event="edit">修改</a>
  55. <a class="layui-btn layui-btn-danger layui-btn-xs" data-permission="purchase.delete_consumable_godown_entry" lay-event="del">删除</a>
  56. <a class="layui-btn layui-btn-xs" data-permission="purchase.check_consumable_godown_entry" lay-event="check">审核</a>
  57. {{# } }}
  58. {{# if(d.status == 1){ }}
  59. <a class="layui-btn layui-btn-xs" lay-event="senior_edit" data-permission="purchase.edit_consumable_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" name="create_time" id="create_time" placeholder=" - " autocomplete="off">
  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" name="check_time" id="check_time" placeholder=" - " autocomplete="off">
  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. <input type="text" name="no" class="layui-input" autocomplete="off">
  87. </div>
  88. </div>
  89. <div class="layui-col-xs12 layui-col-sm12">
  90. <label class="layui-form-label">合同号:</label>
  91. <div class="layui-input-block">
  92. <input type="text" name="purchase_order_no" class="layui-input" autocomplete="off">
  93. </div>
  94. </div>
  95. <div class="layui-col-xs12 layui-col-sm12">
  96. <label class="layui-form-label">供应商:</label>
  97. <div class="layui-input-block">
  98. <input type="text" name="supplier_text" class="layui-input" autocomplete="off">
  99. </div>
  100. </div>
  101. <div class="layui-col-xs12 layui-col-sm12">
  102. <label class="layui-form-label">创建人:</label>
  103. <div class="layui-input-block">
  104. <input type="text" name="create_user_text" class="layui-input" autocomplete="off">
  105. </div>
  106. </div>
  107. <div class="layui-col-xs12 layui-col-sm12">
  108. <label class="layui-form-label">产品备注:</label>
  109. <div class="layui-input-block">
  110. <input type="text" name="product_notes" class="layui-input" autocomplete="off">
  111. </div>
  112. </div>
  113. </div>
  114. <div style="display: none" >
  115. <button id="query-submit" lay-submit lay-filter="query-form-element">查询</button>
  116. </div>
  117. </form>
  118. </div>
  119. </div>
  120. <script src="../../layuiadmin/layui/layui.js?t=1"></script>
  121. <script>
  122. var _params = '';
  123. layui.config({
  124. base: '../../../layuiadmin/' //静态资源所在路径
  125. }).extend({
  126. index: 'lib/index', //主入口模块
  127. utils: 'utils'
  128. }).use(['index', 'table', 'laydate', 'form', 'utils'], function () {
  129. var $ = layui.$;
  130. var table = layui.table
  131. , form = layui.form
  132. , utils = layui.utils
  133. , laydate = layui.laydate;
  134. var is_has = utils.isHasPermissions('material.view_consumable_cost');
  135. var cols = [];
  136. cols.push({type: 'checkbox', width: 50});
  137. cols.push({field: 'no', title: '入库单号', width: 140});
  138. cols.push({field: 'supplier_text', title: '供应商', width: 145});
  139. cols.push({field: 'total_count', align:'right', title: '合计数量', width: 100});
  140. if (is_has){
  141. cols.push({field: 'total_amount', align:'right', title: '合计金额', width: 100});
  142. cols.push({field: 'total_invoice_amount', align:'right', title: '合计发票金额', width: 120});
  143. }
  144. cols.push({field: 'warehouse_text', align:'right', title: '仓别', width: 100});
  145. cols.push({field: 'purchase_order_no', align:'right', title: '合同号', width: 150});
  146. cols.push({field: 'create_time', title: '创建时间', width: 150});
  147. cols.push({field: 'create_user_text', title: '创建人', width: 150});
  148. cols.push({field: 'status_text', title: '审核状态', width: 100});
  149. cols.push({field: 'check_time', title: '审核时间', width: 150});
  150. cols.push({field: 'check_user_text', title: '审核人', width: 100});
  151. cols.push({field: 'notes', title: '备注', minWidth: 200});
  152. cols.push({width: 170, align: 'left', fixed: 'right', toolbar: '#datagrid-operate-bar'});
  153. table.render({
  154. elem: '#datagrid'
  155. , url: '/purchase/godownentry/data/?type=1'
  156. , cols: [cols]
  157. , page: true
  158. , height: 'full-104'
  159. , totalRow: true
  160. ,parseData:function(res) {
  161. var cols = this.cols[0];
  162. for (var i in cols) {
  163. if (cols[i].field == 'total_count') {
  164. cols[i].totalRowText = res.more.total_count;
  165. }
  166. if (cols[i].field == 'total_amount') {
  167. cols[i].totalRowText = res.more.total_amount;
  168. }
  169. }
  170. return {
  171. "code": res.code, //解析接口状态
  172. "count": res.count, //解析数据长度
  173. "data": res.data //解析数据列表
  174. };
  175. }
  176. , done: function () {
  177. layui.index.removeNoPermButtons()
  178. }
  179. });
  180. //监听工具条
  181. table.on('tool(datagrid-operate)', function (obj) {
  182. var data = obj.data;
  183. if (obj.event === 'del') {
  184. if (data.status === "1"){
  185. layer.msg('入库单已审核,无法删除!');
  186. return;
  187. }
  188. layer.confirm('确定要删除吗?', function (index) {
  189. layer.close(index);
  190. layui.admin.req({
  191. url: '/purchase/godownentry/delete/?id=' + data.id
  192. , done: function (res) {
  193. table.reload('datagrid', {});
  194. }
  195. });
  196. });
  197. } else if (obj.event === 'edit') {
  198. table.editdata = data;
  199. if (data.status === "1"){
  200. layer.msg('入库单已审核,无法修改!');
  201. return;
  202. }
  203. layer.open({
  204. type: 2,
  205. title: '修改',
  206. shadeClose: false,
  207. area: ['90%', '90%'],
  208. btn: ['保存', '取消'],
  209. yes: function (index, dom) {
  210. layui.onSubmitChild = function (data) {
  211. layer.close(index);
  212. table.reload('datagrid', {});
  213. };
  214. layui.submitChild();
  215. },
  216. btn2: function (index, layero) {
  217. layer.close(index);//关闭当前按钮
  218. },
  219. content: 'consumable_godownentry_edit.html?id=' + data.id
  220. });
  221. }else if (obj.event === 'senior_edit') {
  222. table.editdata = data;
  223. if (data.status === "0"){
  224. layer.msg('入库单未审核,无法高级修改!');
  225. return;
  226. }
  227. layer.open({
  228. type: 2,
  229. title: '高级修改',
  230. shadeClose: false,
  231. area: ['95%', '90%'],
  232. btn: ['保存', '取消'],
  233. yes: function (index, dom) {
  234. layui.onSubmitChild = function (data) {
  235. layer.close(index);
  236. table.reload('datagrid', {});
  237. };
  238. layui.submitChild();
  239. },
  240. btn2: function (index, layero) {
  241. layer.close(index);//关闭当前按钮
  242. },
  243. content: 'consumable_godownentry_senior_edit.html?id=' + data.id
  244. });
  245. }else if(obj.event === 'check'){
  246. layer.confirm('确定要审核吗?', function(index){
  247. layer.close(index);
  248. layui.admin.req({
  249. url: '/purchase/godownentry/check/?id='+data.id
  250. ,done: function(res){
  251. table.reload('datagrid',{});
  252. }
  253. });
  254. });
  255. }else if(obj.event === 'detail'){
  256. table.editdata = data;
  257. layer.open({
  258. type: 2,
  259. title: '查看['+ data.no + ']',
  260. shadeClose: true,
  261. area: ['70%', '80%'],
  262. content: 'consumable_godownentry_detail.html?id='+data.id
  263. });
  264. }
  265. });
  266. laydate.render({
  267. elem: '#create_time'
  268. , range: true
  269. });
  270. laydate.render({
  271. elem: '#check_time'
  272. , range: true
  273. });
  274. $('#btn_export').on('click', function () {
  275. layui.admin.req({
  276. url: '/purchase/godownentry/export/?type=1',
  277. data: _params,
  278. done: function (res) {
  279. layui.view.download(res.data.filename);
  280. }
  281. });
  282. });
  283. $('#btn_export_detail').on('click', function () {
  284. var data = utils.getSelectedRow('datagrid');
  285. if (data == false) {
  286. return;
  287. }
  288. layui.admin.req({
  289. url: '/purchase/godownentry/export_detail/?id='+data.id,
  290. data: _params,
  291. done: function (res) {
  292. layui.view.download(res.data.filename);
  293. }
  294. });
  295. });
  296. $('#btn_add').on('click', function () {
  297. layer.open({
  298. type: 2,
  299. title: '添加入库',
  300. area: ['90%', '90%'],
  301. btn: ['保存', '取消'],
  302. yes: function (index, dom) {
  303. layui.onSubmitChild = function (data) {
  304. layer.close(index);
  305. table.reload('datagrid', {});
  306. };
  307. layui.submitChild();
  308. },
  309. btn2: function (index, layero) {
  310. layer.close(index);//关闭当前按钮
  311. },
  312. content: 'consumable_godownentry_edit.html'
  313. });
  314. });
  315. $('#btn_query').on('click', function () {
  316. layer.open({
  317. type: 1,
  318. shadeClose: true,
  319. area: ['500px', '510px'],
  320. title: '查询',
  321. btn: ['查询'],
  322. yes: function (index, dom) {
  323. $("#query-submit").click();
  324. },
  325. content: $('#dlg_query')
  326. });
  327. });
  328. form.on('submit(query-form-element)', function (data) {
  329. //layer.msg(JSON.stringify(data.field));
  330. _params = data.field;
  331. table.reload('datagrid', {
  332. where: data.field,
  333. page:{curr:1}
  334. });
  335. layer.closeAll();
  336. return false
  337. });
  338. $('#btn_print').on('click', function () {
  339. var data = utils.getSelectedRow('datagrid');
  340. if (data == false) {
  341. return;
  342. }
  343. layer.open({
  344. type: 2,
  345. title: '打印',
  346. shadeClose: true,
  347. area: ['90%', '90%'],
  348. btn: ['打印', '取消'],
  349. yes: function (index, dom) {
  350. layui.onSubmitChild = function(data){
  351. layer.close(index);
  352. };
  353. layui.submitChild();
  354. },
  355. btn2: function (index, layero) {
  356. layer.close(index);//关闭当前按钮
  357. },
  358. content: 'consumable_godownentry_print.html?id=' + data.id
  359. });
  360. });
  361. $('#btn_import').on('click', function () {
  362. layer.open({
  363. type: 2,
  364. title: '导入',
  365. shadeClose: false,
  366. area: ['700px', '300px'],
  367. btn: ['选择文件并执行', '取消'],
  368. yes: function (index, dom) {
  369. layui.onSubmitChild = function (data) {
  370. layer.close(index);
  371. table.reload('datagrid', {});
  372. };
  373. layui.submitChild();
  374. },
  375. btn2: function (index, layero) {
  376. layer.close(index);//关闭当前按钮
  377. },
  378. content: 'consumable_godownentry_import.html'
  379. });
  380. });
  381. $('#btn_download').on('click', function () {
  382. layui.view.download("/static/xls/耗材入库导入模板.xlsx");
  383. });
  384. })
  385. </script>
  386. </body>
  387. </html>