goods_deliver.html 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332
  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 layui-col-space15">
  26. <div class="layui-col-md12">
  27. <div class="LAY-btns" style="margin-bottom: 10px;">
  28. <button class="layui-btn layui-btn-sm" data-permission="order.add_goods_deliver" id="btn_add"><i class="layui-icon layui-icon-add-1"></i>添加</button>
  29. <button class="layui-nav" data-permission="order.export_goods_deliver">
  30. <div class="layui-nav-item">
  31. <a href="javascript:;" style="color:#fff;">导出</a>
  32. <dl class="layui-nav-child"> <!-- 二级菜单 -->
  33. <dd><a href="#" id="btn_export">导出列表</a></dd>
  34. <dd><a href="#" id="btn_export_detail">导出明细</a></dd>
  35. </dl>
  36. </div>
  37. </button>
  38. <button class="layui-nav" data-permission="order.print_goods_deliver">
  39. <div class="layui-nav-item">
  40. <a href="javascript:;" style="color:#fff;">打印</a>
  41. <dl class="layui-nav-child"> <!-- 二级菜单 -->
  42. <dd><a href="#" id="btn_print">出库单</a></dd>
  43. <dd><a href="#" id="btn_print_use">领用单</a></dd>
  44. </dl>
  45. </div>
  46. </button>
  47. <button class="layui-btn layui-btn-sm" id="btn_query" data-permission="order.view_goods_deliver"><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" data-permission="order.view_goods_deliver" lay-event="detail">查看</a>
  53. {{# if(d.status == 0){ }}
  54. <a class="layui-btn layui-btn-xs" lay-event="edit" data-permission="order.add_goods_deliver">修改</a>
  55. <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del" data-permission="order.delete_goods_deliver">删除</a>
  56. <a class="layui-btn layui-btn-xs" lay-event="check" data-permission="order.check_goods_deliver">审核</a>
  57. {{# } }}
  58. </div>
  59. </script>
  60. </div>
  61. </div>
  62. </div>
  63. </div>
  64. </div>
  65. <div id="dlg_query" style="display: none">
  66. <div class="layui-card-body" pad15>
  67. <form class="layui-form" lay-filter="query-form-element">
  68. <div class="layui-row layui-col-space10 layui-form-item">
  69. <div class="layui-col-xs12 layui-col-sm12">
  70. <label class="layui-form-label">出库单号:</label>
  71. <div class="layui-input-block">
  72. <input type="text" name="no" autocomplete="off" class="layui-input">
  73. </div>
  74. </div>
  75. <div class="layui-col-xs12 layui-col-sm12">
  76. <label class="layui-form-label">产品备注:</label>
  77. <div class="layui-input-block">
  78. <input type="text" name="product_notes" autocomplete="off" class="layui-input">
  79. </div>
  80. </div>
  81. </div>
  82. <div style="display: none">
  83. <button id="query-submit" lay-submit lay-filter="query-form-element">查询</button>
  84. </div>
  85. </form>
  86. </div>
  87. </div>
  88. <script src="../../layuiadmin/layui/layui.js?t=1"></script>
  89. <script>
  90. var _params = '';
  91. layui.config({
  92. base: '../../../layuiadmin/' //静态资源所在路径
  93. }).extend({
  94. index: 'lib/index', //主入口模块
  95. utils: 'utils'
  96. }).use(['index', 'table', 'laydate', 'form', 'utils'], function () {
  97. var $ = layui.$;
  98. var table = layui.table
  99. , form = layui.form
  100. , utils = layui.utils;
  101. var is_has = utils.isHasPermissions('goods.view_goods_cost');
  102. var cols = [];
  103. cols.push({type: 'checkbox', width: 50});
  104. cols.push({field: 'no', title: '出库单号', width: 140});
  105. cols.push({field: 'sale_order_no', title: '销售单号', width: 140});
  106. cols.push({field: 'customer_name', title: '客户姓名', width: 140});
  107. cols.push({field: 'customer_tel', title: '客户电话', width: 140});
  108. cols.push({field: 'agent_user_text', title: '经办人', width: 140});
  109. cols.push({field: 'agent_department_text', title: '经办部门', width: 140});
  110. cols.push({field: 'total_count', align:'right', title: '合计数量', width: 150});
  111. if (is_has){
  112. cols.push({field: 'total_cost', align:'right', title: '合计成本', width: 150});
  113. }
  114. cols.push({field: 'total_amount', align:'right', title: '合计销售价', width: 150});
  115. cols.push({field: 'warehouse_text', title: '仓别', width: 150});
  116. cols.push({field: 'create_time', title: '创建时间', width: 180});
  117. cols.push({field: 'create_user_text', title: '创建人', width: 100});
  118. cols.push({field: 'status_text', title: '审核状态', width: 150});
  119. cols.push({field: 'check_time', title: '审核时间', width: 180});
  120. cols.push({field: 'check_user_text', title: '审核人', width: 150});
  121. cols.push({field: 'notes', title: '备注', minWidth: 200});
  122. cols.push({width: 170, align: 'left', fixed: 'right', toolbar: '#datagrid-operate-bar'});
  123. table.render({
  124. elem: '#datagrid'
  125. , url: '/order/deliver/data/'
  126. , cols: [cols]
  127. , page: true
  128. , height: 'full-104'
  129. ,totalRow:true
  130. ,parseData:function(res) {
  131. var cols = this.cols[0];
  132. for (var i in cols) {
  133. if (cols[i].field == 'total_count') {
  134. cols[i].totalRowText = res.more.total_count;
  135. }
  136. if (cols[i].field == 'total_cost') {
  137. cols[i].totalRowText = res.more.total_cost;
  138. }
  139. if (cols[i].field == 'total_amount') {
  140. cols[i].totalRowText = res.more.total_amount;
  141. }
  142. }
  143. return {
  144. "code": res.code, //解析接口状态
  145. "count": res.count, //解析数据长度
  146. "data": res.data //解析数据列表
  147. };
  148. }
  149. , done: function () {
  150. layui.index.removeNoPermButtons()
  151. }
  152. });
  153. //监听工具条
  154. table.on('tool(datagrid-operate)', function (obj) {
  155. var data = obj.data;
  156. if (obj.event === 'del') {
  157. if (data.status === "1"){
  158. layer.msg('出库单已审核,无法删除!');
  159. return;
  160. }
  161. layer.confirm('确定要删除吗?', function (index) {
  162. layer.close(index);
  163. layui.admin.req({
  164. url: '/order/deliver/delete/?id=' + data.id
  165. , done: function (res) {
  166. table.reload('datagrid', {});
  167. }
  168. });
  169. });
  170. } else if (obj.event === 'edit') {
  171. table.editdata = data;
  172. if (data.status === "1"){
  173. layer.msg('出库单已审核,无法修改!');
  174. return;
  175. }
  176. layer.open({
  177. type: 2,
  178. title: '修改',
  179. shadeClose: false,
  180. area: ['90%', '90%'],
  181. btn: ['保存', '取消'],
  182. yes: function (index, dom) {
  183. layui.onSubmitChild = function (data) {
  184. layer.close(index);
  185. table.reload('datagrid', {});
  186. };
  187. layui.submitChild();
  188. },
  189. btn2: function (index, layero) {
  190. layer.close(index);//关闭当前按钮
  191. },
  192. content: 'goods_deliver_edit.html?id=' + data.id
  193. });
  194. }else if(obj.event === 'check'){
  195. layer.confirm('确定要审核吗?', function(index){
  196. layer.close(index);
  197. layui.admin.req({
  198. url: '/order/deliver/check/?id='+data.id
  199. ,done: function(res){
  200. table.reload('datagrid',{});
  201. }
  202. });
  203. });
  204. }else if(obj.event === 'detail'){
  205. table.editdata = data;
  206. layer.open({
  207. type: 2,
  208. title: '查看['+ data.no + ']',
  209. shadeClose: true,
  210. area: ['70%', '80%'],
  211. content: 'goods_deliver_detail.html?id='+data.id
  212. });
  213. }
  214. });
  215. $('#btn_export').on('click', function () {
  216. layui.admin.req({
  217. url: '/order/deliver/export/',
  218. data: _params,
  219. done: function (res) {
  220. layui.view.download(res.data.filename);
  221. }
  222. });
  223. });
  224. $('#btn_export_detail').on('click', function () {
  225. var data = utils.getSelectedRow('datagrid');
  226. if (data == false) {
  227. return;
  228. }
  229. layui.admin.req({
  230. url: '/order/deliver/export/?id='+data.id,
  231. data: _params,
  232. done: function (res) {
  233. layui.view.download(res.data.filename);
  234. }
  235. });
  236. });
  237. $('#btn_add').on('click', function () {
  238. layer.open({
  239. type: 2,
  240. title: '添加出库',
  241. area: ['90%', '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: 'goods_deliver_edit.html'
  254. });
  255. });
  256. $('#btn_query').on('click', function () {
  257. layer.open({
  258. type: 1,
  259. shadeClose: true,
  260. area: ['400px', '45%'],
  261. title: '查询',
  262. btn: ['查询'],
  263. yes: function (index, dom) {
  264. $("#query-submit").click();
  265. },
  266. content: $('#dlg_query')
  267. });
  268. });
  269. form.on('submit(query-form-element)', function (data) {
  270. //layer.msg(JSON.stringify(data.field));
  271. _params = data.field;
  272. table.reload('datagrid', {
  273. where: data.field,
  274. page:{curr:1}
  275. });
  276. layer.closeAll();
  277. return false
  278. });
  279. $('#btn_print').on('click', function () {
  280. var data = utils.getSelectedRow('datagrid');
  281. if (data == false) {
  282. return;
  283. }
  284. layer.open({
  285. type: 2,
  286. title: '打印出库单',
  287. shadeClose: true,
  288. area: ['90%', '90%'],
  289. btn: ['打印', '取消'],
  290. yes: function (index, dom) {
  291. layui.onSubmitChild = function(data){
  292. layer.close(index);
  293. };
  294. layui.submitChild();
  295. },
  296. btn2: function (index, layero) {
  297. layer.close(index);//关闭当前按钮
  298. },
  299. content: 'goods_deliver_print.html?id=' + data.id
  300. });
  301. });
  302. $('#btn_print_use').on('click', function () {
  303. var data = utils.getSelectedRow('datagrid');
  304. if (data == false) {
  305. return;
  306. }
  307. layer.open({
  308. type: 2,
  309. title: '打印领用单',
  310. shadeClose: true,
  311. area: ['90%', '90%'],
  312. btn: ['打印', '取消'],
  313. yes: function (index, dom) {
  314. layui.onSubmitChild = function(data){
  315. layer.close(index);
  316. };
  317. layui.submitChild();
  318. },
  319. btn2: function (index, layero) {
  320. layer.close(index);//关闭当前按钮
  321. },
  322. content: 'goods_deliver_print_use.html?id=' + data.id
  323. });
  324. });
  325. })
  326. </script>
  327. </body>
  328. </html>