jswx.js 9.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310
  1. QOM='xinhuwx_'
  2. js.wx={};
  3. js.wx.alert=function(msg,fun,tit, cof1){
  4. $('#weui_dialog_alert_div').remove();
  5. var s='';
  6. if(!tit)tit='系统提示';
  7. s+='<div id="weui_dialog_alert_div" class="weui_dialog_alert" >';
  8. s+='<div class="weui_mask"></div>';
  9. s+='<div class="weui_dialog">';
  10. s+=' <div class="weui_dialog_hd"><strong class="weui_dialog_title">'+tit+'</strong></div>';
  11. s+=' <div class="weui_dialog_bd">'+msg+'</div>';
  12. s+=' <div class="weui_dialog_ft">';
  13. s+=' <a href="javascript:;" id="confirm_btn" sattr="yes" class="weui_btn_dialog primary">确定</a>';
  14. if(cof1==1)s+=' <a href="javascript:;" id="confirm_btn1" sattr="no" class="weui_btn_dialog default">取消</a>';
  15. s+=' </div>';
  16. s+='</div>';
  17. s+='</div>';
  18. $('body').append(s);
  19. function backl(e){
  20. var jg = $(this).attr('sattr');
  21. if(typeof(fun)=='function')fun(jg,this);
  22. $('#weui_dialog_alert_div').remove();
  23. return false;
  24. }
  25. $('#confirm_btn1').click(backl);
  26. $('#confirm_btn').click(backl);
  27. }
  28. js.wx.confirm=function(msg,fun,tit){
  29. this.alert(msg,fun,tit, 1);
  30. }
  31. js.wx.prompt=function(tit,msg,fun,nr){
  32. if(!nr)nr='';
  33. if(apicloud){
  34. api.prompt({
  35. buttons: ['确定', '取消'],
  36. text:nr,title:tit,msg:msg
  37. }, function(ret, err) {
  38. var index = ret.buttonIndex;
  39. if(index==1)fun(ret.text);
  40. });
  41. return;
  42. }
  43. function func(lx){
  44. if(lx=='yes')fun(get('prompttxt').value);
  45. }
  46. var msg = '<div align="left">'+msg+'</div><div align="left"><input value="'+nr+'" class="r-input" id="prompttxt" type="text"></div>';
  47. this.alert(msg,func,tit, 1);
  48. }
  49. js.apiurl = function(m,a,cans){
  50. var url=''+apiurl+'api.php?m='+m+'&a='+a+'';
  51. var cfrom='mweb';
  52. if(adminid)url+='&adminid='+adminid+'';
  53. if(device)url+='&device='+device+'';
  54. url+='&cfrom='+cfrom+'';
  55. if(token)url+='&token='+token+'';
  56. if(!cans)cans={};
  57. for(var i in cans)url+='&'+i+'='+cans[i]+'';
  58. return url;
  59. }
  60. js.ajax = function(m,a,d,funs, mod,checs, erfs, glx){
  61. if(js.ajaxbool && !js.ajaxwurbo)return;
  62. clearTimeout(js.ajax_time);
  63. var url = js.apiurl(m,a);
  64. js.ajaxbool = true;
  65. if(!mod)mod='mode';
  66. if(typeof(erfs)!='function')erfs=function(){};
  67. if(typeof(funs)!='function')funs=function(){};
  68. if(!checs)checs=function(){};
  69. var bs = checs(d);
  70. if(typeof(bs)=='string'&&bs!=''){
  71. js.msg('msg', bs);
  72. return;
  73. }
  74. if(typeof(bs)=='object')d=js.apply(d,bs);
  75. var tsnr = '努力处理中...';
  76. if(mod=='wait')js.msg(mod, tsnr);
  77. if(mod=='mode')js.wx.load(tsnr);
  78. function errsoers(ts, ds){
  79. js.wx.unload();
  80. js.setmsg(ts);
  81. js.msg('msg',ts);
  82. js.ajaxbool = false;
  83. erfs(ts, ds);
  84. }
  85. var type=(!d)?'get':'post';if(glx)type=glx;
  86. var ajaxcan={
  87. type:type,dataType:'json',data:d,url:url,
  88. success:function(ret){
  89. js.ajaxbool=false;
  90. js.wx.unload();
  91. clearTimeout(js.ajax_time);
  92. if(ret.code==199){
  93. js.wx.alert(ret.msg, function(){
  94. js.location('?d=we&m=login&backurl='+jm.base64encode(location.href)+'');
  95. });
  96. return;
  97. }
  98. if(ret.code!=200){
  99. errsoers(ret.msg, ret);
  100. }else{
  101. js.setmsg('');
  102. js.msg('none');
  103. funs(ret.data);
  104. }
  105. },
  106. error:function(e){
  107. errsoers('内部出错:'+e.responseText+'');
  108. }
  109. };
  110. $.ajax(ajaxcan);
  111. js.ajax_time = setTimeout(function(){
  112. if(js.ajaxbool){
  113. errsoers('Error:请求超时?');
  114. }
  115. }, 1000*30);
  116. }
  117. js.wx.load=function(txt){
  118. this.unload();
  119. if(txt=='none')return;
  120. if(!txt)txt='加载中...';
  121. var s='';
  122. var t = winHb()-150;
  123. s+='<div id="loadingToastsss" class="weui_loading_toast">'+
  124. '<div class="weui_mask_transparent"></div>'+
  125. '<div class="weui_toast" style="top:'+(t*0.5)+'px">'+
  126. ' <div class="weui_loading">'+
  127. ' <div class="weui_loading_leaf weui_loading_leaf_0"></div>'+
  128. ' <div class="weui_loading_leaf weui_loading_leaf_1"></div>'+
  129. ' <div class="weui_loading_leaf weui_loading_leaf_2"></div>'+
  130. ' <div class="weui_loading_leaf weui_loading_leaf_3"></div>'+
  131. ' <div class="weui_loading_leaf weui_loading_leaf_4"></div>'+
  132. ' <div class="weui_loading_leaf weui_loading_leaf_5"></div>'+
  133. ' <div class="weui_loading_leaf weui_loading_leaf_6"></div>'+
  134. ' <div class="weui_loading_leaf weui_loading_leaf_7"></div>'+
  135. ' <div class="weui_loading_leaf weui_loading_leaf_8"></div>'+
  136. ' <div class="weui_loading_leaf weui_loading_leaf_9"></div>'+
  137. ' <div class="weui_loading_leaf weui_loading_leaf_10"></div>'+
  138. ' <div class="weui_loading_leaf weui_loading_leaf_11"></div>'+
  139. ' </div>'+
  140. ' <p class="weui_toast_content">'+txt+'</p>'+
  141. '</div>'+
  142. '</div>';
  143. $('body').append(s);
  144. }
  145. js.wx.unload=function(){
  146. $('#loadingToastsss').remove();
  147. }
  148. js.loading=function(txt){
  149. this.wx.load(txt);
  150. }
  151. js.unloading=function(){
  152. this.wx.unload();
  153. }
  154. js.wx.msgok=function(txt,fun,ms){
  155. $('#toastssss').remove();
  156. clearTimeout(this.msgtime);
  157. if(txt=='none')return;
  158. if(!ms)ms=3;
  159. var t = winHb()-150;
  160. var s='<div id="toastssss">';
  161. s+='<div class="weui_mask_transparent"></div>';
  162. s+= '<div class="weui_toast" style="top:'+(t*0.5)+'px">';
  163. s+= '<i class="weui_icon_toast"></i>';
  164. s+= '<p class="weui_toast_content">'+txt+'</p>';
  165. s+= '</div>';
  166. s+='</div>';
  167. $('body').append(s);
  168. this.msgtime=setTimeout(function(){
  169. $('#toastssss').remove();
  170. if(typeof(fun)=='function')fun();
  171. }, ms*1000);
  172. }
  173. js.showmenu=function(d){
  174. $('#menulistshow').remove();
  175. var d=js.apply({width:200,top:'50%',renderer:function(){},align:'center',onclick:function(){},oncancel:function(){}},d);
  176. var a=d.data;
  177. if(!a)return;
  178. var h1=$(window).height(),h2=document.body.scrollHeight,s1;
  179. if(h2>h1)h1=h2;
  180. var col='';
  181. var s='<div onclick="$(this).remove();" align="center" id="menulistshow" style="background:rgba(0,0,0,0.6);height:'+h1+'px;width:100%;position:absolute;left:0px;top:0px;z-index:198" >';
  182. s+='<div id="menulistshow_s" style="width:'+d.width+'px;margin-top:'+d.top+';position:fixed;-webkit-overflow-scrolling:touch" class="menulist r-border-r r-border-l">';
  183. for(var i=0;i<a.length;i++){
  184. s+='<div oi="'+i+'" style="text-align:'+d.align+';color:'+a[i].color+'" class="r-border-t">';
  185. s1=d.renderer(a[i]);
  186. if(s1){s+=s1}else{s+=''+a[i].name+'';}
  187. s+='</div>';
  188. }
  189. s+='</div>';
  190. s+='</div>';
  191. $('body').append(s);
  192. var mh = $(window).height();
  193. var l=($(window).width()-d.width)*0.5,o1 = $('#menulistshow_s'),t = (mh-o1.height()-10)*0.5;
  194. if(t<10){
  195. t = 10;
  196. o1.css({height:''+(mh-20)+'px','overflow':'auto'});
  197. }
  198. o1.css({'left':''+l+'px','margin-top':''+t+'px'});
  199. $('#menulistshow div[oi]').click(function(){
  200. var oi=parseFloat($(this).attr('oi'));
  201. d.onclick(a[oi],oi);
  202. });
  203. $('#menulistshow').click(function(){
  204. $(this).remove();
  205. try{d.oncancel();}catch(e){}
  206. });
  207. };
  208. js.wx.actionsheet=function(d){
  209. $('#actionsheetshow').remove();
  210. var d=js.apply({onclick:function(){},oncancel:function(){}},d);
  211. var a=d.data,s='';
  212. if(!a)return;
  213. s+='<div onclick="$(this).remove();" id="actionsheetshow">';
  214. s+='<div class="weui_mask_transition weui_fade_toggle" style="display:block"></div>';
  215. s+='<div class="weui_actionsheet weui_actionsheet_toggle" >';
  216. s+=' <div class="weui_actionsheet_menu">';
  217. for(var i=0;i<a.length;i++){
  218. s+='<div oi="'+i+'" style="color:'+a[i].color+'" class="weui_actionsheet_cell">'+a[i].name+'</div>';
  219. }
  220. s+=' </div>';
  221. s+=' <div class="weui_actionsheet_action"><div class="weui_actionsheet_cell" id="actionsheet_cancel">取消</div></div>';
  222. s+='</div>';
  223. s+='</div>';
  224. $('body').append(s);
  225. $('#actionsheetshow div[oi]').click(function(){
  226. var oi=parseFloat($(this).attr('oi'));
  227. d.onclick(a[oi],oi);
  228. });
  229. $('#actionsheetshow').click(function(){
  230. $(this).remove();
  231. try{d.oncancel();}catch(e){}
  232. });
  233. }
  234. js.isqywx=false;
  235. js.iswxbo=function(){
  236. var bo = true;
  237. var ua = navigator.userAgent.toLowerCase();
  238. if(ua.indexOf('micromessenger')<0)bo=false;
  239. if(bo && ua.indexOf('wxwork')>0)js.isqywx=true;
  240. return bo;
  241. }
  242. js.jssdkcall = function(bo){
  243. }
  244. js.jssdkstate = 0;
  245. js.jssdkwixin = function(qxlist,afe){
  246. if(!js.iswxbo())return js.jssdkcall(false);
  247. //if(js.isqywx)var wxurl = 'https://res.wx.qq.com/open/js/jweixin-1.1.0.js';
  248. var wxurl = 'https://res.wx.qq.com/open/js/jweixin-1.2.0.js';
  249. if(!afe)$.getScript(wxurl, function(){
  250. js.jssdkwixin(qxlist, true);
  251. });
  252. if(!afe)return;
  253. var surl= location.href;
  254. if(!qxlist)qxlist= ['openLocation','getLocation','chooseImage','getLocalImgData','previewImage'];
  255. js.ajax('weixin','getsign',{url:jm.base64encode(surl),agentid:js.request('agentid')},function(ret){
  256. if(!ret.appId)return js.jssdkcall(false);
  257. wx.config({
  258. debug: false,
  259. appId: ret.appId,
  260. timestamp:ret.timestamp,
  261. nonceStr: ret.nonceStr,
  262. signature: ret.signature,
  263. jsApiList:qxlist
  264. });
  265. wx.ready(function(){
  266. if(js.jssdkstate==0)js.jssdkstate = 1;
  267. js.jssdkcall(true);
  268. });
  269. wx.error(function(res){
  270. js.jssdkstate = 2;
  271. });
  272. });
  273. }
  274. /**
  275. * 微信公众号jssdk授权
  276. */
  277. js.jssdkwxgzh = function(qxlist,afe){
  278. if(!js.iswxbo())return js.jssdkcall(false);
  279. var wxurl = 'https://res.wx.qq.com/open/js/jweixin-1.2.0.js';
  280. if(!afe)$.getScript(wxurl, function(){
  281. js.jssdkwxgzh(qxlist, true);
  282. });
  283. if(!afe)return;
  284. var surl= location.href;
  285. if(!qxlist)qxlist= ['openLocation','getLocation','chooseImage','getLocalImgData','previewImage'];
  286. js.ajax('wxgzh','getsign',{url:jm.base64encode(surl)},function(ret){
  287. if(!ret.appId)return js.jssdkcall(false);
  288. wx.config({
  289. debug: false,
  290. appId: ret.appId,
  291. timestamp:ret.timestamp,
  292. nonceStr: ret.nonceStr,
  293. signature: ret.signature,
  294. jsApiList:qxlist
  295. });
  296. wx.ready(function(){
  297. if(js.jssdkstate==0)js.jssdkstate = 1;
  298. js.jssdkcall(true);
  299. });
  300. wx.error(function(res){
  301. js.jssdkstate = 2;
  302. });
  303. });
  304. }