开封利通水务前端

addOrEditInvoice.js 10KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263
  1. /**
  2. * 修改增加开票信息
  3. * */
  4. $(function() {
  5. autosize($('textarea'));
  6. laydate.render({
  7. elem: '#F_BillingTime',
  8. calendar: true,
  9. theme: '#1ab394'
  10. });
  11. // //获取发票类型 税率
  12. $.when(helper.getDropList.getlistDropByDic($('#F_BillType'), 'FPLX'),
  13. helper.getDropList.getlistDropByDic($('#F_TaxRate'), 'KPSL'))
  14. .done(function() {
  15. var edit_id = helper.request.queryString("edit_id");
  16. if (edit_id) {
  17. getCustomer(edit_id);
  18. }
  19. //绑定验证(所有 input.form-control)
  20. $('#tab_user_contents').find("input[class='form-control']").on('blur keyup', valideInput);
  21. });
  22. });
  23. //获取详情
  24. function getCustomer(ids) {
  25. $.getJSON(huayi.config.callcenter_url + "WoBill/GetBill", {
  26. billid: ids, //id
  27. token: $.cookie("token")
  28. }, function(data) {
  29. if (data.state.toLowerCase() == "success") {
  30. data = data.data.dModel;
  31. if (data) {
  32. $('#F_BillType').selectpicker('val', data.F_BillType);// string 发票类型
  33. $('#F_TaxIDNum').val(data.F_TaxIDNum);// string 纳税人识别号
  34. $('#F_CusName').val(data.F_CusName);// string 客户名称
  35. $('#F_Phone').val(data.F_Phone);// string 电话
  36. $('#F_Address').val(data.F_Address);// string 地址
  37. $('#F_Bank').val(data.F_Bank);// string 开户行
  38. $('#F_BankAccount').val(data.F_BankAccount);// string 开户行账号
  39. $('#F_ProName').val(data.F_ProName);// string 项目名称
  40. $('#F_Models').val(data.F_Models);// string 型号
  41. $('#F_Unit').val(data.F_Unit);// string 单位
  42. $('#F_Amount').val(data.F_Amount);// string 数量
  43. $('#F_UnitPrice').val(data.F_UnitPrice);// string 单价
  44. $('#F_SumPrice').val(data.F_SumPrice);// string 金额
  45. $('#F_TaxRate').selectpicker('val', data.F_TaxRate);// string 税率
  46. $('#F_TaxAmount').val(data.F_TaxAmount);// string 税额
  47. $('#F_State').find('input[type="radio"][value="'+ data.F_State +'"]').prop('checked', true);// F_State 是否开票 0否1是
  48. $('#F_BillingMethod').find('input[type="radio"][value="'+ data.F_BillingMethod +'"]').prop('checked', true);// string 开票方式:快递/自取
  49. $('#F_BillingTime').val(data.F_BillingTime);//string 开票时间
  50. $('#F_Remark').val(data.F_Remark);//string 备注
  51. // $('#F_CusCode').val(data.F_CusCode);// string 登录的公司code
  52. $('#F_TaxIDNum').trigger('blur');
  53. }
  54. }
  55. });
  56. }
  57. //保存
  58. function saveCustomer() {
  59. if (!$.trim($('#F_BillType').val()) ||
  60. !$.trim($('#F_TaxIDNum').val()) ||
  61. !$.trim($('#F_CusName').val()) ||
  62. !$.trim($('#F_Phone').val()) ||
  63. !$.trim($('#F_Address').val()) ||
  64. !$.trim($('#F_Bank').val()) ||
  65. !$.trim($('#F_BankAccount').val()) ||
  66. !$.trim($('#F_ProName').val()) ||
  67. !$.trim($('#F_Unit').val()) ||
  68. !$.trim($('#F_Amount').val()) ||
  69. !$.trim($('#F_UnitPrice').val()) ||
  70. !$.trim($('#F_SumPrice').val()) ||
  71. !$.trim($('#F_TaxRate').val()) ||
  72. !$.trim($('#F_TaxAmount').val()) ||
  73. !$.trim($('#F_BillingTime').val()) ||
  74. !$.trim($('#F_Remark').val())) {
  75. layer.msg('带红色星号的是必填项,请填写或选择后再保存!');
  76. return;
  77. }
  78. var wURL, loadIndex;
  79. var edit_id = helper.request.queryString("edit_id");
  80. if (edit_id) {
  81. wURL = "WoBill/UpdateBill";
  82. } else {
  83. wURL = "WoBill/AddBill";
  84. }
  85. $.ajax({
  86. type: 'post',
  87. url: huayi.config.callcenter_url + wURL,
  88. dataType: 'json',
  89. async: true,
  90. beforeSend: function() { //触发ajax请求开始时执行
  91. $('#save_btns').attr("disabled", true);
  92. $('#save_btns').text('保存中...');
  93. loadIndex = layer.load();
  94. },
  95. data: {
  96. F_ID: edit_id,//主ID
  97. F_BillType: $('#F_BillType').val(),// string 发票类型
  98. F_CusName: $('#F_CusName').val(),// string 客户名称
  99. F_TaxIDNum: $('#F_TaxIDNum').val(),// string 纳税人识别号
  100. F_Address: $('#F_Address').val(),// string 地址
  101. F_Phone: $('#F_Phone').val(),// string 电话
  102. F_Bank: $('#F_Bank').val(),// string 开户行
  103. F_BankAccount: $('#F_BankAccount').val(),// string 开户行账号
  104. F_ProName: $('#F_ProName').val(),// string 项目名称
  105. F_Models: $('#F_Models').val(),// string 型号
  106. F_Unit: $('#F_Unit').val(),// string 单位
  107. F_Amount: $('#F_Amount').val(),// string 数量
  108. F_UnitPrice: $('#F_UnitPrice').val(),// string 单价
  109. F_SumPrice: $('#F_SumPrice').val(),// string 金额
  110. F_TaxRate: $('#F_TaxRate').val(),// string 税率
  111. F_TaxAmount: $('#F_TaxAmount').val(),// string 税额
  112. F_State: $('#F_State').find('input[type="radio"]:checked').val(),// 是否开票 0否1是
  113. F_BillingMethod: $('#F_BillingMethod').find('input[type="radio"]:checked').val(),// string 开票方式:快递/自取
  114. F_BillingTime: $('#F_BillingTime').val(),//string 开票时间
  115. F_Remark: helper.filter.delHtmlTag($('#F_Remark').val()),//string 备注
  116. // F_CusCode: $('#F_CusCode').val(),// string 登录的公司code
  117. token: $.cookie("token")
  118. },
  119. success: function(data) {
  120. layer.close(loadIndex);
  121. if (data.state === "success") {
  122. var index = parent.layer.getFrameIndex(window.name);
  123. parent.layer.close(index);
  124. parent.$('#workorderlist').bootstrapTable('refresh');
  125. parent.layer.msg("保存成功");
  126. } else {
  127. $('#save_btns').attr("disabled", false);
  128. $('#save_btns').text('保存');
  129. }
  130. },
  131. error: function(textStatus) {
  132. layer.close(loadIndex);
  133. layer.confirm('网络繁忙,请稍后再试...', {
  134. icon: 7,
  135. closeBtn: 0,
  136. btn: ['确定'] //按钮
  137. });
  138. $('#save_btns').attr("disabled", false);
  139. $('#save_btns').text('保存');
  140. },
  141. complete: function(XMLHttpRequest, textStatus) {
  142. layer.close(loadIndex);
  143. if (textStatus == 'timeout') {
  144. var xmlhttp = window.XMLHttpRequest ? new window.XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHttp");
  145. xmlhttp.abort();
  146. layer.confirm('网络超时,请稍后再试...', {
  147. icon: 7,
  148. closeBtn: 0,
  149. btn: ['确定'] //按钮
  150. });
  151. }
  152. $('#save_btns').attr("disabled", false);
  153. $('#save_btns').text('保存');
  154. },
  155. });
  156. }
  157. //验证(所有 input.form-control)的方法
  158. function valideInput() {
  159. var _that = $(this);
  160. //console.log($(this).attr('id'));
  161. switch ($(this).attr('id')) {
  162. case 'F_TaxIDNum': //纳税人识别号
  163. valideMethods(_that, regexs.enOrnum, '格式不正确(只能输入英文、数字)!', false);
  164. break;
  165. case 'F_CusName': //客户名称
  166. valideMethods(_that, regexs.userNameReg, '格式不正确(只能输入2-20位汉字可以包含·•)!', false);
  167. break;
  168. case 'F_Phone': //验证电话
  169. valideMethods(_that, regexs.phone, '您输入的电话号码格式不正确!', false);
  170. break;
  171. case 'F_Bank': //开户行
  172. valideMethods(_that, regexs.chOrenOrnum, '格式不正确(只能输入中文、英文、数字)!', false);
  173. break;
  174. case 'F_Address': //地址
  175. valideMethods(_that, regexs.chOrenOrnum, '格式不正确(只能输入中文、英文、数字)!', false);
  176. break;
  177. case 'F_BankAccount': //开户行账号
  178. valideMethods(_that, regexs.num, '格式不正确(只能输入数字)!', false);
  179. break;
  180. case 'F_ProName': //项目名称
  181. valideMethods(_that, regexs.chOrenOrnum, '格式不正确(只能输入中文、英文、数字)!', false);
  182. break;
  183. case 'F_Models': //型号
  184. valideMethods(_that, regexs.chOrenOrnum, '格式不正确(只能输入中文、英文、数字)!', true);
  185. break;
  186. case 'F_Unit': //单位
  187. valideMethods(_that, regexs.chOrenOrnum, '格式不正确(只能输入中文、英文、数字)!', false);
  188. break;
  189. case 'F_Amount': //数量
  190. valideMethods(_that, regexs.chOrenOrnum, '格式不正确(只能输入中文、英文、数字)!', false);
  191. break;
  192. case 'F_UnitPrice': //单价
  193. valideMethods(_that, regexs.amountMoneys, '格式不正确(只能输入中文、英文、正数、必须包含正数)!', false);
  194. break;
  195. case 'F_SumPrice': //金额
  196. valideMethods(_that, regexs.amountMoneys, '格式不正确(只能输入中文、英文、正数、必须包含正数)!', false);
  197. break;
  198. case 'F_TaxAmount': //税额
  199. valideMethods(_that, regexs.amountMoneys, '格式不正确(只能输入中文、英文、正数、必须包含正数)!', false);
  200. break;
  201. }
  202. if ($('#tab_user_contents').find('.has-error').length > 0) {
  203. $('.project_save').attr('disabled', true);
  204. $('#save_btns').off('click', saveCustomer);
  205. } else {
  206. $('.project_save').attr('disabled', false);
  207. $('#save_btns').off('click', saveCustomer);
  208. $('#save_btns').on('click', saveCustomer);
  209. }
  210. }
  211. /**
  212. * 验证方法
  213. * _this :传递的this
  214. * regRlues: 验证的规则
  215. * msg: 提示信息
  216. * isRes:boolean 是否允许验证的内容为空,true:允许为空,false:不允许为空
  217. * */
  218. function valideMethods(_this, regRlues, msg, isRes) {
  219. var txtTpips = _this.parent().parent().find('.text-tips');
  220. if (txtTpips) {
  221. txtTpips.parent().remove();
  222. }
  223. if (!isRes) {
  224. //不为空
  225. if (!regRlues.test($.trim(_this.val()))) {
  226. _this.parent().parent().removeClass('has-success has-feedback').addClass('has-error has-feedback');
  227. _this.parent().find('.glyphicon').remove();
  228. $('<span class="glyphicon glyphicon-remove form-control-feedback" aria-hidden="true"></span>').appendTo(_this.parent());
  229. $('<div class="col-md-10 col-md-offset-2"><span class="text-tips">' + msg + '</span></div>').appendTo(_this.parent()
  230. .parent());
  231. $('.project_save').attr('disabled', true);
  232. } else {
  233. _this.parent().parent().removeClass('has-error has-feedback').addClass('has-success has-feedback');
  234. _this.parent().find('.glyphicon').remove();
  235. $('<span class="glyphicon glyphicon-ok form-control-feedback" aria-hidden="true"></span>').appendTo(_this.parent());
  236. }
  237. } else {
  238. //为空不验证;但是有内容就验证;
  239. if ($.trim(_this.val())) {
  240. if (!regRlues.test($.trim(_this.val()))) {
  241. _this.parent().parent().removeClass('has-success has-feedback').addClass('has-error has-feedback');
  242. _this.parent().find('.glyphicon').remove();
  243. $('<span class="glyphicon glyphicon-remove form-control-feedback" aria-hidden="true"></span>').appendTo(_this.parent());
  244. $('<div class="col-md-10 col-md-offset-2"><span class="text-tips">' + msg + '</span></div>').appendTo(_this.parent()
  245. .parent());
  246. $('.project_save').attr('disabled', true);
  247. } else {
  248. _this.parent().parent().removeClass('has-error has-feedback').addClass('has-success has-feedback');
  249. _this.parent().find('.glyphicon').remove();
  250. $('<span class="glyphicon glyphicon-ok form-control-feedback" aria-hidden="true"></span>').appendTo(_this.parent());
  251. }
  252. } else {
  253. _this.parent().find('.glyphicon').remove();
  254. _this.parent().parent().removeClass('has-error has-success has-feedback');
  255. }
  256. }
  257. }