12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- import {Injectable, Inject} from '@angular/core';
- import {ConfigService, RequsetData} from "./config.service";
- import {Router} from "@angular/router";
- import {AccountApi} from "../api/account";
- import {UsemodularService} from "./usemodular.service";
- import {AlertModal} from "../comm/modal/alert";
- import {UserService} from "./user.service";
- import {splitRouterUrl} from "../utils/urlUtils";
- @Injectable({providedIn: 'root'})
- export class AccountService {
- constructor(private router: Router, private userService: UserService,
- private configService: ConfigService, private accountApi: AccountApi, private usemodularService: UsemodularService, private alertModal: AlertModal) {
- }
- /**
- * 根据微信用户id登录系统,如果未绑定则跳转到登陆页面
- * @param wxUserId 企业微信用户id
- * @param currentUrl 登录成功后跳转路由,可未空,默认首页路由
- */
- loginByWxUserId(wxUserId: string, currentUrl: string) {
- if (!wxUserId) {
- this.alertModal.alert('微信用户ID为空,不能使用微信用户登录,请输入账号密码登录');
- this.router.navigate(['/login']);
- }
- this.alertModal.loading('验证微信用户中,请稍等...').then(loading => {
- this.accountApi.loginByWxUserId(wxUserId).subscribe(res => {
- if (res.success) {
- try {
- this.loginSuccessBack(res);
- } catch (ex) {
- } finally {
- loading.dismiss();
- }
- const routerUrl = splitRouterUrl(currentUrl);
- this.router.navigate([routerUrl.routerUrl || '/tapp/tabs/tabMain'], {
- queryParams: {random: Math.random(), ...routerUrl.params}
- });
- } else {
- loading.dismiss();
- this.alertModal.alert('微信用户未绑定或验证失败,请输入账号密码登录');
- this.router.navigate(['/login']);
- }
- }, () => {
- loading.dismiss();
- this.alertModal.alert('微信用户未绑定或验证失败,请输入账号密码登录');
- this.router.navigate(['/login']);
- });
- });
- };
- loginSuccessBack(data: any) {
- data.item.curRoleId = data.extdata.userRoles[0].roleid;
- this.userService.SetUser(data.item);
- this.userService.SetExt(data.extdata);
- this.userService.setToken(data.item.logintoken);
- this.userService.ReadUserDataScope(data.item.curRoleId, this.configService);
- this.usemodularService.getButtonList();
- }
- }
|