init.js 9.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317
  1. function getDTime(_key){
  2. let date = _key;
  3. const yyyy = date.getFullYear();
  4. const MM = date.getMonth() + 1 > 9 ? date.getMonth() + 1 : '0' + (date.getMonth() + 1);
  5. const dd = date.getDate() > 9 ? date.getDate() : '0' + date.getDate();
  6. const HH = date.getHours() > 9 ? date.getHours() : '0' + date.getHours();
  7. const mm = date.getMinutes() > 9 ? date.getMinutes() : '0' + date.getMinutes();
  8. const ss = date.getSeconds() > 9 ? date.getSeconds() : '0' + date.getSeconds();
  9. return [yyyy + '-' + MM + '-' + dd, " " + HH + ':' + mm + ':' + ss,yyyy + '-' + MM + '-' + dd+" " + HH + ':' + mm + ':' + ss];
  10. }
  11. function parseTime(time, pattern) {
  12. if (!time) {
  13. return null
  14. }
  15. const format = pattern || '{y}/{m}/{d} {h}:{i}:{s}'
  16. let date
  17. if (typeof time === 'object') {
  18. date = time
  19. } else {
  20. if ((typeof time === 'string') && (/^[0-9]+$/.test(time))) {
  21. time = parseInt(time)
  22. } else if (typeof time === 'string') {
  23. time = time.replace(new RegExp(/-/gm), '/').replace('T', ' ').replace(new RegExp(/\.[\d]{3}/gm), '');
  24. }
  25. if ((typeof time === 'number') && (time.toString().length === 10)) {
  26. time = time * 1000
  27. }
  28. date = new Date(time)
  29. }
  30. const formatObj = {
  31. y: date.getFullYear(),
  32. m: date.getMonth() + 1,
  33. d: date.getDate(),
  34. h: date.getHours(),
  35. i: date.getMinutes(),
  36. s: date.getSeconds(),
  37. a: date.getDay()
  38. }
  39. const time_str = format.replace(/{(y|m|d|h|i|s|a)+}/g, (result, key) => {
  40. let value = formatObj[key]
  41. if (key === 'a') {
  42. return ['日', '一', '二', '三', '四', '五', '六'][value]
  43. }
  44. if (result.length > 0 && value < 10) {
  45. value = '0' + value
  46. }
  47. return value || 0
  48. })
  49. return time_str
  50. }
  51. function dayChange(a, num) {
  52. var timestamp = Date.parse(new Date(a.replace(/-/g, '\/')));
  53. var newTimestamp = timestamp + num * 24 * 60 * 60 * 1000;
  54. var date = new Date(newTimestamp);
  55. if ((new Date() - new Date(date)) <= 0) {
  56. showErr('不能再往下翻啦');
  57. return;
  58. } else {
  59. return date;
  60. }
  61. }
  62. function getTree(data,parentId){
  63. var tree = [];
  64. var temp;
  65. for (var i = 0; i < data.length; i++) {
  66. if (data[i].pid == parentId) {
  67. var obj = data[i];
  68. obj["show"] = (data[i].pid == 0?true:false);
  69. obj["icon"] = (data[i].type == 0?'':(data[i].fence_type == 0?'icon-yuanxing':'icon-polygon'));
  70. temp = getTree(data, data[i].id);
  71. if (temp.length > 0) {
  72. obj.children = [...temp];
  73. }
  74. tree.push(obj);
  75. }
  76. }
  77. return tree;
  78. }
  79. function showErr(_msg) {
  80. var boardDiv = `<div id="yzAlert">
  81. <i class="iconfont icon-jingshi"></i>
  82. <p>${_msg}</p>
  83. </div>`;
  84. $(document.body).append(boardDiv);
  85. setTimeout(() => {
  86. $("#yzAlert").css("transform","translate(-50%, -100%)");
  87. setTimeout(() => {
  88. $("#yzAlert").remove();
  89. }, 100);
  90. }, 3000);
  91. }
  92. // var baseUrl = "http://121.37.6.200:8088";
  93. var baseUrl = "https://hsws.enstation.com/hsws_war";
  94. var vipUrl = "https://www.enstation.vip:9443";
  95. var ys7Url = "https://open.ys7.com";
  96. var helUrl = "https://caps.runde.pro/api";
  97. var wireUrl = "https://www.jx-linkcreate.cn";
  98. var staticUrl = "http://10.60.11.142:32000/Cctv";
  99. // var staticUrl = "http://192.168.4.181:32000/Cctv";
  100. // var staticUrl = "https://hsws.enstation.com/CctvO";
  101. // 封装请求
  102. function getAxios(opts,_data,_head){
  103. $.Deferred(function(){});
  104. return new Promise(function(resolve, reject) {
  105. $.ajax({
  106. url: opts.url,
  107. type: opts.type,
  108. traditional: true,
  109. dataType: "json",
  110. async: false,
  111. headers: _head,
  112. data: _data,
  113. error: function(XMLHttpRequest, textStatus, errorThrown) {
  114. },
  115. success: function(res) {
  116. if(res.code == "10002" || res.code == 401){
  117. if(opts.url.indexOf("radarWarning") != -1){
  118. resolve(res);
  119. }else{
  120. showErr("登录已过期,请重新登录....");
  121. ajaxErr();
  122. }
  123. }else{
  124. resolve(res);
  125. }
  126. },error:function(err){
  127. if(opts.url.indexOf('micro-exhook') != -1&&(err.responseJSON.code == 10002||err.responseJSON.code == 10001)){
  128. resolve(err);
  129. }
  130. }
  131. })
  132. })
  133. }
  134. function postAxios(opts,_data,_head){
  135. $.Deferred(function(){});
  136. return new Promise(function(resolve, reject) {
  137. $.ajax({
  138. url: opts.url,
  139. type: opts.type,
  140. traditional: true,
  141. dataType: "json",
  142. async: false,
  143. headers: _head,
  144. data: _data,
  145. error: function(XMLHttpRequest, textStatus, errorThrown) {
  146. },
  147. success: function(res) {
  148. if(res.code == "10002" || res.code == 401){
  149. showErr("登录已过期,请重新登录....");
  150. ajaxErr();
  151. }else{
  152. resolve(res);
  153. }
  154. }
  155. })
  156. })
  157. }
  158. function ajaxErr(){
  159. setTimeout(() => {
  160. delCookie("Admin-Token");
  161. delCookie("ylToken");
  162. delCookie("hemlTok");
  163. delCookie("Admin-User");
  164. delCookie("tzToken");
  165. localStorage.removeItem("nowShip");
  166. localStorage.removeItem("Histroy-List");
  167. localStorage.removeItem("authorArr");
  168. top.location.href = staticUrl + "/index.html";
  169. },1000);
  170. }
  171. // 判断是PC端还是移动端
  172. function IsPC() {
  173. var userAgentInfo = navigator.userAgent;
  174. var Agents = ["Android", "iPhone",
  175. "SymbianOS", "Windows Phone",
  176. "iPad", "iPod"];
  177. var flag = true;
  178. for (var v = 0; v < Agents.length; v++) {
  179. if (userAgentInfo.indexOf(Agents[v]) > 0) {
  180. flag = false;
  181. break;
  182. }
  183. }
  184. return flag;
  185. }
  186. //写cookies
  187. function setCookie(name,value){
  188. var Days = 30;
  189. var exp = new Date();
  190. exp.setTime(exp.getTime() + 7*24*60*60*1000); //7天
  191. document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString()+";path=/";
  192. }
  193. //读取cookies
  194. function getCookie(name){
  195. var arr,reg=new RegExp("(^| )"+name+"=([^;]*)(;|$)");
  196. if(arr=document.cookie.match(reg)) return unescape(arr[2]);
  197. else return null;
  198. }
  199. //删除cookies
  200. function delCookie(name){
  201. var exp = new Date();
  202. exp.setTime(exp.getTime() - 10000);
  203. var cval=getCookie(name);
  204. if(cval!=null) document.cookie= name + "="+cval+";expires="+exp.toGMTString()+"; path=/";
  205. }
  206. function clearCookie(){
  207. var keys=document.cookie.match(/[^ =;]+(?=\=)/g);
  208. if (keys) {
  209. for (var i = keys.length; i--;)
  210. document.cookie=keys[i]+'=0;expires=' + new Date( 0).toUTCString()
  211. }
  212. function checkLogin() {
  213. if (getCookie("ylToken") != "null" && getCookie("ylToken") != null) {
  214. // clearStor();
  215. } else {
  216. ajaxErr();
  217. }
  218. let _type = localStorage.getItem("ptType");
  219. if (_type != null && _type != "null" && _type != undefined) {
  220. var sheetObj = $("#linkSource")[0];
  221. if (sheetObj != undefined) {
  222. setStyle(sheetObj, ".heardYz", ["padding-top"], ["40px"]);
  223. setStyle(sheetObj, ".appBox", ["padding-top"], ["80px"]);
  224. setStyle(sheetObj, ".yzkjSider", ["top"], ["80px"]);
  225. }
  226. }
  227. }
  228. function setStyle(Obj, Text, _name, _val) {
  229. var _Sheet = Obj.sheet;
  230. var rules = _Sheet.cssRules;
  231. var rule;
  232. var selectorText;
  233. for (i = 0; i < rules.length; i++) {
  234. rule = rules[i];
  235. selectorText = rule.selectorText;
  236. if (selectorText == null || selectorText == "") {
  237. continue;
  238. } else if (selectorText === Text) {
  239. for (var i = 0; i < _name.length; i++) {
  240. rule.style.setProperty(_name[i], _val[i]);
  241. }
  242. return;
  243. }
  244. }
  245. }
  246. function clearStor(){
  247. var href = origin = location.origin, pathname = location.pathname, search = location.search, hash = location.hash;
  248. var searchs = search.replace(/_t_=[^&\?]*[&\?]*/g, '').replace(/(^[&\?]*)|([&\?]*$)/g, '');
  249. if(localStorage.getItem('__clearcache__')) {
  250. localStorage.removeItem('__clearcache__');
  251. return history.replaceState({}, null, origin + pathname + (searchs ? '?' : '') + searchs + hash);
  252. }
  253. localStorage.setItem('__clearcache__', '1');
  254. location.replace(origin + pathname + '?' + searchs + (searchs ? '&' : '') + '_t_=' + new Date().valueOf() + hash);
  255. }
  256. var x_pi = 3.14159265358979324 * 3000.0 / 180.0;
  257. var pi = 3.14159265358979324;
  258. var a = 6378245.0;
  259. var ee = 0.00669342162296594323;
  260. function transformLon(x, y) {
  261. var ret = 300.0 + x + 2.0 * y + 0.1 * x * x + 0.1 * x * y + 0.1 * Math.sqrt(Math.abs(x));
  262. ret += (20.0 * Math.sin(6.0 * x * pi) + 20.0 * Math.sin(2.0 * x * pi)) * 2.0 / 3.0;
  263. ret += (20.0 * Math.sin(x * pi) + 40.0 * Math.sin(x / 3.0 * pi)) * 2.0 / 3.0;
  264. ret += (150.0 * Math.sin(x / 12.0 * pi) + 300.0 * Math.sin(x / 30.0 * pi)) * 2.0 / 3.0;
  265. return ret;
  266. };
  267. function transformLat(x, y) {
  268. var ret = -100.0 + 2.0 * x + 3.0 * y + 0.2 * y * y + 0.1 * x * y + 0.2 * Math.sqrt(Math.abs(x));
  269. ret += (20.0 * Math.sin(6.0 * x * pi) + 20.0 * Math.sin(2.0 * x * pi)) * 2.0 / 3.0;
  270. ret += (20.0 * Math.sin(y * pi) + 40.0 * Math.sin(y / 3.0 * pi)) * 2.0 / 3.0;
  271. ret += (160.0 * Math.sin(y / 12.0 * pi) + 320 * Math.sin(y * pi / 30.0)) * 2.0 / 3.0;
  272. return ret;
  273. }
  274. function outOfChina(lat, lon) {
  275. if (lon < 72.004 || lon > 137.8347){ return true; }
  276. if (lat < 0.8293 || lat > 55.8271){ return true; }
  277. return false;
  278. }
  279. function GpsToGd(wgLat, wgLon) {
  280. var point = {};
  281. // if(wgLat>90&&wgLon<60){
  282. // let a = wgLat;
  283. // wgLat = wgLon;
  284. // wgLon = a;
  285. // }
  286. if (outOfChina(wgLat, wgLon)) {
  287. point.lat = wgLat;
  288. point.lon = wgLon;
  289. return point;
  290. }
  291. var dLat = transformLat(wgLon - 105.0, wgLat - 35.0);
  292. var dLon = transformLon(wgLon - 105.0, wgLat - 35.0);
  293. var radLat = wgLat / 180.0 * pi;
  294. var magic = Math.sin(radLat);
  295. magic = 1 - ee * magic * magic;
  296. var sqrtMagic = Math.sqrt(magic);
  297. dLat = (dLat * 180.0) / ((a * (1 - ee)) / (magic * sqrtMagic) * pi);
  298. dLon = (dLon * 180.0) / (a / sqrtMagic * Math.cos(radLat) * pi);
  299. point.lat = wgLat + dLat;
  300. point.lon = wgLon + dLon;
  301. return point;
  302. };
  303. function ShowLoading(_msg, _type) {
  304. var boarddiv = "<div class='bulletBox'><div>" + _msg + "</div></div>";
  305. $(document.body).append(boarddiv);
  306. if (_type == 1) {
  307. setTimeout(() => {
  308. $(".bulletBox").remove();
  309. }, 2000);
  310. }
  311. }