init.js 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380
  1. function enPasswd(password){
  2. var mytoken = $.__token;
  3. return strEnc(password,mytoken.substring(4,12),mytoken.substring(12,20),mytoken.substring(20,28));
  4. }
  5. //登录事件
  6. function LoginSubmit(){
  7. $("#_logBtn").attr("disabled","true");
  8. var userId =$("#_userId").val();
  9. var password = enPasswd($("#password").val());
  10. var verifygraph =$("#verifygraph").val();
  11. $.ajax({
  12. // dataType:'json',
  13. type: "GET",
  14. dataType: "jsonp", //指定服务器返回的数据类型
  15. url:sysWebAppName+"TransServlet?transCode=HM0001&channelNo=manager&clientToken=" + $.__token+'&userId='+userId+'&password='+password+'&verifygraph='+verifygraph,
  16. cache:false,
  17. success:function(result) {
  18. initExcludeUrlMap();
  19. $("#ff").form("clear");
  20. if(result.returnCode == '000000000'){
  21. forceCloseFlag = false;
  22. $.__token = result.clientToken;
  23. window.$configs = {};
  24. window.$configs.token = $.__token;
  25. localStorage.setItem("token", $.__token);
  26. localStorage.setItem("userid",userId);
  27. localStorage.setItem("branchNo",result.branchNo);
  28. localStorage.setItem("nickname",result.nickname);
  29. localStorage.setItem("roleids",result.roleids);
  30. // window.sessionStorage.setItem("userid",userId);
  31. //加载登录信息
  32. $("#nickname").html('登录用户:【'+result.nickname+"】");
  33. $("#prlogintime").html(result.prlogintime);
  34. $("#preloginip").html(result.preloginip);
  35. //获取权限菜单
  36. loginMenuQuery(result.menus);
  37. //加载manager标准数据
  38. loadStdData('manager');
  39. //加载service标准数据
  40. //loadStdData('service');
  41. //关闭Tabs
  42. closeTabsBySubPage();
  43. //初始化首页内容,有可显示菜单时操作
  44. if(result.menus.length>0){
  45. initIndexPage();
  46. }else{
  47. $('#tt').tabs('close','首页');
  48. }
  49. $(".login").fadeOut(1500,function(){
  50. $(".login").hide();
  51. $("#_logBtn").removeAttr("disabled");
  52. });
  53. $(".leftcurtain").stop().animate({width:'0px'}, 1500 );
  54. $(".rightcurtain").stop().animate({width:'0px'},1500 );
  55. $("#_logBtn").removeAttr("disabled");
  56. }else{//EB8000011 验证码信息错误时,可不清空form,保留用户名密码的填写
  57. changeImage();
  58. var __a = $.fn.window.defaults.zIndex;
  59. $.fn.window.defaults.zIndex = 30002;
  60. $.messager.alert('登录提示','返回码:['+result.returnCode+'],返回信息:['+result.returnMsg+'].','info',function(){
  61. $.fn.window.defaults.zIndex = __a;
  62. });
  63. $("#_logBtn").removeAttr("disabled");
  64. }
  65. },error:function(a,b,c){
  66. changeImage();
  67. $("#ff").form("clear");
  68. $("#_logBtn").removeAttr("disabled");
  69. $.messager.alert('系统错误', '网络或系统忙提交失败,请重试!','error');
  70. $("#_logBtn").removeAttr("disabled");
  71. }
  72. });
  73. }
  74. function colseValidate(){
  75. $(this).find('.validatebox-text:not(:disabled)').validatebox('disableValidation');
  76. }
  77. function openValidate(){
  78. $(this).find('.validatebox-text:not(:disabled)').validatebox('enableValidation').validatebox('validate');
  79. }
  80. //格式化
  81. function formatStrInfo(str){
  82. return str.length>14?str.substring(0,10)+'...':str;
  83. }
  84. //点击显示的样式更改
  85. function bindClick(){
  86. $('.cs-navi-tab').click(function() {
  87. var $this = $(this);
  88. var href = $this.attr('src');
  89. var title = $this.attr('title')|| $this.text();
  90. openTabs(title, href);
  91. });
  92. }
  93. //标准数据
  94. function loadStdData(sysId){
  95. var command = 'rows=-1&orderBy=CODE_TYPE,CODE_ORDER';
  96. if (sysId !== null || sysId !== undefined || sysId !== '') {
  97. command = command+'&channelNo='+sysId;
  98. }
  99. syncAjaxCall('SYSAPPCO01',command,function(data){
  100. var d = data.rows;
  101. for(index in d){
  102. if (!window.$configs.mapData) {
  103. var _tmp = $.mapData.get(d[index].codeType) || {};
  104. _tmp[d[index].codeValue] = d[index].codeDesc;
  105. $.mapData.put(d[index].codeType,_tmp);
  106. }else{
  107. $.mapData = window.$configs.mapData;
  108. var _tmp = $.mapData.get(d[index].codeType) || {};
  109. _tmp[d[index].codeValue] = d[index].codeDesc;
  110. $.mapData.put(d[index].codeType,_tmp);
  111. }
  112. }
  113. if(window.$configs){
  114. window.$configs.mapData = $.mapData;
  115. }
  116. });
  117. }
  118. function contain(arr,element){
  119. for(var i=0;i<arr.length;i++){
  120. if(arr[i]==element){
  121. return true;
  122. }
  123. }
  124. return false;
  125. };
  126. //带有登录者权限的菜单查询
  127. function loginMenuQuery(d){
  128. $("#menus").find("dl").remove();
  129. var map = new MapUtils();
  130. var arr = [];
  131. for(index in d){
  132. if(d[index].menuid!=""){
  133. arr.push(d[index].menuid);
  134. }
  135. }
  136. var _uuid = uuid();
  137. for(index in d){
  138. var _key = d[index].menupid==""?d[index].menuid:d[index].menupid;
  139. //使每次启动重新刷新页面
  140. d[index].menuurl = d[index].menuurl+'?v='+_uuid;
  141. var _menuid = d[index].menuid;
  142. var _tmp = map.get(_key) || {};
  143. _tmp[d[index].menuid] = d[index];
  144. map.put(_key,_tmp);
  145. if(!contain(arr,_key)){
  146. arr.push(_key);
  147. }
  148. }
  149. values = map.values();
  150. for(m in values){
  151. var mLen=Object.keys(values[m]).length;
  152. if(mLen<=1){ //没有子菜单 ,不构建
  153. continue;
  154. }
  155. var content = "",title = "<dl class='Left-list myborder Content'>";
  156. for(sub in values[m]){
  157. if(!contain(arr,values[m][sub].menuid)){
  158. continue;
  159. }
  160. if(values[m][sub].menupid==""){
  161. title += "<dt style=\"cursor:pointer\" onclick=\"hideOrShow(this)\" title=\"展开\"><span>"+values[m][sub].menuname+"</span></dt>";
  162. }else{
  163. content += "<dd style='display:none;'><a href='#' title='"+values[m][sub].menuname+"' onclick='openTabs(\""+values[m][sub].menuname+"\",\""+values[m][sub].menuurl+"\")'>"+(values[m][sub].menuname.length>7?values[m][sub].menuname.substring(0,7)+"..":values[m][sub].menuname)+"</a></dd>";
  164. }
  165. }
  166. $("#menus").append(title+content+"</dl>");
  167. $("#menus").find("dl:first").find("dd").each(function(){
  168. $(this).css("display","block");
  169. });
  170. $("#menus").find("dl:first").find("dt").each(function(){
  171. $(this).attr("title","折叠");
  172. });
  173. }
  174. }
  175. //全部开放菜单的查询
  176. function menuQuery(){
  177. syncAjaxCall('HS0004','&proNames=flag&orderBy=&menuindex&pageSize=-1&flag=1',function(data){
  178. $("#menus").find("dl").remove();
  179. var map = new MapUtils();
  180. var arr = [];
  181. d = data.record;
  182. for(index in d){
  183. if(d[index].menuid!=""){
  184. arr.push(d[index].menuid);
  185. }
  186. }
  187. var _uuid = uuid();
  188. for(index in d){
  189. var _key = d[index].menupid==""?d[index].menuid:d[index].menupid;
  190. //使每次启动重新刷新页面
  191. d[index].menuurl = d[index].menuurl+'?v='+_uuid;
  192. var _menuid = d[index].menuid;
  193. var _tmp = map.get(_key) || {};
  194. _tmp[d[index].menuid] = d[index];
  195. map.put(_key,_tmp);
  196. if(!contain(arr,_key)){
  197. arr.push(_key);
  198. }
  199. }
  200. values = map.values();
  201. for(m in values){
  202. var content = "",title = "<dl class='Left-list myborder Content'>";
  203. for(sub in values[m]){
  204. if(!contain(arr,values[m][sub].menuid)){
  205. continue;
  206. }
  207. if(values[m][sub].menupid==""){
  208. title += "<dt style=\"cursor:pointer\" onclick=\"hideOrShow(this)\" title=\"展开\"><span>"+values[m][sub].menuname+"</span></dt>";
  209. }else{
  210. content += "<dd style='display:none;'><a href='#' title='"+values[m][sub].menuname+"' onclick='openTabs(\""+values[m][sub].menuname+"\",\""+values[m][sub].menuurl+"\")'>"+(values[m][sub].menuname.length>7?values[m][sub].menuname.substring(0,7)+"..":values[m][sub].menuname)+"</a></dd>";
  211. }
  212. }
  213. $("#menus").append(title+content+"</dl>");
  214. $("#menus").find("dl:first").find("dd").each(function(){
  215. $(this).css("display","block");
  216. });
  217. $("#menus").find("dl:first").find("dt").each(function(){
  218. $(this).attr("title","折叠");
  219. });
  220. }
  221. });
  222. }
  223. //折叠菜单
  224. function hideOrShow(target){
  225. var target = $(target);
  226. if(target.attr("title")=="展开"){
  227. $("#menus").find("dd").each(function(){
  228. $(this).css("display","none");
  229. });
  230. target.parent().find("dd").each(function(){
  231. $(this).css("display","block");
  232. });
  233. $("#menus").find("dt").each(function(){
  234. $(this).attr("title","展开");
  235. });
  236. target.attr("title","折叠");
  237. }else{
  238. $("#menus").find("dd").each(function(){
  239. $(this).css("display","none");
  240. });
  241. target.attr("title","展开");
  242. }
  243. }
  244. //打开窗体
  245. function OpenWindows(url,title){
  246. var iTop = (window.screen.availHeight-30-600)/2; //获得窗口的垂直位置;
  247. var iLeft = (window.screen.availWidth-10-800)/2; //获得窗口的水平位置;
  248. window.open(url,title,'top='+iTop+',left='+iLeft+',height=600,width=800,status=no,toolbar=no,menubar=no,location=no,scrollbars=no');
  249. }
  250. function createFrame(url) {
  251. var s = '<iframe scrolling="auto" frameborder="0" src="'+url+'" style="width:100%;height:100%;"></iframe>';
  252. return s;
  253. }
  254. //打开新的tabs
  255. function openTabs(title,url){
  256. if ($('#tt').tabs('exists', title)){
  257. $('#tt').tabs('select', title);
  258. $('#tt').tabs('update', {
  259. tab: $('#tt').tabs('getSelected'),
  260. options: {
  261. content:createFrame(url)
  262. }
  263. });
  264. }else{
  265. $('#tt').tabs('add',{
  266. title:title,
  267. content:createFrame(url),
  268. closable:true
  269. });
  270. }
  271. }
  272. var forceCloseFlag = false;
  273. //退出当前系统
  274. function loginOut(){
  275. $.messager.confirm('提示','真的要退出当前系统吗?',function(r){
  276. if(!r)return;
  277. syncAjaxCall('HM0002',null,function(data){
  278. $(".login").find("input").each(function(){
  279. if($(this).attr("type")!="button"&&$(this).attr("type")!="hidden"){
  280. $(this).val("");
  281. }
  282. });
  283. $('.tabs-inner span').each(function(i,n){
  284. var t = $(n).text();
  285. if(t != '首页') {
  286. forceCloseFlag = true;
  287. $('#tt').tabs('close',t);
  288. }
  289. });
  290. $(".leftcurtain").stop().animate({width:'50%'}, 1500 );
  291. $(".rightcurtain").stop().animate({width:'51%'}, 1500 );
  292. $(".login").show();
  293. changeImage();
  294. },null,true
  295. );
  296. });
  297. }
  298. function closeTabsBySubPage(){
  299. $('.tabs-inner span').each(function(i,n){
  300. var t = $(n).text();
  301. if(t != '首页') {
  302. $('#tt').tabs('close',t);
  303. }
  304. });
  305. }
  306. function initIndexPage(){
  307. var url = "pages/first.html?clientToken="+ $.__token;
  308. $("#tt").tabs('update',{
  309. tab:$("#tt").tabs('getSelected'),
  310. options:{
  311. content:createFrame(url)
  312. }
  313. });
  314. }
  315. //解决layout自适应问题
  316. $(function(){
  317. if($.mapData==null)$.mapData = new MapUtils();
  318. if($.mapDataGrid==null)$.mapDataGrid = new MapUtils();
  319. });
  320. //全局控制backspace 事件
  321. if(document.addEventListener){
  322. document.addEventListener("keydown",maskBackspace, true);
  323. }else{
  324. document.attachEvent("onkeydown",maskBackspace);
  325. }
  326. function maskBackspace(event){
  327. var event = event || window.event; //标准化事件对象
  328. var obj = event.target || event.srcElement;
  329. var keyCode = event.keyCode ? event.keyCode : event.which ?
  330. event.which : event.charCode;
  331. if(keyCode == 8){
  332. if(obj!=null && obj.tagName!=null && (obj.tagName.toLowerCase() == "input"
  333. || obj.tagName.toLowerCase() == "textarea")){
  334. event.returnValue = true ;
  335. if(obj.readOnly) {
  336. if(window.event)
  337. event.returnValue = false ; //or event.keyCode=0
  338. else
  339. event.preventDefault(); //for ff</strong>
  340. }
  341. }else{
  342. if(window.event)
  343. event.returnValue = false ; // or event.keyCode=0
  344. else
  345. event.preventDefault(); //for ff
  346. }
  347. }
  348. }