mains.js 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425
  1. /* ========================================================================= */
  2. /* Preloader
  3. /* ========================================================================= */
  4. jQuery(window).load(function(){
  5. $("#preloader").fadeOut("slow");
  6. // .........................................................................
  7. // 手机验证
  8. isPhone = function (phone) {
  9. var myreg = /^[1][3,4,5,7,8][0-9]{9}$/;
  10. if (!myreg.test(phone)) {
  11. return false;
  12. } else {
  13. return true;
  14. }
  15. };
  16. // 密码验证
  17. isMima = function(mima){
  18. let mimareg = /^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{8,20}$/;
  19. if (!mimareg.test(mima)) {
  20. return false;
  21. } else {
  22. return true;
  23. }
  24. };
  25. // $('#pwd').change(function(){
  26. // if (isMima($(this).val())) {
  27. // return
  28. // } else {
  29. // alert("密码格式不对")
  30. // }
  31. // })
  32. // 注册手机号验证
  33. // $("#zc-phone").bind('input propertychange',function(){
  34. // if (isPhone($(this).val())) {
  35. // $(".zc-phone").html("");
  36. // $(this).parent().parent().css('border','1px #D8DCE8 solid');
  37. // $(this).css('outline','');
  38. // } else {
  39. // $(".zc-phone").html("<img src='./img/assets/tishi1x.png'/>请输入正确的手机号码");
  40. // $(this).parent().parent().css('border','1px red solid');
  41. // $(this).css('outline','none');
  42. // }
  43. // })
  44. // 账号手机号验证
  45. // $("#zh-phone").bind('input propertychange',function(){
  46. // if (isPhone($(this).val())) {
  47. // $(".zh-phone").html("");
  48. // $(this).parent().parent().css('border','1px #D8DCE8 solid');
  49. // $(this).css('outline','');
  50. // } else {
  51. // $(".zh-phone").html("<img src='./img/assets/tishi1x.png'/>请输入正确的手机号码");
  52. // $(this).parent().parent().css('border','1px red solid');
  53. // $(this).css('outline','none');
  54. // }
  55. // })
  56. // 短信手机号验证
  57. // $("#dx-phone").bind('input propertychange',function(){
  58. // if (isPhone($(this).val())) {
  59. // $(".dx-phone").html("");
  60. // $(this).parent().parent().css('border','1px #D8DCE8 solid');
  61. // $(this).css('outline','');
  62. // } else {
  63. // $(".dx-phone").html("<img src='./img/assets/tishi1x.png'/>请输入正确的手机号码");
  64. // $(this).parent().parent().css('border','1px red solid');
  65. // $(this).css('outline','none');
  66. // }
  67. // })
  68. // 注册协议按钮同意可以点击注册
  69. // $(".checked").click(function(){
  70. // if ($(".checked").get(0).checked) {
  71. // $(".form-btn").attr('disabled',false);
  72. // $(".form-btn").removeClass("back");
  73. // } else {
  74. // $(".form-btn").attr('disabled',true);
  75. // $(".form-btn").addClass("back");
  76. // }
  77. // })
  78. // 帮助中心
  79. $(".bz-right-conent>div").eq(0).show()
  80. let abtn = $(".bz-ul").children('li').click(function(){
  81. var _index = $(this).index();
  82. //让内容框的第 _index 个显示出来,其他的被隐藏
  83. $(".bz-right-conent>div").eq(_index).show().siblings().hide();
  84. $(this).addClass("active").siblings().removeClass('active')
  85. });
  86. });
  87. /* ========================================================================= */
  88. /* Welcome Section Slider
  89. /* ========================================================================= */
  90. $(function() {
  91. var Page = (function() {
  92. var $navArrows = $( '#nav-arrows' ),
  93. $nav = $( '#nav-dots > span' ),
  94. slitslider = $( '#slider' ).slitslider( {
  95. onBeforeChange : function( slide, pos ) {
  96. $nav.removeClass( 'nav-dot-current' );
  97. $nav.eq( pos ).addClass( 'nav-dot-current' );
  98. }
  99. } ),
  100. init = function() {
  101. initEvents();
  102. },
  103. initEvents = function() {
  104. // add navigation events
  105. $navArrows.children( ':last' ).on( 'click', function() {
  106. slitslider.next();
  107. return false;
  108. } );
  109. $navArrows.children( ':first' ).on( 'click', function() {
  110. slitslider.previous();
  111. return false;
  112. } );
  113. $nav.each( function( i ) {
  114. $( this ).on( 'click', function( event ) {
  115. var $dot = $( this );
  116. if( !slitslider.isActive() ) {
  117. $nav.removeClass( 'nav-dot-current' );
  118. $dot.addClass( 'nav-dot-current' );
  119. }
  120. slitslider.jump( i + 1 );
  121. return false;
  122. } );
  123. } );
  124. };
  125. return { init : init };
  126. })();
  127. Page.init();
  128. });
  129. $(document).ready(function(){
  130. var Store = (function(){
  131. var storeKey = 'app-state', store = window.localStorage;
  132. return {
  133. get: function(key, defaultValue) {
  134. var value = store.getItem(storeKey + '-' + key);
  135. return value === undefined? defaultValue : JSON.parse(value);
  136. },
  137. set: function(key, value) {
  138. store.setItem(storeKey + '-' + key, JSON.stringify(value));
  139. }
  140. };
  141. })();
  142. var Session = (function(){
  143. var key = 'session';
  144. return {
  145. load: function() {
  146. return Store.get(key);
  147. },
  148. loadData: function(data) {
  149. data.span = data.timestamp - new Date().getTime();
  150. Store.set(key, data);
  151. },
  152. isValid: function() {
  153. var token = this.load();
  154. return token && token.timestamp + token.expire * 1000 > new Date().getTime() + token.span;
  155. },
  156. get: function(prop) {
  157. var token = this.load();
  158. return token ? token[prop] : null;
  159. },
  160. set: function(prop, value) {
  161. var token = this.load();
  162. if (token) {
  163. token[prop] = value;
  164. Store.set(key, token);
  165. }
  166. }
  167. }
  168. })();
  169. var setUserProfile = function(account) {
  170. if (account) {
  171. $(".login").css("display","none");
  172. // 显示用户信息
  173. $("#user-info").text(account.realname || account.username);
  174. $(".profile").css("display","block")
  175. } else {
  176. $(".login").css("display","block");
  177. $(".profile").css("display","none")
  178. }
  179. };
  180. // 已经登录过从Store取出信息
  181. setUserProfile(Session.get('account'));
  182. // socket
  183. var listenOnCallback = function(clientId, resolve) {
  184. var socket = new SockJS(env.server.baseUrl + "/ws");
  185. stompClient = Stomp.over(socket);
  186. stompClient.connect({}, function(frame) {
  187. stompClient.subscribe('/clients/' + clientId + '/sso/callback', function(message){
  188. stompClient.disconnect(function(){
  189. resolve(JSON.parse(message.body));
  190. });
  191. });
  192. });
  193. };
  194. // 系统页面token
  195. var Frontend = (function(){
  196. var frame;
  197. return {
  198. init: function() {
  199. $('body').append('<iframe id="frontend" hidden src="' +
  200. env.frontend.baseUrl + '/set-token.html"></iframe>');
  201. frame = window.frames[window.frames.length - 1];
  202. },
  203. set: function(session, callback) {
  204. window.addEventListener('message', callback, false);
  205. frame.postMessage(JSON.stringify(session), '*');
  206. },
  207. redirect: function() {
  208. window.location.href = env.frontend.baseUrl;
  209. }
  210. };
  211. })();
  212. Frontend.init();
  213. // 关闭弹窗X
  214. $(".tc-on").click(function(){
  215. $('#box-zc').css('display','none');
  216. $('#box').css('display','none');
  217. $(".zhezhao").css("display","none")
  218. })
  219. // 登录弹出
  220. $(".btn1").click(function(){
  221. if ($('#box').css('display') =="none") {
  222. // 随机生成clientId
  223. var clientId = Math.random().toString(36).substr(2);
  224. $(".zhezhao").css("display","block");
  225. $('#box iframe').attr('src', env.server.ssoUrl + '/sassLogin?appId=sp&baseUrl=' +
  226. encodeURIComponent(env.server.baseUrl + '/api/auth/sso/callback/' + clientId));
  227. $('#box').show();
  228. listenOnCallback(clientId, function(data){
  229. var session = data.token, account = data.account;
  230. account.companies = account.companies || [];
  231. session.account = account;
  232. Session.loadData(session);
  233. setUserProfile(account);
  234. $('#box').hide();
  235. $(".zhezhao").css("display","none");
  236. // 系统页面token设置
  237. Frontend.set(session, function(){
  238. if (!account.companyId) {
  239. // 登录成功跳转到企业设置
  240. this.$router.push({name:'enterprise'});
  241. } else {
  242. //如果开通过sass直接跳转到sass页面
  243. Frontend.redirect();
  244. }
  245. });
  246. });
  247. } else {
  248. $('#box').hide();
  249. $(".zhezhao").css("display","none")
  250. }
  251. });
  252. // 注册弹出
  253. $('.register').click(function(){
  254. if ($('#box').css('display') =="none") {
  255. $(".zhezhao").css("display","block");
  256. $('#box iframe').attr('src', env.server.ssoUrl + '/sassLogin/register?appId=sp');
  257. $('#box').show();
  258. } else {
  259. $('#box').hide();
  260. $(".zhezhao").css("display","none")
  261. }
  262. });
  263. /* ========================================================================= */
  264. /* Portfolio
  265. /* ========================================================================= */
  266. var $projectWrapper = $('.project-wrapper');
  267. $projectWrapper.isotope({
  268. filter: '*',
  269. animationOptions: {
  270. duration: 750,
  271. easing: 'linear',
  272. queue: false
  273. }
  274. });
  275. $('.portfolio-filter a').click(function(){
  276. $('.portfolio-filter .active').removeClass('active');
  277. $(this).addClass('active');
  278. var selector = $(this).attr('data-filter');
  279. $projectWrapper.isotope({
  280. filter: selector,
  281. animationOptions: {
  282. duration: 750,
  283. easing: 'linear',
  284. queue: false
  285. }
  286. });
  287. return false;
  288. });
  289. /* ========================================================================= */
  290. /* Menu item highlighting
  291. /* ========================================================================= */
  292. // jQuery('#nav').singlePageNav({
  293. // offset: jQuery('#nav').outerHeight(),
  294. // filter: ':not(.external)',
  295. // speed: 2000,
  296. // currentClass: 'current',
  297. // easing: 'easeInOutExpo',
  298. // updateHash: true,
  299. // beforeStart: function() {
  300. // console.log('begin scrolling');
  301. // },
  302. // onComplete: function() {
  303. // console.log('done scrolling');
  304. // }
  305. // });
  306. $(window).scroll(function () {
  307. if ($(window).scrollTop() > 10) {
  308. $(".navbar-brand a").css("color","#fff");
  309. $("#navigation").removeClass("animated-header");
  310. } else {
  311. $(".navbar-brand a").css("color","inherit");
  312. $("#navigation").addClass("animated-header");
  313. }
  314. });
  315. /* ========================================================================= */
  316. /* Fix Slider Height
  317. /* ========================================================================= */
  318. // Slider Height
  319. var slideHeight = $(window).height();
  320. $('#home-slider, #slider, .sl-slider, .sl-content-wrapper').css('height',slideHeight);
  321. $(window).resize(function(){'use strict',
  322. $('#home-slider, #slider, .sl-slider, .sl-content-wrapper').css('height',slideHeight);
  323. });
  324. $("#works, #testimonial").owlCarousel({
  325. navigation : true,
  326. pagination : false,
  327. slideSpeed : 700,
  328. paginationSpeed : 400,
  329. singleItem:true,
  330. navigationText: ["<i class='fa fa-angle-left fa-lg'></i>","<i class='fa fa-angle-right fa-lg'></i>"]
  331. });
  332. /* ========================================================================= */
  333. /* Featured Project Lightbox
  334. /* ========================================================================= */
  335. $(".fancybox").fancybox({
  336. padding: 0,
  337. openEffect : 'elastic',
  338. openSpeed : 650,
  339. closeEffect : 'elastic',
  340. closeSpeed : 550,
  341. closeClick : true,
  342. beforeShow: function () {
  343. this.title = $(this.element).attr('title');
  344. this.title = '<h3>' + this.title + '</h3>' + '<p>' + $(this.element).parents('.portfolio-item').find('img').attr('alt') + '</p>';
  345. },
  346. helpers : {
  347. title : {
  348. type: 'inside'
  349. },
  350. overlay : {
  351. css : {
  352. 'background' : 'rgba(0,0,0,0.8)'
  353. }
  354. }
  355. }
  356. });
  357. });
  358. // ========== END GOOGLE MAP ========== //
  359. var wow = new WOW ({
  360. offset: 75, // distance to the element when triggering the animation (default is 0)
  361. mobile: false, // trigger animations on mobile devices (default is true)
  362. });
  363. wow.init();