purchase.html 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566
  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" 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" data-permission="purchase.add_purchase_plan" id="btn_add"><i class="layui-icon layui-icon-add-1"></i>添加</button>
  28. <button class="layui-nav" data-permission="purchase.add_purchase_plan">
  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_import">执行导入</a></dd>
  33. <dd><a href="#" id="btn_download">下载模板</a></dd>
  34. </dl>
  35. </div>
  36. </button>
  37. <button class="layui-btn layui-btn-sm" data-permission="purchase.add_purchase_user_plan" id="btn_add_user"><i class="layui-icon layui-icon-add-1"></i>采购员</button>
  38. <button class="layui-btn layui-btn-sm" data-permission="purchase.add_purchase_order" id="btn_add_price"><i class="layui-icon layui-icon-add-1"></i>询价汇总</button>
  39. <button class="layui-btn layui-btn-sm" data-permission="purchase.edit_purchase_price" id="btn_edit_price"><i class="layui-icon layui-icon-edit"></i>修改询价</button>
  40. <!-- <button class="layui-nav" data-permission="purchase.check2_purchase_plan">
  41. <div class="layui-nav-item">
  42. <a href="javascript:;" style="color:#fff;">复核</a>
  43. <dl class="layui-nav-child">
  44. <dd><a href="#" id="btn_check2">复核</a></dd>
  45. <dd><a href="#" id="btn_check2_back">撤销</a></dd>
  46. </dl>
  47. </div>
  48. </button>
  49. <button class="layui-nav" data-permission="purchase.check3_purchase_plan">
  50. <div class="layui-nav-item">
  51. <a href="javascript:;" style="color:#fff;">批准</a>
  52. <dl class="layui-nav-child">
  53. <dd><a href="#" id="btn_check3">批准</a></dd>
  54. <dd><a href="#" id="btn_check3_back">撤销</a></dd>
  55. </dl>
  56. </div>
  57. </button>-->
  58. <button class="layui-nav" data-permission="purchase.export_purchase_plan">
  59. <div class="layui-nav-item">
  60. <a href="javascript:;" style="color:#fff;">导出</a>
  61. <dl class="layui-nav-child"> <!-- 二级菜单 -->
  62. <dd><a href="#" id="btn_export">导出列表</a></dd>
  63. <dd><a href="#" id="btn_detail_export">导出明细</a></dd>
  64. </dl>
  65. </div>
  66. </button>
  67. <button class="layui-btn layui-btn-sm" data-permission="purchase.export_purchase_plan_price" id="btn_export_price"><i class="layui-icon layui-icon-form"></i>导出询价汇总</button>
  68. <button class="layui-btn layui-btn-sm" data-permission="purchase.print_purchase_plan" id="btn_print"><i class="layui-icon layui-icon-print"></i>打印</button>
  69. <button class="layui-btn layui-btn-sm" data-permission="purchase.view_purchase_plan" id="btn_query"><i class="layui-icon layui-icon-search"></i>查询</button>
  70. </div>
  71. <table class="layui-hide" id="datagrid" lay-filter="datagrid-operate"></table>
  72. <script type="text/html" id="datagrid-operate-bar">
  73. <div class="layui-btn-group">
  74. <a class="layui-btn layui-btn-xs" data-permission="purchase.view_purchase_plan" lay-event="detail">查看</a>
  75. {{# if(d.status ==0){ }}
  76. <a class="layui-btn layui-btn-xs" data-permission="purchase.add_purchase_plan" lay-event="edit">修改</a>
  77. <a class="layui-btn layui-btn-danger layui-btn-xs" data-permission="purchase.delete_purchase_plan" lay-event="del">删除</a>
  78. <a class="layui-btn layui-btn-xs" data-permission="purchase.check_purchase_plan" id="check" lay-event="check">审核</a>
  79. {{# } }}
  80. {{# if(d.status ==1){ }}
  81. <a class="layui-btn layui-btn-xs" data-permission="purchase.check_purchase_plan" id="checkout" lay-event="checkout">撤销审核</a>
  82. {{# } }}
  83. </div>
  84. </script>
  85. </div>
  86. </div>
  87. </div>
  88. </div>
  89. </div>
  90. <div id="dlg_query" style="display: none">
  91. <div class="layui-card-body" pad15>
  92. <form class="layui-form" lay-filter="query-form-element">
  93. <div class="layui-row layui-col-space10 layui-form-item">
  94. <div class="layui-col-xs12 layui-col-sm12">
  95. <label class="layui-form-label">审核状态:</label>
  96. <div class="layui-input-block">
  97. <select id="id_status" name="status">
  98. <option value="" selected>全部</option>
  99. <option value="0">待审核</option>
  100. <option value="1">已审核</option>
  101. </select>
  102. </div>
  103. </div>
  104. <div class="layui-col-xs12 layui-col-sm12">
  105. <label class="layui-form-label">单号:</label>
  106. <div class="layui-input-block">
  107. <input type="text" name="no" class="layui-input" autocomplete="off">
  108. </div>
  109. </div>
  110. <div class="layui-col-xs12 layui-col-sm12">
  111. <label class="layui-form-label">名称:</label>
  112. <div class="layui-input-block">
  113. <input type="text" name="name" class="layui-input" autocomplete="off">
  114. </div>
  115. </div>
  116. <div class="layui-col-xs12 layui-col-sm12">
  117. <label class="layui-form-label">备注:</label>
  118. <div class="layui-input-block">
  119. <input type="text" name="notes" class="layui-input" autocomplete="off">
  120. </div>
  121. </div>
  122. </div>
  123. <button class="layui-btn" lay-submit lay-filter="query-form-element" id="query_btn" style="display: none">查询</button>
  124. </form>
  125. </div>
  126. </div>
  127. <script src="../../layuiadmin/layui/layui.js?t=1"></script>
  128. <script>
  129. var _params = {status:''};
  130. layui.config({
  131. base: '../../../layuiadmin/' //静态资源所在路径
  132. }).extend({
  133. index: 'lib/index',//主入口模块
  134. utils: 'utils'
  135. }).use(['index', 'table','laydate', 'form', 'utils', 'upload'], function () {
  136. var $ = layui.$;
  137. var table = layui.table
  138. ,laydate = layui.laydate
  139. ,utils = layui.utils
  140. ,upload = layui.upload
  141. ,form = layui.form;
  142. table.render({
  143. elem: '#datagrid'
  144. ,url: '/purchase/purchase/data/'
  145. ,where: _params
  146. ,cols: [[
  147. {type:'checkbox',width:50}
  148. ,{field:'no', title:'单号', width:140}
  149. ,{field:'notes', title:'备注', minWidth:120}
  150. ,{field:'name', title:'名称', width:160}
  151. ,{field:'demend_user_text', title:'需求人', width:100}
  152. ,{field:'create_time', title:'创建时间', width:150}
  153. ,{field:'create_user_text', title:'创建人', width:100}
  154. ,{field:'status_text', title:'审核状态', width: 100}
  155. ,{field:'check_time', title:'审核时间', width:150}
  156. ,{field:'check_user_text', title:'审核人', width: 100}
  157. ,{field:'purchase_users', title:'采购员', width:250}
  158. ,{field:'total_count', title:'合计数量', width:100, align:'right'}
  159. ,{width:200, align:'left', fixed: 'right', toolbar: '#datagrid-operate-bar'}
  160. ]]
  161. ,totalRow:true
  162. ,parseData:function(res) {
  163. var cols = this.cols[0];
  164. for (var i in cols) {
  165. if (cols[i].field == 'total_count') {
  166. cols[i].totalRowText = res.more.total_count;
  167. }
  168. }
  169. return {
  170. "code": res.code, //解析接口状态
  171. "count": res.count, //解析数据长度
  172. "data": res.data //解析数据列表
  173. };
  174. }
  175. ,page: true
  176. ,height: 'full-104'
  177. ,done:function () {
  178. layui.index.removeNoPermButtons();
  179. }
  180. });
  181. //监听工具条
  182. table.on('tool(datagrid-operate)', function(obj){
  183. var data = obj.data;
  184. if(obj.event === 'del'){
  185. if (data.status == 1){
  186. layer.msg('采购计划已审核,禁止删除');
  187. return false;
  188. }
  189. layer.confirm('确定要删除吗?', function(index){
  190. layer.close(index);
  191. layui.admin.req({
  192. url: '/purchase/purchase/delete/?id='+data.id
  193. ,done: function(res){
  194. table.reload('datagrid',{});
  195. }
  196. });
  197. });
  198. }else if(obj.event === 'detail'){
  199. table.editdata = data;
  200. layer.open({
  201. type: 2,
  202. title: '查看['+ data.no + ']',
  203. shadeClose: true,
  204. area: ['90%', '90%'],
  205. content: 'purchase_detail.html?id='+data.id
  206. });
  207. }else if(obj.event === 'check'){
  208. layer.confirm('确定要审核吗?', function(index){
  209. layer.close(index);
  210. layui.admin.req({
  211. url: '/purchase/purchase/check/?c_type=check&status=1&id='+data.id
  212. ,done: function(res){
  213. table.reload('datagrid',{});
  214. }
  215. });
  216. });
  217. }else if(obj.event === 'checkout'){
  218. if(data.is_compact_text == true){
  219. layer.msg('已生成采购合同,禁止撤销审核');
  220. return;
  221. }
  222. if(data.report_text == true){
  223. layer.msg('已有上报的询价记录,禁止撤销审核');
  224. return;
  225. }
  226. layer.confirm('确定要撤销审核吗?', function(index){
  227. layer.close(index);
  228. layui.admin.req({
  229. url: '/purchase/purchase/check/?c_type=check&status=0&id='+data.id
  230. ,done: function(res){
  231. table.reload('datagrid',{});
  232. }
  233. });
  234. });
  235. }else if(obj.event === 'edit'){
  236. if (data.status == 1){
  237. layer.msg('采购计划已审核,禁止修改');
  238. return false;
  239. }
  240. table.editdata = data;
  241. layer.open({
  242. type: 2,
  243. title: '修改',
  244. shadeClose: false,
  245. area: ['90%', '90%'],
  246. btn: ['保存', '取消'],
  247. yes: function(index, dom){
  248. layui.onSubmitChild = function (data) {
  249. layer.close(index);
  250. table.reload('datagrid',{});
  251. };
  252. layui.submitChild();
  253. },
  254. btn2: function(index, layero){
  255. layer.close(index);//关闭当前按钮
  256. },
  257. content: 'purchase_edit.html?id='+data.id
  258. });
  259. }
  260. });
  261. $('#btn_export').on('click', function(){
  262. layui.admin.req({
  263. url: '/purchase/purchase/export/',
  264. data:_params,
  265. done: function (res) {
  266. layui.view.download(res.data.filename);
  267. }
  268. });
  269. });
  270. /**$('#btn_check2').on('click', function(){
  271. var data = utils.getSelectedRow('datagrid');
  272. if(data.check_user2){
  273. layer.msg('该采购计划已复核');
  274. return;
  275. }
  276. if(data.status == '0' ){
  277. layer.msg('该采购计划未审核,禁止复核');
  278. return;
  279. }
  280. layer.confirm('确定要复核吗?', function(index){
  281. layer.close(index);
  282. layui.admin.req({
  283. url: '/purchase/purchase/check/?c_type=check2&status=1&id='+data.id
  284. ,done: function(res){
  285. table.reload('datagrid',{});
  286. }
  287. });
  288. });
  289. });
  290. $('#btn_check2_back').on('click', function(){
  291. var data = utils.getSelectedRow('datagrid');
  292. if(!data.check_user2){
  293. layer.msg('该采购计划未复核,禁止撤销复核');
  294. return;
  295. }
  296. if(data.check_user3){
  297. layer.msg('该采购计划已批准,禁止撤销复核');
  298. return;
  299. }
  300. layer.confirm('确定要撤销复核吗?', function(index){
  301. layer.close(index);
  302. layui.admin.req({
  303. url: '/purchase/purchase/check/?c_type=check2&status=0&id='+data.id
  304. ,done: function(res){
  305. table.reload('datagrid',{});
  306. }
  307. });
  308. });
  309. });
  310. $('#btn_check3').on('click', function(){
  311. var data = utils.getSelectedRow('datagrid');
  312. if(data.check_user3){
  313. layer.msg('该采购计划已批准');
  314. return;
  315. }
  316. if(!data.check_user2){
  317. layer.msg('该采购计划未复核,禁止批准');
  318. return;
  319. }
  320. layer.confirm('确定要批准吗?', function(index){
  321. layer.close(index);
  322. layui.admin.req({
  323. url: '/purchase/purchase/check/?c_type=check3&status=1&id='+data.id
  324. ,done: function(res){
  325. table.reload('datagrid',{});
  326. }
  327. });
  328. });
  329. });
  330. $('#btn_check3_back').on('click', function(){
  331. var data = utils.getSelectedRow('datagrid');
  332. if(!data.check_user3){
  333. layer.msg('该计划未批准,禁止撤销批准');
  334. return;
  335. }
  336. layer.confirm('确定要撤销批准吗?', function(index){
  337. layer.close(index);
  338. layui.admin.req({
  339. url: '/purchase/purchase/check/?c_type=check3&status=0&id='+data.id
  340. ,done: function(res){
  341. table.reload('datagrid',{});
  342. }
  343. });
  344. });
  345. });**/
  346. $('#btn_edit_price').on('click', function(){
  347. var data = utils.getSelectedRow('datagrid');
  348. if(data == false){
  349. return;
  350. }
  351. if(data.status == 0){
  352. layer.msg('请先审核计划');
  353. return false;
  354. }
  355. layer.open({
  356. type: 2,
  357. title: '修改询价',
  358. shadeClose: false,
  359. area: ['50%', '90%'],
  360. btn: ['保存', '取消'],
  361. yes: function(index, dom){
  362. layui.onSubmitChild = function (data) {
  363. layer.close(index);
  364. table.reload('datagrid',{});
  365. };
  366. layui.submitChild();
  367. },
  368. btn2: function(index, layero){
  369. layer.close(index);//关闭当前按钮
  370. },
  371. content: 'purchase_price_user_edit.html?id='+data.id
  372. });
  373. });
  374. $('#btn_detail_export').on('click', function(){
  375. var data = utils.getSelectedRow('datagrid');
  376. if(data == false){
  377. return;
  378. }
  379. layui.admin.req({
  380. url: '/purchase/purchase/export/?id='+data.id,
  381. data:_params,
  382. done: function (res) {
  383. layui.view.download(res.data.filename);
  384. }
  385. });
  386. });
  387. $('#btn_export_price').on('click', function(){
  388. var data = utils.getSelectedRow('datagrid');
  389. if(data == false){
  390. return;
  391. }
  392. layui.admin.req({
  393. url: '/purchase/purchase/price_export/?id='+data.id,
  394. data:_params,
  395. done: function (res) {
  396. layui.view.download(res.data.filename);
  397. }
  398. });
  399. });
  400. $('#btn_add_user').on('click', function(){
  401. var data = utils.getSelectedRow('datagrid');
  402. if(data == false){
  403. return;
  404. }
  405. if(data.status == 0){
  406. layer.msg('请先审核计划');
  407. return false;
  408. }
  409. layer.open({
  410. type: 2,
  411. title: '采购员',
  412. shadeClose: false,
  413. area: ['500px', '90%'],
  414. btn: ['添加', '取消'],
  415. yes: function(index, dom){
  416. layui.onSubmitChild = function (data) {
  417. layer.close(index);
  418. table.reload('datagrid',{});
  419. };
  420. layui.submitChild();
  421. },
  422. btn2: function(index, layero){
  423. layer.close(index);//关闭当前按钮
  424. },
  425. content: 'purchase_user.html?id='+data.id
  426. });
  427. });
  428. $('#btn_add_price').on('click', function(){
  429. var data = utils.getSelectedRow('datagrid');
  430. if(data == false){
  431. return;
  432. }
  433. if(data.status == 0){
  434. layer.msg('请先审核计划');
  435. return false;
  436. }
  437. table.editdata = data;
  438. layer.open({
  439. type: 2,
  440. title: '询价汇总' + '[' + data.no + ']',
  441. shadeClose: false,
  442. area: ['90%', '90%'],
  443. btn: ['生成合同', '取消'],
  444. yes: function(index, dom){
  445. layui.onSubmitChild = function (data) {
  446. layer.close(index);
  447. layer.msg('采购合同创建成功', {icon: 6});
  448. table.reload('datagrid',{});
  449. };
  450. layui.submitChild();
  451. },
  452. btn2: function(index, layero){
  453. layer.close(index);//关闭当前按钮
  454. },
  455. content: 'purchase_price_order.html?id='+data.id
  456. });
  457. });
  458. $('#btn_add').on('click', function(){
  459. layer.open({
  460. type: 2,
  461. title: '添加',
  462. area: ['90%', '90%'],
  463. btn: ['保存', '取消'],
  464. yes: function(index, dom){
  465. layui.onSubmitChild = function (data) {
  466. layer.close(index);
  467. table.reload('datagrid',{});
  468. };
  469. layui.submitChild();
  470. },
  471. btn2: function(index, layero){
  472. layer.close(index);//关闭当前按钮
  473. },
  474. content: 'purchase_edit.html'
  475. });
  476. });
  477. $('#btn_print').on('click', function(){
  478. var data = utils.getSelectedRow('datagrid');
  479. if(data.status != '1' ){
  480. layer.msg('该采购计划未通过审核,禁止打印');
  481. return;
  482. }
  483. if(data == false){
  484. return;
  485. }
  486. layer.open({
  487. type: 2,
  488. title: '打印',
  489. shadeClose: true,
  490. area: ['90%', '90%'],
  491. btn: ['打印', '取消'],
  492. yes: function (index, dom) {
  493. layui.onSubmitChild = function(data){
  494. layer.close(index);
  495. };
  496. layui.submitChild();
  497. },
  498. btn2: function(index, layero){
  499. layer.close(index);//关闭当前按钮
  500. },
  501. content: 'purchase_print.html?id='+data.id
  502. });
  503. });
  504. $('#btn_query').on('click', function(){
  505. layer.open({
  506. type: 1,
  507. shadeClose: true,
  508. area: ['500px', '350px'],
  509. title: '查询',
  510. btn: ['查询'],
  511. yes: function(index, dom){
  512. $('#query_btn').click();
  513. },
  514. content: $('#dlg_query')
  515. });
  516. });
  517. form.on('submit(query-form-element)', function(data){
  518. //layer.msg(JSON.stringify(data.field));
  519. _params = data.field;
  520. table.reload('datagrid', {
  521. where: data.field,
  522. page:{curr:1}
  523. });
  524. layer.closeAll();
  525. return false
  526. });
  527. $('#btn_download').on('click', function () {
  528. layui.view.download("/static/xls/采购计划导入模板.xlsx");
  529. });
  530. $('#btn_import').on('click', function () {
  531. layer.open({
  532. type: 2,
  533. title: '导入',
  534. shadeClose: false,
  535. area: ['600px', '400px'],
  536. btn: ['选择文件并执行', '取消'],
  537. yes: function (index, dom) {
  538. layui.onSubmitChild = function (data) {
  539. layer.close(index);
  540. table.reload('datagrid', {});
  541. };
  542. layui.submitChild();
  543. },
  544. btn2: function (index, layero) {
  545. layer.close(index);//关闭当前按钮
  546. },
  547. content: 'purchase_import.html'
  548. });
  549. });
  550. laydate.render({
  551. elem: '#create_time'
  552. ,range: true
  553. });
  554. })
  555. </script>
  556. </body>
  557. </html>