12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- import { Component } from '@angular/core';
- import { CommonModule } from '@angular/common';
- import { FormsModule } from '@angular/forms';
- import { Router, RouterModule } from '@angular/router';
- @Component({
- selector: 'app-login',
- standalone: true,
- imports: [CommonModule, FormsModule, RouterModule],
- templateUrl: './login.html',
- styleUrls: ['./login.scss']
- })
- export class LoginPage {
- username = '';
- password = '';
- loading = false;
- error = '';
- currentYear = new Date().getFullYear();
- constructor(private router: Router) {}
- async signIn() {
- this.error = '';
- this.loading = true;
- try {
- // 这里保留为演示登录流程的占位,不破坏现有业务逻辑
- await new Promise(r => setTimeout(r, 400));
- // 登录成功后可跳转到常用角色,实际项目中可根据权限返回跳转
- await this.router.navigateByUrl('/customer-service/dashboard');
- } catch (e) {
- this.error = '登录失败,请重试';
- } finally {
- this.loading = false;
- }
- }
- goToRole(role: 'customer-service' | 'designer' | 'team-leader' | 'finance' | 'hr' | 'admin') {
- const map: Record<string, string> = {
- 'customer-service': '/customer-service/dashboard',
- 'designer': '/designer/dashboard',
- 'team-leader': '/team-leader/dashboard',
- 'finance': '/finance/dashboard',
- 'hr': '/hr/dashboard',
- 'admin': '/admin/dashboard'
- };
- // iOS 风格过渡动画(与项目内其他页面行为一致)
- document.body.classList.add('ios-page-transition');
- setTimeout(() => {
- this.router.navigateByUrl(map[role]).finally(() => {
- setTimeout(() => document.body.classList.remove('ios-page-transition'), 300);
- });
- }, 100);
- }
- }
|