bysyaIndex.js 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560
  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. /*纵向滚轮 */
  67. myScroll = new IScroll(".bysyaIscroll",{
  68. scrollbars: true,
  69. fadeScrollbars:true,
  70. scrollbars: 'custom',
  71. shrinkScrollbars:'clip',
  72. click: true
  73. });
  74. /**
  75. * 开关事件
  76. * */
  77. $(".mui-content").on("tap", ".mui-switch", function(event){
  78. //阻止冒泡
  79. if(event.stopPropagation){
  80. event.stopPropagation();
  81. }else{
  82. event.cancelBubble = true;
  83. }
  84. //解决tap两次出发的方法(500是2次点击时间差,单位ms)
  85. if (t1 == null){
  86. t1 = new Date().getTime();
  87. }else{
  88. var t2 = new Date().getTime();
  89. if(t2 - t1 < 500){
  90. t1 = t2;
  91. return;
  92. }else{
  93. t1 = t2;
  94. }
  95. }
  96. var type = $(this).data("type");
  97. whichOpen = type;
  98. $(this).parent().parent().parent().next().find('.rowBox').children().remove();
  99. $(this).parent().parent().parent().next().siblings('.hiddenli').find('.rowBox').children().remove();
  100. //判断mui-active有无
  101. if($(this).parent().parent().parent().next().is(':hidden')){
  102. dwWindow(type,myScroll);
  103. setTimeout(function(){
  104. myScroll.refresh();
  105. },6000);
  106. }
  107. var that = $(this);
  108. $(this).parent().parent().parent().next().slideToggle(500,function(){
  109. if($(this).css("display")=='none'){
  110. that.removeClass("mui-active").children().css({'transition-duration': '0.2s', 'transform': 'translate(0, 0px)'});
  111. $("#btn-add").show();
  112. $("#btn-del").show();
  113. that.parent().find("input").attr("disabled","disabled");
  114. isOpen = 0;
  115. }
  116. setTimeout(function(){
  117. myScroll.refresh();
  118. },600);
  119. }).siblings('.hiddenli').stop().slideUp(500);
  120. that.parent().parent().parent().siblings('.align-itemscenter').children().find("input").attr("disabled","disabled");
  121. $(".mui-switch").removeClass("mui-active").children().css({'transition-duration': '0.2s', 'transform': 'translate(0, 0px)'});
  122. $(this).addClass("mui-active").children().css({'transition-duration': '0.2s', 'transform': 'translate(22px, 0px)'});
  123. $("#btn-add").hide();
  124. $("#btn-del").hide();
  125. that.parent().find("input").eq(1).removeAttr("disabled");
  126. isOpen = 1;
  127. });
  128. /**
  129. * 添加
  130. * */
  131. $("#btn-add").on("tap",function(){
  132. //解决tap两次出发的方法(500是2次点击时间差,单位ms)
  133. if (t1 == null){
  134. t1 = new Date().getTime();
  135. }else{
  136. var t2 = new Date().getTime();
  137. if(t2 - t1 < 500){
  138. t1 = t2;
  139. return;
  140. }else{
  141. t1 = t2;
  142. }
  143. }
  144. $("#dataSize").val(parseInt($("#dataSize").val()) + 1);
  145. var size = parseInt($("#dataSize").val());
  146. var obj = $(".mui-table-view-cell");
  147. var intputs = obj.eq(obj.length - 1 ).find("input");
  148. var rlks = (parseInt(intputs.eq(1).val()) + 1);
  149. var rljs = (parseInt(rlks) + 1);
  150. if (rlks == undefined) {
  151. rlks = 0;
  152. rljs = 1;
  153. }
  154. $(".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>"));
  155. myScroll.refresh();
  156. var newData = changeDknrStr(size);
  157. dwnrArray.push(newData);
  158. //最后一个input的第二个input可以填写
  159. var obj = $(".mui-table-view-cell");
  160. var intputs = obj.eq(obj.length - 1).find("input");
  161. intputs.eq(1).removeAttr("disabled");
  162. //倒数上一个input的第二个input不可以可以填写
  163. var obj = $(".mui-table-view-cell");
  164. var intputs = obj.eq(obj.length - 2).find("input");
  165. intputs.eq(1).attr("disabled","disabled");
  166. $(".mui-table-view-cell").on("blur","input:lt(2)",function(){
  167. var rlks = $(this).parent().find("input").eq(0).val();
  168. //输入0到9的正则
  169. if (!/^[0-9]+$/.test(this.value)) {
  170. mui.alert('日龄必须为数字!', '提示', function() {});
  171. $(this).val(parseInt(rlks) + 1);
  172. return;
  173. }
  174. if (parseInt(rlks) < parseInt(this.value)) {//如果日龄OK则保存
  175. isDataCanSave = 1;
  176. } else {
  177. isDataCanSave = 0;
  178. $(this).val(parseInt(rlks) + 1);
  179. mui.alert('日龄必须从小到大!', '提示', function() {});
  180. }
  181. });
  182. $(".mui-table-view-cell").on("blur","input:eq(2)",function(){
  183. //输入0到9的正则
  184. if (!/^[0-9]+$/.test(this.value)) {
  185. mui.alert('下偏移量必须为正整数!', '提示', function() {});
  186. $(this).val(0);
  187. return;
  188. }
  189. });
  190. });
  191. /**
  192. * 删除
  193. * */
  194. $("#btn-del").on("tap",function(){
  195. if ($("#dataSize").val() == '0') {
  196. return;
  197. }
  198. //解决tap两次出发的方法(500是2次点击时间差,单位ms)
  199. if (t1 == null){
  200. t1 = new Date().getTime();
  201. }else{
  202. var t2 = new Date().getTime();
  203. if(t2 - t1 < 500){
  204. t1 = t2;
  205. return;
  206. }else{
  207. t1 = t2;
  208. }
  209. }
  210. $("#dataSize").val(parseInt($("#dataSize").val()) - 1);
  211. var li1 = $(".align-itemscenter");
  212. $(".align-itemscenter").eq(li1.length-1).remove();
  213. dwnrArray.pop();
  214. myScroll.refresh();
  215. var obj = $(".mui-table-view-cell");
  216. var intputs = obj.eq(obj.length - 1).find("input");
  217. intputs.eq(1).removeAttr("disabled");
  218. });
  219. /**
  220. * touchmove的阻止浏览器或者屏幕滚动默认事件
  221. * */
  222. document.addEventListener('touchmove', function(event) {
  223. event.preventDefault();
  224. }, false);
  225. var dwnr = $("#dwnr").val();
  226. if (dwnr != "") {
  227. dwnrArray = dwnr.split("%");
  228. }
  229. $(".mui-table-view-cell").on("blur","input:lt(2)",function(){
  230. var rlks = $(this).parent().find("input").eq(0).val();
  231. //输入0到9的正则
  232. if (!/^[0-9]+$/.test(this.value)) {
  233. mui.alert('日龄必须为数字!', '提示', function() {});
  234. $(this).val(parseInt(rlks) + 1);
  235. return;
  236. }
  237. if (parseInt(rlks) < parseInt(this.value)) {//如果日龄OK则保存
  238. isDataCanSave = 1;
  239. } else {
  240. isDataCanSave = 0;
  241. $(this).val(parseInt(rlks) + 1);
  242. mui.alert('日龄必须从小到大!', '提示', function() {});
  243. }
  244. });
  245. $(".mui-table-view-cell").on("blur","input:eq(2)",function(){
  246. //输入0到9的正则
  247. if (!/^[0-9]+$/.test(this.value)) {
  248. mui.alert('下偏移量必须为正整数!', '提示', function() {});
  249. $(this).val(0);
  250. return;
  251. }
  252. });
  253. /**
  254. * 滚动input以外失去焦点
  255. * */
  256. myScroll.on('scrollStart',function(){
  257. var el = document.activeElement;
  258. if (el.nodeName.toLowerCase() == 'input') {
  259. el.blur();
  260. this.disable();
  261. this.enable();
  262. setTimeout(function () {
  263. myScroll.refresh();
  264. }, 600);
  265. };
  266. return;
  267. });
  268. /**
  269. * 点击input以外失去焦点
  270. * */
  271. var beforeIpt=null;
  272. $("input").on("focus", function () {
  273. beforeIpt=this;
  274. });
  275. $(document).on("tap", function (e) {
  276. if(e.target.nodeName.toLowerCase()!="input") {
  277. if(beforeIpt) {
  278. beforeIpt.blur();
  279. setTimeout(function () {
  280. myScroll.refresh();
  281. }, 250);
  282. beforeIpt=null;
  283. }
  284. }
  285. });
  286. var mScrol1 = new IScroll(".iscrollCenter",{
  287. scrollbars: true,
  288. fadeScrollbars:true,
  289. shrinkScrollbars:'clip',
  290. scrollbars: 'custom'
  291. });
  292. /**
  293. * 同步事件
  294. */
  295. /* 弹出修改删除框*/
  296. $("#tb").on("tap",function(){
  297. $(".xgmsgbox").show(showOverlay());
  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. $("#overlay,#toastBtn .mui-icon-checkmarkempty").on("tap",function(){
  318. $(".xgmsgbox").hide(hideOverlay());
  319. //让选中的变成没选中
  320. if ($(".listcenter>li,.checkBox").find("input[type='checkbox']").is(":checked")) {
  321. $(".listcenter>li,.checkBox").find("input[type='checkbox']").removeAttr("checked");
  322. }
  323. });
  324. /**
  325. * 一开始加载一个
  326. * */
  327. dwWindowEx(1,myScroll);
  328. var obj = $(".mui-table-view-cell");
  329. var intputs = obj.eq(obj.length - 1).find("input");
  330. obj.eq(0).find("input").eq(2).attr("disabled","disabled");
  331. intputs.eq(1).removeAttr("disabled");
  332. if($("#sfgl").val() == "1") {
  333. $("#jrqck1").prop("checked",true);
  334. } else {
  335. $("#jrqck1").prop("checked",false);
  336. }
  337. });
  338. function dwWindow(type,myScroll) {
  339. var mcid = $("#mcid").val();
  340. var zsid = $("#zsid").val();
  341. haifm.loadMobilePage("yzConstant"+ type, "xtYxcsYaItem.htm?zsid=" + zsid + "&from=bys" + "&position=" + type);
  342. setTimeout(function(){
  343. myScroll.refresh();
  344. }, 10000);
  345. }
  346. function dwWindowEx(type,myScroll) {
  347. var mcid = $("#mcid").val();
  348. var zsid = $("#zsid").val();
  349. haifm.loadMobilePage("yzConstantEx", "xtYxcsYaItem.htm?zsid=" + zsid + "&from=bys" + "&position=" + type);
  350. setTimeout(function(){
  351. $('body').height(document.body.scrollHeight);
  352. myScroll.refresh();
  353. },600);
  354. }
  355. function yaBackUrl() {
  356. var zsid = $("#zsid").val();
  357. var zsbz = $("#zsbz").val();
  358. haifm.loadMobilePage("haifm", "mcHaifmvZsView.htm?zsid=" + zsid + "&from=zslist" +"&zsbz="+zsbz);
  359. }
  360. /**
  361. * 保存设置
  362. */
  363. function yaSave(msg) {
  364. var obj = document.getElementsByName("checkBox");
  365. var s = '';
  366. for(var i = 0 ; i < obj.length ; i++){
  367. if (obj[i].checked) {
  368. s += obj[i].value+',';
  369. }
  370. }
  371. if (isDataCanSave == 0){
  372. mui.alert('日龄必须从小到大!', '提示', function() {});
  373. return;
  374. }
  375. var dwnr = "";
  376. //一共有几个
  377. var size = $("#dataSize").val();
  378. var dknrStr2 = dknrStr(size,1);//公用的dw
  379. for(var i = 0;size != null && i < size; i++) {
  380. var lastdata = dwnrArray[i];
  381. var pylArray = lastdata.split("@");//[0-1-0,0.0,13.0,1-2-3 # 13.5,14.5,1-2-3]
  382. pylArray[1] = dknrStr2;
  383. var data = pylArray[0] + "@" + pylArray[1];
  384. dwnrArray[i] = data;
  385. }
  386. for(var m = 0;size != null && m < size; m++) {
  387. var dwStr = "";
  388. var obj = $(".mui-table-view-cell");
  389. var intputs = obj.eq(m).find("input");
  390. var rlks = intputs.eq(0).val();
  391. var rljs = intputs.eq(1).val();
  392. var pyl = intputs.eq(2).val();
  393. var lastdata = dwnrArray[m];
  394. var pylArray = lastdata.split("@");//[0-1-0,0.0,13.0,1-2-3 # 13.5,14.5,1-2-3]
  395. var dwsj = pylArray[1].split("#");//档位数据 [0.0,13.0,1-2-3,13.5,14.5,1-2-3]
  396. for (var i = 0; i < dwsj.length; i++) {
  397. var d = dwsj[i].split(",");
  398. if (i == 0) { //第一个,档位下限不变
  399. d[1] = d[1] * 1.0 - pyl;
  400. } else if (i == dwsj.length -1) {//最后一个挡位上限不变
  401. d[0] = d[0] * 1.0 - pyl;
  402. } else {//其他的 下限减,上限也要减
  403. d[0] = d[0] * 1.0 - pyl;
  404. d[1] = d[1] * 1.0 - pyl;
  405. }
  406. if (d[0] < 0 || d[1] < 0) {
  407. mui.alert('设置温度过低,请重新设置', '提示', function() {});
  408. return;
  409. }
  410. d[0] = toDecimal1(d[0]);
  411. d[1] = toDecimal1(d[1]);
  412. for (var j = 0; j < d.length; j++) {
  413. if (j == d.length - 1) { //最后一个不要逗号
  414. dwStr = dwStr + d[j];
  415. } else {
  416. dwStr = dwStr + d[j] + ",";
  417. }
  418. }
  419. if (i != dwsj.length - 1) {
  420. dwStr = dwStr + "#";
  421. }
  422. }
  423. var dataArray = rlks + "-" + rljs + "-"+ pyl + "@" + dwStr;
  424. dwnrArray[m] = dataArray;
  425. }
  426. //解析
  427. for(var i = 0;dwnrArray != null && i < dwnrArray.length; i++) {
  428. dwnr += dwnrArray[i] + "%";
  429. }
  430. var bz = "";
  431. var dwsl = $("#dwsl").val();
  432. var dksl = $("#dksl").val();
  433. if (dwsl == "" || dksl == "") {
  434. error += "档位/端口数量不正确!";
  435. mui.alert(error, '提示', function() {});
  436. return;
  437. }
  438. for (var i = 1; i <= dksl; i++) {
  439. bz += $("#bz1" + i).val();
  440. if (i != dksl) {
  441. bz += "#";
  442. }
  443. }
  444. var isCon = 0;//是否关联
  445. if($("#jrqck1").prop("checked") == true) {
  446. isCon = 1;
  447. } else {
  448. isCon = 0;
  449. }
  450. if (dwnr.indexOf("false") != -1) {
  451. alert("系统出错,请重试");
  452. return;
  453. }
  454. }
  455. /**
  456. *偏移量封装封装
  457. */
  458. var changeDknrStr = function (positon) {
  459. var obj = $(".mui-table-view-cell");
  460. var intputs = obj.eq(positon - 2 ).find("input");
  461. var pyl = intputs.eq(2).val();
  462. var dwStr = "";
  463. var lastdata = "";
  464. if (dwnrArray.length == 0) {
  465. lastdata = $("#dwnr").val();
  466. } else {
  467. lastdata = dwnrArray[positon - 2];
  468. }
  469. //0-1-0@0.0,13.0,1-2-3 # 13.5,14.5,1-2-3
  470. var pylArray = lastdata.split("@");//[0-1-0,0.0,13.0,1-2-3 # 13.5,14.5,1-2-3]
  471. var dwsj = pylArray[1].split("#");//档位数据 [0.0,13.0,1-2-3,13.5,14.5,1-2-3]
  472. for (var i = 0; i < dwsj.length; i++) {
  473. var d = dwsj[i].split(",");
  474. if (i == 0) { //第一个,档位下限不变
  475. d[1] = d[1] * 1 - pyl;
  476. } else if (i == dwsj.length -1) {//最后一个挡位上限不变
  477. d[0] = d[0] * 1 - pyl;
  478. } else {//其他的 下限减,上限也要减
  479. d[0] = d[0] * 1 - pyl;
  480. d[1] = d[1] * 1 - pyl;
  481. }
  482. for (var j = 0; j < d.length; j++) {
  483. if (j == d.length - 1) { //最后一个不要逗号
  484. dwStr = dwStr + d[j];
  485. } else {
  486. dwStr = dwStr + d[j] + ",";
  487. }
  488. }
  489. if (i != dwsj.length - 1) {
  490. dwStr = dwStr + "#";
  491. }
  492. }
  493. return pylArray[0] + "@" + dwStr;
  494. }
  495. //制保留1位小数,如:1,会在1后面补上0.即2.0
  496. function toDecimal1(x) {
  497. var f = parseFloat(x);
  498. if (isNaN(f)) {
  499. return false;
  500. }
  501. var f = Math.round(x*100)/100;
  502. var s = f.toString();
  503. var rs = s.indexOf('.');
  504. if (rs < 0) {
  505. rs = s.length;
  506. s += '.';
  507. }
  508. while (s.length <= rs + 1) {
  509. s += '0';
  510. }
  511. return s;
  512. }
  513. /* 显示遮罩层 */
  514. function showOverlay(){
  515. $("#overlay").height(pageHeight());
  516. $("#overlay").width(pageWidth());
  517. // fadeTo第一个参数为速度,第二个为透明度
  518. // 多重方式控制透明度,保证兼容性,但也带来修改麻烦的问题
  519. $("#overlay").fadeTo(200, 0.5);
  520. };
  521. /* 隐藏覆盖层 */
  522. function hideOverlay(){
  523. $("#overlay").fadeOut(200);
  524. };
  525. /* 当前页面高度 */
  526. function pageHeight(){
  527. return document.body.scrollHeight;
  528. };
  529. /* 当前页面宽度 */
  530. function pageWidth(){
  531. return document.body.scrollWidth;
  532. };