docView.js 52 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573
  1. var locat = (window.location+'').split('/');
  2. $(function(){if('fhsms'== locat[3]){locat = locat[0]+'//'+locat[2];}else{locat = locat[0]+'//'+locat[2]+'/'+locat[3];};});
  3. $(getTop(globalThis).hangge());
  4. var pd_ROLENAME = $('#pd_ROLENAME').html();
  5. var pd_mode = $('#pd_mode').html();
  6. var pd_TABLETYPE = $('#pd_TABLETYPE').html();
  7. var pd_COMPANY = $("input[name='COMPANY']").val();
  8. var pd_COMPANY_ID = $("input[name='COMPANY_ID']").val();
  9. var pd_YEAR = $("input[name='YEAR']").val();
  10. var pd_ROAD_ID = $("input[name='ROAD_ID']").val();
  11. var pd_ROAD = $("input[name='ROAD']").val();
  12. var pd_NAME = $('#pd_NAME').html();
  13. var pd_REPORTID = $('#REPORTID').html();
  14. var editflag = 0;
  15. var recordData = new Object();
  16. var recordBeforeValue = new Object();
  17. var sublistRecordData = new Object();
  18. var sublistRecordBeforeValue = new Object();
  19. var status = $('input[name="STATUS"]').val();
  20. var currStatus = status;
  21. var rocordInfoList = new Object();
  22. var sublistRecordInfoList = new Object();
  23. var validateJsonData = new Object();
  24. var labelsObj = new Object();
  25. var validateObj = new Object();
  26. var projectName = new Object();
  27. function tableInit(){
  28. //textarea替换
  29. $('textarea').hide();
  30. // $('textarea.bz').show();
  31. $('pre').show();
  32. //小计行的总计列
  33. // setTotalCell(0);
  34. //子表行总计各行初始化
  35. $('.sublisttr').each(function(index,e){
  36. setUnitTotalCell(e);
  37. });
  38. //小计行的总计列
  39. setTotalCell(0);
  40. setTotalCell(1);
  41. //重新计算工程估算
  42. if(pd_TABLETYPE == "highway_prevention_project_dettable" || pd_TABLETYPE == "highway_test_project_dettable"
  43. || pd_TABLETYPE == "highway_repair_project_dettable" || pd_TABLETYPE == "highway_special_project_dettable"){
  44. $('.PROJECT_COST').val($('.sumCell.TOTAL_COST').val());
  45. }
  46. setProjectScale();
  47. //数字格式化
  48. $("input.editInput").each(function(index,e){
  49. if($(e).attr('name')=='UNIT_PRICE'||$(e).attr('name')=='AUDIT_FEE'||$(e).attr('name')=='PROJECT_COST'
  50. ||$(e).attr('name')=='COSET'||$(e).attr('name')=='EXPENDITURE_COST'||$(e).attr('name')=='MQI'
  51. ||$(e).attr('name')=='PQI'||$(e).attr('name')=='SCI'||$(e).attr('name')=='BCI'||$(e).attr('name')=='TCI'
  52. ||$(e).attr('name')=='PCI'||$(e).attr('name')=='RQI'||$(e).attr('name')=='RDI'||$(e).attr('name')=='SRI'
  53. ||$(e).attr('name')=='PSSI'||$(e).attr('name')=='ONE_BRIDGE_PRO'||$(e).attr('name')=='TWO_BRIDGE_PRO'
  54. ||$(e).attr('name')=='THREE_BRIDGE_PRO'||$(e).attr('name')=='FOUR_BRIDGE_PRO'||$(e).attr('name')=='FIVE_BRIDGE_PRO'
  55. ||$(e).attr('name')=='TOTAL_COST'||$(e).attr('name')=='DAILY_COST'||$(e).attr('name')=='DAILY_KM_COST'
  56. ||$(e).hasClass('PLAN_COST')){
  57. var num = $(e).val();
  58. num = numFormat2(num);
  59. $(e).val(num);
  60. }
  61. });
  62. $('.PROJECT_COST').val(numFormat2($('.PROJECT_COST').val()));
  63. //留痕标红
  64. setRecordInfo();
  65. setSubRecordInfo();
  66. }
  67. function setTotalCell(index){
  68. if(index < $('.totaltr').find('.sumCell').length){
  69. var totalvalue = 0;
  70. for(var i=0; i<$('.sublisttr').length; i++){
  71. var editcellval = $('.sublisttr').eq(i).find('input[totalType="sum"]').eq(index).val();
  72. if(typeof(editcellval) != "undefined")
  73. totalvalue += Number(editcellval);
  74. }
  75. //单位 元——万元
  76. if(pd_TABLETYPE != 'highway_scientific_project_dettable') totalvalue = totalvalue/10000;
  77. $('.totaltr').find('.sumCell').eq(index).val(numFormat2(totalvalue) + '');
  78. }
  79. }
  80. function editTable(){
  81. if(editflag == 0){
  82. $('#editbutton').html('编辑中');
  83. $("#savebutton").removeAttr("disabled");
  84. $("select.editInput").removeAttr("disabled");
  85. $(".keyWordsCheckbox").removeAttr("disabled");
  86. //工程费用估算清单 增加、删除 按钮
  87. $("#removeRow").css('display','block');
  88. $("#addRow").css('display','block');
  89. // if(pd_ROLENAME != '控股集团管理员'){
  90. // $("input.editInput:not(.AUDIT_FEE)").removeAttr("readonly");
  91. // $("textarea.editInput:not(.AUDIT_MAKER)").removeAttr("readonly");
  92. // //textarea替换
  93. // $('textarea:not(.AUDIT_MAKER)').show();
  94. // $('pre:not(.AUDIT_MAKER)').hide();
  95. // }else{
  96. // $("input.editInput").removeAttr("readonly");
  97. // $("textarea.editInput").removeAttr("readonly");
  98. // //textarea替换
  99. // $('textarea').show();
  100. // $('pre').hide();
  101. // }
  102. $("input.editInput").removeAttr("readonly");
  103. $("textarea.editInput").removeAttr("readonly");
  104. //textarea替换
  105. $('textarea').show();
  106. $('textarea.bz').css('display','none');
  107. $('pre').hide();
  108. editflag = 1;
  109. }else if(editflag == 1){
  110. $('#editbutton').html('编辑');
  111. $("#savebutton").attr("disabled","disabled");
  112. $("input.editInput").attr("readonly","readonly" );
  113. $("textarea.editInput").attr("readonly","readonly" );
  114. $("select.editInput").attr("disabled","disabled" );
  115. $(".keyWordsCheckbox").attr("disabled","disabled" );
  116. //textarea替换
  117. $('textarea').hide();
  118. // $('textarea.bz').show();
  119. $('textarea').each(function(index,e){
  120. $(e).parent().find('pre').html($(e).val());
  121. })
  122. $('pre').show();
  123. editflag = 0;
  124. }
  125. }
  126. function changeTableName(name){
  127. if($('.editInput.PROJECT_NAME').val()!=''){
  128. var projectName = name + "---" + $('.PROJECT_NAME').val();
  129. $.ajax({
  130. type : "get",
  131. url : locat+'/annualPlan/changeTableName.do?TABLETYPE='+pd_TABLETYPE+'&COMPANY_ID='+pd_COMPANY_ID+'&YEAR='+pd_YEAR+'&ROAD_ID='+pd_ROAD_ID
  132. +'&COMPANY='+pd_COMPANY+'&ROAD='+pd_ROAD + '&PROJECT_NAME='+projectName + '&REPORTID='+pd_REPORTID,
  133. dataType : 'json',
  134. success : function(data){
  135. //alert("change success!");
  136. }
  137. });
  138. }
  139. saveTable("1");
  140. }
  141. function saveTable(type){
  142. //加载loading
  143. getTop(globalThis).jzts();
  144. for(var o=0;o<validateObj.length;o++){
  145. var isnotnull = 0;
  146. if(validateObj[o].notnull == '1'){
  147. if(!$('.editInput[name="'+validateObj[o].column+'"]').val()){
  148. isnotnull = 1;
  149. }else if($('.editInput[name="'+validateObj[o].column+'"]').val().trim()==''){
  150. isnotnull = 1;
  151. }
  152. }
  153. if(isnotnull == 1){
  154. if(validateObj[o].column=='PLAN_COST'||validateObj[o].column=='PLAN_QUANTITIES'){
  155. $('.editInput.'+validateObj[o].column).each(function(index,e){
  156. if(!$(e).val()){
  157. var vobj = $(e).parent();
  158. vobj.find('.vtip').remove();
  159. vobj.append("<div class='vtip'>该字段不能为空</div>");
  160. vobj.find('.vtip').width(vobj.width());
  161. }
  162. })
  163. }else{
  164. var vobj = $('.editInput[name="'+validateObj[o].column+'"]').parent();
  165. vobj.find('.vtip').remove();
  166. vobj.append("<div class='vtip'>该字段不能为空</div>");
  167. vobj.find('.vtip').width(vobj.width());
  168. }
  169. }
  170. }
  171. if($('.vtip').length == 0){
  172. if(type == 5){
  173. addNewSHPanle();
  174. }else{
  175. if(type == 1){
  176. saveTableRecords(type);
  177. }
  178. updateStatus(type);
  179. }
  180. }else{
  181. getTop(globalThis).hangge();
  182. bootbox.dialog({
  183. message: "<span class='bigger-110'>仍有数据不符合要求!</span>",
  184. buttons:
  185. {
  186. "button" :
  187. {
  188. "label" : "确定",
  189. "className" : "btn-sm btn-success"
  190. }
  191. }
  192. });
  193. }
  194. }
  195. function saveTableRecords(type){
  196. getTop(globalThis).jzts();
  197. //根据tabletitle 获取当前立项年份
  198. var tabletitle = $(".tabletitle").text();
  199. var tabYear = tabletitle.split('年')[0];
  200. changeStatus(type);
  201. if(editflag == 1){
  202. $('#editbutton').html('编辑');
  203. //$("input.editInput").attr("readonly","readonly" );
  204. $("textarea.editInput").attr("readonly","readonly" );
  205. $("select.editInput").attr("disabled","disabled" );
  206. $(".keyWordsCheckbox").attr("disabled","disabled" );
  207. editflag = 0;
  208. //textarea替换
  209. $('textarea').hide();
  210. // $('textarea.bz').show();
  211. $('textarea').each(function(index,e){
  212. $(e).parent().find('pre').html($(e).val());
  213. })
  214. $('pre').show();
  215. }
  216. var tabledata = dataResult();
  217. var projectName = pd_NAME+"---"+$('.editInput.PROJECT_NAME').val();
  218. //进度月度分解
  219. var dataYDFJ = dataYDFJResult();
  220. $.ajax({
  221. type : "post",
  222. url : locat + '/annualDailyComp/saveDocData.do?TABLETYPE='
  223. +pd_TABLETYPE+'&COMPANY_ID='+pd_COMPANY_ID+'&YEAR='+pd_YEAR+'&ROAD_ID='+pd_ROAD_ID +'&COMPANY='+pd_COMPANY+'&ROAD='+pd_ROAD
  224. +'&mode='+pd_mode+'&PROJECT_NAME='+encodeURIComponent($('.PROJECT_NAME').val()) + '&NAME='+encodeURIComponent(projectName) + '&REPORTID='+pd_REPORTID+'&YEAR='+tabYear,
  225. data:{
  226. data:JSON.stringify(tabledata),
  227. dataYDFJ:JSON.stringify(dataYDFJ)
  228. },
  229. dataType : 'json',
  230. contentType: "application/x-www-form-urlencoded; charset=utf-8",
  231. success : function(data){
  232. if(data.msg == 'success'){
  233. //保存后不能改项目名称
  234. $('.PROJECT_NAME').removeClass("editInput");
  235. //留痕
  236. if(JSON.stringify(recordData) != "{}") saveRecordInfo();
  237. if(JSON.stringify(sublistRecordData) != "{}") saveSublistRecordInfo();
  238. //保存后更新input原始值
  239. for(var i=0;i<$('.editInput').length;i++){
  240. var e = $('.editInput')[i];
  241. $(e).attr('value',$(e).val());
  242. }
  243. //保存后更新子表id
  244. if(data.idlist){
  245. for(var i=0;i<data.idlist.length;i++){
  246. var name = data.idlist[i].name;
  247. var id = data.idlist[i].id;
  248. for(var j=0;j<$(".ITEM_NAME").length;j++){
  249. if($(".ITEM_NAME").eq(j).val() == name){
  250. $(".ITEM_NAME").eq(j).parent().parent().find("td>input[name='ID']").val(id);
  251. break;
  252. }
  253. }
  254. }
  255. $('#pd_mode').html("edit");
  256. }
  257. $('#pd_mode').html("edit");
  258. getTop(globalThis).hangge();
  259. bootbox.dialog({
  260. message: "<span class='bigger-110'>保存成功!</span>",
  261. buttons:
  262. {
  263. "button" :
  264. {
  265. "label" : "确定",
  266. "className" : "btn-sm btn-success",
  267. "callback" : function(){
  268. var selfhref = self.location.href;
  269. if(pd_TABLETYPE == "highway_prevention_project_dettable" || pd_TABLETYPE == "highway_test_project_dettable"
  270. || pd_TABLETYPE == "highway_scientific_project_dettable" || pd_TABLETYPE == "highway_repair_project_dettable"
  271. || pd_TABLETYPE == "highway_special_project_dettable" || pd_TABLETYPE == "highway_equipment_overhaul_project_dettable"){
  272. if(selfhref.indexOf('---') < 0){
  273. var replacestr = '---' + encodeURIComponent($('.PROJECT_NAME').val()) + '&STATUS=';
  274. selfhref = selfhref.replace('&STATUS=',replacestr);
  275. }
  276. }
  277. self.location.href = selfhref;
  278. }
  279. }
  280. }
  281. });
  282. }else{
  283. // 设置addRowFlag 的值
  284. addRowFlag = 2;
  285. getTop(globalThis).hangge();
  286. bootbox.dialog({
  287. message: "<span class='bigger-110'>"+data.msg+"</span>",
  288. buttons:
  289. {
  290. "button" :
  291. {
  292. "label" : "确定",
  293. "className" : "btn-sm btn-success"
  294. }
  295. }
  296. });
  297. }
  298. },
  299. error:function(){
  300. getTop(globalThis).hangge();
  301. bootbox.dialog({
  302. message: "<span class='bigger-110'>保存失败!</span>",
  303. buttons:
  304. {
  305. "button" :
  306. {
  307. "label" : "确定",
  308. "className" : "btn-sm btn-success"
  309. }
  310. }
  311. });
  312. }
  313. });
  314. }
  315. //增加审核意见弹出框
  316. function addNewSHPanle(){
  317. getTop(globalThis).jzts();
  318. var diag = new getTop(globalThis).Dialog();
  319. diag.Drag=true;
  320. diag.Title ="填写审核意见";
  321. diag.URL = locat + '/annualMassagePanel/addNewSHPanel.do?TABLETYPE=' + pd_TABLETYPE +'&COMPANY_ID='+ pd_COMPANY_ID
  322. + '&YEAR='+pd_YEAR + '&ROAD_ID='+ pd_ROAD_ID + '&ROLE_NAME=' + pd_ROLENAME + '&TABLE_NAME=' + pd_NAME
  323. +'&COMPANY='+pd_COMPANY+'&ROAD='+pd_ROAD;
  324. diag.Width = 400;
  325. diag.Height = 200;
  326. diag.CancelEvent = function(){ //关闭事件
  327. diag.close();
  328. };
  329. diag.show();
  330. }
  331. function changeStatus(type){
  332. for(var i=0;i<$("input[name='STATUS']").length;i++){
  333. var e = $("input[name='STATUS']")[i];
  334. $(e).attr('value',type);
  335. $(e).val(type);
  336. currStatus = type;
  337. }
  338. }
  339. function updateStatus(type){
  340. $.ajax({
  341. type : "get",
  342. url : locat+'/annualDailyComp/updateStatus.do?STATUS='+type+'&TABLETYPE='+pd_TABLETYPE+'&COMPANY_ID='+pd_COMPANY_ID+'&YEAR='+pd_YEAR+'&ROAD_ID='+pd_ROAD_ID
  343. +'&COMPANY='+pd_COMPANY+'&ROAD='+pd_ROAD + '&PROJECT_NAME=' + $('.PROJECT_NAME').val(),
  344. dataType : 'json',
  345. contentType: "application/x-www-form-urlencoded; charset=utf-8",
  346. success : function(data){
  347. if(type != 1){
  348. getTop(globalThis).hangge();
  349. bootbox.dialog({
  350. message: "<span class='bigger-110'>"+data.msg+"</span>",
  351. buttons:
  352. {
  353. "button" :
  354. {
  355. "label" : "确定",
  356. "className" : "btn-sm btn-success"
  357. }
  358. }
  359. });
  360. }
  361. }
  362. });
  363. }
  364. function addNewTableInfo(name){
  365. if($('.editInput.PROJECT_NAME').val()!=''){
  366. var projectName = name + "---" + $('.PROJECT_NAME').val();
  367. $.ajax({
  368. type : "get",
  369. url : locat+'/annualPlan/addNewTableInfo.do?TABLETYPE='+pd_TABLETYPE+'&COMPANY_ID='+pd_COMPANY_ID+'&YEAR='+pd_YEAR+'&ROAD_ID='+pd_ROAD_ID
  370. +'&COMPANY='+encodeURIComponent(pd_COMPANY)+'&ROAD='+pd_ROAD + '&NAME='+encodeURIComponent(projectName) + '&REPORTID='+pd_REPORTID + '&PROJECT_NAME=' + encodeURIComponent($('.PROJECT_NAME').val()),
  371. dataType : 'json',
  372. success : function(data){
  373. if(data.msg == 'success'){
  374. saveTable("1");
  375. }else{
  376. getTop(globalThis).hangge();
  377. bootbox.dialog({
  378. message: "<span class='bigger-110'>"+data.msg+"</span>",
  379. buttons:
  380. {
  381. "button" :
  382. {
  383. "label" : "确定",
  384. "className" : "btn-sm btn-success"
  385. }
  386. }
  387. });
  388. }
  389. },
  390. error:function(){
  391. getTop(globalThis).hangge();
  392. bootbox.dialog({
  393. message: "<span class='bigger-110'>新建立项表失败!</span>",
  394. buttons:
  395. {
  396. "button" :
  397. {
  398. "label" : "确定",
  399. "className" : "btn-sm btn-success"
  400. }
  401. }
  402. });
  403. }
  404. });
  405. }else{
  406. getTop(globalThis).hangge();
  407. bootbox.dialog({
  408. message: "<span class='bigger-110'>请填写后保存</span>",
  409. buttons:
  410. {
  411. "button" :
  412. {
  413. "label" : "确定",
  414. "className" : "btn-sm btn-success"
  415. }
  416. }
  417. });
  418. }
  419. }
  420. //主表留痕标红
  421. function saveRecordInfo(){
  422. if($("input[name='PROJECT_NAME']").val() || pd_TABLETYPE=='highway_technica_statable' || pd_TABLETYPE=='highway_traiffcinfo_sumtable'){
  423. $.ajax({
  424. type : "post",
  425. url : locat+'/annualDailyComp/saveRecordInfo.do?TABLE_NAME='+pd_TABLETYPE+'&COMPANY_ID='+pd_COMPANY_ID
  426. +'&YEAR='+pd_YEAR+'&BEFORE_STATUS='+status+'&AFTER_STATUS='+currStatus+'&ROAD_ID='+pd_ROAD_ID+'&type=PROJECT_NAME',
  427. data:{
  428. recordData:JSON.stringify(recordData),
  429. recordBeforeValue:JSON.stringify(recordBeforeValue)
  430. },
  431. dataType : 'json',
  432. success : function(data){
  433. recordData = new Object();
  434. recordBeforeValue = new Object();
  435. //留痕标红
  436. setRecordInfo();
  437. }
  438. });
  439. }
  440. }
  441. //子表留痕标红
  442. function saveSublistRecordInfo(){
  443. // var projectName = $("input[name='PROJECT_NAME']").val()?$("input[name='PROJECT_NAME']").val():'';
  444. if($("input[name='PROJECT_NAME']").val()){
  445. $.ajax({
  446. type : "post",
  447. url : locat+'/annualDailyComp/saveRecordInfo.do?TABLE_NAME='+pd_TABLETYPE+'_cost&COMPANY_ID='
  448. +pd_COMPANY_ID+'&YEAR='+pd_YEAR+'&BEFORE_STATUS='+status+'&AFTER_STATUS='+currStatus
  449. +'&ROAD_ID='+pd_ROAD_ID+'&PROJECT_NAME='+encodeURIComponent($("input[name='PROJECT_NAME']").val())+'&type=ITEM_ID',
  450. data:{
  451. recordData:JSON.stringify(sublistRecordData),
  452. recordBeforeValue:JSON.stringify(sublistRecordBeforeValue)
  453. },
  454. dataType : 'json',
  455. success : function(data){
  456. sublistRecordData = new Object();
  457. sublistRecordBeforeValue = new Object();
  458. //留痕标红
  459. setSubRecordInfo();
  460. }
  461. });
  462. }
  463. }
  464. function dataResult(){
  465. var mapArry1 = $("#Form1").serializeArray();
  466. var dataArry = [];
  467. var recordmap = new Object();
  468. for(var i=0; i<mapArry1.length; i++){
  469. recordmap[mapArry1[i].name] = mapArry1[i].value;
  470. }
  471. if(pd_TABLETYPE == "highway_prevention_project_dettable" || pd_TABLETYPE == "highway_test_project_dettable"
  472. || pd_TABLETYPE == "highway_scientific_project_dettable" || pd_TABLETYPE == "highway_repair_project_dettable"
  473. || pd_TABLETYPE == "highway_special_project_dettable"){
  474. var mapArry3 = $("#Form3").serializeArray();
  475. for(var i=0; i<mapArry3.length; i++){
  476. recordmap[mapArry3[i].name] = mapArry3[i].value;
  477. }
  478. }
  479. dataArry.push(recordmap);
  480. if(pd_TABLETYPE == "highway_prevention_project_dettable" || pd_TABLETYPE == "highway_test_project_dettable"
  481. || pd_TABLETYPE == "highway_repair_project_dettable"
  482. || pd_TABLETYPE == "highway_special_project_dettable"){
  483. /*var mapArry2 = $("#Form2").serializeArray();
  484. var cellcount = 12;
  485. var recordcount = mapArry2.length / 12;
  486. for(var i=0; i<recordcount; i++){
  487. var recordmap = new Object();
  488. for(var j=0; j<cellcount; j++){
  489. recordmap[mapArry2[i*cellcount+j].name] = mapArry2[i*cellcount+j].value;
  490. }
  491. dataArry.push(recordmap);
  492. }*/
  493. var sublength = $(".sublisttr").find('td').find('input').length;
  494. var recordcount = sublength / 12;
  495. var cellcount = 12;
  496. for(var i=0; i<recordcount; i++){
  497. var recordmap = new Object();
  498. for(var j=0; j<cellcount; j++){
  499. //分项名称需要设置中文编码
  500. /*if($(".sublisttr").find('td').find('input')[i*cellcount+j].name=="ITEM_NAME"){
  501. console.log("***** 分项字段名 TITEM_NAME TRUE");
  502. recordmap[$(".sublisttr").find('td').find('input')[i*cellcount+j].name] =encodeURIComponent($(".sublisttr").find('td').find('input')[i*cellcount+j].value);
  503. }
  504. else{
  505. recordmap[$(".sublisttr").find('td').find('input')[i*cellcount+j].name] = $(".sublisttr").find('td').find('input')[i*cellcount+j].value;
  506. }*/
  507. recordmap[$(".sublisttr").find('td').find('input')[i*cellcount+j].name] = $(".sublisttr").find('td').find('input')[i*cellcount+j].value;
  508. }
  509. dataArry.push(recordmap);
  510. }
  511. }else if(pd_TABLETYPE == "highway_scientific_project_dettable"){
  512. /*var mapArry2 = $("#Form2").serializeArray();
  513. var cellcount = 11;
  514. var recordcount = mapArry2.length / 11;
  515. for(var i=0; i<recordcount; i++){
  516. var recordmap = new Object();
  517. for(var j=0; j<cellcount; j++){
  518. recordmap[mapArry2[i*cellcount+j].name] = mapArry2[i*cellcount+j].value;
  519. }
  520. dataArry.push(recordmap);
  521. }*/
  522. var sublength = $(".sublisttr").find('td').find('input').length;
  523. var recordcount = sublength / 11;
  524. var cellcount = 11;
  525. for(var i=0; i<recordcount; i++){
  526. var recordmap = new Object();
  527. for(var j=0; j<cellcount; j++){
  528. recordmap[$(".sublisttr").find('td').find('input')[i*cellcount+j].name] = $(".sublisttr").find('td').find('input')[i*cellcount+j].value;
  529. }
  530. dataArry.push(recordmap);
  531. }
  532. }
  533. return dataArry;
  534. }
  535. //主表编辑input失焦后操作
  536. function editValue(e){
  537. if(!$(e).attr('readonly')){
  538. //数字格式化
  539. // var num = "";
  540. // if(e.tagName == "INPUT"){
  541. // num = $(e).val();
  542. // num = numFormat(num);
  543. // $(e).val(num);
  544. // }
  545. if($(e).attr("totalType") == "sum") setTotalCell($(e).parent().parent().find('input[totalType="sum"]').index(e));
  546. setTrPercentCell($(e).parent().parent()[0]);
  547. setTrPercentCell($(".totaltr")[0]);
  548. if($('#pd_mode').html() == 'edit') setRecordData(e);
  549. //校验
  550. validateTip(e);
  551. }
  552. }
  553. //子表编辑input失焦后操作
  554. function editSublistValue(e){
  555. if(!$(e).attr('readonly')){
  556. //数字格式化
  557. // var num = "";
  558. // if(e.tagName == "INPUT"){
  559. // num = $(e).val();
  560. // num = numFormat(num);
  561. // $(e).val(num);
  562. // }
  563. if($(e).attr("totalType") == "sum") setTotalCell($(e).parent().parent().find('input[totalType="sum"]').index(e));
  564. setTrPercentCell($(e).parent().parent()[0]);
  565. setTrPercentCell($(".totaltr")[0]);
  566. if($('#pd_mode').html() == 'edit') setSublistRecordData(e);
  567. //校验
  568. validateTip(e);
  569. $(e)[0].defaultValue = $(e)[0].value;
  570. }
  571. }
  572. function resetUnitTotal(e){
  573. if(!$(e).attr('readonly')){
  574. setUnitTotalCell($(e).parent().parent()[0]);
  575. setTotalCell(0);
  576. $('.PROJECT_COST').val($('.sumCell.TOTAL_COST').val());
  577. setAllCostRatio();//重新计算月度进程百分比
  578. setProjectScale();
  579. }
  580. }
  581. //主表留痕数据
  582. function setRecordData(e){
  583. if(e){
  584. var key = $(e).attr('name');
  585. // var roadid = $("input[name='PROJECT_NAME']").val();
  586. var roadid = $("input[name='PROJECT_NAME']").val()?$("input[name='PROJECT_NAME']").val():'';
  587. var value = $(e).val();
  588. var beforeValue = $(e).attr('value');
  589. if($(e).val() != $(e).attr('value') && $(e).attr('value') != ''){
  590. if(!recordData[roadid]){
  591. recordData[roadid] = new Object();
  592. recordBeforeValue[roadid] = new Object();
  593. }
  594. recordData[roadid][key] = value;
  595. recordBeforeValue[roadid][key] = beforeValue;
  596. }else if($(e).val() == $(e).attr('value') && $(e).attr('value') != ''){
  597. if(roadid in recordData && key in recordData[roadid]){
  598. delete recordData[roadid][key];
  599. delete recordBeforeValue[roadid][key];
  600. if(JSON.stringify(recordData[roadid]) == "{}"){
  601. delete recordData[roadid];
  602. delete recordBeforeValue[roadid];
  603. }
  604. }
  605. }
  606. }
  607. }
  608. //子表留痕数据
  609. function setSublistRecordData(e){
  610. var key = $(e).attr('name');
  611. var roadid = $(e).parent().parent().find('td>input[name="ID"]').val();
  612. var value = $(e).val();
  613. var beforeValue = $(e).attr('value');
  614. if($(e).val() != $(e).attr('value') && $(e).attr('value') != ''){
  615. if(!sublistRecordData[roadid]){
  616. sublistRecordData[roadid] = new Object();
  617. sublistRecordBeforeValue[roadid] = new Object();
  618. }
  619. sublistRecordData[roadid][key] = value;
  620. sublistRecordBeforeValue[roadid][key] = beforeValue;
  621. }else if($(e).val() == $(e).attr('value') && $(e).attr('value') != ''){
  622. if(key in sublistRecordData[roadid] && roadid in sublistRecordData){
  623. delete sublistRecordData[roadid][key];
  624. delete sublistRecordBeforeValue[roadid][key];
  625. if(JSON.stringify(sublistRecordData[roadid]) == "{}"){
  626. delete sublistRecordData[roadid];
  627. delete sublistRecordBeforeValue[roadid];
  628. }
  629. }
  630. }
  631. }
  632. function setTrPercentCell(tr){
  633. $(tr).find("td>.percentCell").each(function(index,e){
  634. if(e.tagName == "INPUT"){
  635. var num1 = $(tr).find("td>."+$(e).attr("num1")).val();
  636. var num2 = $(tr).find("td>."+$(e).attr("num2")).val();
  637. var result = percentage(num1, num2);
  638. $(e).val(result);
  639. }else if(e.tagName == "SPAN"){
  640. var num1 = $(tr).find("td>."+$(e).attr("num1")).html();
  641. var num2 = $(tr).find("td>."+$(e).attr("num2")).html();
  642. var result = percentage(num1, num2);
  643. $(e).html(result);
  644. }
  645. });
  646. }
  647. function setUnitTotalCell(tr){
  648. $(tr).find("td>.unitTotalCell").each(function(index,e){
  649. var num1 = $(tr).find("td>."+$(e).attr("num1")).val();
  650. var num2 = $(tr).find("td>."+$(e).attr("num2")).val();
  651. var result = unitTotal(num1, num2);
  652. $(e).val(result);
  653. });
  654. }
  655. function percentage(num1, num2){
  656. var percent = "";
  657. if(!isNaN(Number(num1)) && !isNaN(Number(num2)) && Number(num2) != "0" )
  658. percent = Math.round(Number(num1) / Number(num2) * 100);
  659. // percent = Math.round(Number(num1) / Number(num2) * 100) + "%";
  660. return percent;
  661. }
  662. function unitTotal(num1, num2){
  663. var unitTotal = "";
  664. if(!isNaN(Number(num1)) && !isNaN(Number(num2)) && Number(num1) != "0" && Number(num2) != "0") unitTotal = Number(num1) * Number(num2);
  665. if(!isNaN(Number(unitTotal)) && Number(unitTotal) != "0") unitTotal = numFormat2(unitTotal);
  666. return unitTotal;
  667. }
  668. function numFormat(num){
  669. if(!isNaN(Number(num)) && Number(num) != "0"){
  670. if(num<10) num = Number(num).toFixed(1);
  671. else num = Math.round(Number(num));
  672. }
  673. return num;
  674. }
  675. function numFormat2(num){
  676. if(!isNaN(Number(num)) && Number(num) != "0"){
  677. num = Number(num).toFixed(2);
  678. }
  679. return num;
  680. }
  681. function setProjectScale(){
  682. var cost = $(".PROJECT_COST").val();
  683. var result = "";
  684. if(typeof(cost) != "undefined" && cost != ""){
  685. cost = Number(cost);
  686. if(cost < 500) result = "小修";
  687. else if(cost >= 500 && cost < 5000) result = "中修";
  688. else if(cost >= 5000) result = "大修";
  689. }
  690. $('.PROJECT_SCALE').val(result);
  691. }
  692. function setProjectName(){
  693. var name = $(".PROJECT_NAME").val();
  694. $('.sublisttr>td>input[name="PROJECT_NAME"]').attr('value',name);
  695. }
  696. function setCategory(e){
  697. var value = $('.CATEGORY>option:selected').text();
  698. if(value !=""){
  699. $('input[name="CATEGORY"]').val(value);
  700. $(e).parent().parent().find('>td>.CATEGORY').parent().find('.vtip').remove();
  701. // $('input[name="CATEGORY"]').attr('value',value);
  702. //留痕
  703. if($('#pd_mode').html() == 'edit') setRecordData($('input[name="CATEGORY"]')[0]);
  704. }
  705. else{
  706. //提示字段不能为空
  707. var vtip = validateFun($(e).attr('name'),value,e);
  708. $(e).parent().append("<div class='vtip'>"+vtip+"</div>");
  709. $(e).parent().find('.vtip').width($(e).parent().width());
  710. }
  711. }
  712. function setCategorySelect(){
  713. var value = $('input[name="CATEGORY"]').val();
  714. $(".CATEGORY>option:selected").removeAttr("selected");
  715. if(value == "") $(".CATEGORY>option").eq(0).attr("selected","selected");
  716. else $(".CATEGORY>option:contains('"+value+"')").attr("selected","selected");
  717. }
  718. function setQualityGradeSelect(){
  719. var value = $('input[name="QUALITY_GRADE"]').val();
  720. $(".QUALITY_GRADE>option:selected").removeAttr("selected");
  721. if(value == "") $(".QUALITY_GRADE>option").eq(0).attr("selected","selected");
  722. else $(".QUALITY_GRADE>option:contains('"+value+"')").attr("selected","selected");
  723. }
  724. function setQualityGrade(e){
  725. var value = $('.QUALITY_GRADE>option:selected').text();
  726. if(value !=""){
  727. $('input[name="QUALITY_GRADE"]').val(value);
  728. $(e).parent().parent().find('>td>.QUALITY_GRADE').parent().find('.vtip').remove();
  729. //留痕
  730. if($('#pd_mode').html() == 'edit') setRecordData($('input[name="QUALITY_GRADE"]')[0]);
  731. }
  732. else{
  733. //提示字段不能为空
  734. var vtip = validateFun($(e).attr('name'),value,e);
  735. $(e).parent().append("<div class='vtip'>"+vtip+"</div>");
  736. $(e).parent().find('.vtip').width($(e).parent().width());
  737. }
  738. }
  739. function setKeyWords(){
  740. var arr = [];
  741. $("input[type='checkbox']:checked").each(function (index,e) {
  742. arr.push($(this).parent().text());
  743. });
  744. $('input[name="KEY_WORDS"]').val(arr.join(","));
  745. //留痕
  746. if($('#pd_mode').html() == 'edit') setRecordData($('input[name="KEY_WORDS"]')[0]);
  747. }
  748. function setKeyWordsLabels(){
  749. $('#keyWordsCell').html('');
  750. var categoryType = $('.CATEGORY>option:selected').text();
  751. var arr = [];
  752. if(categoryType != ''){
  753. arr = labelsObj[pd_TABLETYPE][categoryType];
  754. }
  755. var str = '';
  756. if(arr.length>0){
  757. for(var i=0; i<arr.length; i++){
  758. str += '<label><input class="keyWordsCheckbox" type="checkbox" onchange="setKeyWords();"/>'+arr[i]+'</label>';
  759. }
  760. }
  761. $('#keyWordsCell').html(str);
  762. //设置关键字数值
  763. setKeyWords();
  764. }
  765. function setLabelsSelected(){
  766. if($('input[name="KEY_WORDS"]').attr('value')){
  767. var arr = $('input[name="KEY_WORDS"]').attr('value').split(',');
  768. for(var i=0; i<arr.length; i++){
  769. $(".keyWordsCheckbox").each(function (index,e) {
  770. if($(this).parent().text() == arr[i]) $(this).attr("checked","checked");
  771. });
  772. }
  773. }
  774. //设置关键字数值
  775. setKeyWords();
  776. }
  777. //主表查询留痕数据并标红
  778. function setRecordInfo(){
  779. if($("input[name='PROJECT_NAME']").val() || pd_TABLETYPE=='highway_technica_statable' || pd_TABLETYPE=='highway_traiffcinfo_sumtable'){
  780. var ritype = 1;
  781. if(pd_TABLETYPE=='highway_technica_statable' || pd_TABLETYPE=='highway_traiffcinfo_sumtable') ritype = 3;
  782. $.ajax({
  783. type : "get",
  784. url : locat+'/annualDailyComp/showRecodInfo.do?TABLE_NAME='+pd_TABLETYPE+'&COMPANY_ID='+pd_COMPANY_ID
  785. +'&YEAR='+pd_YEAR+'&ROAD_ID='+pd_ROAD_ID+'&PROJECT_NAME='+encodeURIComponent($("input[name='PROJECT_NAME']").val())+'&type='+ritype,
  786. dataType : 'json',
  787. success : function(data){
  788. for(var e in rocordInfoList){
  789. $('.highlight').removeClass(e);
  790. }
  791. $('.highlight').removeClass('highlight');
  792. rocordInfoList = data.rocordInfoList;
  793. for(var e in data.rocordInfoList){
  794. if(data.rocordInfoList[e].TABLE_FIELDS == "KEY_WORDS"){
  795. $('input[name="KEY_WORDS"]').addClass("highlight " + e);
  796. $('#keyWordsCell label').css('color','red');
  797. }else if(data.rocordInfoList[e].TABLE_FIELDS == "CATEGORY"){
  798. $('input[name="CATEGORY"]').addClass("highlight " + e);
  799. $('.CATEGORY').addClass("highlight");
  800. }else {
  801. $('.'+data.rocordInfoList[e].TABLE_FIELDS).addClass("highlight " + e);
  802. //pre
  803. $('textarea.highlight').each(function(index,e){
  804. $(e).parent().find('pre').attr('class',$(e).attr('class'));
  805. });
  806. }
  807. }
  808. }
  809. });
  810. }
  811. }
  812. //子表查询留痕数据并标红
  813. function setSubRecordInfo(){
  814. if($("input[name='PROJECT_NAME']").val()){
  815. $.ajax({
  816. type : "get",
  817. url : locat+'/annualDailyComp/showRecodInfo.do?TABLE_NAME='+pd_TABLETYPE+'_cost&COMPANY_ID='+pd_COMPANY_ID
  818. +'&YEAR='+pd_YEAR+'&ROAD_ID='+pd_ROAD_ID+'&PROJECT_NAME='+encodeURIComponent($("input[name='PROJECT_NAME']").val())+'&type=2',
  819. dataType : 'json',
  820. success : function(data){
  821. for(var e in sublistRecordInfoList){
  822. $('.subhighlight').removeClass(e);
  823. }
  824. $('.subhighlight').removeClass('subhighlight');
  825. sublistRecordInfoList = data.rocordInfoList;
  826. for(var e in sublistRecordInfoList){
  827. $('input[name="ID"]').each(function(index,obj){
  828. if($(this).val() == sublistRecordInfoList[e].ITEM_ID){
  829. $(this).parent().parent().find('td>.'+sublistRecordInfoList[e].TABLE_FIELDS).addClass("subhighlight " + e);
  830. }
  831. })
  832. }
  833. }
  834. });
  835. }
  836. }
  837. function highlightInit(){
  838. $('.editInput').off("mouseover mouseout").on("mouseover mouseout",function(event){
  839. if($(this).attr('class').split(' ').length > 2){
  840. if(event.type == "mouseover"){
  841. var indexClass = $(this).attr('class').split(' ')[3];
  842. var typeClass = $(this).attr('class').split(' ')[2];
  843. if(typeClass == 'subhighlight'){
  844. var before = sublistRecordInfoList[indexClass].BEFORE_VAL?sublistRecordInfoList[indexClass].BEFORE_VAL:"空";
  845. var after = sublistRecordInfoList[indexClass].AFTER?sublistRecordInfoList[indexClass].AFTER:"空";
  846. var modifier = sublistRecordInfoList[indexClass].MODIFIER;
  847. var time = sublistRecordInfoList[indexClass].MODIFY_TIME;
  848. }else{
  849. var before = rocordInfoList[indexClass].BEFORE_VAL?rocordInfoList[indexClass].BEFORE_VAL:"空";
  850. var after = rocordInfoList[indexClass].AFTER?rocordInfoList[indexClass].AFTER:"空";
  851. var modifier = rocordInfoList[indexClass].MODIFIER;
  852. var time = rocordInfoList[indexClass].MODIFY_TIME;
  853. }
  854. $(this).parent().append('<div id="recordInfoDiv">修改人:'+modifier+'<br/>修改时间:'+time+'<br/>'+before+'<br/>'+after+'</div>');
  855. $('#recordInfoDiv').width($(this).parent().width());
  856. }else if(event.type == "mouseout"){
  857. $("#recordInfoDiv").remove();
  858. }
  859. }
  860. });
  861. $('#keyWordsCell').off("mouseover mouseout").on("mouseover mouseout",function(event){
  862. if($('input[name="KEY_WORDS"]').attr('class').split(' ').length > 1){
  863. if(event.type == "mouseover"){
  864. var indexClass = $('input[name="KEY_WORDS"]').attr('class').split(' ')[2];
  865. var typeClass = $('input[name="KEY_WORDS"]').attr('class').split(' ')[1];
  866. var before = rocordInfoList[indexClass].BEFORE_VAL?rocordInfoList[indexClass].BEFORE_VAL:"空";
  867. var after = rocordInfoList[indexClass].AFTER?rocordInfoList[indexClass].AFTER:"空";
  868. var modifier = rocordInfoList[indexClass].MODIFIER;
  869. var time = rocordInfoList[indexClass].MODIFY_TIME;
  870. $('#keyWordsCell').append('<div id="recordInfoDiv">修改人:'+modifier+'<br/>修改时间:'+time+'<br/>'+before+'<br/>'+after+'</div>');
  871. $('#recordInfoDiv').width($('#keyWordsCell').width());
  872. }else if(event.type == "mouseout"){
  873. $("#recordInfoDiv").remove();
  874. }
  875. }
  876. });
  877. $('#categoryCell').off("mouseover mouseout").on("mouseover mouseout",function(event){
  878. if($('input[name="CATEGORY"]').attr('class').split(' ').length > 1){
  879. if(event.type == "mouseover"){
  880. var indexClass = $('input[name="CATEGORY"]').attr('class').split(' ')[2];
  881. var typeClass = $('input[name="CATEGORY"]').attr('class').split(' ')[1];
  882. var before = rocordInfoList[indexClass].BEFORE_VAL?rocordInfoList[indexClass].BEFORE_VAL:"空";
  883. var after = rocordInfoList[indexClass].AFTER?rocordInfoList[indexClass].AFTER:"空";
  884. var modifier = rocordInfoList[indexClass].MODIFIER;
  885. var time = rocordInfoList[indexClass].MODIFY_TIME;
  886. $('#categoryCell').append('<div id="recordInfoDiv">修改人:'+modifier+'<br/>修改时间:'+time+'<br/>'+before+'<br/>'+after+'</div>');
  887. $('#recordInfoDiv').width($('#categoryCell').width());
  888. }else if(event.type == "mouseout"){
  889. $("#recordInfoDiv").remove();
  890. }
  891. }
  892. });
  893. }
  894. function importTableName(name,proJectName1){
  895. if($('.editInput.PROJECT_NAME').val()==''){
  896. var str = name;
  897. if(str.indexOf("---") != -1 ){
  898. var projectName = name;
  899. }else{
  900. if(pd_TABLETYPE == "highway_prevention_project_dettable" || pd_TABLETYPE == "highway_test_project_dettable"
  901. || pd_TABLETYPE == "highway_scientific_project_dettable" || pd_TABLETYPE == "highway_repair_project_dettable"
  902. || pd_TABLETYPE == "highway_special_project_dettable" || pd_TABLETYPE == "highway_equipment_overhaul_project_dettable")
  903. {
  904. var projectName = name + "---" + proJectName1;
  905. }
  906. }
  907. $.ajax({
  908. type : "get",
  909. url : locat+'/annualPlan/changeTableName.do?TABLETYPE='+pd_TABLETYPE+'&COMPANY_ID='+pd_COMPANY_ID+'&YEAR='+pd_YEAR+'&ROAD_ID='+pd_ROAD_ID
  910. +'&COMPANY='+encodeURIComponent(pd_COMPANY)+'&ROAD='+pd_ROAD + '&PROJECT_NAME='+encodeURIComponent(projectName)+ '&REPORTID='+pd_REPORTID,
  911. dataType : 'json',
  912. success : function(data){
  913. //alert("change success!");
  914. }
  915. });
  916. }
  917. }
  918. function uploadPic(name) {
  919. //var form = document.getElementById('upload'),
  920. var formData = new FormData($( "#upload" )[0]);
  921. var x=document.getElementById("pic").value;
  922. if(x=="")
  923. {
  924. alert("请选择文件");
  925. return false;
  926. }
  927. var tabledata = dataResult();
  928. formData.append("data",JSON.stringify(tabledata));
  929. formData.append("TABLETYPE",pd_TABLETYPE);
  930. formData.append("COMPANY_ID",pd_COMPANY_ID);
  931. formData.append("YEAR",pd_YEAR);
  932. formData.append("ROAD_ID",pd_ROAD_ID);
  933. formData.append("COMPANY",pd_COMPANY);
  934. formData.append("ROAD",pd_ROAD);
  935. formData.append("REPORTID",pd_REPORTID);
  936. //var path = $("#pic").val();
  937. $.ajax({
  938. /* url:locat+'/annualDailyComp/importDoc?data='+JSON.stringify(tabledata)+'&TABLETYPE='
  939. +pd_TABLETYPE+'&COMPANY_ID='+pd_COMPANY_ID+'&YEAR='+pd_YEAR+'&ROAD_ID='+pd_ROAD_ID+'&COMPANY='
  940. +encodeURIComponent(pd_COMPANY)+'&ROAD='+encodeURIComponent(pd_ROAD) + '&REPORTID='+pd_REPORTID,*/
  941. url:locat+'/annualDailyComp/importDoc',
  942. type:"post",
  943. dataType: "json",
  944. data: formData,
  945. processData : false,
  946. contentType : false,
  947. //contentType: "application/x-www-form-urlencoded; charset=utf-8",
  948. success:function(res){
  949. if(res){
  950. if(res.error != undefined){
  951. //alert(res.error);
  952. getTop(globalThis).hangge();
  953. bootbox.dialog({
  954. message: "<span class='bigger-110'>"+res.error+"</span>",
  955. buttons:
  956. {
  957. "button" :
  958. {
  959. "label" : "确定",
  960. "className" : "btn-sm btn-success"
  961. }
  962. }
  963. });
  964. }else{
  965. //updateStatus(1);
  966. /* $.ajax({
  967. type : "post",
  968. url:locat+'/annualDailyComp/getProJectName?data='+'&TABLETYPE='
  969. +pd_TABLETYPE+'&COMPANY_ID='+pd_COMPANY_ID+'&YEAR='+pd_YEAR+'&ROAD_ID='+pd_ROAD_ID,
  970. dataType : 'json',
  971. success : function(data){
  972. var projectname1 = data.projectname;
  973. importTableName(name,data.projectname);*/
  974. //alert("上传成功!");
  975. getTop(globalThis).hangge();
  976. bootbox.dialog({
  977. message: "<span class='bigger-110'>上传成功!</span>",
  978. buttons:
  979. {
  980. "button" :
  981. {
  982. "label" : "确定",
  983. "className" : "btn-sm btn-success"
  984. }
  985. }
  986. });
  987. var selfhref = self.location.href;
  988. if(pd_TABLETYPE == "highway_prevention_project_dettable" || pd_TABLETYPE == "highway_test_project_dettable"
  989. || pd_TABLETYPE == "highway_scientific_project_dettable" || pd_TABLETYPE == "highway_repair_project_dettable"
  990. || pd_TABLETYPE == "highway_special_project_dettable" || pd_TABLETYPE == "highway_equipment_overhaul_project_dettable"){
  991. if(selfhref.indexOf('---') < 0){
  992. var replacestr = '---' + res.projectName + '&STATUS=';
  993. selfhref = selfhref.replace('&STATUS=',replacestr);
  994. }
  995. }
  996. //changeTableName(projectname1);
  997. self.location.href = selfhref;
  998. /* },
  999. error:function(){
  1000. alert('err');
  1001. }
  1002. });*/
  1003. //getProjectName();
  1004. }
  1005. }
  1006. console.log(res);
  1007. },
  1008. error:function(err){
  1009. //alert("上传失败!");
  1010. getTop(globalThis).hangge();
  1011. bootbox.dialog({
  1012. message: "<span class='bigger-110'>上传失败!</span>",
  1013. buttons:
  1014. {
  1015. "button" :
  1016. {
  1017. "label" : "确定",
  1018. "className" : "btn-sm btn-success"
  1019. }
  1020. }
  1021. });
  1022. }
  1023. });
  1024. }
  1025. //获取校验json
  1026. function getValidateJson(){
  1027. $.ajax({
  1028. type : "get",
  1029. url : locat + "/annualDailyComp/getValidateJson.do?TABLETYPE=" + pd_TABLETYPE,
  1030. dataType : 'json',
  1031. success : function(data){
  1032. Object.assign(validateJsonData,data.map,data.submap);
  1033. }
  1034. });
  1035. }
  1036. //校验规则
  1037. function validateFun(name,val,e){
  1038. if(name){
  1039. //月度分解计划总和不能大于工程估算
  1040. if(name == 'SumPlanCost'){
  1041. var project_cost = $('.PROJECT_COST').val();
  1042. if(!isNaN(Number(val)) && !isNaN(Number(project_cost))){
  1043. if (Number(val) > Number(project_cost)) return "该字段不能大于工程估算";
  1044. else return "";
  1045. }else return "";
  1046. }
  1047. if(name.indexOf('PLAN_COST') == 0) name = 'PLAN_COST';
  1048. else if(name.indexOf('PLAN_QUANTITIES') == 0) name = 'PLAN_QUANTITIES';
  1049. var vtype = validateJsonData[name].type;
  1050. var vlength = validateJsonData[name].length;
  1051. var vscale = validateJsonData[name].scale;
  1052. var vnotnull = validateJsonData[name].notnull;
  1053. if(val != ""){
  1054. if(vtype == 'decimal'){
  1055. var re = new RegExp("^(\\-|\\+)?\\d+(\\.\\d+)?$");
  1056. //是否为数字
  1057. if(!re.test(val)) return "请填写数字";
  1058. //小数位数
  1059. if(vscale == "1") $(e).val(numFormat2(val));
  1060. if(vscale != "1"){
  1061. if(val.split(".").length == 2){
  1062. if(val.split(".")[1].length > vscale) return "小数精度不超过"+vscale;
  1063. }
  1064. }
  1065. }
  1066. //长度
  1067. if(val.length > vlength) return "长度超长";
  1068. //分报告名称不能重复
  1069. // if(name == 'ITEM_NAME'){
  1070. // for(var i=0; i<$('.ITEM_NAME').length; i++){
  1071. // if($('.ITEM_NAME')[i] != e && $('.ITEM_NAME').eq(i).val() == val) return "该字段不能重复";
  1072. // }
  1073. // }
  1074. // if(name == 'SUBJECT'){
  1075. // for(var i=0; i<$('.SUBJECT').length; i++){
  1076. // if($('.SUBJECT')[i] != e && $('.SUBJECT').eq(i).val() == val) return "该字段不能重复";
  1077. // }
  1078. // }
  1079. // if(name == 'EXPENDITURE_SUBJECT'){
  1080. // for(var i=0; i<$('.EXPENDITURE_SUBJECT').length; i++){
  1081. // if($('.EXPENDITURE_SUBJECT')[i] != e && $('.EXPENDITURE_SUBJECT').eq(i).val() == val) return "该字段不能重复";
  1082. // }
  1083. // }
  1084. }else{
  1085. if(vnotnull == '1') return "该字段不能为空";
  1086. // if(name == 'SUBJECT'){
  1087. // if($(e).parent().parent().find('>td>.COSET').val()!=''){
  1088. // return "该字段不能为空";
  1089. // }
  1090. // }
  1091. // if(name == 'EXPENDITURE_SUBJECT'){
  1092. // if($(e).parent().parent().find('>td>.EXPENDITURE_COST').val()!=''){
  1093. // return "该字段不能为空";
  1094. // }
  1095. // }
  1096. }
  1097. //分报告名称非空校验
  1098. if(name == 'UNIT'||name == 'UNIT_PRICE'||name == 'NUMBER'||name == 'ITEM_NAME'){
  1099. if($(e).parent().parent().find('>td>.UNIT').val()!=''
  1100. ||$(e).parent().parent().find('>td>.UNIT_PRICE').val()!=''
  1101. ||$(e).parent().parent().find('>td>.NUMBER').val()!=''
  1102. ||$(e).parent().parent().find('>td>.ITEM_NAME').val()!=''){
  1103. validatecostdataTip($(e).parent().parent().find('>td>.UNIT')[0]);
  1104. validatecostdataTip($(e).parent().parent().find('>td>.UNIT_PRICE')[0]);
  1105. validatecostdataTip($(e).parent().parent().find('>td>.NUMBER')[0]);
  1106. validatecostdataTip($(e).parent().parent().find('>td>.ITEM_NAME')[0]);
  1107. }else if($(e).parent().parent().find('>td>.UNIT').val()==''
  1108. &&$(e).parent().parent().find('>td>.UNIT_PRICE').val()==''
  1109. &&$(e).parent().parent().find('>td>.NUMBER').val()==''
  1110. &&$(e).parent().parent().find('>td>.ITEM_NAME').val()==''){
  1111. $(e).parent().parent().find('>td>.vtip').remove();
  1112. }
  1113. }
  1114. if(name == 'COSET'){
  1115. $(e).parent().parent().find('>td>.SUBJECT').parent().find('.vtip').remove();
  1116. if($(e).parent().parent().find('>td>.COSET').val()!=''){
  1117. validateTip($(e).parent().parent().find('>td>.SUBJECT')[0]);
  1118. }
  1119. }
  1120. if(name == 'EXPENDITURE_COST'){
  1121. $(e).parent().parent().find('>td>.EXPENDITURE_SUBJECT').parent().find('.vtip').remove();
  1122. if($(e).parent().parent().find('>td>.EXPENDITURE_COST').val()!=''){
  1123. validateTip($(e).parent().parent().find('>td>.EXPENDITURE_SUBJECT')[0]);
  1124. }
  1125. }
  1126. //份报告名称为空后,重新校验名称重复
  1127. if(name == 'ITEM_NAME'){
  1128. for(var i=0; i<$('.ITEM_NAME').parent().find('.vtip').length; i++){
  1129. if($('.ITEM_NAME').parent().find('.vtip').eq(i).html()=='该字段不能重复'){
  1130. var reValidateE = $('.ITEM_NAME').parent().find('.vtip').eq(i).parent().find('.ITEM_NAME')[0];
  1131. $('.ITEM_NAME').parent().find('.vtip').eq(i).remove();
  1132. for(var j=0; j<$('.ITEM_NAME').length; j++){
  1133. if($('.ITEM_NAME')[j] != reValidateE && $('.ITEM_NAME').eq(j).val() == $(reValidateE).val()){
  1134. $(reValidateE).parent().append("<div class='vtip'>该字段不能重复</div>");
  1135. $(reValidateE).parent().find('.vtip').width($(e).parent().width());
  1136. }
  1137. }
  1138. }
  1139. }
  1140. if(val != ""){
  1141. for(var i=0; i<$('.ITEM_NAME').length; i++){
  1142. if($('.ITEM_NAME')[i] != e && $('.ITEM_NAME').eq(i).val() == val) return "该字段不能重复";
  1143. }
  1144. }
  1145. }
  1146. if(name == 'SUBJECT'){
  1147. for(var i=0; i<$('.SUBJECT').parent().find('.vtip').length; i++){
  1148. if($('.SUBJECT').parent().find('.vtip').eq(i).html()=='该字段不能重复'){
  1149. var reValidateE = $('.SUBJECT').parent().find('.vtip').eq(i).parent().find('.SUBJECT')[0];
  1150. $('.SUBJECT').parent().find('.vtip').eq(i).remove();
  1151. for(var j=0; j<$('.SUBJECT').length; j++){
  1152. if($('.SUBJECT')[j] != reValidateE && $('.SUBJECT').eq(j).val() == $(reValidateE).val()){
  1153. $(reValidateE).parent().append("<div class='vtip'>该字段不能重复</div>");
  1154. $(reValidateE).parent().find('.vtip').width($(e).parent().width());
  1155. }
  1156. }
  1157. }
  1158. }
  1159. if(val != ""){
  1160. for(var i=0; i<$('.SUBJECT').length; i++){
  1161. if($('.SUBJECT')[i] != e && $('.SUBJECT').eq(i).val() == val) return "该字段不能重复";
  1162. }
  1163. }else{
  1164. if($(e).parent().parent().find('>td>.COSET').val()!=''){
  1165. return "该字段不能为空";
  1166. }
  1167. }
  1168. }
  1169. if(name == 'EXPENDITURE_SUBJECT'){
  1170. for(var i=0; i<$('.EXPENDITURE_SUBJECT').parent().find('.vtip').length; i++){
  1171. if($('.EXPENDITURE_SUBJECT').parent().find('.vtip').eq(i).html()=='该字段不能重复'){
  1172. var reValidateE = $('.EXPENDITURE_SUBJECT').parent().find('.vtip').eq(i).parent().find('.EXPENDITURE_SUBJECT')[0];
  1173. $('.EXPENDITURE_SUBJECT').parent().find('.vtip').eq(i).remove();
  1174. for(var j=0; j<$('.EXPENDITURE_SUBJECT').length; j++){
  1175. if($('.EXPENDITURE_SUBJECT')[j] != reValidateE && $('.EXPENDITURE_SUBJECT').eq(j).val() == $(reValidateE).val()){
  1176. $(reValidateE).parent().append("<div class='vtip'>该字段不能重复</div>");
  1177. $(reValidateE).parent().find('.vtip').width($(e).parent().width());
  1178. }
  1179. }
  1180. }
  1181. }
  1182. if(val != ""){
  1183. for(var i=0; i<$('.EXPENDITURE_SUBJECT').length; i++){
  1184. if($('.EXPENDITURE_SUBJECT')[i] != e && $('.EXPENDITURE_SUBJECT').eq(i).val() == val) return "该字段不能重复";
  1185. }
  1186. }else{
  1187. if($(e).parent().parent().find('>td>.EXPENDITURE_COST').val()!=''){
  1188. return "该字段不能为空";
  1189. }
  1190. }
  1191. }
  1192. }
  1193. return "";
  1194. }
  1195. //分报道非空校验提示
  1196. function validatecostdataTip(e){
  1197. $(e).val($(e).val().trim());
  1198. if($(e).val()==""){
  1199. $(e).parent().find('.vtip').remove();
  1200. $(e).parent().append("<div class='vtip'>该字段不能为空</div>");
  1201. $(e).parent().find('.vtip').width($(e).parent().width());
  1202. }
  1203. }
  1204. //校验提示
  1205. function validateTip(e){
  1206. $(e).val($(e).val().trim());
  1207. $(e).parent().find('.vtip').remove();
  1208. var vtip = validateFun($(e).attr('name'),$(e).val(),e);
  1209. if(vtip != ""){
  1210. $(e).parent().append("<div class='vtip'>"+vtip+"</div>");
  1211. $(e).parent().find('.vtip').width($(e).parent().width());
  1212. }
  1213. }
  1214. function getKeywordsJson(){
  1215. $.ajax({
  1216. type : "get",
  1217. url : locat + "/static/ace/json/keywords.json",
  1218. dataType : 'json',
  1219. success : function(data){
  1220. labelsObj = data;
  1221. setKeyWordsLabels();
  1222. //checkbox禁用
  1223. $(".keyWordsCheckbox").attr("disabled","disabled" );
  1224. setLabelsSelected();
  1225. }
  1226. });
  1227. }
  1228. function notnullvalidate(){
  1229. $.ajax({
  1230. type : "get",
  1231. url : locat + "/static/ace/json/doc.json",
  1232. dataType : 'json',
  1233. success : function(data){
  1234. validateObj = data[pd_TABLETYPE];
  1235. }
  1236. });
  1237. }
  1238. /**********进度月度分解**********/
  1239. //计算所有月度进程百分比
  1240. function setAllCostRatio(){
  1241. $('.COST_RATIO').each(function(index,e){
  1242. setCostRatio(e);
  1243. })
  1244. }
  1245. function monthPlanInit(){
  1246. setSumPlanCost();
  1247. setAllCostRatio();
  1248. }
  1249. //小计行总计
  1250. function setSumPlanCost(){
  1251. var totalvalue = 0;
  1252. $('.ydfj_tr .PLAN_COST').each(function(index,e){
  1253. var editcellval = $(e).val();
  1254. if(typeof(editcellval) != "undefined")
  1255. totalvalue += Number(editcellval);
  1256. });
  1257. $('.ydfj_sum_tr .PLAN_COST').val(numFormat2(totalvalue) + '');
  1258. }
  1259. //计算百分比
  1260. function setCostRatio(e){
  1261. var num1 = $(e).parent().parent().find("td>.PLAN_COST").val();
  1262. var num2 = $('.PROJECT_COST').val();
  1263. var result = percentage(num1, num2);
  1264. $(e).html(result);
  1265. //验证总计是否大于PROJECT_COST
  1266. if($(e).is($('.ydfj_sum_tr .COST_RATIO'))) validateSumPlanCostTip($('.ydfj_sum_tr .PLAN_COST')[0]);
  1267. }
  1268. function editYDFJValue(e){
  1269. if(!$(e).attr('readonly')){
  1270. if($(e).hasClass('PLAN_COST')){
  1271. setSumPlanCost();
  1272. setCostRatio($(e).parent().parent().find("td>.COST_RATIO")[0]);
  1273. setCostRatio($('.ydfj_sum_tr .COST_RATIO')[0]);
  1274. }
  1275. //校验
  1276. validateTip(e);
  1277. }
  1278. }
  1279. //月度总和校验提示
  1280. function validateSumPlanCostTip(e){
  1281. $(e).val($(e).val().trim());
  1282. $(e).parent().find('.vtip').remove();
  1283. var vtip = validateFun('SumPlanCost',$(e).val(),e);
  1284. if(vtip != ""){
  1285. $(e).parent().append("<div class='vtip'>"+vtip+"</div>");
  1286. $(e).parent().find('.vtip').width($(e).parent().width());
  1287. }
  1288. }
  1289. function dataYDFJResult(){
  1290. var dataYDFJ = new Object();
  1291. if(pd_TABLETYPE != "highway_scientific_project_dettable" && pd_TABLETYPE != "highway_technica_statable"
  1292. && pd_TABLETYPE != "highway_traiffcinfo_sumtable"){
  1293. var mapArry = $("#Form4").serializeArray();
  1294. for(var i=0; i<mapArry.length; i++){
  1295. dataYDFJ[mapArry[i].name] = mapArry[i].value;
  1296. }
  1297. }
  1298. return dataYDFJ;
  1299. }
  1300. function removeDefaut(e){
  1301. if($(e).hasClass('PLAN_QUANTITIES') && $(e).val() == '--' && $(e).attr("readonly") != "readonly") $(e).val('');
  1302. else if(($(e).hasClass('PLAN_COST') && $(e).val() == '0' || $(e).val() == '0.0') && $(e).attr("readonly") != "readonly") $(e).val('');
  1303. }
  1304. function setDefaut(e){
  1305. if($(e).hasClass('PLAN_QUANTITIES') && $(e).val() == '' && $(e).attr("readonly") != "readonly") $(e).val('--');
  1306. else if($(e).hasClass('PLAN_COST') && $(e).val() == '' && $(e).attr("readonly") != "readonly") $(e).val('0');
  1307. }
  1308. /**********进度月度分解**********/
  1309. /**********道路技术状况现状新增计算**********/
  1310. function dljszkxzInit(){
  1311. if(pd_TABLETYPE == "highway_technica_statable"){
  1312. setBridgeTotalNum();
  1313. setPQI();
  1314. $('#SRI_PWI.active').on('click',function(){
  1315. var bval = $('#SRI_PWI').html();
  1316. if(bval == 'SRI'){
  1317. $('#SRI_PWI').html('PWI');
  1318. $('.SRI_PWI').val('PWI');
  1319. $('.SRI_PWI').attr('value','PWI');
  1320. }else if(bval == 'PWI'){
  1321. $('#SRI_PWI').html('SRI');
  1322. $('.SRI_PWI').val('SRI');
  1323. $('.SRI_PWI').attr('value','SRI');
  1324. }
  1325. setPQI();
  1326. });
  1327. }
  1328. };
  1329. function setMQI(){
  1330. var totalvalue = 0;
  1331. var mc = ['SCI','PQI','BCI','TCI'];
  1332. var qz = [0.08,0.7,0.12,0.1];
  1333. for(var i=0;i<mc.length;i++){
  1334. var editcellval = $('.'+mc[i]).val();
  1335. if(typeof(editcellval) != "undefined") totalvalue += Number(editcellval)*qz[i];
  1336. }
  1337. $('.MQI').val(numFormat2(totalvalue) + '');
  1338. }
  1339. function setPQI(){
  1340. var totalvalue = 0;
  1341. var mc = ['PCI','RQI','RDI','PBI'];
  1342. var qz = [0.35,0.3,0.15,0.1,0.1];
  1343. mc.push($('#SRI_PWI').html());
  1344. for(var i=0;i<mc.length;i++){
  1345. var editcellval = $('.'+mc[i]).val();
  1346. if(typeof(editcellval) != "undefined") totalvalue += Number(editcellval)*qz[i];
  1347. }
  1348. $('.PQI').val(numFormat2(totalvalue) + '');
  1349. //重设MQI
  1350. setMQI();
  1351. }
  1352. function setBridgeTotalNum(){
  1353. var totalvalue = 0;
  1354. var mc = ['ONE_BRIDGE_NUM','TWO_BRIDGE_NUM','THREE_BRIDGE_NUM','FOUR_BRIDGE_NUM','FIVE_BRIDGE_NUM'];
  1355. for(var i=0;i<mc.length;i++){
  1356. var editcellval = $('.'+mc[i]).val();
  1357. if(typeof(editcellval) != "undefined") totalvalue += Number(editcellval);
  1358. }
  1359. $('.BRIDGE_TOTAL_NUM').val(numFormat2(totalvalue) + '');
  1360. //计算所有桥梁比例
  1361. setBridgePro();
  1362. }
  1363. function setBridgePro(){
  1364. var mc = ['ONE_BRIDGE_NUM','TWO_BRIDGE_NUM','THREE_BRIDGE_NUM','FOUR_BRIDGE_NUM','FIVE_BRIDGE_NUM'];
  1365. for(var i=0;i<mc.length;i++){
  1366. var numE = $('.'+mc[i])[0];
  1367. var num1 = $(numE).val();
  1368. var num2 = $('.BRIDGE_TOTAL_NUM').val();
  1369. var result = percentage(num1, num2);
  1370. var proClassName = numE.classList[1].split('_')[0]+'_BRIDGE_PRO';
  1371. $('.'+proClassName).val(result);
  1372. }
  1373. }
  1374. /**********道路技术状况现状新增计算**********/
  1375. $(function(){
  1376. notnullvalidate();
  1377. monthPlanInit();
  1378. tableInit();
  1379. setCategorySelect();
  1380. setCategory();
  1381. setQualityGrade();
  1382. setQualityGradeSelect();
  1383. getKeywordsJson();
  1384. highlightInit();
  1385. setProjectScale();
  1386. // setKeyWordsLabels();
  1387. // //checkbox禁用
  1388. // $(".keyWordsCheckbox").attr("disabled","disabled" );
  1389. // setLabelsSelected();
  1390. getValidateJson();
  1391. dljszkxzInit();
  1392. });
  1393. //获取本网站的顶级节点,解决被其他网站iframe引入时发生的跨域问题
  1394. function getTop(obj){
  1395. var tp = obj;
  1396. //alert(obj.name);
  1397. if (tp.mainFrame == undefined) {
  1398. tp = tp.parent;
  1399. return getTop(tp);
  1400. } else {
  1401. return tp;
  1402. }
  1403. }
  1404. //工程费用预估清单数据获取
  1405. function projectCostDataResult(){
  1406. var dataArry = [];
  1407. if(pd_TABLETYPE == "highway_prevention_project_dettable" || pd_TABLETYPE == "highway_test_project_dettable"
  1408. || pd_TABLETYPE == "highway_repair_project_dettable"
  1409. || pd_TABLETYPE == "highway_special_project_dettable"){
  1410. var sublength = $(".sublisttr").find('td').find('input').length;
  1411. var recordcount = sublength / 12;
  1412. var cellcount = 12;
  1413. for(var i=0; i<recordcount; i++){
  1414. var recordmap = new Object();
  1415. for(var j=0; j<cellcount; j++){
  1416. recordmap[$(".sublisttr").find('td').find('input')[i*cellcount+j].name] = $(".sublisttr").find('td').find('input')[i*cellcount+j].value;
  1417. }
  1418. dataArry.push(recordmap);
  1419. }
  1420. }else if(pd_TABLETYPE == "highway_scientific_project_dettable"){
  1421. var sublength = $(".sublisttr").find('td').find('input').length;
  1422. var recordcount = sublength / 11;
  1423. var cellcount = 11;
  1424. for(var i=0; i<recordcount; i++){
  1425. var recordmap = new Object();
  1426. for(var j=0; j<cellcount; j++){
  1427. recordmap[$(".sublisttr").find('td').find('input')[i*cellcount+j].name] = $(".sublisttr").find('td').find('input')[i*cellcount+j].value;
  1428. }
  1429. dataArry.push(recordmap);
  1430. }
  1431. }
  1432. var lastdata = dataArry[dataArry.length-1];
  1433. return lastdata;
  1434. }
  1435. //数据库删除当前清单
  1436. function doDeleteRow(trId){
  1437. var lastdata = projectCostDataResult();
  1438. if(lastdata.ID != ""){
  1439. bootbox.confirm("确定要删除吗?", function(result) {
  1440. if(result) {
  1441. removeLastRow(trId);
  1442. $.ajax({
  1443. type : "post",
  1444. url : locat + '/annualDailyComp/delelLastRow.do?TABLETYPE='+pd_TABLETYPE+"_cost",
  1445. data:{
  1446. data:JSON.stringify(lastdata)
  1447. },
  1448. dataType : 'json',
  1449. success : function(data){
  1450. if(data.msg == 'success'){
  1451. getTop(globalThis).hangge();
  1452. bootbox.dialog({
  1453. message: "<span class='bigger-110'>删除成功,请保存修改!</span>",
  1454. buttons:
  1455. {
  1456. "button" :
  1457. {
  1458. "label" : "确定",
  1459. "className" : "btn-sm btn-success"
  1460. }
  1461. }
  1462. });
  1463. }else{
  1464. getTop(globalThis).hangge();
  1465. bootbox.dialog({
  1466. message: "<span class='bigger-110'>"+data.msg+"</span>",
  1467. buttons:
  1468. {
  1469. "button" :
  1470. {
  1471. "label" : "确定",
  1472. "className" : "btn-sm btn-success"
  1473. }
  1474. }
  1475. });
  1476. }
  1477. },
  1478. error:function(){
  1479. getTop(globalThis).hangge();
  1480. bootbox.dialog({
  1481. message: "<span class='bigger-110'>失败!</span>",
  1482. buttons:
  1483. {
  1484. "button" :
  1485. {
  1486. "label" : "确定",
  1487. "className" : "btn-sm btn-success"
  1488. }
  1489. }
  1490. });
  1491. }
  1492. });
  1493. }
  1494. else{
  1495. return;
  1496. }
  1497. });
  1498. }
  1499. else{
  1500. removeLastRow(trId);
  1501. }
  1502. }
  1503. function removeLastRow(trId){
  1504. //移除页面元素
  1505. if(trId > 1 ){
  1506. $("#"+trId+"").remove();
  1507. var row = document.getElementById("planCost").getAttribute("rowspan");
  1508. document.getElementById("planCost").setAttribute("rowspan", parseInt(row)-1);
  1509. }else{
  1510. bootbox.dialog({
  1511. message: "<span class='bigger-110'>最少需要保留一个分项</span>",
  1512. buttons:
  1513. {
  1514. "button" :
  1515. {
  1516. "label" : "确定",
  1517. "className" : "btn-sm btn-success"
  1518. }
  1519. }
  1520. });
  1521. }
  1522. }