register_company.blade.php 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614
  1. @extends('mobile.module.layouts.content')
  2. @push('meta')
  3. @endpush
  4. @push('css')
  5. <link href="{{ theme_asset('mobile/css/members.css') }}" rel="stylesheet">
  6. <script type="text/javascript" src="{{ theme_asset('gt/gt.js') }}"></script>
  7. <script type="text/javascript" src="{{ theme_asset('gt/gt.handle.js') }}"></script>
  8. @endpush
  9. @push('js')
  10. @endpush
  11. @section('content')
  12. <div class="split-block"></div>
  13. <form id="registerForm" method="post" action="{{route($sub_site.'mobile.register.company')}}">
  14. {{csrf_field()}}
  15. <div class="ptitle border"><div class="th1">公司信息</div></div>
  16. <div class="list-group">
  17. <div class="list_height plist-txt notarrow">
  18. <div class="pic"></div>
  19. <div class="tit font14">公司名称</div>
  20. <div class="describe font12"><input type="text" name="companyname" id="companyname" placeholder="请输入公司全称"></div>
  21. <div class="clear"></div>
  22. </div>
  23. <div class="list_height plist-txt notarrow">
  24. <div class="pic"></div>
  25. <div class="tit font14">联系人</div>
  26. <div class="describe font12"><input type="text" name="contact" id="contact" placeholder="请输入公司联系人"></div>
  27. <div class="clear"></div>
  28. </div>
  29. <div class="list_height plist-txt notarrow">
  30. <div class="pic"></div>
  31. <div class="tit font14">手机号</div>
  32. <div class="describe font12"><input type="text" name="company_mobile" id="company_mobile" placeholder="请输入手机号" value=""></div>
  33. <div class="clear"></div>
  34. </div>
  35. <div class="list_height plist-txt notarrow had-remind-box qs-center link_blue" onclick="javascript:location.href='{{route($sub_site.'mobile.login')}}'">
  36. <a href="javascript:;"><span class="mal"></span><span class="txt-o-red">点击立即登录</span></a>
  37. </div>
  38. <div class="list_height plist-txt">
  39. <div class="pic"></div>
  40. <div class="tit font14">公司座机</div>
  41. <a href="#landTel" class="describe font12 js-slide landLineText">请输入</a>
  42. <div class="arrow"></div>
  43. <div class="clear"></div>
  44. </div>
  45. </div>
  46. <div class="split-block"></div>
  47. <div class="ptitle border"><div class="th1">账户信息</div></div>
  48. <div class="list-group">
  49. <div class="list_height plist-txt notarrow">
  50. <div class="pic"></div>
  51. <div class="tit font14">用户名</div>
  52. <div class="describe font12"><input type="text" name="username" id="username" placeholder="请输入用户名"></div>
  53. <div class="clear"></div>
  54. </div>
  55. <div class="list_height plist-txt notarrow">
  56. <div class="pic"></div>
  57. <div class="tit font14">邮箱</div>
  58. <div class="describe font12"><input type="text" name="email" id="email" placeholder="请输入联系邮箱"></div>
  59. <div class="clear"></div>
  60. </div>
  61. <div class="list_height plist-txt notarrow">
  62. <div class="pic"></div>
  63. <div class="tit font14">密码</div>
  64. <div class="describe font12"><input type="password" name="company_password" id="company_password" placeholder="请输入6-16位密码"></div>
  65. <div class="clear"></div>
  66. </div>
  67. <div class="list_height plist-txt notarrow">
  68. <div class="pic"></div>
  69. <div class="tit font14">确认密码</div>
  70. <div class="describe font12"><input type="password" name="company_password_confirmation" id="company_password_confirmation" placeholder="请重复输入密码"></div>
  71. <div class="clear"></div>
  72. </div>
  73. </div>
  74. <div class="l-tool-bar list_height">
  75. <div class="read-agreement">
  76. <div class="for-checkbox active" id="for-checkbox">我已阅读并同意
  77. </div>
  78. </div>
  79. <div class="agreement link_gray6"><a href="#userAgreenment" id="reg_agreement">《用户服务协议》</a></div>
  80. <div class="clear"></div>
  81. </div>
  82. <div class="split-block"></div>
  83. <div class="btn-spacing"><a id="btnRegCompany" href="javascript:;" class="qs-btn qs-btn-blue font18">注册企业会员</a></div>
  84. <input name="utype" type="hidden" value="1">
  85. <input type="hidden" name="reg_type" value="2">
  86. <input type="hidden" name="reg_source" value="2" />
  87. <input type="hidden" name="agreement" value="1" />
  88. <input type="hidden" name="landline_tel" id="landline_tel" value="">
  89. </form>
  90. <input type="hidden" id="h-landline1" value="">
  91. <input type="hidden" id="h-landline2" value="">
  92. <input type="hidden" id="h-landline3" value="">
  93. <!--公司固话模板-->
  94. <script type="text/html" id="tpl-lindTel">
  95. <div class="headernavfixed">
  96. <div class="headernav font18"><div class="title">公司固话<div class="return js-back"></div><div class="rbtn"></div></div></div>
  97. </div>
  98. <div class="split-block"></div>
  99. <div class="list-group">
  100. <div class="list_height plist-txt notarrow">
  101. <div class="pic"></div>
  102. <div class="tit font14">区号</div>
  103. <div class="describe font12"><input type="text" name="landline_tel_first" id="landline_tel_first" placeholder="请输入区号"></div>
  104. <div class="clear"></div>
  105. </div>
  106. <div class="list_height plist-txt notarrow">
  107. <div class="pic"></div>
  108. <div class="tit font14">电话</div>
  109. <div class="describe font12"><input type="text" name="landline_tel_next" id="landline_tel_next" placeholder="请输入电话号码"></div>
  110. <div class="clear"></div>
  111. </div>
  112. <div class="list_height plist-txt notarrow">
  113. <div class="pic"></div>
  114. <div class="tit font14">分机</div>
  115. <div class="describe font12"><input type="text" name="landline_tel_last" id="landline_tel_last" placeholder="请输入分机号码"></div>
  116. <div class="clear"></div>
  117. </div>
  118. </div>
  119. <div class="split-block"></div>
  120. <div class="btn-spacing"><a id="saveLandLine" href="javascript:;" class="qs-btn qs-btn-blue font18">保存</a></div>
  121. </script>
  122. <!--用户服务协议-->
  123. <script type="text/html" id="agreementTxt">
  124. <div class="headernavfixed">
  125. <div class="headernav font18"><div class="title">用户服务协议<div class="return js-back"></div><div class="rbtn"></div></div></div>
  126. </div>
  127. <div class="agreement-content">{!! str_replace(["\r\n","\n"], ["",""], config('aix.system.register_agreement.register_agreement.reg_agreement')) !!}</div>
  128. </script>
  129. @endsection
  130. @section('script')
  131. <script type="text/javascript" src="{{ theme_asset('app/js/regular.js') }}"></script>
  132. <script type="text/javascript" src="{{ theme_asset('mobile/js/popWin.js') }}"></script>
  133. <script>
  134. // 用户服务协议
  135. $('#for-checkbox').on('click', function() {
  136. $(this).toggleClass('active');
  137. if ($(this).hasClass('active')) {
  138. $('input[name=agreement]').val(1);
  139. } else {
  140. $('input[name=agreement]').val(0);
  141. }
  142. })
  143. var agreementTemp = $('#agreementTxt').html();
  144. $("#reg_agreement").on("click",function(){
  145. popWin.init({
  146. from:"right",
  147. html:agreementTemp,
  148. handle:function (a) {
  149. }
  150. })
  151. });
  152. //固话
  153. var subTemp = $('#tpl-lindTel').html();
  154. $(".landLineText").click(function(){
  155. var $this = $(this),
  156. baseTxt = $this.text(),
  157. baseValue = $('#landline_tel').val();
  158. popWin.init({
  159. from:"right",
  160. html:subTemp,
  161. handle:function(a){
  162. if ($('#h-landline1').val().length) {
  163. $('#landline_tel_first').val($('#h-landline1').val());
  164. }
  165. if ($('#h-landline2').val().length) {
  166. $('#landline_tel_next').val($('#h-landline2').val());
  167. }
  168. if ($('#h-landline3').val().length) {
  169. $('#landline_tel_last').val($('#h-landline3').val());
  170. }
  171. /**
  172. * 保存固话
  173. */
  174. $('#saveLandLine').on('click', function() {
  175. var landValue1 = $.trim($('#landline_tel_first').val());
  176. var landValue2 = $.trim($('#landline_tel_next').val());
  177. var landValue3 = $.trim($('#landline_tel_last').val());
  178. var landValue = '';
  179. if (!landValue1.length) {
  180. qsToast({type:2,context: '区号不能为空'});
  181. return false;
  182. }
  183. if (landValue1.length) {
  184. if(!inputRegValiZone(landValue1)){
  185. qsToast({type:2,context: '区号格式错误'});
  186. return false;
  187. }
  188. landValue += landValue1 + '-';
  189. $('#h-landline1').val(landValue1);
  190. }
  191. if (!landValue2.length) {
  192. qsToast({type:2,context: '电话不能为空'});
  193. return false;
  194. }
  195. if(!inputRegValiTelNext(landValue2)){
  196. qsToast({type:2,context: '电话格式错误'});
  197. return false;
  198. }
  199. landValue += landValue2;
  200. $('#h-landline2').val(landValue2);
  201. if (landValue3.length) {
  202. if (!validNumber(landValue3)) {
  203. qsToast({type:2,context: '分机号为数字'});
  204. return false;
  205. }
  206. if (landValue3.length > 4) {
  207. qsToast({type:2,context: '分机号1-4位数字组成'});
  208. return false;
  209. }
  210. landValue += '-' + landValue3;
  211. $('#h-landline3').val(landValue3);
  212. }
  213. if (landValue.length) {
  214. $('#landline_tel').val(landValue);
  215. $('.landLineText').text(landValue);
  216. }
  217. a.close();
  218. });
  219. }
  220. })
  221. });
  222. // 如果后台开启注册验证就配置极验
  223. var handler = function(captchaObj) {
  224. captchaObj.bindForm("#registerForm");
  225. captchaObj.onSuccess(function() {
  226. regCompanyHandler();
  227. });
  228. captchaObj.onError(function() {
  229. });
  230. $('#btnRegCompany').on('click', function () {
  231. var comnameValue = $.trim($('input[name="companyname"]').val());
  232. var contactValue = $.trim($('input[name="contact"]').val());
  233. var telephoneValue = $.trim($('input[name="company_mobile"]').val());
  234. var landlineValue = $.trim($('#landline_tel').val());
  235. var usernameValue = $.trim($('input[name="username"]').val());
  236. var emailValue = $.trim($('input[name="email"]').val());
  237. var emailpassword = $.trim($('input[name="company_password"]').val());
  238. var emailpasswordVerify = $.trim($('input[name="company_password_confirmation"]').val());
  239. var agreementValue = $('input[name=agreement]').val();
  240. if(!comnameValue){
  241. qsToast({type:2,context: '请填写公司名称'});
  242. return false;
  243. }
  244. if(!remoteValid('companyname',comnameValue)){
  245. qsToast({type:2,context: '该公司已被注册'});
  246. return false;
  247. }
  248. if(!contactValue){
  249. qsToast({type:2,context: '请填写联系人'});
  250. return false;
  251. }
  252. if(!telephoneValue && !landlineValue){
  253. qsToast({type:2,context: '公司座机和手机号码至少填写一项'});
  254. return false;
  255. }else if(telephoneValue && !landlineValue){
  256. if(!inputRegValiMobile(telephoneValue)){
  257. qsToast({type:2,context: '手机号格式错误'});
  258. return false;
  259. }
  260. if(!remoteValid('mobile',telephoneValue)){
  261. qsToast({type:2,context: '该手机号已被注册'});
  262. return false;
  263. }
  264. }else if(telephoneValue && landlineValue){
  265. if(!inputRegValiMobile(telephoneValue)){
  266. qsToast({type:2,context: '手机号格式错误'});
  267. return false;
  268. }
  269. if(!remoteValid('mobile',telephoneValue)){
  270. qsToast({type:2,context: '该手机号已被注册'});
  271. return false;
  272. }
  273. }
  274. if(!usernameValue){
  275. qsToast({type:2,context: '请填写用户名'});
  276. return false;
  277. }
  278. if(!inputRegValiUsername(usernameValue)){
  279. qsToast({type:2,context: '用户名字母开头,包含6位以上数字和字母'});
  280. return false;
  281. }
  282. if(!remoteValid('username',usernameValue)){
  283. qsToast({type:2,context: '该用户名已被注册'});
  284. return false;
  285. }
  286. if(!emailValue){
  287. qsToast({type:2,context: '请填写邮箱'});
  288. return false;
  289. }
  290. if(!inputRegValiEmail(emailValue)){
  291. qsToast({type:2,context: '邮箱格式错误'});
  292. return false;
  293. }
  294. if(!remoteValid('email',emailValue)){
  295. qsToast({type:2,context: '该邮箱已被注册'});
  296. return false;
  297. }
  298. if(!emailpassword){
  299. qsToast({type:2,context: '请填写密码'});
  300. return false;
  301. }
  302. if(!inputRegValiPassword(emailpassword)){
  303. qsToast({type:2,context: '密码长度要求为6-16个字符'});
  304. return false;
  305. }
  306. if(!emailpasswordVerify){
  307. qsToast({type:2,context: '请填写确认密码'});
  308. return false;
  309. }
  310. if(!inputRegValiPassword(emailpasswordVerify)){
  311. qsToast({type:2,context: '密码长度要求为6-16个字符'});
  312. return false;
  313. }
  314. if(!inputRegValiPasswordRepeat(emailpassword,emailpasswordVerify)){
  315. qsToast({type:2,context: '两次输入的密码不一致'});
  316. return false;
  317. }
  318. if (agreementValue !=1) {
  319. qsToast({type:2,context: '请接受用户服务协议'});
  320. return false;
  321. }
  322. captchaObj.verify();
  323. });
  324. };
  325. // gt_init(handler);
  326. $('#btnRegCompany').on('click', function () {
  327. var comnameValue = $.trim($('input[name="companyname"]').val());
  328. var contactValue = $.trim($('input[name="contact"]').val());
  329. var telephoneValue = $.trim($('input[name="company_mobile"]').val());
  330. var landlineValue = $.trim($('#landline_tel').val());
  331. var usernameValue = $.trim($('input[name="username"]').val());
  332. var emailValue = $.trim($('input[name="email"]').val());
  333. var emailpassword = $.trim($('input[name="company_password"]').val());
  334. var emailpasswordVerify = $.trim($('input[name="company_password_confirmation"]').val());
  335. var agreementValue = $('input[name=agreement]').val();
  336. if(!comnameValue){
  337. qsToast({type:2,context: '请填写公司名称'});
  338. return false;
  339. }
  340. if(!remoteValid('companyname',comnameValue)){
  341. qsToast({type:2,context: '该公司已被注册'});
  342. return false;
  343. }
  344. if(!contactValue){
  345. qsToast({type:2,context: '请填写联系人'});
  346. return false;
  347. }
  348. if(!telephoneValue && !landlineValue){
  349. qsToast({type:2,context: '公司座机和手机号码至少填写一项'});
  350. return false;
  351. }else if(telephoneValue && !landlineValue){
  352. if(!inputRegValiMobile(telephoneValue)){
  353. qsToast({type:2,context: '手机号格式错误'});
  354. return false;
  355. }
  356. if(!remoteValid('mobile',telephoneValue)){
  357. qsToast({type:2,context: '该手机号已被注册'});
  358. return false;
  359. }
  360. }else if(telephoneValue && landlineValue){
  361. if(!inputRegValiMobile(telephoneValue)){
  362. qsToast({type:2,context: '手机号格式错误'});
  363. return false;
  364. }
  365. if(!remoteValid('mobile',telephoneValue)){
  366. qsToast({type:2,context: '该手机号已被注册'});
  367. return false;
  368. }
  369. }
  370. if(!usernameValue){
  371. qsToast({type:2,context: '请填写用户名'});
  372. return false;
  373. }
  374. if(!inputRegValiUsername(usernameValue)){
  375. qsToast({type:2,context: '用户名字母开头,包含6位以上数字和字母'});
  376. return false;
  377. }
  378. if(!remoteValid('username',usernameValue)){
  379. qsToast({type:2,context: '该用户名已被注册'});
  380. return false;
  381. }
  382. if(!emailValue){
  383. qsToast({type:2,context: '请填写邮箱'});
  384. return false;
  385. }
  386. if(!inputRegValiEmail(emailValue)){
  387. qsToast({type:2,context: '邮箱格式错误'});
  388. return false;
  389. }
  390. if(!remoteValid('email',emailValue)){
  391. qsToast({type:2,context: '该邮箱已被注册'});
  392. return false;
  393. }
  394. if(!emailpassword){
  395. qsToast({type:2,context: '请填写密码'});
  396. return false;
  397. }
  398. if(!inputRegValiPassword(emailpassword)){
  399. qsToast({type:2,context: '密码长度要求为6-16个字符'});
  400. return false;
  401. }
  402. if(!emailpasswordVerify){
  403. qsToast({type:2,context: '请填写确认密码'});
  404. return false;
  405. }
  406. if(!inputRegValiPassword(emailpasswordVerify)){
  407. qsToast({type:2,context: '密码长度要求为6-16个字符'});
  408. return false;
  409. }
  410. if(!inputRegValiPasswordRepeat(emailpassword,emailpasswordVerify)){
  411. qsToast({type:2,context: '两次输入的密码不一致'});
  412. return false;
  413. }
  414. if (agreementValue !=1) {
  415. qsToast({type:2,context: '请接受用户服务协议'});
  416. return false;
  417. }
  418. regCompanyHandler();
  419. });
  420. // 注册企业处理程序
  421. function regCompanyHandler() {
  422. $('#btnRegCompany').text('注册中...').addClass('btn_disabled').prop('disabled', !0);
  423. $.ajax({
  424. url: "{{route($sub_site.'mobile.register.company')}}",
  425. type: 'POST',
  426. dataType: 'json',
  427. data: $('#registerForm').serialize(),
  428. success: function (data) {
  429. qsToast({type:2,context: "注册成功,正在为你跳转.."});
  430. setTimeout(function () {
  431. window.location.href = data.data.url;
  432. },1000)
  433. },
  434. error:function(errorData){
  435. $('#btnRegCompany').text('注册企业会员').removeClass('btn_disabled').prop('disabled', 0);
  436. var response=$.parseJSON(errorData.response);
  437. if (errorData.status==422) {//验证错误
  438. $.each(response.errors,function (key,val) {
  439. qsToast({type:2,context: val[0]});
  440. return false;
  441. });
  442. }
  443. else if(errorData.status==400) {//业务错误
  444. qsToast({type:2,context: response.message});
  445. }
  446. }
  447. });
  448. }
  449. $('input[name=company_mobile]').keyup(function () {
  450. var currentValue = $(this).val();
  451. if (currentValue.length >= 11) {
  452. if(regularMobile.test(currentValue) && !remoteValid('mobile',currentValue)) {
  453. $('.had-remind-box .mal').text('手机号 ' + currentValue + ' 已注册,');
  454. $('.had-remind-box').show();
  455. } else {
  456. $('.had-remind-box').hide();
  457. }
  458. } else {
  459. $('.had-remind-box').hide();
  460. }
  461. })
  462. /**
  463. * 验证用户名等是否重复
  464. * @param validType 验证类型
  465. * @param validValue 值
  466. * @returns {boolean|*}
  467. */
  468. function remoteValid(validType, validValue){
  469. var result = false;
  470. $.ajax({
  471. url: "{{route('register.check', ['utype'=>1])}}",
  472. cache: false,
  473. async: false,
  474. type: 'post',
  475. dataType: 'json',
  476. data: { type: validType, param: validValue },
  477. success: function(json) {
  478. result = true;
  479. }
  480. });
  481. return result;
  482. }
  483. /**
  484. * 验证固话->区号
  485. * @param value 区号
  486. * @returns {boolean}
  487. */
  488. function inputRegValiZone(value){
  489. var achoice = true;
  490. if (value!= "" && !regularTelFirst.test(value)) {
  491. achoice = false;
  492. }
  493. return achoice;
  494. }
  495. /**
  496. * 验证固话->电话
  497. * @param value 电话
  498. * @returns {boolean}
  499. */
  500. function inputRegValiTelNext(value){
  501. var achoice = true;
  502. if (value!= "" && !regularTelNext.test(value)) {
  503. achoice = false;
  504. }
  505. return achoice;
  506. }
  507. /**
  508. * 验证固话->分机号
  509. * @param value 分机号
  510. * @returns {boolean}
  511. */
  512. function validNumber(value) {
  513. var achoice = true;
  514. if (value!= "" && !regularTelLast.test(value)) {
  515. achoice = false;
  516. }
  517. return achoice;
  518. }
  519. /**
  520. * 验证手机号
  521. * @param value 手机号
  522. * @returns {boolean}
  523. */
  524. function inputRegValiMobile(value){
  525. var achoice = true;
  526. if (value!= "" && !regularMobile.test(value)) {
  527. achoice = false;
  528. }
  529. return achoice;
  530. }
  531. /**
  532. * 验证用户名
  533. * @param value 用户名
  534. * @returns {boolean}
  535. */
  536. function inputRegValiUsername(value){
  537. var regularUsername = /^(?=[\u4e00-\u9fa5a-zA-Z])(?!\d+)[\u4e00-\u9fa5\w.]{6,20}$/;
  538. var achoice = true;
  539. if (!regularUsername.test(value)) {
  540. achoice = false;
  541. }
  542. return achoice;
  543. }
  544. /**
  545. * 验证邮箱
  546. * @param value 邮箱
  547. * @returns {boolean}
  548. */
  549. function inputRegValiEmail(value){
  550. var achoice = true;
  551. if (!regularEmail.test(value)) {
  552. achoice = false;
  553. }
  554. return achoice;
  555. }
  556. /**
  557. * 验证密码长度
  558. * @param value 密码
  559. * @returns {boolean}
  560. */
  561. function inputRegValiPassword(value){
  562. achoice = true;
  563. if(value.length>16 || value.length<6){
  564. achoice = false;
  565. }
  566. return achoice;
  567. }
  568. /**
  569. * 验证密码两次输入是否一致
  570. * @param password 第一次密码
  571. * @param passwordRepeat 第二次密码
  572. * @returns {boolean}
  573. */
  574. function inputRegValiPasswordRepeat(password,passwordRepeat){
  575. achoice = true;
  576. if(password!=passwordRepeat){
  577. achoice = false;
  578. }
  579. return achoice;
  580. }
  581. </script>
  582. @endsection