Form.js 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327
  1. /*
  2. * 描 述:单据详细
  3. */
  4. var acceptClick;
  5. var keyValue = request('keyValue');
  6. var matItems = request('matItems');
  7. var ordertype = request('ordertype');
  8. var currentColRow = null;
  9. var bootstrap = function ($, learun) {
  10. "use strict";
  11. var selectedRow = learun.frameTab.currentIframe().selectedRow;
  12. var page = {
  13. init: function () {
  14. page.bind();
  15. page.initData();
  16. },
  17. bind: function () {
  18. $('#lr_add_format').on('click', function () {
  19. currentColRow = null;
  20. learun.layerForm({
  21. id: 'FormatForm',
  22. title: '添加',
  23. url: top.$.rootUrl + '/OrderManager/Order/QueryMatItem',
  24. width: 1400,
  25. height: 800,
  26. callBack: function (id) {
  27. return top[id].acceptClick(function (data) {
  28. //if ($.isEmptyObject(data) == false)
  29. $.each(data, function (n, item) {
  30. item['F_MATNO'] = item.F_NO;
  31. item['F_MATNAME'] = item.F_NAME;
  32. item['F_UNITNO'] = item.F_BASEUNITNO;
  33. item['F_MATTYPENUM'] = item.F_MATTYPE;//物料类型
  34. item['F_FQTY'] = '0';
  35. item['F_AQTY'] = '0';
  36. item['F_CQTY'] = '0';
  37. $('#gridtable').jfGridSet('addRow', item);
  38. });
  39. });
  40. }
  41. });
  42. });
  43. //$('#lr_edit_format').on('click', function () {
  44. // currentColRow = $('#gridtable').jfGridGet('rowdata');
  45. // var _id = currentColRow ? currentColRow.itemTypeName : '';
  46. // if (learun.checkrow(_id)) {
  47. // learun.layerForm({
  48. // id: 'FormatForm',
  49. // title: '修改',
  50. // url: top.$.rootUrl + '/OrderManager/Order/QueryMatItem',
  51. // width: 450,
  52. // height: 310,
  53. // callBack: function (id) {
  54. // return top[id].acceptClick(function (data) {
  55. // $.extend(currentColRow, data);
  56. // $('#gridtable').jfGridSet('updateRow');
  57. // });
  58. // }
  59. // });
  60. // }
  61. //});
  62. $('#lr_delete_format').on('click', function () {
  63. currentColRow = null;
  64. var row = $('#gridtable').jfGridGet('rowdata');
  65. var _id = row ? row.F_NO : '';
  66. if (learun.checkrow(_id)) {
  67. learun.layerConfirm('是否确认删除该项!', function (res, index) {
  68. if (res) {
  69. $('#gridtable').jfGridSet('removeRow');
  70. top.layer.close(index); //再执行关闭
  71. }
  72. });
  73. }
  74. });
  75. $('#gridtable').jfGrid({
  76. //url: top.$.rootUrl + '/OrderManager/Order/GetOrderDtlFormData',
  77. //param: { keyValue: keyValue },
  78. headData: [
  79. {
  80. label: '物料编号', name: 'F_MATNO', width: 260, align: 'left',
  81. edit: {
  82. type: 'layer',
  83. init: function (data, $edit, rownum) {// 在点击单元格的时候触发,可以用来初始化输入控件,行数据和控件对象
  84. learun.layerForm({
  85. id: 'form22',
  86. title: 'asdfsdf',
  87. url: top.$.rootUrl + '/OrderManager/Order/QueryMatItem2',
  88. width: 1400,
  89. height: 800,
  90. //btn: ['关闭'],
  91. callBack: function (id) {
  92. return top[id].acceptClick(function (datas) {
  93. var item = datas[0];
  94. data['F_MATNO'] = item.F_NO;
  95. data['F_MATNAME'] = item.F_NAME;
  96. data['F_UNITNO'] = item.F_BASEUNITNO;
  97. data['F_MATTYPENUM'] = item.F_MATTYPE;//物料类型
  98. data['F_FQTY'] = '0';
  99. data['F_AQTY'] = '0';
  100. data['F_CQTY'] = '0';
  101. $('#gridtable').jfGridSet('updateRow', rownum);
  102. });
  103. }
  104. });
  105. },
  106. change: function (row, rownum, selectdata) {// 行数据和行号,弹层选择行的数据,如果是自定义实现弹窗方式则该方法无效
  107. row.F_MATNO = selectdata.F_NO;
  108. row.F_MATNAME = selectdata.F_NAME;
  109. row.F_FQTY = '0';
  110. row.F_AQTY = '0';
  111. row.F_CQTY = '0';
  112. row.F_UNITNO = selectdata.F_BASEUNITNO;//单位编号
  113. row.F_UNITNAME = '';//单位名称
  114. row.F_MATTYPENUM = selectdata.F_MATTYPE;//物料类型
  115. row.F_MATSTATENUM = '';//物料状态
  116. $('#gridtable').jfGridSet('updateRow', rownum);
  117. }
  118. //op: { // 如果未设置op属性可以在init中自定义实现弹窗方式
  119. // width: 1400,
  120. // height: 800,
  121. // colData: [
  122. // { label: "物料编号", name: "F_NO", width: 200, align: "left" },
  123. // { label: "物料名称", name: "F_NAME", width: 200, align: "left" },
  124. // {
  125. // label: '物料类型', name: 'F_MATTYPE', width: 80, align: "center"
  126. // , formatterAsync: function (callback, value, row) {
  127. // learun.clientdata.getAsync('dataItem', {
  128. // Rowkey: value,
  129. // GrpCode: 'EMatType',
  130. // getType: 'Num',
  131. // callback: function (item) {
  132. // callback(item.F_NAME);
  133. // }
  134. // });
  135. // }
  136. // },
  137. // { label: "单位", name: "F_BASEUNITNO", width: 80, align: "left" },
  138. // {
  139. // label: '物料状态', name: 'F_MATSTATENUM', width: 100, align: "left",
  140. // formatterAsync: function (callback, value, row) {
  141. // learun.clientdata.getAsync('dataItem', {
  142. // Rowkey: value,
  143. // GrpCode: 'EMatState',
  144. // getType: 'Num',
  145. // callback: function (item) {
  146. // callback(item.F_NAME);
  147. // }
  148. // });
  149. // },
  150. // },
  151. // { label: "", name: "", width: 80, align: "left" }
  152. // ],
  153. // url: top.$.rootUrl + '/OrderManager/Order/GetMatItemPageList',
  154. // //url: top.$.rootUrl + '/BaseManager/BaseMatItem/GetList',
  155. // //param: { itemCode: 'Client_ProductInfo' }
  156. // sidx: 'F_NO',
  157. // isPage: true,
  158. // reloadSelected: true,
  159. //}
  160. }
  161. },
  162. { label: "物料描述", name: "F_MATNAME", width: 200, align: "left" },
  163. {
  164. label: '计划量', name: 'F_FQTY', width: 100, align: "left",
  165. edit: { type: 'input' }
  166. },
  167. { label: '实际量', name: 'F_AQTY', width: 100, align: "left" },
  168. { label: '单位编号', name: 'F_UNITNO', width: 200, align: "left" },
  169. { label: '单位名称', name: 'F_UNITNAME', width: 200, align: "left" },
  170. {
  171. label: '已扫描入库量', name: 'F_CQTY', width: 100, align: "left",
  172. formatter: function (cellvalue) {
  173. return "<span style='color:red'>" + cellvalue + "</span>";
  174. },
  175. edit: { type: 'input' }
  176. },
  177. {
  178. label: '物料类型', name: 'F_MATTYPENUM', width: 200, align: "left",
  179. formatterAsync: function (callback, value, row) {
  180. learun.clientdata.getAsync('dataItem', {
  181. Rowkey: value,
  182. GrpCode: 'EMatType',
  183. getType: 'Num',
  184. callback: function (item) {
  185. callback(item.F_NAME);
  186. }
  187. });
  188. },
  189. },
  190. //{
  191. // label: '物料类型', name: 'F_MATTYPE', width: 200, align: "left",
  192. // //formatter: function (cellvalue, row) {
  193. // // return row.F_MATTYPENAME;
  194. // //}
  195. // formatterAsync: function (callback, value, row) {
  196. // learun.clientdata.getAsync('dataItem', {
  197. // Rowkey: value,
  198. // GrpCode: 'EMatType',
  199. // getType: 'Num',
  200. // callback: function (item) {
  201. // callback(item.F_NAME);
  202. // }
  203. // });
  204. // },
  205. // edit: {
  206. // type: 'select',
  207. // init: function (data, $self) {// 在点击单元格的时候触发,可以用来初始化输入控件,行数据和控件对象
  208. // learun.clientdata.getAllAsync('dataItem', {
  209. // GrpCode: 'EMatType',
  210. // callback: function (dataes) {
  211. // var list = [];
  212. // $.each(dataes, function (_index, _item) {
  213. // list.push({ id: _item.F_NUM, text: _item.F_NAME, title: _item.F_NAME, k: _index });
  214. // });
  215. // $self.lrselectRefresh({
  216. // data: list
  217. // });
  218. // }
  219. // });
  220. // },
  221. // change: function (row, num, item) {// 行数据和行号,下拉框选中数据
  222. // row.F_MATTYPENUM = item.id;
  223. // //row.F_MATTYPENAME = item.text;
  224. // $('#gridtable').jfGridSet('updateRow', row);
  225. // },
  226. // op: {
  227. // // 下拉框设置参数 和 lrselect一致
  228. // //value: 'f_column',
  229. // //text: 'f_column',
  230. // //title: 'f_remark',
  231. // //allowSearch: true
  232. // }
  233. // }
  234. //},
  235. {
  236. label: '物料状态', name: 'F_MATSTATENUM', width: 200, align: "left",
  237. formatterAsync: function (callback, value, row) {
  238. learun.clientdata.getAsync('dataItem', {
  239. Rowkey: value,
  240. GrpCode: 'EMatState',
  241. getType: 'Num',
  242. callback: function (item) {
  243. callback(item.F_NAME);
  244. }
  245. });
  246. },
  247. },
  248. { label: '移动类型', name: 'F_MOVETYPE', width: 200, align: "left" },
  249. { label: '物料条码', name: 'F_MATBARCODE', width: 200, align: "left" },
  250. { label: '批次号', name: 'F_BATCHNO', width: 200, align: "left" },
  251. { label: '版本号', name: 'F_VERSION', width: 200, align: "left" },
  252. { label: '档位', name: 'F_GEAR', width: 200, align: "left" },
  253. { label: '上传量', name: 'F_UQTY', width: 200, align: "left" },
  254. { label: 'mes使用', name: 'F_SQTY', width: 200, align: "left" },
  255. { label: '工位编号', name: 'F_WORKPOSNO', width: 200, align: "left" },
  256. { label: '工位名称', name: 'F_WORKPOSNAME', width: 200, align: "left" },
  257. { label: 'AGV站点', name: 'F_AGVWORK', width: 200, align: "left" },
  258. { label: '产线编号', name: 'F_PROLINENO', width: 200, align: "left" },
  259. { label: '产线名称', name: 'F_PROLINENAME', width: 200, align: "left" },
  260. { label: '备注', name: 'F_MEMO', width: 200, align: "left" },
  261. { label: '创建用户编号', name: 'F_ADDUSERNO', width: 200, align: "left" },
  262. { label: '创建时间', name: 'F_ADDTIME', width: 200, align: "left" },
  263. { label: '编辑用户编号', name: 'F_EDITUSERNO', width: 200, align: "left" },
  264. { label: '编辑时间', name: 'F_EDITTIME', width: 200, align: "left" },
  265. { label: '生产工单', name: 'F_DEFINE01', width: 200, align: "left" },
  266. { label: '生产工单ID', name: 'F_DEFINE02', width: 200, align: "left" },
  267. { label: '成品编号', name: 'F_DEFINE03', width: 200, align: "left" },
  268. { label: '包装方式', name: 'F_PACKMETHOD', width: 200, align: "left" },
  269. { label: '成本中心', name: 'F_COST', width: 200, align: "left" }
  270. ],
  271. //isEdit: true,
  272. //isMultiselect: true
  273. });
  274. /*检测重复项*/
  275. //$('#F_EnCode').on('blur', function () {
  276. // $.lrExistField(keyValue, 'F_EnCode', top.$.rootUrl + '/LR_SystemModule/CodeRule/ExistEnCode');
  277. //});
  278. //$('#F_FullName').on('blur', function () {
  279. // $.lrExistField(keyValue, 'F_FullName', top.$.rootUrl + '/LR_SystemModule/CodeRule/ExistFullName');
  280. //});
  281. },
  282. initData: function () {
  283. if (!!selectedRow) {
  284. $('#F_NO').attr('readonly', 'readonly');
  285. $("#F_NO").css("background-color", '#E0E0E0');
  286. keyValue = selectedRow.F_NO;
  287. var param = {};
  288. param['keyValue'] = keyValue;
  289. learun.httpAsyncPost(top.$.rootUrl + "/OrderManager/Order/GetOrderDtlFormData", param, function (res) {
  290. $('#form1').lrSetFormData(selectedRow);
  291. if (res.data.length > 0) {
  292. //var formatdata = JSON.parse(res);
  293. $('#gridtable').jfGridSet('refreshdata', res.data);
  294. }
  295. });
  296. }
  297. }
  298. };
  299. // 保存数据
  300. acceptClick = function (callBack) {
  301. if (!$('#form1').lrValidform()) {
  302. return false;
  303. }
  304. var postData = $('#form1').lrGetFormData();
  305. var formatdata = $('#gridtable').jfGridGet('rowdatas');
  306. if (formatdata.length == 0) {
  307. learun.alert.error('请添加或修改数据!');
  308. return false;
  309. }
  310. var crmOrderJson = JSON.stringify(postData);
  311. var crmOrderProductJson = JSON.stringify(formatdata);
  312. //postData.F_RuleFormatJson = JSON.stringify(formatdata);
  313. var param = {};
  314. param['ordertypenum'] = ordertype;
  315. param['crmOrderJson'] = crmOrderJson;
  316. param['crmOrderProductJson'] = crmOrderProductJson;
  317. $.lrSaveForm(top.$.rootUrl + '/OrderManager/Order/SaveForm?keyValue=' + keyValue, param, function (res) {
  318. if (!!callBack) {
  319. callBack();
  320. }
  321. });
  322. };
  323. page.init();
  324. }