check.js 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420
  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: 'item/check/index' + location.search,
  8. add_url: 'item/check/add',
  9. edit_url: 'item/check/edit',
  10. del_url: 'item/check/del',
  11. multi_url: 'item/check/multi',
  12. import_url: 'item/check/import',
  13. table: 'item_check',
  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. columns: [
  25. [
  26. {checkbox: true},
  27. {field: 'id', title: '序号',operate: false},
  28. {field: 'name', title: __('Name'), operate: 'LIKE'},
  29. {field: 'check_no', title: __('Check_no'), operate: 'LIKE'},
  30. {field: 'check_name', title: __('Check_name'), operate: 'LIKE'},
  31. {field: 'unit', title: __('Unit'), operate: false},
  32. {field: 'check_max', title: __('Check_max'), operate: false},
  33. {field: 'check_min', title: __('Check_min'), operate: false},
  34. {field: 'class', title: __('Class'), operate: 'LIKE'},
  35. {field: 'scope', title: __('Scope'), operate: 'LIKE'},
  36. {field: 'status', title: __('Status'), operate: false,searchList: {"1":__('Status 1'),"0":__('Status 0')}, formatter: Table.api.formatter.status},
  37. {field: 'remark', title: __('Remark'), operate: false},
  38. {field: 'is_child', title: __('Is_child'), searchList: {"0":__('Is_child 0'),"1":__('Is_child 1')}, formatter: Table.api.formatter.normal},
  39. // {field: 'create', title: __('Create'), operate:'RANGE', addclass:'datetimerange', autocomplete:false},
  40. {field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate, formatter: Table.api.formatter.operate}
  41. ]
  42. ]
  43. });
  44. $(".btn-add").data("area", ["100%","100%"]);
  45. $(".btn-edit").data("area", ["100%","100%"]);
  46. table.on('post-body.bs.table', function (e, settings, json, xhr) {
  47. $(".btn-editone").data("area", ["100%", "100%"]);
  48. });
  49. // 为表格绑定事件
  50. Table.api.bindevent(table);
  51. },
  52. recyclebin: function () {
  53. // 初始化表格参数配置
  54. Table.api.init({
  55. extend: {
  56. 'dragsort_url': ''
  57. }
  58. });
  59. var table = $("#table");
  60. // 初始化表格
  61. table.bootstrapTable({
  62. url: 'item/check/recyclebin' + location.search,
  63. pk: 'id',
  64. sortName: 'id',
  65. columns: [
  66. [
  67. {checkbox: true},
  68. {field: 'id', title: '序号'},
  69. {field: 'name', title: __('Name'), align: 'left'},
  70. {
  71. field: 'deletetime',
  72. title: __('Deletetime'),
  73. operate: 'RANGE',
  74. addclass: 'datetimerange',
  75. formatter: Table.api.formatter.datetime
  76. },
  77. {
  78. field: 'operate',
  79. width: '140px',
  80. title: __('Operate'),
  81. table: table,
  82. events: Table.api.events.operate,
  83. buttons: [
  84. {
  85. name: 'Restore',
  86. text: __('Restore'),
  87. classname: 'btn btn-xs btn-info btn-ajax btn-restoreit',
  88. icon: 'fa fa-rotate-left',
  89. url: 'item/check/restore',
  90. refresh: true
  91. },
  92. {
  93. name: 'Destroy',
  94. text: __('Destroy'),
  95. classname: 'btn btn-xs btn-danger btn-ajax btn-destroyit',
  96. icon: 'fa fa-times',
  97. url: 'item/check/destroy',
  98. refresh: true
  99. }
  100. ],
  101. formatter: Table.api.formatter.operate
  102. }
  103. ]
  104. ]
  105. });
  106. // 为表格绑定事件
  107. Table.api.bindevent(table);
  108. },
  109. add: function () {
  110. $('#c-is_child').change(function () {
  111. var is_child = $('#c-is_child option:selected').val();
  112. var name = $('#c-name').val();
  113. $('.p_name').val(name);
  114. if (is_child == 1){
  115. document.getElementById("detail").style.display="block";//显示
  116. }else{
  117. document.getElementById("detail").style.display="none";//隐藏
  118. }
  119. })
  120. //增加一行
  121. $(document).on('click','.add',function () {
  122. var name = $('#c-name').val();
  123. var html = '';
  124. html += '<tr><td><input class="form-control p_name" name="row[][p_name]" type="text" value="'+name+'"></td>';
  125. html += '<td><input class="form-control child_name" name="row[][child_name]" type="text"></td>';
  126. html += '<td><input class="form-control child_unit" name="row[][child_unit]" type="text"></td>';
  127. html += '<td><input class="form-control child_check_max" name="row[][child_check_max]" type="text"></td>';
  128. html += '<td><input class="form-control child_check_min" name="row[][child_check_min]" type="text"></td>';
  129. html += '<td style="text-align: center"> <button type="button" class="btn btn-success add">添加</button>&nbsp;&nbsp; <button type="button" class="btn btn-danger del">删除</button></td>';
  130. html += '</tr>'
  131. $('#check_child').append(html);
  132. })
  133. //删除一行
  134. $(document).on('click','.del',function () {
  135. var num = document.getElementById("check_child").getElementsByTagName("tr").length;
  136. console.log(num)
  137. if (num <= 2){
  138. layer.confirm('已经是最后一行了');
  139. }else{
  140. $(this).parent().parent().remove();
  141. }
  142. });
  143. Controller.api.bindevent();
  144. $(document).on('click','.submit',function () {
  145. Form.api.bindevent($("form[role=form]"), function(data, ret){
  146. Toastr.success('111');//成功
  147. }, function(data, ret){
  148. Toastr.success("222");
  149. }, function(success, error){
  150. //项目名称
  151. var name = $('#c-name').val();
  152. if (name == '' || name== undefined) {
  153. layer.confirm("项目名称不能为空");return false;
  154. }
  155. //检测标准编码
  156. var check_no = $('#c-check_no').val();
  157. if (check_no == '' || check_no== undefined) {
  158. layer.confirm("检测标准编号不能为空");return false;
  159. }
  160. //检测标准名称
  161. var check_name = $('#c-check_name').val();
  162. if (check_name == '' || check_name== undefined) {
  163. layer.confirm("检测标准名称不能为空");return false;
  164. }
  165. var unit = $('#c-unit').val(); //单位
  166. var check_max = $('#c-check_max').val(); //检出限
  167. var check_min = $('#c-check_min').val(); //定量限
  168. //标准类别
  169. var c_class = $('#c-class').val();
  170. if (c_class == '' || c_class== undefined) {
  171. layer.confirm("标准类别不能为空");return false;
  172. }
  173. //认证范围
  174. var scope = $('#c-scope').val();
  175. if (scope == '' || scope== undefined) {
  176. layer.confirm("认证范围不能为空");return false;
  177. }
  178. var status = $("input[name='row[status]']:checked").val(); //状态
  179. var remark = $('#c-remark').val(); //备注
  180. var is_child = $('#c-is_child option:selected').val(); //是否有子项
  181. var create = $('#c-create').val(); //创建时间
  182. if (is_child == 0 && (check_min == '' || check_max == '')){
  183. layer.confirm("没有子项,检出限和定量限不能为空");return false;
  184. }
  185. //基础数据
  186. var baseData = [];
  187. baseData.push(name);
  188. baseData.push(check_no);
  189. baseData.push(check_name);
  190. baseData.push(unit);
  191. baseData.push(check_max);
  192. baseData.push(check_min);
  193. baseData.push(c_class);
  194. baseData.push(scope);
  195. baseData.push(status);
  196. baseData.push(remark);
  197. baseData.push(is_child);
  198. baseData.push(create);
  199. //检测子项数据
  200. var data = [];
  201. if (is_child == 1){//有检测子项就传递数据
  202. var formulaTrList = $("#check_child").find("tr");//行数
  203. for (var i = 1; i < formulaTrList.length; i++) {
  204. var formulaData = [];
  205. var formulaTrArr=formulaTrList.eq(i);
  206. var tdOne = formulaTrArr.children("td").eq(0).find("input").val();
  207. var tdTwo = formulaTrArr.children("td").eq(1).find("input").val();
  208. var tdThr = formulaTrArr.children("td").eq(2).find("input").val();
  209. var tdFou = formulaTrArr.children("td").eq(3).find("input").val();
  210. var tdFiv = formulaTrArr.children("td").eq(4).find("input").val();
  211. if (tdOne == '' || tdTwo == '' || tdThr == '' || tdFou == '' || tdFiv == '' ){
  212. layer.confirm('检测子项信息不能为空!');return false;
  213. }
  214. formulaData.push(tdOne);
  215. formulaData.push(tdTwo);
  216. formulaData.push(tdThr);
  217. formulaData.push(tdFou);
  218. formulaData.push(tdFiv);
  219. data.push(formulaData);
  220. }
  221. }
  222. console.log("到这里了");
  223. console.log(baseData);
  224. console.log(data);
  225. // return false;
  226. Fast.api.ajax({
  227. url:'item/check/add',
  228. data:{baseData:baseData,data:data}
  229. },function (data,ret) {
  230. //成功回调
  231. parent.Toastr.success("添加成功");
  232. Fast.api.close();
  233. parent.Fast.api.refreshmenu();
  234. return false;
  235. },function (data,ret) {
  236. parent.Toastr.error("添加失败");
  237. Fast.api.close();
  238. return false;
  239. });
  240. return false;
  241. });
  242. });
  243. },
  244. edit: function () {
  245. $('#c-is_child').change(function () {
  246. var is_child = $('#c-is_child option:selected').val();
  247. var name = $('#c-name').val();
  248. var detail = document.getElementById("detail");
  249. $('.p_name').val(name);
  250. if (is_child == 1){
  251. if (detail == null || detail == 'undefined'){
  252. document.getElementById("detail_zero").style.display="block";//显示
  253. }else{
  254. document.getElementById("detail").style.display="block";//显示
  255. }
  256. }else{
  257. if (detail == null || detail == 'undefined'){
  258. document.getElementById("detail_zero").style.display="none";//隐藏
  259. }else{
  260. document.getElementById("detail").style.display="none";//隐藏
  261. }
  262. }
  263. })
  264. //增加一行
  265. $(document).on('click','.add',function () {
  266. var name = $('#c-name').val();
  267. var html = '';
  268. html += '<tr><td><input class="form-control p_name" name="row[][p_name]" type="text" value="'+name+'"></td>';
  269. html += '<td><input class="form-control child_name" name="row[][child_name]" type="text"></td>';
  270. html += '<td><input class="form-control child_unit" name="row[][child_unit]" type="text"></td>';
  271. html += '<td><input class="form-control child_check_max" name="row[][child_check_max]" type="text"></td>';
  272. html += '<td><input class="form-control child_check_min" name="row[][child_check_min]" type="text"></td>';
  273. html += '<td style="text-align: center"><input type="hidden" value=""> <button type="button" class="btn btn-success add">添加</button>&nbsp;&nbsp; <button type="button" class="btn btn-danger del">删除</button></td>';
  274. html += '</tr>'
  275. var detail = document.getElementById("detail");
  276. if (detail == null || detail == 'undefined'){
  277. $('#check_child_zero').append(html);
  278. }else{
  279. $('#check_child').append(html);
  280. }
  281. })
  282. //删除一行
  283. $(document).on('click','.del',function () {
  284. var detail = document.getElementById("detail");
  285. if (detail == null || detail == 'undefined'){
  286. var num = document.getElementById("check_child_zero").getElementsByTagName("tr").length;
  287. }else{
  288. var num = document.getElementById("check_child").getElementsByTagName("tr").length;
  289. }
  290. console.log(num)
  291. if (num <= 2){
  292. layer.confirm('已经是最后一行了');
  293. }else{
  294. $(this).parent().parent().remove();
  295. }
  296. });
  297. Controller.api.bindevent();
  298. $(document).on('click','.submit',function () {
  299. Form.api.bindevent($("form[role=form]"), function(data, ret){
  300. Toastr.success('111');//成功
  301. }, function(data, ret){
  302. Toastr.success("222");
  303. }, function(success, error){
  304. //项目名称
  305. var name = $('#c-name').val();
  306. if (name == '' || name== undefined) {
  307. layer.confirm("项目名称不能为空");return false;
  308. }
  309. //检测标准编码
  310. var check_no = $('#c-check_no').val();
  311. if (check_no == '' || check_no== undefined) {
  312. layer.confirm("检测标准编号不能为空");return false;
  313. }
  314. //检测标准名称
  315. var check_name = $('#c-check_name').val();
  316. if (check_name == '' || check_name== undefined) {
  317. layer.confirm("检测标准名称不能为空");return false;
  318. }
  319. var unit = $('#c-unit').val(); //单位
  320. var check_max = $('#c-check_max').val(); //检出限
  321. var check_min = $('#c-check_min').val(); //定量限
  322. //标准类别
  323. var c_class = $('#c-class').val();
  324. if (c_class == '' || c_class== undefined) {
  325. layer.confirm("标准类别不能为空");return false;
  326. }
  327. //认证范围
  328. var scope = $('#c-scope').val();
  329. if (scope == '' || scope== undefined) {
  330. layer.confirm("认证范围不能为空");return false;
  331. }
  332. var status = $("input[name='row[status]']:checked").val(); //状态
  333. var remark = $('#c-remark').val(); //备注
  334. var is_child = $('#c-is_child option:selected').val(); //是否有子项
  335. var create = $('#c-create').val(); //创建时间
  336. var id = $('#pid').val();
  337. if (is_child == 0 && (check_min == '' || check_max == '')){
  338. layer.confirm("没有子项,检出限和定量限不能为空");return false;
  339. }
  340. //基础数据
  341. var baseData = [];
  342. baseData.push(name);
  343. baseData.push(check_no);
  344. baseData.push(check_name);
  345. baseData.push(unit);
  346. baseData.push(check_max);
  347. baseData.push(check_min);
  348. baseData.push(c_class);
  349. baseData.push(scope);
  350. baseData.push(status);
  351. baseData.push(remark);
  352. baseData.push(is_child);
  353. baseData.push(create);
  354. baseData.push(id);
  355. //检测子项数据
  356. var data = [];
  357. if (is_child == 1){//有检测子项就传递数据
  358. var formulaTrList = $("#check_child").find("tr");//行数
  359. for (var i = 1; i < formulaTrList.length; i++) {
  360. var formulaData = [];
  361. var formulaTrArr=formulaTrList.eq(i);
  362. var tdOne = formulaTrArr.children("td").eq(0).find("input").val();
  363. var tdTwo = formulaTrArr.children("td").eq(1).find("input").val();
  364. var tdThr = formulaTrArr.children("td").eq(2).find("input").val();
  365. var tdFou = formulaTrArr.children("td").eq(3).find("input").val();
  366. var tdFiv = formulaTrArr.children("td").eq(4).find("input").val();
  367. var tdSix= formulaTrArr.children("td").eq(5).find("input").val();
  368. if (tdSix == '' || tdSix == 'undefined'){
  369. tdSix = 0;
  370. }
  371. if (tdOne == '' || tdTwo == '' || tdThr == '' || tdFou == '' || tdFiv == '' ){
  372. layer.confirm('检测子项信息不能为空!');return false;
  373. }
  374. formulaData.push(tdOne);
  375. formulaData.push(tdTwo);
  376. formulaData.push(tdThr);
  377. formulaData.push(tdFou);
  378. formulaData.push(tdFiv);
  379. formulaData.push(tdSix);
  380. data.push(formulaData);
  381. }
  382. }
  383. console.log("到这里了");
  384. console.log(baseData);
  385. console.log(data);
  386. // return false;
  387. Fast.api.ajax({
  388. url:'item/check/edit',
  389. data:{baseData:baseData,data:data}
  390. },function (data,ret) {
  391. //成功回调
  392. parent.Toastr.success("添加成功");
  393. Fast.api.close();
  394. parent.Fast.api.refreshmenu();
  395. return false;
  396. },function (data,ret) {
  397. parent.Toastr.error("添加失败");
  398. Fast.api.close();
  399. return false;
  400. });
  401. return false;
  402. });
  403. });
  404. },
  405. api: {
  406. bindevent: function () {
  407. Form.api.bindevent($("form[role=form]"));
  408. }
  409. }
  410. };
  411. return Controller;
  412. });