form.js 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267
  1. (function () {
  2. var keyValue = '';
  3. var $header = null;
  4. var titleText = '';
  5. var page = {
  6. isScroll: true,
  7. init: function ($page, param) {
  8. keyValue = param.keyValue;
  9. // 添加头部按钮列表
  10. var _html = '\
  11. <div class="lr-form-header-cancel" >取消</div>\
  12. <div class="lr-form-header-btnlist" >\
  13. <div class="lr-form-header-more" ><i class="iconfont icon-more" ></i></div>\
  14. <div class="lr-form-header-edit" ><i class="iconfont icon-edit" ></i></div>\
  15. </div>\
  16. <div class="lr-form-header-submit" >提交</div>';
  17. $header = $page.parents('.f-page').find('.f-page-header');
  18. $header.append(_html);
  19. // 取消
  20. $header.find('.lr-form-header-cancel').on('tap', function () {
  21. renlian.layer.confirm('确定要退出当前编辑?', function (_index) {
  22. if (_index === '1') {
  23. if (keyValue) {// 如果是编辑状态
  24. renlian.formblur();
  25. $header.find('.lr-form-header-cancel').hide();
  26. $header.find('.lr-form-header-submit').hide();
  27. $header.find('.lr-form-header-btnlist').show();
  28. $header.find('.f-page-title').text(titleText);
  29. $page.find('.lr-form-container').setFormRead();
  30. }
  31. else {// 如果是新增状态 关闭当前页面
  32. renlian.nav.closeCurrent();
  33. }
  34. }
  35. }, '任联提示', ['取消', '确定']);
  36. });
  37. // 编辑
  38. $header.find('.lr-form-header-edit').on('tap', function () {
  39. $header.find('.lr-form-header-btnlist').hide();
  40. $header.find('.lr-form-header-cancel').show();
  41. $header.find('.lr-form-header-submit').show();
  42. titleText = $header.find('.f-page-title').text();
  43. $header.find('.f-page-title').text('编辑');
  44. $page.find('.lr-form-container').setFormWrite();
  45. });
  46. // 更多
  47. $header.find('.lr-form-header-more').on('tap', function () {
  48. renlian.actionsheet({
  49. id: 'more',
  50. data: [
  51. {
  52. text: '删除',
  53. mark: true,
  54. event: function () {// 删除当前条信息
  55. renlian.layer.confirm('确定要删除该笔数据吗?', function (_index) {
  56. if (_index === '1') {
  57. renlian.layer.loading(true, "正在删除该笔数据");
  58. renlian.httppost(config.webapi + "renlian/adms/crm/order/delete", keyValue, (data) => {
  59. if (data) {// 删除数据成功
  60. renlian.nav.closeCurrent();
  61. var prepage = renlian.nav.getpage('crm/order');
  62. prepage.grid.reload();
  63. }
  64. renlian.layer.loading(false);
  65. });
  66. }
  67. }, '任联提示', ['取消', '确定']);
  68. }
  69. }
  70. ],
  71. cancel: function () {
  72. }
  73. });
  74. });
  75. // 提交
  76. $header.find('.lr-form-header-submit').on('tap', function () {
  77. // 获取表单数据
  78. if (!$page.find('.lr-form-container').lrformValid()) {
  79. return false;
  80. }
  81. var formData = $page.find('.lr-form-container').lrformGet();
  82. // 获取表格数据
  83. var girdData = $page.find('#productgird').lrgridGet();
  84. renlian.layer.loading(true, "正在提交数据");
  85. var _postData = {
  86. keyValue: keyValue,
  87. crmOrderJson: JSON.stringify(formData),
  88. crmOrderProductJson: JSON.stringify(girdData)
  89. };
  90. renlian.httppost(config.webapi + "renlian/adms/crm/order/save", _postData, (data) => {
  91. renlian.layer.loading(false);
  92. if (data) {// 表单数据保存成功
  93. if (keyValue) {
  94. renlian.layer.toast('保存数据成功!');
  95. renlian.formblur();
  96. $header.find('.lr-form-header-cancel').hide();
  97. $header.find('.lr-form-header-submit').hide();
  98. $header.find('.lr-form-header-btnlist').show();
  99. $header.find('.f-page-title').text(titleText);
  100. $page.find('.lr-form-container').setFormRead();
  101. }
  102. else {// 如果是
  103. renlian.nav.closeCurrent();
  104. }
  105. var prepage = renlian.nav.getpage('crm/order');
  106. prepage.grid.reload();
  107. }
  108. });
  109. });
  110. page.bind($page, param);
  111. if (keyValue) {
  112. // 添加编辑按钮
  113. $page.find('.lr-form-container').setFormRead();
  114. $header.find('.lr-form-header-btnlist').show();
  115. // 获取表单数据
  116. renlian.layer.loading(true, '获取表单数据');
  117. renlian.httpget(config.webapi + "renlian/adms/crm/order/form", keyValue, (data) => {
  118. if (data) {
  119. $page.find('.lr-form-container').lrformSet(data.orderData);
  120. $page.find('#productgird').lrgridSet(data.orderProductData);
  121. }
  122. renlian.layer.loading(false);
  123. });
  124. }
  125. else {
  126. $header.find('.lr-form-header-cancel').show();
  127. $header.find('.lr-form-header-submit').show();
  128. }
  129. },
  130. bind: function ($page, param) {
  131. // 客户名称
  132. $page.find('#F_CustomerId').lrpickerex({
  133. url: "renlian/adms/crm/customer/list",
  134. ivalue: "F_CustomerId",
  135. itext: "F_FullName"
  136. });
  137. // 销售人员
  138. $page.find('#F_SellerId').lrselect({
  139. type: 'user',
  140. });
  141. // 单据日期
  142. $page.find('#F_OrderDate').lrdate({
  143. type: 'date'
  144. });
  145. // 单据编号和制单人员
  146. if (!keyValue) {
  147. renlian.getRuleCode('10000', function (data) {
  148. $page.find('#F_OrderCode').val(data);
  149. });
  150. var userinfo = renlian.storage.get('userinfo');
  151. $page.find('#F_CreateUserName').val(userinfo.baseinfo.realName);
  152. }
  153. // 初始化表格
  154. $page.find('#productgird').lrgrid({
  155. title: '产品明细',
  156. componts: [
  157. {
  158. name: '商品名称', field: 'F_ProductName', type: 'layer', code: 'Client_ProductInfo', datatype: 'dataItem',
  159. layerData: [
  160. { label: '商品编号', name: "F_ItemValue", value:'F_ProductCode'},
  161. { label: '商品名称', name: "F_ItemName", value: 'F_ProductName' }
  162. ],
  163. change: function (data, $block) {
  164. $block.find('#F_Qty').val('1');
  165. $block.find('#F_Price').val('0');
  166. $block.find('#F_Amount').val('0');
  167. $block.find('#F_TaxRate').val('0');
  168. $block.find('#F_Taxprice').val('0');
  169. $block.find('#F_Tax').val('0');
  170. $block.find('#F_TaxAmount').val('0');
  171. }
  172. },
  173. {
  174. name: '商品编号', field: 'F_ProductCode', type: 'label'
  175. },
  176. {
  177. name: '单位', field: 'F_UnitId', type: 'input'
  178. },
  179. {
  180. name: '数量', field: 'F_Qty', type: 'input',
  181. change: function (v, $row) {
  182. var _F_Price = parseFloat($row.find('#F_Price').val() || '0');
  183. var _F_Qty = parseFloat(v || '0');
  184. var _F_TaxRate = parseFloat($row.find('#F_TaxRate').val() || '0');
  185. var _F_Amount = parseInt(_F_Price * _F_Qty);
  186. var _F_TaxAmount = parseInt(_F_Price * (1 + _F_TaxRate / 100) * _F_Qty);
  187. $row.find('#F_Amount').val(_F_Amount);
  188. $row.find('#F_TaxAmount').val(_F_TaxAmount);
  189. $row.find('#F_Tax').val(_F_TaxAmount - _F_Amount);
  190. }
  191. },
  192. {
  193. name: '单价', field: 'F_Price', type: 'input',
  194. change: function (v, $row) {
  195. var _F_Price = parseFloat(v|| '0');
  196. var _F_Qty = parseFloat($row.find('#F_Qty').val() || '0');
  197. var _F_TaxRate = parseFloat($row.find('#F_TaxRate').val() || '0');
  198. var _F_Amount = parseInt(_F_Price * _F_Qty);
  199. var _F_TaxAmount = parseInt(_F_Price * (1 + _F_TaxRate / 100) * _F_Qty);
  200. var _F_Taxprice = parseInt(_F_Price * (1 + _F_TaxRate / 100));
  201. $row.find('#F_Amount').val(_F_Amount);
  202. $row.find('#F_TaxAmount').val(_F_TaxAmount);
  203. $row.find('#F_Tax').val(_F_TaxAmount - _F_Amount);
  204. $row.find('#F_Taxprice').val(_F_Taxprice);
  205. }
  206. },
  207. { name: '金额', field: 'F_Amount', type: 'label' },
  208. {
  209. name: '税率(%)', field: 'F_TaxRate', type: 'input',
  210. change: function (v, $row) {
  211. var _F_Price = parseFloat($row.find('#F_Price').val() || '0');
  212. var _F_Qty = parseFloat($row.find('#F_Qty').val() || '0');
  213. var _F_TaxRate = parseFloat(v || '0');
  214. var _F_Amount = parseInt(_F_Price * _F_Qty);
  215. var _F_TaxAmount = parseInt(_F_Price * (1 + _F_TaxRate / 100) * _F_Qty);
  216. var _F_Taxprice = parseInt(_F_Price * (1 + _F_TaxRate / 100));
  217. $row.find('#F_Amount').val(_F_Amount);
  218. $row.find('#F_TaxAmount').val(_F_TaxAmount);
  219. $row.find('#F_Tax').val(_F_TaxAmount - _F_Amount);
  220. $row.find('#F_Taxprice').val(_F_Taxprice);
  221. }
  222. },
  223. { name: '含税单价', field: 'F_Taxprice', type: 'label' },
  224. { name: '税额', field: 'F_Tax', type: 'label' },
  225. { name: '含税金额', field: 'F_TaxAmount', type: 'label' },
  226. {
  227. name: "说明信息", field: "F_UnitId", type: 'input'
  228. }
  229. ]
  230. });
  231. // 收款日期
  232. $page.find('#F_PaymentDate').lrdate({
  233. type: 'date'
  234. });
  235. // 收款方式
  236. $page.find('#F_PaymentMode').lrpickerex({
  237. code: 'Client_PaymentMode',
  238. type: 'dataItem'
  239. });
  240. },
  241. destroy: function (pageinfo) {
  242. $header = null;
  243. keyValue = '';
  244. }
  245. };
  246. return page;
  247. })();