Commit c2c78952 authored by wangqinghua's avatar wangqinghua

router

parent c76622bb
......@@ -3,4 +3,7 @@
<component name="JavaScriptSettings">
<option name="languageLevel" value="ES6" />
</component>
<component name="ProjectPlainTextFileTypeManager">
<file url="file://$PROJECT_DIR$/src/app/tabs/login/login.page.spec.ts" />
</component>
</project>
\ No newline at end of file
import { NgModule } from '@angular/core';
import { PreloadAllModules, RouterModule, Routes } from '@angular/router';
import {TabsPage} from "./tabs/tabs.page";
import {AppComponent} from "./app.component";
const routes: Routes = [
{ path: '', loadChildren: './tabs/tabs.module#TabsPageModule' },
{ path: 'home', loadChildren: './tabs/home/home.module#HomePageModule' },
{ path: 'discover', loadChildren: './tabs/discover/discover.module#DiscoverPageModule' },
{ path: 'serve', loadChildren: './tabs/serve/serve.module#ServePageModule' },
{ path: 'mine', loadChildren: './tabs/mine/mine.module#MinePageModule' },
{
path: 'tabs',
component: TabsPage,
children: [
{path: 'home', children: [{path: '', loadChildren: './tabs/home/home.module#HomePageModule'}]},
{path: 'discover', children: [{path: '', loadChildren: './tabs/discover/discover.module#DiscoverPageModule'}]},
{path: 'serve', children: [{path: '', loadChildren: './tabs/serve/serve.module#ServePageModule'}]},
{path: 'mine', children: [{path: '', loadChildren: './tabs/mine/mine.module#MinePageModule'}]},
{path: '', redirectTo: '/tabs/home', pathMatch: 'full'}
]
},
{
path: 'login', children: [{path: '', loadChildren: './tabs/login/login.module#LoginPageModule'}],
},
{
path: '',
redirectTo: '/tabs/home',
pathMatch: 'full'
},
{path:'*',component:AppComponent,}
];
@NgModule({
imports: [
RouterModule.forRoot(routes, { preloadingStrategy: PreloadAllModules })
......
......@@ -5,6 +5,7 @@ import { StatusBar } from '@ionic-native/status-bar/ngx';
import {environment} from "../environments/environment";
import {AppVersion} from "@ionic-native/app-version/ngx";
import {Storage} from "@ionic/storage";
import {Router} from "@angular/router";
@Component({
selector: 'app-root',
......@@ -17,6 +18,7 @@ export class AppComponent {
private statusBar: StatusBar,
private appVersion:AppVersion,
private storage:Storage,
private router:Router,
) {
this.initializeApp();
// console.log(App)
......@@ -33,7 +35,7 @@ export class AppComponent {
alert(version);
})
// this.loadLogin();
this.loadLogin();
});
}
......@@ -41,6 +43,7 @@ export class AppComponent {
loadLogin(){
this.storage.get("userLoginInfo").then((value)=>{
if (value != null && value != '') {
this.router.navigate(['tabs/home'])
// this.user = value;
// if(this.user.remember){
// this.appService.ObserverHttpPost("/wisdomgroup/app/loginpost", this.user)
......
import {RouterModule} from "@angular/router";
import {CUSTOM_ELEMENTS_SCHEMA, NgModule} from '@angular/core';
import { CommonModule } from '@angular/common';
import {FormsModule, ReactiveFormsModule} from '@angular/forms';
import {LoginService} from "./pages/login/login.service";
import {LoginPage} from "./pages/login/login";
import {IonicModule} from '@ionic/angular';
import {NgModule} from '@angular/core';
import {CommonModule} from '@angular/common';
import {FormsModule} from '@angular/forms';
import {HomePageModule} from "./tabs/home/home.module";
import {DiscoverPageModule} from "./tabs/discover/discover.module";
import {ServePageModule} from "./tabs/serve/serve.module";
import {MinePageModule} from "./tabs/mine/mine.module";
import {TabsPageModule} from "./tabs/tabs.module";
@NgModule({
imports: [
RouterModule,
TabsPageModule,
HomePageModule,
DiscoverPageModule,
ServePageModule,
MinePageModule,
IonicModule,
CommonModule,
FormsModule,
ReactiveFormsModule,
],
declarations: [
LoginPage,
],
providers:[
LoginService
],
exports:[
],
schemas: [ CUSTOM_ELEMENTS_SCHEMA ],
]
})
export class AppMainModule { }
export class AppMainModule {
}
......@@ -16,12 +16,19 @@ import {File} from "@ionic-native/file/ngx";
import {Badge} from "@ionic-native/badge/ngx";
import {FileTransfer,FileTransferObject} from "@ionic-native/file-transfer/ngx";
import {FileOpener} from "@ionic-native/file-opener/ngx";
import {Storage} from "@ionic/storage";
import {IonicStorageModule} from "@ionic/storage";
import {AppMainModule} from "./app.main.module";
@NgModule({
declarations: [AppComponent],
entryComponents: [],
imports: [BrowserModule, IonicModule.forRoot(), AppRoutingModule],
imports: [
AppMainModule,
BrowserModule,
AppRoutingModule,
IonicModule.forRoot(),
IonicStorageModule.forRoot()
],
providers: [
StatusBar,
SplashScreen,
......@@ -34,7 +41,6 @@ import {Storage} from "@ionic/storage";
FileTransfer,
FileOpener,
FileTransferObject,
Storage,
{provide: RouteReuseStrategy, useClass: IonicRouteStrategy}
],
bootstrap: [AppComponent]
......
import {Routes} from "@angular/router";
const route : Routes = [
];
\ No newline at end of file
<ion-header>
<ion-toolbar>
<div class="searchToolBar">
<ion-title text-center>
用户登录
</ion-title>
</div>
</ion-toolbar>
</ion-header>
<ion-content>
<div class="login-box">
<div class="login">
<img src="./assets/imgs/logo.png" class="login-logo">
<form #loginForm="ngForm" class="login-form">
<div class="login-input">
<img src="./assets/imgs/icon-phone.png" class="login-input-img">
<input [(ngModel)]="user.mobile" class="login-input-content" name="mobile" type="text" #mobile required placeholder="手机号"
(ionBlur)="loseFocus()" (ionFocus)="getFocus()" />
</div>
<div class="login-input">
<img src="./assets/imgs/icon-password.png" class="login-input-img">
<input [(ngModel)]="user.password" class="login-input-content" name="password" type="password" #password required placeholder="密 码"
(ionBlur)="loseFocus()" (ionFocus)="getFocus()" />
</div>
<div class="mui-input-row mui-checkbox mui-left" style="margin-bottom: 15px;">
<input [(ngModel)]="user.remember" name="checkbox" class="jizhu-password" value="1" type="checkbox" checked="true" style="margin-left:10px;width:17px;height:17px;vertical-align:middle">
<label style="padding-left:5px;font-family:'微软雅黑';" class="jizhu-password-label">记住密码</label>
</div>
<button type="button" (click)="forgetPassword()" class="login-btn" style="width: 48%;float: left;background-color: #b3bdcf;border-color: #b3bdcf;">忘记密码</button>
<button type="button" (click)="login()" class="login-btn" style="width: 48%;float: right;">&nbsp;&nbsp;</button>
</form>
<div class="introduce">
登陆手机号为组织部统一配发的手机号,初始密码为000000,使用过程中如有任何问题请联系人事处。
</div>
</div>
</div>
\ No newline at end of file
page-login {
.searchToolBar{
display: flex;
flex-direction: row;
align-items: center;
justify-content: left;
box-sizing: border-box;
}
.login-box{
background-color: #f0f1f2;
height: 100%
}
.login{
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
box-sizing: border-box;
}
.login-logo{
width: 100px;
height: 100px;
margin: 20px 0;
}
.login-form{
width: 100%;
padding: 0 30px;
}
.login-input{
display: flex;
flex-direction: row;
align-items: center;
justify-content: left;
box-sizing: border-box;
background-color: #feffff;
width: 100%;
border-radius: 5px;
margin-bottom: 20px;
padding: 7px 3px;
font-size: 16px;
}
.login-input-img{
width: 30px;
height: 30px;
}
.login-input-content{
// background-color: #feffff;
border: 0;
width: 100%;
}
.login-bt{
background-color: #488afa;
font-size: 20px;
}
// .introduce-box{
// background-color: #f4f5f6;
// width: 100%;
// position: absolute;
// bottom: 0;
// padding: 5px 0;
// }
// .introduce{
// margin: 0 0 0 40px;
// font-size: 16px;
// color: #7e7f80;
// }
.introduce{
margin: 20px 30px 0 30px;
font-size: 14px;
color: #7e7f80;
// text-indent:2em;
}
.login-btn{
display: block;
width: 100%;
margin-bottom: 10px;
padding: 11px 0;
color: #fff;
border: 1px solid #4a89f9;
background-color: #4a89f9;
font-size: 18px;
font-weight: 600;
position: relative;
text-align: center;
white-space: nowrap;
border-radius: 3px;
border-top-left-radius: 3px;
border-top-right-radius: 3px;
border-bottom-right-radius: 3px;
border-bottom-left-radius: 3px;
}
.jizhu-password{
color: #4a89f9;
font-family: Muiicons;
font-size: 28px;
font-weight: 400;
line-height: 1;
text-decoration: none;
border-radius: 0;
background: 0 0;
-webkit-font-smoothing: antialiased;
}
.back-btn{
width: 30px;
height: 30px;
}
}
import {HttpClient} from "@angular/common/http";
import {Injectable} from "@angular/core";
import {Observable} from "rxjs/Observable";
import {AppGlobal} from "../../service/http.service";
@Injectable()
export class LoginService{
constructor(private http:HttpClient){}
loginpost(data): Observable<any>{
return this.http.post(AppGlobal.domain+'/app/loginpost',data)
}
}
\ No newline at end of file
import { Component, ViewChild , Renderer,ElementRef} from '@angular/core';
import { NavController, NavParams, AlertController, LoadingController,} from "@ionic/angular";
import { NgForm } from '@angular/forms';
import {TabsPage} from "../../tabs/tabs.page";
import { Http, Response } from '@angular/http';
import {Storage} from "@ionic/storage";
import {CommonService} from "../../../provide/common.service";
import {LoginService} from "./login.service";
import {AppService} from "../../../http/http.service";
import {Router} from "@angular/router";
@Component({
selector: 'page-login',
templateUrl: 'login.html'
})
export class LoginPage {
@ViewChild('loginForm') currentForm: NgForm; //实时表单
loginForm: NgForm; //初始表单
submitted: boolean = false; //表单是否已经提交
tipFlag: boolean = false; // 输入时隐藏输入框以下信息
user = {
userid: '', //登录数据
mobile: '',
password: '',
remember:true
};
tabflag:any;
constructor(public navCtrl: NavController,
public navParams: NavParams,
public storage: Storage,
public AppService:AppService,
public alertCtrl: AlertController,
private loadingCtrl: LoadingController,
private router:Router,
public http: Http,private loginSer:LoginService,
public commonSer: CommonService,
public render: Renderer,
public elementRef:ElementRef) {
}
ionViewDidLoad(){
}
ionViewDidEnter() {
//默认显示
this.storage.get("userLoginInfo").then((value)=>{
if(value!=null && value != ''){
if( value.remember ){
this.user = value;
}
}
});
}
//输入框获取焦点:隐藏,失去焦点:显示
getFocus() {
this.tipFlag = true;
}
loseFocus() {
this.tipFlag = false;
}
async login() {
//验证手机号和密码是否输入
if(this.user.mobile == null || this.user.mobile == ''){
this.commonSer.toast('请输入手机号!');
return ;
}
if(this.user.password == null || this.user.password == ''){
this.commonSer.toast('请输入密码!');
return ;
}
let loading = await this.loadingCtrl.create({
message: '正在登录...',
backdropDismiss: true, //打开新的页面则关闭 正在登录
});
loading.present();
this.AppService.ObserverHttpPost("/wisdomgroup/app/loginpost", this.user)
.subscribe((res: Response) => {
loading.dismiss();
this.submitted = true;
let data = res.json();
if (data["code"] == '200') {
//将当前登录用户存进缓存,便于后期逻辑操作
this.storage.set('user', data.data);
this.user.userid = data.data.id;
this.storage.set('userLoginInfo',this.user);
// this.router.navigate(['/tabs/home'],{
// "user": this.user
// })
// return this.navCtrl.setRoot(TabsPage, { "user": this.user });
} else {
this.commonSer.alert('手机号或密码错误!');
// return this.navCtrl.setRoot(LoginPage);
}
}, error => {
if (loading) loading.dismiss();
}
);
}
//忘记密码
forgetPassword():void{
this.commonSer.alert('若忘记密码,请与人事处联系。');
}
}
<ion-header>
<ion-toolbar>
<ion-title>login</ion-title>
</ion-toolbar>
</ion-header>
<ion-content>
</ion-content>
import { Component, OnInit } from '@angular/core';
@Component({
selector: 'app-login',
templateUrl: './login.page.html',
styleUrls: ['./login.page.scss'],
})
export class LoginPage implements OnInit {
constructor() { }
ngOnInit() {
}
}
......@@ -3,7 +3,6 @@ import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { FormsModule } from '@angular/forms';
import { TabsPageRoutingModule } from './tabs.router.module';
import { TabsPage } from './tabs.page';
......@@ -12,7 +11,6 @@ import { TabsPage } from './tabs.page';
IonicModule,
CommonModule,
FormsModule,
TabsPageRoutingModule
],
declarations: [TabsPage]
})
......
import { NgModule } from '@angular/core';
import { RouterModule, Routes } from '@angular/router';
import { TabsPage } from './tabs.page';
const routes: Routes = [
{
path: 'tabs',
component: TabsPage,
children: [
{path: 'login', children: [{path: '', loadChildren: './login/login.module#HomePageModule'}]},
{path: 'home', children: [{path: '', loadChildren: './home/home.module#HomePageModule'}]},
{path: 'discover', children: [{path: '', loadChildren: './discover/discover.module#DiscoverPageModule'}]},
{path: 'serve', children: [{path: '', loadChildren: './serve/serve.module#ServePageModule'}]},
{path: 'mine', children: [{path: '', loadChildren: './mine/mine.module#MinePageModule'}]},
{path: '', redirectTo: '/tabs/home', pathMatch: 'full'}
]
},
{
path: '',
redirectTo: '/tabs/home',
pathMatch: 'full'
}
];
@NgModule({
imports: [
RouterModule.forChild(routes)
],
exports: [RouterModule]
})
export class TabsPageRoutingModule {}
......@@ -20,11 +20,11 @@ export class AppGlobal {
//图片地址
// static picture = AppGlobal.domain + "/wisdomgroup/manager/getIcon/"; //正式地址
// static picture = environment.domain + "/wisdomgroup/manager/getIcon/"; //正式地址
static picture = environment.domain + "/wisdomgroup/manager/getIcon/"; //测试
//通知公告图片参数
// static pictureNotice = AppGlobal.domain; //正式地址
// static pictureNotice = environment.domain; //正式地址
static pictureNotice = environment.domain; //测试
//接口地址
......@@ -71,29 +71,29 @@ export class AppService {
//get请求
ObserverHttpGet(url, params): Observable<any> {
return this.http.get(AppGlobal.domain + url + this.encode(params, "get")) //app
return this.http.get(environment.domain + url + this.encode(params, "get")) //app
}
//get请求
ObserverHttpGetData(url, params): Observable<any> {
return this.http.get(AppGlobal.domain +url, params) //本地
return this.http.get(environment.domain +url, params) //本地
}
//get请求
ObserverHttpGetAdd(url, params): Observable<any> {
return this.http.get(AppGlobal.domain + url + params) //app
return this.http.get(environment.domain + url + params) //app
}
//get请求带?的
ObserverHttpGetOption(url, params): Observable<any> {
return this.http.get(AppGlobal.domain + url, {params: params}); //app
return this.http.get(environment.domain + url, {params: params}); //app
}
//get请求带pararms ,body 的
ObserverHttpGetAddBody(url, params,body): Observable<any> {
return this.http.post(AppGlobal.domain + url + params,null, { //本地
return this.http.post(environment.domain + url + params,null, { //本地
params:body,
headers: new Headers({
// "Accept": "application/json",
......@@ -106,17 +106,17 @@ export class AppService {
//delete
ObserverHttpDetelete(url, params): Observable<any> {
return this.http.delete(AppGlobal.domain + url + this.encode(params, "get")) //app
return this.http.delete(environment.domain + url + this.encode(params, "get")) //app
}
//delete
ObserverHttpDeteleteOption(url, params): Observable<any> {
return this.http.delete(AppGlobal.domain + url + params) //app
return this.http.delete(environment.domain + url + params) //app
}
//delete
ObserverHttpDeteleteData(url, params, data): Observable<any> {
return this.http.delete(AppGlobal.domain + url + params, { //app
return this.http.delete(environment.domain + url + params, { //app
params: this.encode(data, 'post'),
headers: new Headers({
"Content-Type": "application/json"
......@@ -125,7 +125,7 @@ export class AppService {
}
ObserverHttpPostData(url, params) {
return this.http.post(AppGlobal.domain + url, params, { //app
return this.http.post(environment.domain + url, params, { //app
headers: new Headers({
"Content-Type": "application/json"
})
......@@ -133,7 +133,7 @@ export class AppService {
}
ObserverHttpPostAdd(url, params) {
return this.http.post(AppGlobal.domain + url + params, { //app
return this.http.post(environment.domain + url + params, { //app
headers: new Headers({
"Content-Type": "application/json"
})
......@@ -141,7 +141,7 @@ export class AppService {
}
ObserverHttpPostOption(url, data) {
return this.http.post(AppGlobal.domain + url, null, { //app
return this.http.post(environment.domain + url, null, { //app
params: data,
headers: new Headers({
'Content-Type': 'application/x-www-form-urlencoded,charset=UTF-8'
......@@ -152,7 +152,7 @@ export class AppService {
//post请求
ObserverHttpForm(url, params,body) {
return this.http.post(AppGlobal.domain+url + params,null,{
return this.http.post(environment.domain+url + params,null,{
params:body,
headers: new Headers({
// "Accept": "application/json",
......@@ -164,7 +164,7 @@ export class AppService {
}
ObserverHttpPostForm(url, params) {
return this.http.post(AppGlobal.domain + url, null, { //app
return this.http.post(environment.domain + url, null, { //app
params: params,
headers: new Headers({
'Content-Type': 'application/x-www-form-urlencoded,charset=UTF-8'
......@@ -174,7 +174,7 @@ export class AppService {
//post请求
ObserverHttpPost(url, params) {
return this.http.post(AppGlobal.domain + url, null, { //app
return this.http.post(environment.domain + url, null, { //app
params: this.encode(params, 'post'),
headers: new Headers({
'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8'
......@@ -184,7 +184,7 @@ export class AppService {
//post请求
ObserverHttpNoForm(url, params) {
return this.http.post(AppGlobal.domain + url, null, { //app
return this.http.post(environment.domain + url, null, { //app
params: params,
headers: new Headers({
'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8'
......@@ -195,7 +195,7 @@ export class AppService {
//post请求 params+body
ObserverHttpPostParamsBody(url, params, data) {
return this.http.post(AppGlobal.domain + url + params, data, { //app
return this.http.post(environment.domain + url + params, data, { //app
headers: new Headers({
"Content-Type": "application/json"
})
......@@ -204,7 +204,7 @@ export class AppService {
//put请求
ObserverHttpPut(url, params, data) {
return this.http.put(AppGlobal.domain + url + params, data, { //app
return this.http.put(environment.domain + url + params, data, { //app
headers: new Headers({
"Content-Type": "application/json"
})
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment