bysyaIndex.js 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590
  1. var myScroll,t1;
  2. var dwnrArray = new Array();
  3. var whichOpen = 0;
  4. var isOpen = 0;
  5. var isDataCanSave = 1;
  6. var size = 1;
  7. /**
  8. * 字符串封装
  9. */
  10. var dknrStr = function (positon,isFirst) {
  11. var obj = $(".mui-table-view-cell");
  12. var intputs = obj.eq(positon - 1 ).find("input");
  13. var rlks = intputs.eq(0).val();
  14. var rljs = intputs.eq(1).val();
  15. var pyl = intputs.eq(2).val();
  16. var error = "";
  17. var dwsl = $("#dwsl").val();
  18. var str = "";
  19. for (var i = 1; i < parseInt(dwsl) + 1; i++) {
  20. var dwd = $("#dwd" + i).html();
  21. var gwd = $("#gwd" + i).html();
  22. str += dwd + "," + gwd + ",";
  23. var dksize = $("#dksl").val();
  24. for (var j = 1; j < parseInt(dksize) + 1; j++) {
  25. var kgval = $("#kg" + i + j).val();
  26. var gzsj = $("#gzsj" + i + j).val();
  27. var jssj = $("#jssj" + i + j).val();
  28. var xhval = $("#xh" + i + j).val();
  29. var sbidval = $("#sbid" + i + j).val();
  30. var hesnval = $("#hesn" + i + j).val();
  31. var bpgl = $("#bpgl" + i + j).val();
  32. if (gzsj == "") {
  33. error += "档位" + i + "端口" + j + "工作时间不能为空!\n";
  34. }
  35. if (jssj == "") {
  36. error += "档位" + i + "端口" + j + "结束时间不能为空!\n";
  37. }
  38. if (bpgl == undefined) {
  39. str += gzsj + "-" + jssj + "-" + kgval + "-" + xhval + "-" + sbidval + "-" + hesnval + ",";
  40. } else {
  41. if (bpgl == "") {
  42. error += "档位" + i + "端口" + j + "数值不能为空!\n";
  43. }
  44. str += gzsj + "-" + jssj + "-" + kgval + "-" + xhval + "-" + sbidval + "-" + hesnval + "-" + bpgl + ",";
  45. }
  46. }
  47. if (str != "") {
  48. str = str.substring(0, str.length - 1);
  49. }
  50. str += "#";
  51. }
  52. if (str != "") {
  53. str = str.substring(0, str.length - 1);
  54. }
  55. if (error != "") {
  56. alert(error);
  57. return "";
  58. }
  59. if (isFirst == 1){
  60. return str;
  61. } else{
  62. return rlks + "-" + rljs + "-" + pyl + "@" + str;
  63. }
  64. };
  65. $(function(){
  66. var mask = mui.createMask();//callback为用户点击蒙版时自动执行的回调;
  67. /*纵向滚轮 */
  68. myScroll = new IScroll(".bysyaIscroll",{
  69. scrollbars: true,
  70. fadeScrollbars:true,
  71. scrollbars: 'custom',
  72. shrinkScrollbars:'clip',
  73. click: true
  74. });
  75. /**
  76. * 开关事件
  77. * */
  78. $(".mui-content").on("tap", ".mui-switch", function(event){
  79. //阻止冒泡
  80. if(event.stopPropagation){
  81. event.stopPropagation();
  82. }else{
  83. event.cancelBubble = true;
  84. }
  85. //解决tap两次出发的方法(500是2次点击时间差,单位ms)
  86. if (t1 == null){
  87. t1 = new Date().getTime();
  88. }else{
  89. var t2 = new Date().getTime();
  90. if(t2 - t1 < 500){
  91. t1 = t2;
  92. return;
  93. }else{
  94. t1 = t2;
  95. }
  96. }
  97. var type = $(this).data("type");
  98. whichOpen = type;
  99. $(this).parent().parent().parent().next().find('.rowBox').children().remove();
  100. $(this).parent().parent().parent().next().siblings('.hiddenli').find('.rowBox').children().remove();
  101. //判断mui-active有无
  102. if($(this).parent().parent().parent().next().is(':hidden')){
  103. dwWindow(type,myScroll);
  104. setTimeout(function(){
  105. myScroll.refresh();
  106. },6000);
  107. }
  108. var that = $(this);
  109. $(this).parent().parent().parent().next().slideToggle(500,function(){
  110. if($(this).css("display")=='none'){
  111. that.removeClass("mui-active").children().css({'transition-duration': '0.2s', 'transform': 'translate(0, 0px)'});
  112. $("#btn-add").show();
  113. $("#btn-del").show();
  114. that.parent().find("input").attr("disabled","disabled");
  115. isOpen = 0;
  116. }
  117. setTimeout(function(){
  118. myScroll.refresh();
  119. },600);
  120. }).siblings('.hiddenli').stop().slideUp(500);
  121. that.parent().parent().parent().siblings('.align-itemscenter').children().find("input").attr("disabled","disabled");
  122. $(".mui-switch").removeClass("mui-active").children().css({'transition-duration': '0.2s', 'transform': 'translate(0, 0px)'});
  123. $(this).addClass("mui-active").children().css({'transition-duration': '0.2s', 'transform': 'translate(22px, 0px)'});
  124. $("#btn-add").hide();
  125. $("#btn-del").hide();
  126. that.parent().find("input").eq(1).removeAttr("disabled");
  127. isOpen = 1;
  128. });
  129. /**
  130. * 添加
  131. * */
  132. $("#btn-add").on("tap",function(){
  133. //解决tap两次出发的方法(500是2次点击时间差,单位ms)
  134. if (t1 == null){
  135. t1 = new Date().getTime();
  136. }else{
  137. var t2 = new Date().getTime();
  138. if(t2 - t1 < 500){
  139. t1 = t2;
  140. return;
  141. }else{
  142. t1 = t2;
  143. }
  144. }
  145. $("#dataSize").val(parseInt($("#dataSize").val()) + 1);
  146. var size = parseInt($("#dataSize").val());
  147. var obj = $(".mui-table-view-cell");
  148. var intputs = obj.eq(obj.length - 1 ).find("input");
  149. var rlks = (parseInt(intputs.eq(1).val()) + 1);
  150. var rljs = (parseInt(rlks) + 1);
  151. if (rlks == undefined) {
  152. rlks = 0;
  153. rljs = 1;
  154. }
  155. $(".bysyaIscroll>.mui-content>.mui-control-content>ul:eq(0)").append($("<li class='align-itemscenter'><ul class='mui-table-view' style='width: 100%;'><li class='mui-table-view-cell'><span>日龄</span><input type='text' class='form-control' placeholder='' aria-describedby='sizing-addon3' value = \"" + rlks + "\" disabled='disabled'> —<input disabled='disabled' type='text' class='form-control' placeholder='' aria-describedby='sizing-addon3' value = \"" + rljs + "\"><span>下偏移量</span><input type='text' class='form-control' placeholder='' aria-describedby='sizing-addon3' value = \""+ 0 + "\"/><div class='mui-switch mui-switch-mini hidden' data-type= \""+ size + "\"> <div class='mui-switch-handle'></div></div></li></ul></li><li class='hiddenli' style='display: none;'><div class='rowBox container-fluid' id = \""+ "yzConstant" + size + "\" ></div></li>"));
  156. myScroll.refresh();
  157. var newData = changeDknrStr(size);
  158. dwnrArray.push(newData);
  159. //最后一个input的第二个input可以填写
  160. var obj = $(".mui-table-view-cell");
  161. var intputs = obj.eq(obj.length - 1).find("input");
  162. intputs.eq(1).removeAttr("disabled");
  163. //倒数上一个input的第二个input不可以可以填写
  164. var obj = $(".mui-table-view-cell");
  165. var intputs = obj.eq(obj.length - 2).find("input");
  166. intputs.eq(1).attr("disabled","disabled");
  167. $(".mui-table-view-cell").on("blur","input:lt(2)",function(){
  168. var rlks = $(this).parent().find("input").eq(0).val();
  169. //输入0到9的正则
  170. if (!/^[0-9]+$/.test(this.value)) {
  171. mui.alert('日龄必须为数字!', '提示', function() {});
  172. $(this).val(parseInt(rlks) + 1);
  173. return;
  174. }
  175. if (parseInt(rlks) < parseInt(this.value)) {//如果日龄OK则保存
  176. isDataCanSave = 1;
  177. } else {
  178. isDataCanSave = 0;
  179. $(this).val(parseInt(rlks) + 1);
  180. mui.alert('日龄必须从小到大!', '提示', function() {});
  181. }
  182. });
  183. $(".mui-table-view-cell").on("blur","input:eq(2)",function(){
  184. //输入0到9的正则
  185. if (!/^[0-9]+$/.test(this.value)) {
  186. mui.alert('下偏移量必须为正整数!', '提示', function() {});
  187. $(this).val(0);
  188. return;
  189. }
  190. });
  191. });
  192. /**
  193. * 删除
  194. * */
  195. $("#btn-del").on("tap",function(){
  196. if ($("#dataSize").val() == '0') {
  197. return;
  198. }
  199. //解决tap两次出发的方法(500是2次点击时间差,单位ms)
  200. if (t1 == null){
  201. t1 = new Date().getTime();
  202. }else{
  203. var t2 = new Date().getTime();
  204. if(t2 - t1 < 500){
  205. t1 = t2;
  206. return;
  207. }else{
  208. t1 = t2;
  209. }
  210. }
  211. $("#dataSize").val(parseInt($("#dataSize").val()) - 1);
  212. var li1 = $(".align-itemscenter");
  213. $(".align-itemscenter").eq(li1.length-1).remove();
  214. dwnrArray.pop();
  215. myScroll.refresh();
  216. var obj = $(".mui-table-view-cell");
  217. var intputs = obj.eq(obj.length - 1).find("input");
  218. intputs.eq(1).removeAttr("disabled");
  219. });
  220. var dwnr = $("#dwnr").val();
  221. if (dwnr != "") {
  222. dwnrArray = dwnr.split("%");
  223. }else {
  224. $(".bysyaIscroll").hide();
  225. $(".msg").show();
  226. $(".btn-group").hide();
  227. }
  228. $(".mui-table-view-cell").on("blur","input:lt(2)",function(){
  229. var rlks = $(this).parent().find("input").eq(0).val();
  230. //输入0到9的正则
  231. if (!/^[0-9]+$/.test(this.value)) {
  232. mui.alert('日龄必须为数字!', '提示', function() {});
  233. $(this).val(parseInt(rlks) + 1);
  234. return;
  235. }
  236. if (parseInt(rlks) < parseInt(this.value)) {//如果日龄OK则保存
  237. isDataCanSave = 1;
  238. } else {
  239. isDataCanSave = 0;
  240. $(this).val(parseInt(rlks) + 1);
  241. mui.alert('日龄必须从小到大!', '提示', function() {});
  242. }
  243. });
  244. $(".mui-table-view-cell").on("blur","input:eq(2)",function(){
  245. //输入0到9的正则
  246. if (!/^[0-9]+$/.test(this.value)) {
  247. mui.alert('下偏移量必须为正整数!', '提示', function() {});
  248. $(this).val(0);
  249. return;
  250. }
  251. });
  252. /**
  253. * 滚动input以外失去焦点
  254. * */
  255. myScroll.on('scrollStart',function(){
  256. var el = document.activeElement;
  257. if (el.nodeName.toLowerCase() == 'input') {
  258. el.blur();
  259. this.disable();
  260. this.enable();
  261. setTimeout(function () {
  262. myScroll.refresh();
  263. }, 600);
  264. };
  265. return;
  266. });
  267. /**
  268. * 点击input以外失去焦点
  269. * */
  270. var beforeIpt=null;
  271. $("input").on("focus", function () {
  272. beforeIpt=this;
  273. });
  274. $(document).on("tap", function (e) {
  275. if(e.target.nodeName.toLowerCase()!="input") {
  276. if(beforeIpt) {
  277. beforeIpt.blur();
  278. setTimeout(function () {
  279. myScroll.refresh();
  280. }, 250);
  281. beforeIpt=null;
  282. }
  283. }
  284. });
  285. var mScrol1 = new IScroll(".iscrollCenter",{
  286. scrollbars: true,
  287. fadeScrollbars:true,
  288. shrinkScrollbars:'clip',
  289. scrollbars: 'custom'
  290. });
  291. /**
  292. * 同步事件
  293. */
  294. /* 弹出修改删除框*/
  295. $("#tb").on("tap",function(){
  296. mask.show();//显示遮罩
  297. $(".xgmsgbox").show();
  298. mScrol1.refresh();
  299. });
  300. //点击td选中input
  301. $(".listcenter>li,.checkBox").on("tap",function (e) {
  302. if (e && e.stopPropagation) {
  303. e.stopPropagation();
  304. } else {
  305. window.event.cancelBubble = true;
  306. }
  307. if ($(this).find("input[type='checkbox']").is(":checked")) {
  308. $(this).find("input[type='checkbox']").removeAttr("checked");
  309. } else {
  310. $(this).find("input[type='checkbox']").prop("checked", true);
  311. }
  312. });
  313. //点击同步按钮里面的勾的事件
  314. $("#toastBtn .mui-icon-checkmarkempty").on("tap",function(){
  315. yaSave("tb");
  316. });
  317. $("#toastBtn .mui-icon-checkmarkempty").on("tap",function(){
  318. $(".xgmsgbox").hide();
  319. mask.close();//关闭遮罩
  320. //让选中的变成没选中
  321. if ($(".listcenter>li,.checkBox").find("input[type='checkbox']").is(":checked")) {
  322. $(".listcenter>li,.checkBox").find("input[type='checkbox']").removeAttr("checked");
  323. }
  324. });
  325. mui('body').on('tap', '.mui-backdrop', function(e) {
  326. $(".xgmsgbox").hide();
  327. });
  328. /**
  329. * 一开始加载一个
  330. * */
  331. dwWindowEx(1,myScroll);
  332. var obj = $(".mui-table-view-cell");
  333. var intputs = obj.eq(obj.length - 1).find("input");
  334. obj.eq(0).find("input").eq(2).attr("disabled","disabled");
  335. intputs.eq(1).removeAttr("disabled");
  336. if($("#sfgl").val() == "1") {
  337. $("#jrqck1").prop("checked",true);
  338. } else {
  339. $("#jrqck1").prop("checked",false);
  340. }
  341. //弹窗取消
  342. mui('body').on('tap', '.mui-popup-backdrop', function(e) {
  343. mui.closePopup();
  344. return;
  345. });
  346. });
  347. function dwWindow(type,myScroll) {
  348. var mcid = $("#mcid").val();
  349. var zsid = $("#zsid").val();
  350. haifm.loadMobilePage("yzConstant"+ type, "xtYxcsYaItem.htm?zsid=" + zsid + "&from=bys" + "&position=" + type);
  351. $(".bysyaIscroll").one("touchstart",function(){
  352. $("body").height(document.body.scrollHeight);
  353. myScroll.refresh();
  354. });
  355. }
  356. function dwWindowEx(type,myScroll) {
  357. var mcid = $("#mcid").val();
  358. var zsid = $("#zsid").val();
  359. haifm.loadMobilePage("yzConstantEx", "xtYxcsYaItem.htm?zsid=" + zsid + "&from=bys" + "&position=" + type);
  360. $(".bysyaIscroll").one("touchstart",function(){
  361. $("body").height(document.body.scrollHeight);
  362. myScroll.refresh();
  363. });
  364. }
  365. function yaBackUrl() {
  366. var zsid = $("#zsid").val();
  367. var zsbz = $("#zsbz").val();
  368. haifm.loadMobilePage("haifm", "mcHaifmvZsView.htm?zsid=" + zsid + "&from=zslist" +"&zsbz="+zsbz);
  369. }
  370. /**
  371. * 保存设置
  372. */
  373. function yaSave(msg) {
  374. var obj = document.getElementsByName("checkBox");
  375. var s='';
  376. for(var i = 0 ; i < obj.length ; i++){
  377. if (obj[i].checked) {
  378. s += obj[i].value+',';
  379. }
  380. }
  381. if (isDataCanSave == 0){
  382. mui.alert('日龄必须从小到大!', '提示', function() {});
  383. return;
  384. }
  385. var dwnr = "";
  386. //一共有几个
  387. var size = $("#dataSize").val();
  388. var dknrStr2 = dknrStr(size,1);//公用的dw
  389. if (dknrStr2 == "") {
  390. return;
  391. }
  392. for(var i = 0;size != null && i < size; i++) {
  393. var lastdata = dwnrArray[i];
  394. var pylArray = lastdata.split("@");//[0-1-0,0.0,13.0,1-2-3 # 13.5,14.5,1-2-3]
  395. pylArray[1] = dknrStr2;
  396. var data = pylArray[0] + "@" + pylArray[1];
  397. dwnrArray[i] = data;
  398. }
  399. for(var m = 0;size != null && m < size; m++) {
  400. var dwStr = "";
  401. var obj = $(".mui-table-view-cell");
  402. var intputs = obj.eq(m).find("input");
  403. var rlks = intputs.eq(0).val();
  404. var rljs = intputs.eq(1).val();
  405. var pyl = intputs.eq(2).val();
  406. var lastdata = dwnrArray[m];
  407. var pylArray = lastdata.split("@");//[0-1-0,0.0,13.0,1-2-3 # 13.5,14.5,1-2-3]
  408. var dwsj = pylArray[1].split("#");//档位数据 [0.0,13.0,1-2-3,13.5,14.5,1-2-3]
  409. for (var i = 0; i < dwsj.length; i++) {
  410. var d = dwsj[i].split(",");
  411. if (i == 0) { //第一个,档位下限不变
  412. d[1] = d[1] * 1.0 - pyl;
  413. } else if (i == dwsj.length -1) {//最后一个挡位上限不变
  414. d[0] = d[0] * 1.0 - pyl;
  415. } else {//其他的 下限减,上限也要减
  416. d[0] = d[0] * 1.0 - pyl;
  417. d[1] = d[1] * 1.0 - pyl;
  418. }
  419. if (d[0] < 0 || d[1] < 0) {
  420. mui.alert('设置温度过低,请重新设置', '提示', function() {});
  421. return;
  422. }
  423. d[0] = toDecimal1(d[0]);
  424. d[1] = toDecimal1(d[1]);
  425. for (var j = 0; j < d.length; j++) {
  426. if (j == d.length - 1) { //最后一个不要逗号
  427. dwStr = dwStr + d[j];
  428. } else {
  429. dwStr = dwStr + d[j] + ",";
  430. }
  431. }
  432. if (i != dwsj.length - 1) {
  433. dwStr = dwStr + "#";
  434. }
  435. }
  436. var dataArray = rlks + "-" + rljs + "-"+ pyl + "@" + dwStr;
  437. dwnrArray[m] = dataArray;
  438. }
  439. //console.log(dwnrArray)
  440. //解析
  441. for(var i = 0;dwnrArray != null && i < dwnrArray.length; i++) {
  442. dwnr += dwnrArray[i] + "%";
  443. }
  444. var bz = "";
  445. var dwsl = $("#dwsl").val();
  446. var dksl = $("#dksl").val();
  447. if (dwsl == "" || dksl == "") {
  448. error += "档位/端口数量不正确!";
  449. mui.alert(error, '提示', function() {});
  450. return;
  451. }
  452. for (var i = 1; i <= dksl; i++) {
  453. bz += $("#bz1" + i).val();
  454. if (i != dksl) {
  455. bz += "#";
  456. }
  457. }
  458. var isCon = 0;//是否关联
  459. if($("#jrqck1").prop("checked") == true) {
  460. isCon = 1;
  461. } else {
  462. isCon = 0;
  463. }
  464. if (dwnr.indexOf("false") != -1) {
  465. mui.alert("系统出错,请重试", '提示', function() {});
  466. return;
  467. }
  468. var btnArray = ['取消', '是','否'];
  469. mui.confirm("是否立即执行" ,"提示!", btnArray, function(e) {
  470. if (e.index == 1 || e.index == 2) {
  471. jQuery.ajax({
  472. url: "saveYxcsYa.htm",
  473. dataType: 'json',
  474. type: 'post',
  475. cache: false,
  476. async: false,
  477. data: {
  478. "jqid": $("#jqid").val(),
  479. "bz": bz,
  480. "dwnr": dwnr,
  481. "dwsl": dwsl,
  482. "dksl": dksl,
  483. "isCon": isCon,
  484. "jrqTemp": $("#jrqTemp").val(),
  485. "zsid": $("#zsid").val(),
  486. "zsids" : s,
  487. "tof" : e.index
  488. },
  489. success: function (data) {
  490. if (msg == 'bc') {
  491. mui.toast('保存成功');
  492. }else {
  493. mui.toast('同步成功');
  494. }
  495. },
  496. error: function (data) {
  497. mui.alert('系统运行异常!保存失败!', '提示', function() {});
  498. }
  499. });
  500. }
  501. });
  502. }
  503. /**
  504. *偏移量封装封装
  505. */
  506. var changeDknrStr = function (positon) {
  507. var obj = $(".mui-table-view-cell");
  508. var intputs = obj.eq(positon - 2 ).find("input");
  509. var pyl = intputs.eq(2).val();
  510. var dwStr = "";
  511. var lastdata = "";
  512. if (dwnrArray.length == 0) {
  513. lastdata = $("#dwnr").val();
  514. } else {
  515. lastdata = dwnrArray[positon - 2];
  516. }
  517. //0-1-0@0.0,13.0,1-2-3 # 13.5,14.5,1-2-3
  518. if (lastdata != "") {
  519. var pylArray = lastdata.split("@");//[0-1-0,0.0,13.0,1-2-3 # 13.5,14.5,1-2-3]
  520. var dwsj = pylArray[1].split("#");//档位数据 [0.0,13.0,1-2-3,13.5,14.5,1-2-3]
  521. for (var i = 0; i < dwsj.length; i++) {
  522. var d = dwsj[i].split(",");
  523. if (i == 0) { //第一个,档位下限不变
  524. d[1] = d[1] * 1 - pyl;
  525. } else if (i == dwsj.length -1) {//最后一个挡位上限不变
  526. d[0] = d[0] * 1 - pyl;
  527. } else {//其他的 下限减,上限也要减
  528. d[0] = d[0] * 1 - pyl;
  529. d[1] = d[1] * 1 - pyl;
  530. }
  531. for (var j = 0; j < d.length; j++) {
  532. if (j == d.length - 1) { //最后一个不要逗号
  533. dwStr = dwStr + d[j];
  534. } else {
  535. dwStr = dwStr + d[j] + ",";
  536. }
  537. }
  538. if (i != dwsj.length - 1) {
  539. dwStr = dwStr + "#";
  540. }
  541. }
  542. }
  543. return pylArray[0] + "@" + dwStr;
  544. }
  545. //制保留1位小数,如:1,会在1后面补上0.即2.0
  546. function toDecimal1(x) {
  547. var f = parseFloat(x);
  548. if (isNaN(f)) {
  549. return false;
  550. }
  551. var f = Math.round(x*100)/100;
  552. var s = f.toString();
  553. var rs = s.indexOf('.');
  554. if (rs < 0) {
  555. rs = s.length;
  556. s += '.';
  557. }
  558. while (s.length <= rs + 1) {
  559. s += '0';
  560. }
  561. return s;
  562. }