member_safe.blade.php 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363
  1. @extends('module.layouts.person')
  2. @push('meta')
  3. @endpush
  4. @push('css')
  5. <link href="{{ theme_asset('app/css/person/common.css') }}" rel="stylesheet">
  6. <link href="{{ theme_asset('app/css/person/personal_user.css') }}" rel="stylesheet">
  7. <link href="{{ theme_asset('app/css/person/personal_ajax_dialog.css') }}" rel="stylesheet">
  8. <style>
  9. .third_bind a{
  10. cursor: pointer;
  11. }
  12. </style>
  13. @endpush
  14. @section('content')
  15. <div class="user_main">
  16. @include('module.section.person_left')
  17. <div class="mainbox">
  18. <!--职位切换卡 -->
  19. <div class="tab">
  20. <a class="li J_hoverbut" href="{{ url('person/memberInfo') }}">基本资料</a>
  21. <a class="li J_hoverbut" href="{{ url('person/memberInfo/head') }}">我的头像</a>
  22. <a class="li select">账号安全</a>
  23. <a class="li J_hoverbut" href="{{ url('person/memberInfo/memberLog') }}">登录日志</a>
  24. <div class="clear"></div>
  25. </div>
  26. <!--切换卡结束 -->
  27. <div class="resume_tip">
  28. <div class="tiptit">小提示</div>
  29. <div class="tiptxt link_blue">
  30. 绑定手机号码、完成邮箱验证,可以增加求职反馈的及时性和准确性,从而提高您的求职成功率!
  31. </div>
  32. </div>
  33. <div class="safety J_hoverbut link_blue">
  34. <div class="td1">用户名</div>
  35. <div id="J_unameWrap" class="td2">{{ auth('web-member')->user()->username }}</div>
  36. <div class="td3">&nbsp;</div>
  37. <div class="td4"><a id="J_edit_uname" href="javascript:;">修改</a></div>
  38. <div class="clear"></div>
  39. </div>
  40. <div class="safety J_hoverbut link_blue">
  41. <div class="td1 t1">密码</div>
  42. <div class="td2">上次登录时间:<span>{{ date('Y-m-d H:i:s',auth('web-member')->user()->last_login_time) }}</span></div>
  43. <div class="td3"><a href="{{ url('person/memberInfo/memberLog') }}">[查看登录日志]</a></div>
  44. <div class="td4"><a id="J_edit_password" href="javascript:;">修改</a></div>
  45. <div class="clear"></div>
  46. </div>
  47. <div class="safety J_hoverbut link_blue">
  48. <div class="td1 t2">手机</div>
  49. <div id="J_mobileWrap" class="td2">{{ $member->phone or '' }}<span>(认证后可使用该手机登录账号、找回密码)</span></div>
  50. <div id="J_mobileStatus" class="td3">
  51. @if(auth('web-member')->user()->mobile_audit==1)
  52. <div class="yes">已认证</div>
  53. @else
  54. <div class="no">未认证</div>
  55. @endif
  56. </div>
  57. <div class="td4">
  58. <a id="J_auth_mobile" href="javascript:;" data-auth="{{ auth('web-member')->user()->mobile_audit }}">
  59. 修改
  60. </a>
  61. </div>
  62. <div class="clear"></div>
  63. </div>
  64. <div class="safety J_hoverbut link_blue">
  65. <div class="td1 t3">邮箱</div>
  66. <div id="J_emailWrap" class="td2">{{ $member->email or '' }}<span>(认证后可使用该邮箱登录账号、找回密码)</span></div>
  67. <div id="J_emailStatus" class="td3">
  68. @if(auth('web-member')->user()->email_audit==1)
  69. <div class="yes">已认证</div>
  70. @else
  71. <div class="no">未认证</div>
  72. @endif
  73. </div>
  74. <div class="td4">
  75. <a id="J_auth_email" href="javascript:;" data-auth="{{ auth('web-member')->user()->email_audit }}">
  76. 修改
  77. </a>
  78. </div>
  79. <div class="clear"></div>
  80. </div>
  81. <div class="safety_btit">账号绑定<span>(授权绑定后,可使用第三方账号快速登录)</span></div>
  82. <div class="safety_binding">
  83. @if(config('aix.system.oauth.qq.is_open_qq') == 1)
  84. <div class="td1">
  85. <div class="qq @if($qq) ok @endif">腾讯QQ</div>
  86. <div class="txt link_blue qq_bind third_bind">
  87. @if($qq)
  88. <a id="J_unbind_qq">解绑</a>
  89. @else
  90. <a id="J_bind_qq">立即绑定</a>
  91. @endif
  92. </div>
  93. </div>
  94. @endif
  95. @if(config('aix.system.oauth.wechat_open.is_open') == 1)
  96. <div class="td1">
  97. <div class="weixin @if($weixin) ok @endif">微信</div>
  98. <div class="txt link_blue weixin_bind third_bind">
  99. @if($weixin)
  100. <a id="J_unbind_weixin">解绑</a>
  101. @else
  102. <a id="J_bind_weixin">立即绑定</a>
  103. @endif
  104. </div>
  105. </div>
  106. @endif
  107. <div class="clear"></div>
  108. </div>
  109. </div>
  110. <div class="clear"></div>
  111. </div>
  112. @endsection
  113. @section('script')
  114. <script type="text/javascript" src="{{ theme_asset('app/js/jquery.disappear.tooltip.js') }}"></script>
  115. @include('module.widgets.thirdlogin_bind', ['redirect_url'=>route('person.memberSafe'), 'redirect_name'=>"账号安全"])
  116. <script>
  117. var regularMobile = /^13[0-9]{9}$|14[0-9]{9}$|15[0-9]{9}$|18[0-9]{9}$|17[0-9]{9}$|19[0-9]{9}$/; // 验证手机号正则
  118. var regularUsername = /^(?=[a-zA-Z])(?!\d+)[A-Za-z0-9_.]{6,20}$/;
  119. $('#J_edit_password').click(function(){
  120. var qsDialog = $(this).dialog({
  121. title: '修改密码',
  122. loading: true,
  123. showFooter: false,
  124. yes: function() {
  125. var oldpassword = $('#J_passwordWrap').find('input[name="oldpassword"]').val();
  126. var password = $('#J_passwordWrap').find('input[name="password"]').val();
  127. var password1 = $('#J_passwordWrap').find('input[name="password1"]').val();
  128. if(oldpassword=='' || password=='' || password1==''){
  129. disapperTooltip("remind", '密码信息不能为空');
  130. }else{
  131. $.ajax({
  132. headers: {'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')},
  133. type: "POST",
  134. url: "{{ url('person/memberInfo/passwordInfo') }}",
  135. data: {
  136. oldpassword:oldpassword,
  137. password:password,
  138. password1:password1,
  139. },
  140. dataType: "json",
  141. success: function(r){
  142. if(r.status == 1){
  143. disapperTooltip('success',r.info);
  144. qsDialog.hide();
  145. }else{
  146. disapperTooltip("remind", r.info);
  147. }
  148. }
  149. });
  150. }
  151. }
  152. });
  153. $.get("{{ url('person/memberInfo/passwordView') }}",function(result){
  154. qsDialog.setCloseDialog(false);
  155. qsDialog.setContent(result);
  156. qsDialog.showFooter(true);
  157. });
  158. });
  159. $('#J_auth_mobile').click(function(){
  160. var f = $(this);
  161. var auth = f.data('auth');
  162. var title = '认证手机';
  163. if(auth == 1){
  164. title = '修改已认证手机';
  165. }
  166. var qsDialog = $(this).dialog({
  167. title: title,
  168. loading: true,
  169. showFooter: false,
  170. yes: function() {
  171. var verifycode = $.trim($('#J_mobileWrap input[name="verifycode"]').val());
  172. var mobile = $.trim($('#J_mobileWrap input[name="mobile"]').val());
  173. if(mobile==''||mobile==null){
  174. disapperTooltip("remind", "手机号码不能为空!");
  175. return false;
  176. }
  177. if (mobile != "" && !regularMobile.test(mobile)) {
  178. disapperTooltip("remind", "手机号码格式不正确");
  179. return false;
  180. }
  181. if(verifycode==''||verifycode==null){
  182. disapperTooltip("remind", "验证码不能为空!");
  183. return false;
  184. }
  185. $.ajax({
  186. headers: {'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')},
  187. type: "POST",
  188. url: "{{ url('person/memberInfo/mobileAuditCode') }}",
  189. data: {
  190. mobile:mobile,
  191. verifycode:verifycode,
  192. id:"{{ auth('web-member')->user()->id }}",
  193. },
  194. dataType: "json",
  195. success: function(result){
  196. f.text('修改');
  197. $('#J_mobileStatus').html('<div class="yes">已认证</div>');
  198. $('#J_mobileWrap').html(mobile+'<span>(认证后可使用该手机登录账号、找回密码)</span>');
  199. if(result.data){
  200. disapperTooltip("success", '验证手机号增加'+result.data+'积分');
  201. }else{
  202. disapperTooltip('success','手机认证成功!');
  203. }
  204. qsDialog.hide();
  205. },
  206. error: function (errorData) {
  207. if (errorData.status==422) {//验证错误
  208. $.each(errorData.responseJSON.errors,function (key,val) {
  209. disapperTooltip("remind", val[0]);
  210. return false;
  211. });
  212. }
  213. else if(errorData.status==400) {//业务错误
  214. disapperTooltip("remind", errorData.responseJSON.message);
  215. }
  216. }
  217. });
  218. }
  219. });
  220. $.get("{{ url('person/memberInfo/userMobile') }}",function(result){
  221. qsDialog.setCloseDialog(false);
  222. qsDialog.setContent(result);
  223. qsDialog.showFooter(true);
  224. });
  225. });
  226. $('#J_auth_email').click(function(){
  227. var f = $(this);
  228. var auth = $(this).data('auth');
  229. var title = '认证邮箱';
  230. if(auth == 1){
  231. title = '修改已认证邮箱';
  232. }
  233. var qsDialog = $(this).dialog({
  234. title: title,
  235. loading: true,
  236. footer: false
  237. });
  238. $.get("{{ url('person/memberInfo/userEmail') }}",function(result){
  239. qsDialog.setCloseDialog(false);
  240. qsDialog.setContent(result);
  241. qsDialog.showFooter(true);
  242. });
  243. });
  244. $('#J_bind_weixin').click(function(){
  245. location.href=wechat_bind_url;
  246. });
  247. $('#J_bind_qq').click(function(){
  248. location.href=qq_bind_url;
  249. });
  250. $("#J_unbind_qq").click(function () {
  251. $.ajax({
  252. headers: {'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')},
  253. url: "{{ route('person.unbind') }}",
  254. type: 'POST',
  255. dataType: 'json',
  256. data: {
  257. type:'qq',
  258. },
  259. success: function (result) {
  260. $(".qq_bind").html('<a id="J_bind_qq">立即绑定</a>');
  261. $(".qq").removeClass('ok');
  262. disapperTooltip('success',result.data);
  263. },
  264. error: function (errorData) {
  265. if(errorData.status==400) {//业务错误
  266. disapperTooltip("remind", errorData.responseJSON.message);
  267. }
  268. },
  269. })
  270. })
  271. $("#J_unbind_weixin").click(function () {
  272. $.ajax({
  273. headers: {'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')},
  274. url: "{{ route('person.unbind') }}",
  275. type: 'POST',
  276. dataType: 'json',
  277. data: {
  278. type:'weixin',
  279. },
  280. success: function (result) {
  281. $(".weixin_bind").html('<a id="J_bind_weixin">立即绑定</a>');
  282. $(".weixin").removeClass('ok');
  283. disapperTooltip('success',result.data);
  284. },
  285. error: function (errorData) {
  286. if(errorData.status==400) {//业务错误
  287. disapperTooltip("remind", errorData.responseJSON.message);
  288. }
  289. },
  290. })
  291. })
  292. $('#J_edit_uname').click(function(){
  293. var qsDialog = $(this).dialog({
  294. title: '修改用户名',
  295. loading: true,
  296. showFooter: false,
  297. yes: function() {
  298. var username = $.trim($('#J_usernameInput').val());
  299. if (!username.length) {
  300. disapperTooltip("remind", '请填写新用户名');
  301. $('#J_usernameInput').focus();
  302. return false;
  303. }
  304. if (username.length && !regularUsername.test(username)) {
  305. disapperTooltip("remind", "字母开头,包含6位以上数字、字母及大小写");
  306. $('#J_usernameInput').focus();
  307. return false;
  308. }
  309. $.ajax({
  310. headers: {'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')},
  311. url: "{{ route('person.updateUsername') }}",
  312. type: 'POST',
  313. dataType: 'json',
  314. data: {
  315. username:username,
  316. },
  317. success: function (result) {
  318. $("#username_id").text(username);
  319. $('#J_unameWrap').text(username);
  320. disapperTooltip('success',result.data);
  321. qsDialog.hide();
  322. },
  323. error: function (errorData) {
  324. if (errorData.status==422) {//验证错误
  325. $.each(errorData.responseJSON.errors,function (key,val) {
  326. disapperTooltip("remind", val[0]);
  327. return false;
  328. });
  329. }
  330. else if(errorData.status==400) {//业务错误
  331. disapperTooltip("remind", errorData.responseJSON.message);
  332. }
  333. },
  334. })
  335. }
  336. });
  337. $.get("{{ route('person.saveUsername') }}",function(result){
  338. qsDialog.setCloseDialog(false);
  339. qsDialog.setContent(result);
  340. qsDialog.showFooter(true);
  341. });
  342. });
  343. </script>
  344. @endsection