parts.js 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385
  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 : 'qingdongams/parts/parts/index',
  8. add_url : 'qingdongams/parts/parts/add',
  9. detail_url : 'qingdongams/parts/parts/detail',
  10. del_url : 'qingdongams/parts/parts/del',
  11. table : 'parts',
  12. }
  13. });
  14. var table = $("#table");
  15. var q = {};
  16. location.search.replace(/([^?&=]+)=([^&]+)/g,(_,k,v)=>q[k]=v);
  17. var isselect=false;
  18. if (q.isselect == 1) {
  19. isselect= true;
  20. }
  21. // 初始化表格
  22. table.bootstrapTable({
  23. url : $.fn.bootstrapTable.defaults.extend.index_url,
  24. pk : 'id',
  25. sortName : 'id',
  26. fixedColumns : true,
  27. fixedNumber : 2,
  28. columns : [
  29. [
  30. {checkbox: true},
  31. {
  32. field: 'name', title: '物料名称', operate: "like", fixedColumns: true, formatter: function (value, row, index) {
  33. return "<a href='javascript:void(0);' data-id='" + row.id + "' class='show-detail'>" + value + "</a>";
  34. }
  35. },
  36. {field: 'num', title: '物料编号', operate: "like"},
  37. {field: 'img', title: '物料图片', formatter: Table.api.formatter.image, operate: false},
  38. {field: 'unit', title: '单位'},
  39. {field: 'stock', title: '剩余库存', operate: false, formatter: function (value, row, index) {
  40. if (row.stock < row.warning_stock){
  41. return "<span style='color: red'>" + value + "</span>";
  42. }else{
  43. return value;
  44. }
  45. }},
  46. {field: 'warning_stock', title: '预警库存', operate: false},
  47. {field: 'price', title: '标准价格', operate: false},
  48. {field: 'description', title: '描述'},
  49. {
  50. field: 'operate2', title: __('Operate'), operate: false, events: {
  51. 'click .btn-chooseone': function (e, value, row, index) {
  52. Fast.api.close({id: row.id, name: row.name});
  53. },
  54. },visible:isselect, formatter: function () {
  55. return '<a href="javascript:;" class="btn btn-danger btn-chooseone btn-xs"><i class="fa fa-check"></i> ' + __('Choose') + '</a>';
  56. }
  57. },
  58. {field: 'operate', title: __('Operate'), operate: false, table: table, events: Table.api.events.operate,
  59. formatter: Table.api.formatter.buttons,visible:!isselect,
  60. buttons: [
  61. {
  62. name: 'edit',
  63. text: __('编辑'),
  64. title: __('编辑'),
  65. extend:'data-area=["90%","90%"]',
  66. classname: 'btn-xs records btn-dialog',
  67. url: 'qingdongams/parts/parts/edit',
  68. visible: function (row) {
  69. //返回true时按钮显示,返回false隐藏
  70. return true;
  71. }
  72. },
  73. {
  74. name: 'import',
  75. text: __('物料入库'),
  76. title: __('物料入库'),
  77. icon: 'fa fa-add',
  78. classname: 'btn-xs btn-chuku btn-dialog',
  79. url: 'qingdongams/parts/parts/import'+ location.search,
  80. extend: 'data-area=\'["70%","70%"]\'',
  81. },
  82. {
  83. name: 'export',
  84. text: __('物料出库'),
  85. title: __('物料出库'),
  86. icon: 'fa fa-add',
  87. classname: 'btn-xs btn-chuku btn-dialog',
  88. url: 'qingdongams/parts/parts/export'+ location.search,
  89. extend: 'data-area=\'["70%","70%"]\'',
  90. }
  91. ]
  92. }
  93. ]
  94. ],
  95. onLoadSuccess:function(){
  96. // 这里就是数据渲染结束后的回调函数
  97. $(".btn-add").data("area",["90%","90%"]);
  98. $(".btn-edit").data("area",["90%","90%"]);
  99. }
  100. });
  101. $(document).on('click', '.show-detail', function (data) {
  102. var area = [$(window).width() > 1200 ? '1200px' : '95%', $(window).height() > 800 ? '800px' : '95%'];
  103. var options = {
  104. shadeClose : false,
  105. shade : [0.3, '#393D49'],
  106. area : area,
  107. callback : function (value) {
  108. //在回调函数里可以调用你的业务代码实现前端的各种逻辑和效果
  109. console.log(value);
  110. }
  111. };
  112. Fast.api.open($.fn.bootstrapTable.defaults.extend.detail_url + "?ids=" + $(this).data('id'), '备件详情', options);
  113. });
  114. // 为表格绑定事件
  115. Table.api.bindevent(table);
  116. },
  117. add : function () {
  118. Controller.api.bindevent();
  119. },
  120. edit : function () {
  121. Controller.api.bindevent();
  122. },
  123. export : function () {
  124. Controller.api.bindevent();
  125. },
  126. import : function () {
  127. Controller.api.bindevent();
  128. },
  129. log_info : function () {
  130. $('.btn-ajax').data("success", function(data, ret){
  131. //处理回调
  132. location.reload();
  133. })
  134. Controller.api.bindevent();
  135. },
  136. logs: function () {
  137. // 初始化表格参数配置
  138. Table.api.init({
  139. extend: {
  140. index_url: 'qingdongams/parts/parts/logs',
  141. table: 'examine'
  142. }
  143. });
  144. var table = $("#table");
  145. table.bootstrapTable({
  146. url: $.fn.bootstrapTable.defaults.extend.index_url,
  147. sortName: 'id',
  148. columns: [
  149. [
  150. {field: 'state', checkbox: true,},
  151. {
  152. field: 'parts.create_staff.name',
  153. title: __('提交人'),
  154. operate: false,
  155. searchList: $.getJSON("qingdongams/customer/customer/stafflist")
  156. },
  157. {
  158. field: 'parts.odd_numbers',
  159. title: '申请编号',
  160. fixedColumns: true,
  161. formatter: function (value, row, index) {
  162. return "<a href='javascript:void(0);' data-id='" + row.parts.id + "' class='show-log_info'>" + value + "</a>";
  163. },
  164. operate: false
  165. },
  166. {
  167. field: 'parts.type',
  168. title: '出库/入库',
  169. operate: false,
  170. formatter: Table.api.formatter.status,
  171. searchList: {1: __('入库'), 2: __('出库')}
  172. },
  173. {field: 'parts.storage_time', title: '出入库时间', operate: false},
  174. {field: 'check_staff.name', title: __('审批人'), operate: false},
  175. {
  176. field: 'status',
  177. title: __('审批状态'),
  178. operate: '=',
  179. formatter: Table.api.formatter.status,
  180. searchList: {0: __('待审批'), 1: __('审批通过'), 2: __('审批拒绝'), 3: __('撤销')}
  181. },
  182. {
  183. field: 'createtime',
  184. title: __('创建时间'),
  185. formatter: Table.api.formatter.datetime,
  186. operate: 'RANGE',
  187. addclass: 'datetimerange'
  188. },
  189. ]
  190. ],
  191. //启用普通表单搜索
  192. commonSearch: true,
  193. searchFormVisible: true,
  194. });
  195. $(document).on('click', '.show-log_info', function (data) {
  196. var area = [$(window).width() > 1200 ? '1200px' : '95%', $(window).height() > 800 ? '800px' : '95%'];
  197. var options = {
  198. shadeClose: false,
  199. shade: [0.3, '#393D49'],
  200. area: area,
  201. end: function (value) {
  202. //在回调函数里可以调用你的业务代码实现前端的各种逻辑和效果
  203. $(".btn-refresh").trigger("click");
  204. }
  205. };
  206. Fast.api.open("qingdongams/parts/parts/log_info?ids=" + $(this).data('id'), '出入库详情', options);
  207. });
  208. },
  209. detail : function () {
  210. Table.api.init({});
  211. //编辑
  212. $(document).on('click', '.btn-edit', function () {
  213. var id = $('#ids').val();
  214. Fast.api.open("qingdongams/parts/parts/edit?ids=" + id, "备件编辑", {
  215. shadeClose : false,
  216. shade : false,
  217. maxmin : false,
  218. moveOut : false,
  219. scrollbars : false,
  220. area:["90%","90%"],
  221. callback : function () {
  222. location.reload();
  223. }
  224. });
  225. }).on('click', ".btn-del", function () {//删除
  226. var id = $('#ids').val();
  227. Layer.confirm('确定删除当前产品吗?', {
  228. btn : ['确定', '取消'],
  229. title : '提示',
  230. }, function (index, layero) {
  231. Fast.api.ajax("qingdongams/parts/parts/del?ids=" + id, function (data, ret) {
  232. if (ret.code == 1) {
  233. Layer.close(index);
  234. parent.location.reload();
  235. }
  236. }, function (data, ret) {
  237. });
  238. });
  239. });
  240. //库存变更记录
  241. var table = $("#stock_table");
  242. table.bootstrapTable({
  243. url : 'qingdongams/parts/parts/get_stock_record' + location.search,
  244. pk : 'id',
  245. sortName : 'id',
  246. operate : false,
  247. commonSearch : false,
  248. search : false,
  249. visible : false,
  250. showColumns : false,
  251. showExport : false,
  252. showToggle : false,
  253. columns : [
  254. [
  255. {field: 'create_staff.name',title: __('提交人'),operate: false,},
  256. {field: 'odd_numbers',title: '申请编号',fixedColumns: true,formatter: function (value, row, index) {
  257. return "<a href='javascript:void(0);' data-id='" + row.id + "' class='show-log_info'>" + value + "</a>";
  258. },operate: false
  259. },
  260. {field: 'type',title: '出库/入库',operate: false,formatter: Table.api.formatter.status,
  261. searchList: {1: __('入库'), 2: __('出库')}},
  262. {field: 'number', title: '数量', operate: false},
  263. {field: 'storage_time', title: '出入库时间', operate: false},
  264. {field: 'createtime',title: __('创建时间'),operate: false},
  265. ]
  266. ]
  267. });
  268. //库存审批记录
  269. var table1 = $("#examine_table");
  270. table1.bootstrapTable({
  271. url: 'qingdongams/parts/parts/logs' + location.search,
  272. sortName: 'id',
  273. columns: [
  274. [
  275. {field: 'state', checkbox: true,},
  276. {
  277. field: 'parts.create_staff.name',
  278. title: __('提交人'),
  279. operate: false,
  280. searchList: $.getJSON("qingdongams/customer/customer/stafflist")
  281. },
  282. {
  283. field: 'parts.odd_numbers',
  284. title: '申请编号',
  285. fixedColumns: true,
  286. formatter: function (value, row, index) {
  287. return "<a href='javascript:void(0);' data-id='" + row.parts.id + "' class='show-log_info'>" + value + "</a>";
  288. },
  289. operate: 'LIKE'
  290. },
  291. {
  292. field: 'parts.type',
  293. title: '出库/入库',
  294. operate: '=',
  295. formatter: Table.api.formatter.status,
  296. searchList: {1: __('入库'), 2: __('出库')}
  297. },
  298. {field: 'parts.storage_time', title: '出入库时间', operate: false},
  299. {field: 'check_staff.name', title: __('审批人'), operate: false},
  300. {
  301. field: 'status',
  302. title: __('审批状态'),
  303. operate: '=',
  304. formatter: Table.api.formatter.status,
  305. searchList: {0: __('待审批'), 1: __('审批通过'), 2: __('审批拒绝'), 3: __('撤销')}
  306. },
  307. {
  308. field: 'createtime',
  309. title: __('创建时间'),
  310. formatter: Table.api.formatter.datetime,
  311. operate: 'RANGE',
  312. addclass: 'datetimerange'
  313. },
  314. ]
  315. ],
  316. //启用普通表单搜索
  317. commonSearch: true,
  318. searchFormVisible: false,
  319. search : false,
  320. });
  321. $(document).on('click', '.show-log_info', function (data) {
  322. var area = [$(window).width() > 1200 ? '1200px' : '95%', $(window).height() > 800 ? '800px' : '95%'];
  323. var options = {
  324. shadeClose: false,
  325. shade: [0.3, '#393D49'],
  326. area: area,
  327. end: function (value) {
  328. //在回调函数里可以调用你的业务代码实现前端的各种逻辑和效果
  329. $(".btn-refresh").trigger("click");
  330. }
  331. };
  332. Fast.api.open("qingdongams/parts/parts/log_info?ids=" + $(this).data('id'), '出入库详情', options);
  333. });
  334. $('.btn-ajax').data("success", function(data, ret){
  335. //处理回调
  336. location.reload();
  337. })
  338. // 为表格绑定事件
  339. Table.api.bindevent(table);
  340. Controller.api.bindevent();
  341. },
  342. api : {
  343. bindevent : function () {
  344. $(document).on('click', '.product', function (data) {
  345. var product_id = $(this).attr('data-value')
  346. var area = [$(window).width() > 1200 ? '1200px' : '95%', $(window).height() > 800 ? '800px' : '95%'];
  347. var options = {
  348. shadeClose : false,
  349. shade : [0.3, '#393D49'],
  350. area : area,
  351. callback : function (value) {
  352. //在回调函数里可以调用你的业务代码实现前端的各种逻辑和效果
  353. console.log(value);
  354. }
  355. };
  356. Fast.api.open("qingdongams/parts/parts/detail?ids=" + product_id, '备件详情', options);
  357. });
  358. Form.api.bindevent($("form[role=form]"));
  359. }
  360. }
  361. };
  362. return Controller;
  363. });