contractp.js 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303
  1. //初始化下标
  2. function resetTrNum(tableId) {
  3. $tbody = $("#"+tableId+"");
  4. $tbody.find('>tr').each(function(i){
  5. $(':input, select,button,a', this).each(function(){
  6. var $this = $(this), name = $this.attr('name'),id=$this.attr('id'),onclick_str=$this.attr('onclick'), val = $this.val();
  7. if(name!=null){
  8. if (name.indexOf("#index#") >= 0){
  9. $this.attr("name",name.replace('#index#',i));
  10. }else{
  11. var s = name.indexOf("[");
  12. var e = name.indexOf("]");
  13. var new_name = name.substring(s+1,e);
  14. $this.attr("name",name.replace(new_name,i));
  15. }
  16. //给明细添加弹出框
  17. if(name.indexOf("contractPItemList") >= 0 && name.indexOf("gname") >= 0 ){
  18. $this.attr("class","searchbox-inputtext");
  19. $this.unbind("click");
  20. $this.bind("click",function(){popClick_embed("contractPItemList\["+i+"\]\.unit,contractPItemList\["+i+"\]\.gname,contractPItemList\["+i+"\]\.goodsid"
  21. ,"salesUnit,goodsName,id","ordersController.do?selectReferGoods&classname=cn.com.lzt.goodsinfo.entity.TBGoodsInfoEntity&codefield=goodsCode&categoryfield=belongCategoryCode&categoryNamefield=belongCategoryName&namefield=goodsName&purchaseUnit=salesUnit&specification=specification&goodsDesc=goodsDesc&strEmpty=strEmpty")
  22. });
  23. }
  24. //给明细添加弹出框
  25. if(name.indexOf("contractPItemList") >= 0 && name.indexOf("sname") >= 0 ){
  26. $this.attr("class","searchbox-inputtext");
  27. $this.unbind("click");
  28. $this.bind("click",function(){popClick_embed("contractPItemList\["+i+"\]\.sname,contractPItemList\["+i+"\]\.serviceid"
  29. ,"name,id","projectServiceController.do?selectedlist&classname=cn.com.lzt.projectservice.entity.ProjectServiceEntity&codefield=code&namefield=name")
  30. });
  31. }
  32. // 数量改变添加事件
  33. if(name.indexOf("contractPItemList") >= 0 && name.indexOf("quantity") >= 0){
  34. var numTemp = $this.val();
  35. if(numTemp != null && numTemp != ''){
  36. $this.val(new Number(numTemp));
  37. }
  38. $this.unbind();
  39. // 区分浏览器 IE浏览器时
  40. // if (window.ActiveXObject || "ActiveXObject" in window){
  41. // $this.bind("input",function(){
  42. // if(!isNaN($this.val()) && !isNaN($("#add_contractItem_table").find("tr").eq(i).find(":text").eq(1).val())){
  43. // var money = Math.round($this.val() * $("#add_contractItem_table").find("tr").eq(i).find(":text").eq(1).val()*100)/100;
  44. // $("#add_contractItem_table").find("tr").eq(i).find(":text").eq(3).val(money);
  45. // getSumMoney();
  46. // }else{
  47. // $("#add_contractItem_table").find("tr").eq(i).find(":text").eq(3).val('');
  48. // }
  49. // });
  50. // // 非IE浏览器时
  51. // }else{
  52. $this.bind("input",function(){
  53. if(!isNaN($this.val()) && !isNaN($("#add_contractItem_table").find("tr").eq(i).find(":text").eq(1).val())){
  54. //var money = $this.val() * $("#add_orderDetails_table").find("tr").eq(i).find(":text").eq(4).val();
  55. var money = Math.round($this.val() * $("#add_contractItem_table").find("tr").eq(i).find(":text").eq(1).val()*100)/100;
  56. $("#add_contractItem_table").find("tr").eq(i).find(":text").eq(3).val(money);
  57. getSumMoney();
  58. }else{
  59. $("#add_contractItem_table").find("tr").eq(i).find(":text").eq(3).val('');
  60. }
  61. });
  62. // }
  63. }
  64. // 金额改变添加事件,反算单价
  65. if(name.indexOf("contractPItemList") >= 0 && name.indexOf("amount") >= 0){
  66. var numTemp = $this.val();
  67. if(numTemp != null && numTemp != ''){
  68. $this.val(new Number(numTemp));
  69. }
  70. $this.unbind();
  71. // 区分浏览器 IE浏览器时
  72. // if (window.ActiveXObject || "ActiveXObject" in window){
  73. // $this.bind("input",function(){
  74. // if(!isNaN($this.val()) && !isNaN($("#add_contractItem_table").find("tr").eq(i).find(":text").eq(2).val())){
  75. // var quantity = $("#add_contractItem_table").find("tr").eq(i).find(":text").eq(2).val()==""?0:$("#add_contractItem_table").find("tr").eq(i).find(":text").eq(2).val();
  76. // var price = Math.round($this.val() / $("#add_contractItem_table").find("tr").eq(i).find(":text").eq(2).val()*100)/100;
  77. // $("#add_contractItem_table").find("tr").eq(i).find(":text").eq(1).val(price);
  78. // getSumMoney();
  79. // }else{
  80. // $("#add_contractItem_table").find("tr").eq(i).find(":text").eq(1).val('');
  81. // }
  82. // });
  83. // // 非IE浏览器时
  84. // }else{
  85. $this.bind("input",function(){
  86. var quantity = $("#add_contractItem_table").find("tr").eq(i).find(":text").eq(2).val()==""?0:$("#add_contractItem_table").find("tr").eq(i).find(":text").eq(2).val();
  87. if(quantity > 0 && !isNaN($this.val()) && !isNaN($("#add_contractItem_table").find("tr").eq(i).find(":text").eq(2).val())){
  88. var price = Math.round($this.val() / quantity *100)/100;
  89. $("#add_contractItem_table").find("tr").eq(i).find(":text").eq(1).val(price);
  90. getSumMoney();
  91. }else{
  92. $("#add_contractItem_table").find("tr").eq(i).find(":text").eq(1).val('');
  93. }
  94. });
  95. // }
  96. }
  97. // 价格改变添加事件
  98. if(name.indexOf("contractPItemList") >= 0 && name.indexOf("price") >= 0){
  99. var numTemp = $this.val();
  100. if(numTemp != null && numTemp != ''){
  101. $this.val(new Number(numTemp));
  102. }
  103. $this.unbind();
  104. // 区分浏览器 IE浏览器时
  105. // if (window.ActiveXObject || "ActiveXObject" in window){
  106. // $this.bind("input",function(){
  107. // if(!isNaN($this.val()) && !isNaN($("#add_contractItem_table").find("tr").eq(i).find(":text").eq(3).val())){
  108. // var money = Math.round($this.val() * $("#add_contractItem_table").find("tr").eq(i).find(":text").eq(3).val()*100)/100;
  109. // $("#add_contractItem_table").find("tr").eq(i).find(":text").eq(3).val(money);
  110. // getSumMoney();
  111. // }else{
  112. // $("#add_contractItem_table").find("tr").eq(i).find(":text").eq(3).val('');
  113. // }
  114. // });
  115. // // 非IE浏览器时
  116. // }else{
  117. $this.bind("input",function(){
  118. if(!isNaN($this.val())){ //&& !isNaN($("#add_contractItem_table").find("tr").eq(i).find(":text").eq(3).val())
  119. var money = Math.round($this.val() * $("#add_contractItem_table").find("tr").eq(i).find(":text").eq(2).val()*100)/100;
  120. $("#add_contractItem_table").find("tr").eq(i).find(":text").eq(3).val(money);
  121. getSumMoney();
  122. }else{
  123. $("#add_contractItem_table").find("tr").eq(i).find(":text").eq(3).val('');
  124. }
  125. });
  126. // }
  127. }
  128. // 支付条款金额改变添加事件
  129. if(name.indexOf("contractPPayruleList") >= 0 && name.indexOf("amount") >= 0){
  130. var numTemp = $this.val();
  131. if(numTemp != null && numTemp != ''){
  132. $this.val(new Number(numTemp));
  133. }
  134. $this.unbind();
  135. $this.change(function(event){
  136. var trList = $("#add_contractPayrule_table").children("tr");
  137. var money = 0;
  138. for (var line=0;line<trList.length;line++) {
  139. var moneyTemp = parseFloat($("#add_contractPayrule_table").find("tr").eq(line).find(":text").eq(1).val()) || 0;
  140. money = money + moneyTemp;
  141. }
  142. // 总金额
  143. var total = new Number($("#totalamount").val());
  144. if(total < money){
  145. event.currentTarget.value = event.currentTarget.validform_lastval || 0;
  146. tip("支付条款金额合计不能大于合同金额,请重新填写");
  147. }
  148. if(total > 0 && !isNaN(event.currentTarget.value)){
  149. var persent = Math.round(event.currentTarget.value / total *100 * 100)/100;
  150. $("#add_contractPayrule_table").find("tr").eq(i).find(":text").eq(2).val(persent);
  151. }else{
  152. $("#add_contractPayrule_table").find("tr").eq(i).find(":text").eq(2).val('');
  153. }
  154. });
  155. }
  156. }
  157. if(id!=null){
  158. if (id.indexOf("#index#") >= 0){
  159. $this.attr("id",id.replace('#index#',i));
  160. }else{
  161. var s = id.indexOf("[");
  162. var e = id.indexOf("]");
  163. var new_id = id.substring(s+1,e);
  164. $this.attr("id",id.replace(new_id,i));
  165. }
  166. }
  167. if(onclick_str!=null){
  168. if (onclick_str.indexOf("#index#") >= 0){
  169. $this.attr("onclick",onclick_str.replace(/#index#/g,i));
  170. }else{
  171. }
  172. }
  173. });
  174. $(this).find('div[name=\'xh\']').html(i+1);
  175. });
  176. }
  177. //通用弹出式文件上传
  178. function commonUpload(callback,inputId){
  179. $.dialog({
  180. content: "url:systemController.do?commonUpload",
  181. lock : true,
  182. title:"文件上传",
  183. zIndex:getzIndex(),
  184. width:700,
  185. height: 200,
  186. parent:windowapi,
  187. cache:false,
  188. ok: function(){
  189. var iframe = this.iframe.contentWindow;
  190. iframe.uploadCallback(callback,inputId);
  191. return true;
  192. },
  193. cancelVal: '关闭',
  194. cancel: function(){
  195. }
  196. });
  197. }
  198. //通用弹出式文件上传-回调
  199. function commonUploadDefaultCallBack(url,name,inputId){
  200. $("#"+inputId+"_href").attr('href',url).html('下载');
  201. $("#"+inputId).val(url);
  202. }
  203. function browseImages(inputId, Img) {// 图片管理器,可多个上传共用
  204. }
  205. function browseFiles(inputId, file) {// 文件管理器,可多个上传共用
  206. }
  207. function decode(value, id) {//value传入值,id接受值
  208. var last = value.lastIndexOf("/");
  209. var filename = value.substring(last + 1, value.length);
  210. $("#" + id).text(decodeURIComponent(filename));
  211. }
  212. //选择项目名称,列表================
  213. function openDepartmentSelect() {
  214. //$.dialog.setting.zIndex = getzIndex();
  215. var orgIds = $("#projectid").val();
  216. /* var orgCode = $("#orgCode").val();*/
  217. $.dialog({
  218. content: 'url:publicpageController.do?projectSelect&ids='+orgIds, zIndex: getzIndex(), title: '项目名称列表', lock: true, width: '600px', height: '350px', opacity: 0.4, button: [
  219. {name: '确定', callback: function (){
  220. var iframe = this.iframe.contentWindow;
  221. if(iframe.getReason().length>0){
  222. var strData=eval(iframe.getReason());
  223. for(var key in strData[0]){
  224. if(key=="strId"){
  225. $("#projectid").val(strData[0][key]);
  226. }else if(key=="strName"){
  227. $("#projectName").val(strData[0][key]);
  228. }
  229. }
  230. }
  231. }, focus: true},
  232. {name: '取消', callback: function (){}}
  233. ]}).zindex();
  234. }
  235. function callbackClean(){
  236. $('#projectName').val('');
  237. $('#projectid').val('');
  238. }
  239. //选择供应商
  240. function openPartnerSelect() {
  241. //$.dialog.setting.zIndex = getzIndex();
  242. var partnerIds = $("#partnerid").val();
  243. /* var orgCode = $("#orgCode").val();*/
  244. $.dialog({
  245. content: 'url:partnerController.do?supplierAll&ids='+partnerIds, zIndex: getzIndex(), title: '供应商列表', lock: true, width: '600px', height: '350px', opacity: 0.4, button: [
  246. {name: '确定', callback: function (){
  247. var iframe = this.iframe.contentWindow;
  248. if(iframe.getReason().length>0){
  249. var strData=eval(iframe.getReason());
  250. for(var key in strData[0]){
  251. if(key=="strId"){
  252. $("#partnerid").val(strData[0][key]);
  253. }else if(key=="strPartnerName"){
  254. $("#partnerName").val(strData[0][key]);
  255. }
  256. }
  257. }
  258. }, focus: true},
  259. {name: '取消', callback: function (){}}
  260. ]}).zindex();
  261. }
  262. function callbackCleanPartner(){
  263. $('#partnerName').val('');
  264. $('#partnerid').val('');
  265. }
  266. function changeToCHN(event) {
  267. var chn = convertCurrency(event.currentTarget.value);
  268. //event.currentTarget.validform_lastval
  269. var label = document.getElementById("totalamountCHN");
  270. label.innerText = chn;
  271. }
  272. //总金额 计算方法
  273. function getSumMoney(){
  274. var trList = $("#add_contractItem_table").children("tr");
  275. var money = 0;
  276. for (var line=0;line<trList.length;line++) {
  277. var moneyTemp = parseFloat($("#add_contractItem_table").find("tr").eq(line).find(":text").eq(3).val()) || 0;
  278. money = money + moneyTemp;
  279. }
  280. // 总金额
  281. $("#totalamount").val(Math.round(money*100)/100);
  282. //event.currentTarget.validform_lastval
  283. var label = document.getElementById("totalamountCHN");
  284. label.innerText = convertCurrency($("#totalamount").val());
  285. }