sale_order.html 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393
  1. <!DOCTYPE html>
  2. <html>
  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" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
  9. <link rel="stylesheet" href="../../layuiadmin/layui/css/layui.css" media="all">
  10. <link rel="stylesheet" href="../../layuiadmin/style/admin.css" media="all">
  11. </head>
  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. <body>
  21. <div class="layui-fluid">
  22. <div class="layui-card">
  23. <div class="layui-card-body" pad15>
  24. <div class="layui-row layui-col-space15">
  25. <div class="layui-col-md12">
  26. <div class="LAY-btns" style="margin-bottom: 10px;">
  27. <button class="layui-btn layui-btn-sm" id="btn_add" data-permission="order.add_sale_order"><i class="layui-icon layui-icon-add-circle" ></i>添加</button>
  28. <button class="layui-btn layui-btn-sm" id="btn_deliver" data-permission="order.add_goods_deliver"><i class="layui-icon layui-icon-add-circle" ></i>转出库</button>
  29. <button class="layui-nav" data-permission="order.export_sale_order">
  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_download">导出列表</a></dd>
  34. <dd><a href="#" id="btn_download_detail">导出明细</a></dd>
  35. </dl>
  36. </div>
  37. </button>
  38. <button class="layui-btn layui-btn-sm" id="btn_print" data-permission="order.print_sale_order"><i class="layui-icon layui-icon-form"></i>打印</button>
  39. <button class="layui-btn layui-btn-sm" id="btn_query"><i class="layui-icon layui-icon-search"></i>查询</button>
  40. </div>
  41. <table class="layui-hide" id="datagrid" lay-filter="datagrid-operate"></table>
  42. <script type="text/html" id="datagrid-operate-bar">
  43. <div class="layui-btn-group">
  44. <a class="layui-btn layui-btn-xs" lay-event="detail" data-permission="order.view_sale_order">查看</a>
  45. {{# if(d.status ==0){ }}
  46. <a class="layui-btn layui-btn-xs" lay-event="edit" data-permission="order.add_sale_order">修改</a>
  47. <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del" data-permission="order.delete_sale_order">删除</a>
  48. <a class="layui-btn layui-btn-xs" lay-event="check_pass" data-permission="order.check_sale_order">审核</a>
  49. {{# } }}
  50. {{# if(d.status ==1){ }}
  51. <a class="layui-btn layui-btn-xs" lay-event="check_revoke" data-permission="order.check_sale_order">撤销审核</a>
  52. {{# } }}
  53. </div>
  54. </script>
  55. </div>
  56. </div>
  57. </div>
  58. </div>
  59. </div>
  60. <div id="dlg_query" style="display: none">
  61. <form class="layui-form" lay-filter="query-form-element">
  62. <div class="layui-card-body" pad15>
  63. <div class="layui-row layui-col-space10 layui-form-item">
  64. <div class="layui-col-xs12 layui-col-sm12">
  65. <label class="layui-form-label">下单时间</label>
  66. <div class="layui-input-inline">
  67. <input type="text" class="layui-input" autocomplete="off" name="create_time" id="create_time" placeholder=" - ">
  68. </div>
  69. </div>
  70. <div class="layui-col-xs12 layui-col-sm12">
  71. <label class="layui-form-label">下单人:</label>
  72. <div class="layui-input-block">
  73. <input type="text" autocomplete="off" name="create_user" class="layui-input">
  74. </div>
  75. </div>
  76. <div class="layui-col-xs12 layui-col-sm12">
  77. <label class="layui-form-label">状态:</label>
  78. <div class="layui-input-block">
  79. <select id="id_check_status" name="status">
  80. <option value="" selected></option>
  81. <option value="0">待审核</option>
  82. <option value="1">已审核</option>
  83. </select>
  84. </div>
  85. </div>
  86. <div class="layui-col-xs12 layui-col-sm12">
  87. <label class="layui-form-label">订单号:</label>
  88. <div class="layui-input-block">
  89. <input type="text" autocomplete="off" name="no" class="layui-input">
  90. </div>
  91. </div>
  92. <div class="layui-col-xs12 layui-col-sm12">
  93. <label class="layui-form-label">客户姓名:</label>
  94. <div class="layui-input-block">
  95. <input type="text" autocomplete="off" name="customer_name" class="layui-input">
  96. </div>
  97. </div>
  98. <div class="layui-col-xs12 layui-col-sm12">
  99. <label class="layui-form-label">客户电话:</label>
  100. <div class="layui-input-block">
  101. <input type="text" autocomplete="off" name="customer_tel" class="layui-input">
  102. </div>
  103. </div>
  104. </div>
  105. <div class="layui-form-item" style="display: none">
  106. <button id="query_search" class="layui-btn" lay-submit lay-filter="query-form-element">查询</button>
  107. </div>
  108. </div>
  109. </form>
  110. </div>
  111. <script src="../../layuiadmin/layui/layui.js?t=1"></script>
  112. <script>
  113. var _params = '';
  114. layui.config({
  115. base: '../../../layuiadmin/' //静态资源所在路径
  116. }).extend({
  117. index: 'lib/index' //主入口模块
  118. }).use(['index', 'table', 'laydate', 'form', 'element', 'utils'], function(){
  119. var $ = layui.$;
  120. var table = layui.table
  121. ,laydate = layui.laydate
  122. ,form = layui.form
  123. ,utils = layui.utils
  124. ,admin = layui.admin;
  125. table.render({
  126. elem: '#datagrid'
  127. ,url: '/order/sale_order/data/'
  128. ,cols: [[
  129. {type:'checkbox',width:50}
  130. ,{field:'no', title:'单号', width:150}
  131. ,{field:'customer_name', title:'客户', width:120}
  132. ,{field:'customer_tel', title:'客户电话', width: 150}
  133. ,{field:'products', title:'产品', width:120}
  134. ,{field:'count', title:'合计数量', width:100, align:'right'}
  135. ,{field:'amount', title:'合计金额', width:100, align:'right'}
  136. ,{field:'create_time', title:'创建时间', width:150}
  137. ,{field:'create_user_text', title:'创建人', width:150}
  138. ,{field:'check_status_text', title:'审核状态', width:120}
  139. ,{field:'check_time', title:'审核时间', width:150}
  140. ,{field:'check_user_text', title:'审核人', width:120}
  141. ,{field:'notes', title:'备注', minWidth:200}
  142. ,{width:200, align:'left', fixed: 'right', toolbar: '#datagrid-operate-bar'}
  143. ]]
  144. ,page: true
  145. ,totalRow: true
  146. ,height: 'full-104'
  147. ,parseData:function(res) {
  148. var cols = this.cols[0];
  149. for (var i in cols) {
  150. if (cols[i].field == 'count') {
  151. cols[i].totalRowText = res.more.sum_count;
  152. }
  153. if (cols[i].field == 'amount') {
  154. cols[i].totalRowText = res.more.sum_amount;
  155. }
  156. }
  157. return {
  158. "code": res.code, //解析接口状态
  159. "count": res.count, //解析数据长度
  160. "data": res.data //解析数据列表
  161. };
  162. }
  163. ,done: function () {
  164. layui.index.removeNoPermButtons();
  165. }
  166. });
  167. //监听工具条
  168. table.on('tool(datagrid-operate)', function(obj){
  169. var data = obj.data;
  170. table.editdata = data;
  171. if(obj.event === 'detail'){
  172. layer.open({
  173. type: 2,
  174. title: '查看',
  175. shadeClose: true,
  176. area: ['90%', '90%'],
  177. content: 'sale_order_detail.html?id='+data.id
  178. });
  179. } else if(obj.event === 'del'){
  180. if (data.status != 0){
  181. layer.msg('该订单已审核,不允许删除');
  182. return;
  183. }
  184. layer.confirm('确定要删除吗?', function(index){
  185. layer.close(index);
  186. layui.admin.req({
  187. url: '/order/sale_order/delete/?id='+data.id
  188. ,done: function(res){
  189. table.reload('datagrid',{});
  190. }
  191. });
  192. });
  193. } else if(obj.event === 'edit'){
  194. if (data.status != 0){
  195. layer.msg('该订单已审核,不允许修改');
  196. return;
  197. }
  198. table.editdata = data;
  199. layer.open({
  200. type: 2,
  201. title: '修改订单['+data.no+']',
  202. area: ['90%', '90%'],
  203. btn: ['保存', '取消'],
  204. yes: function(index, dom){
  205. layui.onSubmitChild = function (data) {
  206. layer.close(index);
  207. table.reload('datagrid',{});
  208. };
  209. layui.submitChild();
  210. },
  211. btn2: function(index, layero){
  212. layer.close(index);//关闭当前按钮
  213. },
  214. content: 'sale_order_edit.html?id='+data.id
  215. });
  216. } else if(obj.event === 'check_pass'){
  217. if (data.status != 0){
  218. layer.msg('该出订单已审核, 禁止重复操作');
  219. return;
  220. }
  221. layer.confirm('确定要通过审核吗?', function(index){
  222. layer.close(index);
  223. layui.admin.req({
  224. url: '/order/sale_order/check/?id='+data.id + '&status=1'
  225. ,done: function(res){
  226. table.reload('datagrid',{});
  227. }
  228. });
  229. });
  230. }else if(obj.event === 'check_revoke'){
  231. if (data.status == 0){
  232. layer.msg('该出订单尚未审核');
  233. return;
  234. }
  235. layer.confirm('确定要撤销审核吗?', function(index){
  236. layer.close(index);
  237. layui.admin.req({
  238. url: '/order/sale_order/check/?id='+data.id + '&status=0'
  239. ,done: function(res){
  240. table.reload('datagrid',{});
  241. }
  242. });
  243. });
  244. }
  245. });
  246. $('#btn_add').on('click', function(){
  247. layer.open({
  248. type: 2,
  249. title: '下单',
  250. area: ['90%', '90%'],
  251. btn: ['保存', '取消'],
  252. yes: function(index, dom){
  253. layui.onSubmitChild = function (data) {
  254. layer.close(index);
  255. table.reload('datagrid',{});
  256. };
  257. layui.submitChild();
  258. },
  259. btn2: function(index, layero){
  260. layer.close(index);//关闭当前按钮
  261. },
  262. content: 'sale_order_edit.html'
  263. });
  264. });
  265. $('#btn_download').on('click', function(){
  266. layui.admin.req({
  267. url: '/order/sale_order/export/',
  268. data:_params,
  269. done: function (res) {
  270. layui.view.download(res.data.filename);
  271. }
  272. });
  273. });
  274. $('#btn_download_detail').on('click', function(){
  275. var data = utils.getSelectedRow('datagrid');
  276. if(data == false){
  277. return;
  278. }
  279. layui.admin.req({
  280. url: '/order/sale_order/export_detail/?id=' + data.id,
  281. done: function (res) {
  282. layui.view.download(res.data.filename);
  283. }
  284. });
  285. });
  286. $('#btn_print').on('click', function(){
  287. var data = utils.getSelectedRow('datagrid');
  288. if(data == false){
  289. return;
  290. }
  291. table.editdata = data;
  292. layer.open({
  293. type: 2,
  294. title: '打印',
  295. shadeClose: true,
  296. area: ['90%', '90%'],
  297. btn: ['打印', '取消'],
  298. yes: function(index, dom){
  299. layui.onSubmitChild = function (data) {
  300. layer.close(index);
  301. };
  302. layui.submitChild();
  303. },
  304. btn2: function(index, layero){
  305. layer.close(index);//关闭当前按钮
  306. },
  307. content: 'sale_order_print.html?id='+data.id
  308. });
  309. });
  310. $('#btn_deliver').on('click', function(){
  311. var data = utils.getSelectedRow('datagrid');
  312. if(data == false){
  313. return;
  314. }
  315. if (data.status == 0) {
  316. layer.msg('该订单未审核,不允许出库');
  317. return;
  318. }
  319. table.editdata = data;
  320. layer.open({
  321. type: 2,
  322. title: '转出库',
  323. shadeClose: false,
  324. area: ['90%', '90%'],
  325. btn: ['保存', '取消'],
  326. yes: function(index, dom){
  327. layui.onSubmitChild = function (data) {
  328. layer.close(index);
  329. };
  330. layui.submitChild();
  331. },
  332. btn2: function(index, layero){
  333. layer.close(index);//关闭当前按钮
  334. },
  335. content: 'goods_deliver_edit.html?order_id='+data.id
  336. });
  337. });
  338. $('#btn_query').on('click', function(){
  339. layer.open({
  340. type: 1,
  341. shadeClose: true,
  342. area: ['500px', '450px'],
  343. title: '查询',
  344. btn: ['查询'],
  345. yes: function(index, dom){
  346. $('#query_search').click();
  347. },
  348. content: $('#dlg_query')
  349. });
  350. });
  351. form.on('submit(query-form-element)', function(data){
  352. //layer.msg(JSON.stringify(data.field));
  353. _params = data.field;
  354. table.reload('datagrid', {
  355. where: data.field,
  356. page:{curr:1}
  357. });
  358. layer.closeAll();
  359. return false
  360. });
  361. laydate.render({
  362. elem: '#create_time'
  363. ,range: true
  364. });
  365. });
  366. </script>
  367. </body>
  368. </html>