goods_godownentry.html 17 KB

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