formula.js 28 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613
  1. define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefined, Backend, Table, Form) {
  2. var Controller = {
  3. index: function () {
  4. // 初始化表格参数配置
  5. Table.api.init({
  6. extend: {
  7. index_url: 'formula/index' + location.search,
  8. add_url: 'formula/add',
  9. edit_url: 'formula/edit',
  10. del_url: 'formula/del',
  11. multi_url: 'formula/multi',
  12. import_url: 'formula/import',
  13. table: 'formula',
  14. }
  15. });
  16. var table = $("#table");
  17. // 初始化表格
  18. table.bootstrapTable({
  19. url: $.fn.bootstrapTable.defaults.extend.index_url,
  20. pk: 'id',
  21. sortName: 'id',
  22. fixedColumns: true,
  23. fixedRightNumber: 1,
  24. // 必须添加这个,customformtpl与html的ID一致
  25. searchFormTemplate: 'customformtpl',
  26. columns: [
  27. [
  28. {checkbox: true},
  29. {field: 'id', title: __('Id') ,operate: false},
  30. // {field: 'user_id', title: __('User_id')},
  31. // {field: 'company_id', title: __('Company_id')},
  32. // {field: 'no', title: __('No'), operate: 'LIKE'},
  33. // {field: 'formula_no', title: __('Formula_no'), operate: 'LIKE'},
  34. {field: 'name', title: __('Name'), operate: 'LIKE'},
  35. {field: 'version', title: __('Version'),operate: false},
  36. // {field: 'date', title: __('Date'), operate: 'LIKE'},
  37. // {field: 'charge_name', title: __('Charge_name'), operate: 'LIKE'},
  38. // {field: 'examine_name', title: __('Examine_name'), operate: 'LIKE'},
  39. {field: 'examine_status', title: __('Examine_status'), searchList: {"1":__('Examine_status 1'),"2":__('Examine_status 2'),"3":__('Examine_status 3')}, formatter: Table.api.formatter.status},
  40. // {field: 'remark', title: __('Remark'), operate: 'LIKE'},
  41. // {field: 'level', title: __('Level')},
  42. // {field: 'usability', title: __('Usability'), operate: 'LIKE'},
  43. // {field: 'status', title: __('Status'), searchList: {"1":__('Status 1'),"2":__('Status 2')}, formatter: Table.api.formatter.status},
  44. {field: 'create', title: __('Create'),operate: false, addclass:'datetimerange', autocomplete:false},
  45. {field: 'operate', title: '操作', buttons:[{
  46. name:'task',
  47. text:'生成作业票',
  48. title:'生成作业票',
  49. icon:'fa fa-add',
  50. extend: 'data-area=["100%","100%"]',
  51. classname:'btn btn-xs btn-info btn-fields btn-dialog task',
  52. url:'formula/task',
  53. }],
  54. table: table,
  55. events: Table.api.events.operate, formatter: Table.api.formatter.operate
  56. },
  57. // {field: 'operate', title: __('Operate'),table: table, events: Table.api.events.operate,formatter: Table.api.formatter.operate}
  58. ]
  59. ]
  60. });
  61. table.on('post-body.bs.table',function(){
  62. $(".btn-editone").data("area",["100%","100%"]);
  63. });
  64. // 为表格绑定事件
  65. Table.api.bindevent(table);
  66. },
  67. add: function () {
  68. var gy_num = 1;
  69. $('#add').click(function () {
  70. var material = $('#add_material').val();
  71. var percentage = $('#add_percentage').val();
  72. var gy_name = $('#add_gy_name').selectPageText();
  73. var html = '';
  74. html += '<tr><td><input class="form-control material" type="text" value="'+material+'"></td>';
  75. html += '<td><input class="form-control percentage" type="number" value="'+percentage+'"></td>';
  76. html += '<td><input class="form-control gy_name" type="text" value="'+gy_name+'" ></td>';
  77. html += '<td><input class="form-control gy_num" type="text" value="'+gy_num+'" ></td>';
  78. html += '<td><button type="button" class="btn btn-success up" >上移</button>&nbsp;' +
  79. '<button type="button" class="btn btn-success down" >下移</button>&nbsp;<button type="button" class="btn btn-danger del">删除</button></td></tr>';
  80. $('#gy').append(html);
  81. if (gy_name !=''){
  82. gy_num = gy_num +1;
  83. }
  84. });
  85. $(document).on('click','.del',function () {
  86. $(this).parent().parent().remove();
  87. });
  88. // 上移动
  89. $(document).on('click', '.up', function () {
  90. var ind = $(this).parents('tr').index();
  91. console.log(ind);
  92. if (ind == 1) {
  93. layer.confirm('已经是最上层了!');
  94. return false;
  95. }
  96. var trs = $(this).parents('tr').clone(true);
  97. console.log(trs);
  98. $(this).parents('table tbody').find('tr').eq(ind - 1).before(trs);
  99. $(this).parents('tr').remove();
  100. //重新添加序号
  101. // drawOrder()
  102. });
  103. //下移动
  104. $(document).on('click', '.down', function () {
  105. var ind = $(this).parents('tr').index();
  106. if (($(this).parents("tr").index()) == ($(this).parents("table tbody").find("tr").length - 1)) {
  107. layer.confirm('已经是最下层了!');
  108. return false;
  109. }
  110. var trs = $(this).parents('tr').clone(true);
  111. $(this).parents('table tbody').find('tr').eq(ind + 1).after(trs);
  112. $(this).parents('tr').remove();
  113. //重新添加序号
  114. // drawOrder();
  115. });
  116. Controller.api.bindevent();
  117. $(document).on('click','.submit',function () {
  118. Form.api.bindevent($("form[role=form]"), function(data, ret){
  119. Toastr.success('111');//成功
  120. }, function(data, ret){
  121. Toastr.success("222");
  122. }, function(success, error){
  123. var verify = 1;
  124. var name = $('#c-name').val();
  125. if (name == '' || name== undefined) {
  126. verify = -1;
  127. }
  128. var formula_no = $('#c-no').val();
  129. if (formula_no == '' || formula_no== undefined) {
  130. verify = -1;
  131. }
  132. var charge_name = $('#c-charge_name').val();
  133. if (charge_name == '' || charge_name== undefined) {
  134. verify = -1;
  135. }
  136. var examine_name = $('#c-examine_name').val();
  137. if (examine_name == '' || examine_name== undefined) {
  138. verify = -1;
  139. }
  140. var remark = $('#c-remark').val();
  141. var version = $('#c-version').val();
  142. var date = $('#c-date').val();
  143. var model = $('#c-model').val();
  144. var usability = $('#c-usability').selectPageText();
  145. if (usability == ''){
  146. usability = 99;
  147. }
  148. // console.log(usability);return false;
  149. if (verify == -1){
  150. layer.confirm("数据格式不对,请仔细核查!");return false;
  151. }
  152. //基础数据
  153. var baseData = [];
  154. baseData.push(name);
  155. baseData.push(formula_no);
  156. baseData.push(charge_name);
  157. baseData.push(examine_name);
  158. baseData.push(remark);
  159. baseData.push(version);
  160. baseData.push(date);
  161. baseData.push(usability);
  162. baseData.push(model);
  163. console.log(baseData);
  164. //配方数据
  165. var data = [];
  166. var formulaTrList = $("#gy").find("tr");//行数
  167. for (var i = 1; i < formulaTrList.length; i++) {
  168. var formulaData = [];
  169. var formulaTrArr=formulaTrList.eq(i);
  170. var tdOne = formulaTrArr.children("td").eq(0).find("input").val();
  171. var tdTwo = formulaTrArr.children("td").eq(1).find("input").val();
  172. var tdThr = formulaTrArr.children("td").eq(2).find("input").val();
  173. var tdFou = formulaTrArr.children("td").eq(3).find("input").val();
  174. if (tdOne == '' && tdTwo == '' && tdThr==''){
  175. layer.confirm('工艺信息不能全部为空!');return false;
  176. }
  177. if (tdFou == ''){
  178. layer.confirm('工序号不能为空!');return false;
  179. }
  180. formulaData.push(tdOne);
  181. formulaData.push(tdTwo);
  182. formulaData.push(tdThr);
  183. formulaData.push(tdFou);
  184. data.push(formulaData);
  185. }
  186. if (data.length == 0){
  187. layer.confirm('工艺信息不能为空!');return false;
  188. }
  189. console.log(data);
  190. // return false;
  191. Fast.api.ajax({
  192. url:'formula/add',
  193. data:{baseData:baseData,formulaData:data}
  194. },function (data,ret) {
  195. //成功回调
  196. parent.Toastr.success("添加成功");
  197. Fast.api.close();
  198. parent.Fast.api.refreshmenu();
  199. return false;
  200. },function (data,ret) {
  201. parent.Toastr.error("添加失败");
  202. Fast.api.close();
  203. return false;
  204. });
  205. return false;
  206. });
  207. });
  208. },
  209. edit: function () {
  210. $('#add').click(function () {
  211. var material = $('#add_material').val();
  212. var percentage = $('#add_percentage').val();
  213. var gy_name = $('#add_gy_name').selectPageText();
  214. var html = '';
  215. html += '<tr><td><input class="form-control material" type="text" value="'+material+'"></td>';
  216. html += '<td><input class="form-control percentage" type="number" value="'+percentage+'"></td>';
  217. html += '<td><input class="form-control gy_name" type="text" value="'+gy_name+'"></td>';
  218. html += '<td><input class="form-control gy_num" type="text" value=""></td>';
  219. html += '<td><button type="button" class="btn btn-success up" >上移</button>&nbsp;' +
  220. '<button type="button" class="btn btn-success down" >下移</button>&nbsp;<button type="button" class="btn btn-danger del">删除</button></td></tr>';
  221. $('#gy').append(html);
  222. });
  223. $(document).on('click','.del',function () {
  224. $(this).parent().parent().remove();
  225. });
  226. // 上移动
  227. $(document).on('click', '.up', function () {
  228. var ind = $(this).parents('tr').index();
  229. console.log(ind);
  230. if (ind == 1) {
  231. layer.confirm('已经是最上层了!');
  232. return false;
  233. }
  234. var trs = $(this).parents('tr').clone(true);
  235. console.log(trs);
  236. $(this).parents('table tbody').find('tr').eq(ind - 1).before(trs);
  237. $(this).parents('tr').remove();
  238. //重新添加序号
  239. // drawOrder()
  240. });
  241. //下移动
  242. $(document).on('click', '.down', function () {
  243. var ind = $(this).parents('tr').index();
  244. if (($(this).parents("tr").index()) == ($(this).parents("table tbody").find("tr").length - 1)) {
  245. layer.confirm('已经是最下层了!');
  246. return false;
  247. }
  248. var trs = $(this).parents('tr').clone(true);
  249. $(this).parents('table tbody').find('tr').eq(ind + 1).after(trs);
  250. $(this).parents('tr').remove();
  251. //重新添加序号
  252. // drawOrder();
  253. });
  254. Controller.api.bindevent();
  255. $(document).on('click','.submit',function () {
  256. Form.api.bindevent($("form[role=form]"), function(data, ret){
  257. Toastr.success('111');//成功
  258. }, function(data, ret){
  259. Toastr.success("222");
  260. }, function(success, error){
  261. var verify = 1;
  262. var ids = $('#ids').attr('data-value');
  263. var name = $('#c-name').val();
  264. if (name == '' || name== undefined) {
  265. verify = -1;
  266. }
  267. var formula_no = $('#c-no').val();
  268. if (formula_no == '' || formula_no== undefined) {
  269. verify = -1;
  270. }
  271. var charge_name = $('#c-charge_name').val();
  272. if (charge_name == '' || charge_name== undefined) {
  273. verify = -1;
  274. }
  275. var examine_name = $('#c-examine_name').val();
  276. if (examine_name == '' || examine_name== undefined) {
  277. verify = -1;
  278. }
  279. var remark = $('#c-remark').val();
  280. var version = $('#c-version').val();
  281. var date = $('#c-date').val();
  282. var model = $('#c-model').val();
  283. var usability = $('#c-usability').selectPageText();
  284. if (usability == ''){
  285. usability = 99;
  286. }
  287. // console.log(usability);return false;
  288. if (verify == -1){
  289. layer.confirm("数据格式不对,请仔细核查!");return false;
  290. }
  291. //基础数据
  292. var baseData = [];
  293. baseData.push(name);
  294. baseData.push(formula_no);
  295. baseData.push(charge_name);
  296. baseData.push(examine_name);
  297. baseData.push(remark);
  298. baseData.push(version);
  299. baseData.push(date);
  300. baseData.push(usability);
  301. baseData.push(model);
  302. console.log(baseData);
  303. //配方数据
  304. var data = [];
  305. var formulaTrList = $("#gy").find("tr");//行数
  306. for (var i = 1; i < formulaTrList.length; i++) {
  307. var formulaData = [];
  308. var formulaTrArr=formulaTrList.eq(i);
  309. var tdOne = formulaTrArr.children("td").eq(0).find("input").val();
  310. var tdTwo = formulaTrArr.children("td").eq(1).find("input").val();
  311. var tdThr = formulaTrArr.children("td").eq(2).find("input").val();
  312. var tdFou = formulaTrArr.children("td").eq(3).find("input").val();
  313. if (tdOne == '' && tdTwo == '' && tdThr==''){
  314. layer.confirm('工艺信息不能全部为空!');return false;
  315. }
  316. if (tdFou == ''){
  317. layer.confirm('工序号不能为空!');return false;
  318. }
  319. formulaData.push(tdOne);
  320. formulaData.push(tdTwo);
  321. formulaData.push(tdThr);
  322. formulaData.push(tdFou);
  323. data.push(formulaData);
  324. }
  325. if (data.length == 0){
  326. layer.confirm('工艺信息不能为空!');return false;
  327. }
  328. console.log(ids);
  329. console.log(data);
  330. // return false;
  331. Fast.api.ajax({
  332. url:'formula/edit?ids='+ids,
  333. data:{baseData:baseData,formulaData:data}
  334. },function (data,ret) {
  335. //成功回调
  336. parent.Toastr.success("添加成功");
  337. Fast.api.close();
  338. parent.Fast.api.refreshmenu();
  339. return false;
  340. },function (data,ret) {
  341. parent.Toastr.error("添加失败");
  342. Fast.api.close();
  343. return false;
  344. });
  345. return false;
  346. });
  347. });
  348. },
  349. task: function () {
  350. $('#add').click(function () {
  351. //配方获取和计算
  352. var ids = $('#ids').val();
  353. var number = $('#c-number').val();
  354. if (number == ''){
  355. layer.confirm('生产量不能为空');
  356. return false;
  357. }
  358. // var bach = $('#hidden').val();//当前批次号
  359. if($('#hidden').val() > $('#c-bach').val()){
  360. layer.confirm("批次号不能小于之前的批次", {
  361. title: ['信息'],
  362. btn: ['确认'],
  363. icon: 0,
  364. closeBtn: 2,
  365. shade: [0.3, '#000'],
  366. shadeClose: true,
  367. id: "one",
  368. anim: 2,
  369. isOutAnim: false,
  370. area: ['30%', '30%'],
  371. });
  372. return false;
  373. }
  374. //给打印界面赋值
  375. $('.total').text(number);
  376. var remark = $('#c-remark').val();
  377. remark = '备注:'+remark;
  378. $('.remark').text(remark);
  379. //给打印表头赋值
  380. var bach = $('#c-bach').val();
  381. $('#bach').text(bach);
  382. var formula = $('#c-name').val();
  383. $('#formula').val(formula);
  384. var drawer_name = $('#c-drawer_name').val();
  385. $('#drawer_name').text(drawer_name);
  386. var examine_name = $('#c-examine_name').val();
  387. $('#examine_name').text(examine_name);
  388. $.ajax({
  389. type: "POST",
  390. url: "formula/getNumber",
  391. data: {
  392. 'ids': ids,
  393. 'number': number
  394. },
  395. success:function(data) {
  396. if (1 == data.status)
  397. {
  398. var formulaTrList = $("#gy").find("tr");//行数
  399. for (var i = 1; i < formulaTrList.length; i++) {
  400. var formulaTrArr=formulaTrList.eq(i);
  401. var id = formulaTrArr.children("td").eq(2).find('input').attr('data-id');//应加量
  402. $.each(data.data,function (key,value){
  403. if (id == value.id){
  404. $('#input-'+id).val(value.num);
  405. }
  406. })
  407. }
  408. var print_gyList = $("#print_gy").find("tr");//行数
  409. for (var i = 1; i < print_gyList.length; i++) {
  410. var formulaTrArr=print_gyList.eq(i);
  411. var id = formulaTrArr.children("td").eq(1).attr('data-id');//应加量
  412. $.each(data.data,function (key,value){
  413. if (id == value.id){
  414. $('#text-'+id).text(value.num);
  415. }
  416. })
  417. }
  418. $('#formula_no').text(data.formula_no);
  419. $('#date').text(data.date);
  420. }else {
  421. layer.confirm(data.msg);
  422. }
  423. }
  424. })
  425. })
  426. Controller.api.bindevent();
  427. $(document).on('click','.submit',function () {
  428. if($('#hidden').val() > $('#c-bach').val()){
  429. layer.confirm("批次号不能小于之前的批次", {
  430. title: ['信息'],
  431. btn: ['确认'],
  432. icon: 0,
  433. closeBtn: 2,
  434. shade: [0.3, '#000'],
  435. shadeClose: true,
  436. id: "one",
  437. anim: 2,
  438. isOutAnim: false,
  439. area: ['30%', '30%'],
  440. });
  441. return false;
  442. }else{
  443. Form.api.bindevent($("form[role=form]"), function(data, ret){
  444. Toastr.success('111');//成功
  445. }, function(data, ret){
  446. Toastr.success("222");
  447. }, function(success, error){
  448. var verify = 1;
  449. var ids = $('#ids').attr('value');
  450. var name = $('#c-name').val();
  451. if (name == '' || name== undefined) {
  452. verify = -1;
  453. }
  454. var bach = $('#c-bach').val();
  455. if (bach == '' || bach== undefined) {
  456. verify = -1;
  457. }
  458. var drawer_name = $('#c-drawer_name').val();
  459. if (drawer_name == '' || drawer_name== undefined) {
  460. verify = -1;
  461. }
  462. var examine_name = $('#c-examine_name').val();
  463. if (examine_name == '' || examine_name== undefined) {
  464. verify = -1;
  465. }
  466. var number = $('#c-number').val();
  467. var remark = $('#c-remark').val();
  468. var mid = $('#c-mid').val();
  469. var oid = $('#c-order-uncompleted').val();
  470. if (verify == -1){
  471. layer.confirm("数据格式不对,请仔细核查!");return false;
  472. }
  473. //基础数据
  474. var baseData = [];
  475. baseData.push(ids);
  476. baseData.push(name);
  477. baseData.push(bach);
  478. baseData.push(drawer_name);
  479. baseData.push(examine_name);
  480. baseData.push(number);
  481. baseData.push(remark);
  482. baseData.push(mid);
  483. baseData.push(oid);
  484. Fast.api.ajax({
  485. url:'formula/task?ids='+ids,
  486. data:{baseData:baseData}
  487. },function (data,ret) {
  488. //成功回调
  489. parent.Toastr.success("添加成功");
  490. Fast.api.close();
  491. parent.Fast.api.refreshmenu();
  492. return false;
  493. },function (data,ret) {
  494. parent.Toastr.error("添加失败");
  495. Fast.api.close();
  496. return false;
  497. });
  498. return false;
  499. });
  500. }
  501. });
  502. },
  503. examine:function () {
  504. // 初始化表格参数配置
  505. Table.api.init({
  506. extend: {
  507. index_url: 'formula/examine' + location.search,
  508. add_url: 'formula/add',
  509. edit_url: 'formula/examine_edit',
  510. del_url: 'formula/del',
  511. multi_url: 'formula/multi',
  512. import_url: 'formula/import',
  513. table: 'formula',
  514. }
  515. });
  516. var table = $("#table");
  517. // 初始化表格
  518. table.bootstrapTable({
  519. url: $.fn.bootstrapTable.defaults.extend.index_url,
  520. pk: 'id',
  521. sortName: 'id',
  522. fixedColumns: true,
  523. fixedRightNumber: 1,
  524. columns: [
  525. [
  526. {checkbox: true},
  527. {field: 'id', title: __('Id') ,operate: false},
  528. {field: 'name', title: __('Name'), operate: 'LIKE'},
  529. {field: 'version', title: __('Version'),operate: false},
  530. {field: 'create', title: __('Create'),operate: false, addclass:'datetimerange', autocomplete:false},
  531. {field: 'operate', title: '操作', table: table, events: Table.api.events.operate, formatter: function (value,row,index) {
  532. var that = $.extend({},this);
  533. var table = $(that.table).clone(true);
  534. $(table).data('operate-del',null)//隐藏自带删除 修改按钮
  535. $(table).data('operate-edit',null)
  536. that.table = table;
  537. return Table.api.formatter.operate.call(that,value,row,index);
  538. },
  539. buttons:[{
  540. name:'task',
  541. text:'审核配方',
  542. title:'审核配方',
  543. icon:'fa fa-add',
  544. extend: 'data-area=["100%","100%"]',
  545. classname:'btn btn-xs btn-info btn-fields btn-dialog task',
  546. url:'formula/status',
  547. }],
  548. },
  549. ]
  550. ]
  551. });
  552. table.on('post-body.bs.table',function(){
  553. $(".btn-editone").data("area",["100%","100%"]);
  554. })
  555. // 为表格绑定事件
  556. Table.api.bindevent(table);
  557. },
  558. status:function () {
  559. Controller.api.bindevent();
  560. $(document).on('click','.examine',function () {
  561. console.log(44444)
  562. var ids = $('#ids').attr('data-value');
  563. var status = $(this).attr('data-value');
  564. console.log(ids)
  565. console.log(status);
  566. if (status == ''){
  567. layer.confirm('数据错误,请重新打开页面');return false;
  568. }
  569. Fast.api.ajax({
  570. url:'formula/status?ids='+ids,
  571. data:{status:status}
  572. },function (data,ret) {
  573. //成功回调
  574. parent.Toastr.success("审核成功");
  575. Fast.api.close();
  576. parent.Fast.api.refreshmenu();
  577. return false;
  578. },function (data,ret) {
  579. parent.Toastr.error("审核失败");
  580. Fast.api.close();
  581. return false;
  582. });
  583. });
  584. },
  585. api: {
  586. bindevent: function () {
  587. Form.api.bindevent($("form[role=form]"));
  588. }
  589. }
  590. };
  591. return Controller;
  592. });