Commit 54548e99 authored by wangqinghua's avatar wangqinghua

tabs显示与隐藏

parent b1ead42c
...@@ -100,4 +100,4 @@ ...@@ -100,4 +100,4 @@
"android" "android"
] ]
} }
} }
\ No newline at end of file
import { NgModule } from '@angular/core'; import {NgModule} from '@angular/core';
import { PreloadAllModules, RouterModule, Routes } from '@angular/router'; import {PreloadAllModules, RouterModule, Routes} from '@angular/router';
import {TabsPage} from "./tabs/tabs.page"; import {TabsPage} from "./tabs/tabs.page";
import {LoginPage} from "./tabs/login/login.page"; import {LoginPage} from "./tabs/login/login.page";
import {ActivityListPage} from "./pages/home-pages/activity/activityList/activityList";
import {ActivityDetailPage} from "./pages/home-pages/activity/activityDetail/activityDetail";
import {ActivityApplyPage} from "./pages/home-pages/activity/activityApply/activityApply";
import {ActivityConfirmPage} from "./pages/home-pages/activity/activityConfirm/activityConfirm";
import {BatchDetailPage} from "./pages/home-pages/activity/batch-detail/batch-detail";
import {OrderDetailPage} from "./pages/home-pages/activity/order-detail/order-detail";
import {OrderEditPage} from "./pages/home-pages/activity/order-edit/order-edit";
const routes: Routes = [ const routes: Routes = [
{ {
path: 'tabs', path: 'tabs',
component: TabsPage, component: TabsPage,
children: [ children: [
{path: 'home', children: [{path: '', loadChildren: './tabs/home/home.module#HomePageModule'}]}, {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: 'discover',
{path: 'mine', children: [{path: '', loadChildren: './tabs/mine/mine.module#MinePageModule'}]}, children: [{path: '', loadChildren: './tabs/discover/discover.module#DiscoverPageModule'}]
{path: '', redirectTo: '/tabs/home', pathMatch: 'full'} },
] {
}, path: 'serve', children: [
{ {path: '', loadChildren: './tabs/serve/serve.module#ServePageModule'},
path: 'login', component:LoginPage, {
}, path: 'activity', children: [
{ {path: 'activityList', component: ActivityListPage},
path: '', {path: 'activityDetail', component: ActivityDetailPage},
redirectTo: '/tabs/home', {path: 'activityApply', component: ActivityApplyPage},
pathMatch: 'full' {path: 'activityConfirm', component: ActivityConfirmPage},
}, {path: 'batchDetail', component: BatchDetailPage},
{path: 'orderDetail', component: OrderDetailPage},
{path: 'orderEdit', component: OrderEditPage},
]
},
]
},
{path: 'mine', children: [{path: '', loadChildren: './tabs/mine/mine.module#MinePageModule'}]},
{path: '', redirectTo: '/tabs/home', pathMatch: 'full'}
]
},
{
path: 'login', component: LoginPage,
},
{
path: '',
redirectTo: '/tabs/home',
pathMatch: 'full'
},
]; ];
@NgModule({ @NgModule({
imports: [ imports: [
RouterModule.forRoot(routes, { preloadingStrategy: PreloadAllModules }) RouterModule.forRoot(routes, {preloadingStrategy: PreloadAllModules})
], ],
exports: [RouterModule] exports: [RouterModule]
}) })
export class AppRoutingModule {} export class AppRoutingModule {
}
...@@ -8,6 +8,7 @@ import {Storage} from "@ionic/storage"; ...@@ -8,6 +8,7 @@ import {Storage} from "@ionic/storage";
import {Router} from "@angular/router"; import {Router} from "@angular/router";
import {TabsService} from "./tabs/tabs.service"; import {TabsService} from "./tabs/tabs.service";
import {CommonService} from "../provide/common.service"; import {CommonService} from "../provide/common.service";
import {TabsCore} from "./tabs/tabs.core";
@Component({ @Component({
selector: 'app-root', selector: 'app-root',
...@@ -21,6 +22,7 @@ export class AppComponent { ...@@ -21,6 +22,7 @@ export class AppComponent {
private platform: Platform, private platform: Platform,
private splashScreen: SplashScreen, private splashScreen: SplashScreen,
private statusBar: StatusBar, private statusBar: StatusBar,
private tabsCore:TabsCore,
private appVersion: AppVersion, private appVersion: AppVersion,
private storage: Storage, public commonSer: CommonService, private storage: Storage, public commonSer: CommonService,
private router: Router, public tabSer: TabsService, private router: Router, public tabSer: TabsService,
......
...@@ -18,6 +18,7 @@ import {FileTransfer,FileTransferObject} from "@ionic-native/file-transfer/ngx"; ...@@ -18,6 +18,7 @@ import {FileTransfer,FileTransferObject} from "@ionic-native/file-transfer/ngx";
import {FileOpener} from "@ionic-native/file-opener/ngx"; import {FileOpener} from "@ionic-native/file-opener/ngx";
import {IonicStorageModule} from "@ionic/storage"; import {IonicStorageModule} from "@ionic/storage";
import {AppMainModule} from "./app.main.module"; import {AppMainModule} from "./app.main.module";
import {TabsCore} from "./tabs/tabs.core";
@NgModule({ @NgModule({
declarations: [AppComponent], declarations: [AppComponent],
...@@ -28,6 +29,7 @@ import {AppMainModule} from "./app.main.module"; ...@@ -28,6 +29,7 @@ import {AppMainModule} from "./app.main.module";
AppRoutingModule, AppRoutingModule,
IonicModule.forRoot({ IonicModule.forRoot({
mode:'ios', mode:'ios',
backButtonText:'',
}), }),
IonicStorageModule.forRoot() IonicStorageModule.forRoot()
], ],
...@@ -43,6 +45,7 @@ import {AppMainModule} from "./app.main.module"; ...@@ -43,6 +45,7 @@ import {AppMainModule} from "./app.main.module";
FileTransfer, FileTransfer,
FileOpener, FileOpener,
FileTransferObject, FileTransferObject,
TabsCore,
{provide: RouteReuseStrategy, useClass: IonicRouteStrategy} {provide: RouteReuseStrategy, useClass: IonicRouteStrategy}
], ],
bootstrap: [AppComponent] bootstrap: [AppComponent]
......
<ion-header> <ion-header>
<ion-navbar> <ion-toolbar>
<ion-title text-center>报名订单</ion-title> <ion-buttons slot="start">
</ion-navbar> <ion-back-button></ion-back-button>
</ion-buttons>
<ion-title>报名订单</ion-title>
</ion-toolbar>
</ion-header> </ion-header>
<ion-content class="content"> <ion-content class="content">
<ion-item class="content-title"> <ion-item class="content-title">
<span>活动名称</span> <span>活动名称</span>
......
<ion-header> <ion-header>
<ion-navbar> <ion-toolbar>
<ion-title text-center>订单确认</ion-title> <ion-buttons slot="start">
</ion-navbar> <ion-back-button></ion-back-button>
</ion-buttons>
<ion-title>订单确认</ion-title>
</ion-toolbar>
</ion-header> </ion-header>
<ion-content class="content"> <ion-content class="content">
<div class="content-container"> <div class="content-container">
......
<ion-header> <ion-header>
<ion-navbar> <ion-toolbar>
<ion-title text-center>活动报名</ion-title> <ion-buttons slot="start">
</ion-navbar> <ion-back-button></ion-back-button>
</ion-buttons>
<ion-title>活动报名</ion-title>
</ion-toolbar>
</ion-header> </ion-header>
<ion-content class="content"> <ion-content class="content">
......
import {Component} from '@angular/core'; import {Component, OnInit} from '@angular/core';
import {Http, Response} from '@angular/http'; import {Http, Response} from '@angular/http';
import {AppService,AppGlobal} from "../../../../../http/http.service";
import {environment} from "../../../../../environments/environment";
import {BatchDetailPage} from "../batch-detail/batch-detail";
import {TabsService} from "../../../../tabs/tabs.service";
import {CommonService} from "../../../../../provide/common.service";
import {FileTransfer, FileTransferObject} from "@ionic-native/file-transfer/ngx";
import {File} from "@ionic-native/file";
import {ActivatedRoute, Router} from "@angular/router"; import {ActivatedRoute, Router} from "@angular/router";
import {AppService, AppGlobal} from "../../../../../http/http.service";
import {CommonService} from "../../../../../provide/common.service";
@Component({ @Component({
selector: 'page-activityDetail', selector: 'page-activityDetail',
templateUrl: 'activityDetail.html', templateUrl: 'activityDetail.html',
}) })
export class ActivityDetailPage { export class ActivityDetailPage implements OnInit{
activityId; //活动ID activityId; //活动ID
batches: object[];
activity = { activity = {
batchList: [], batchList: [],
activityIntro: '' activityIntro: ''
...@@ -32,17 +25,13 @@ export class ActivityDetailPage { ...@@ -32,17 +25,13 @@ export class ActivityDetailPage {
constructor(public router: Router, constructor(public router: Router,
public routerInfo:ActivatedRoute, public routerInfo: ActivatedRoute,
private fileTransfer: FileTransfer,
private fileTransferObject: FileTransferObject,
private file: File,
public commonSer: CommonService, public commonSer: CommonService,
public http: Http, public http: Http,
public appService: AppService,) { public appService: AppService) {
} }
ionViewDidEnter() { ngOnInit() {
// const index = this.navCtrl.length() - 3; // const index = this.navCtrl.length() - 3;
// if (index > 1) { // if (index > 1) {
// this.navCtrl.remove(3, index); // this.navCtrl.remove(3, index);
...@@ -118,7 +107,7 @@ export class ActivityDetailPage { ...@@ -118,7 +107,7 @@ export class ActivityDetailPage {
this.commonSer.toast('您已报名,请先取消报名再点击'); this.commonSer.toast('您已报名,请先取消报名再点击');
return false; return false;
} }
this.commonSer.alert('确定不参加该活动',()=>{ this.commonSer.alert('确定不参加该活动', () => {
this.appService.ObserverHttpPostAdd("/wisdomgroup/modules/activityNon/admin/", this.activityId) this.appService.ObserverHttpPostAdd("/wisdomgroup/modules/activityNon/admin/", this.activityId)
.subscribe((res: Response) => { .subscribe((res: Response) => {
// this.navCtrl.pop(); // this.navCtrl.pop();
...@@ -130,7 +119,7 @@ export class ActivityDetailPage { ...@@ -130,7 +119,7 @@ export class ActivityDetailPage {
//参加 //参加
sayYes() { sayYes() {
this.commonSer.alert('确定参加该活动?',()=>{ this.commonSer.alert('确定参加该活动?', () => {
this.appService.ObserverHttpPostAdd("/wisdomgroup/modules/activityNon/delete/", this.activityId) this.appService.ObserverHttpPostAdd("/wisdomgroup/modules/activityNon/delete/", this.activityId)
.subscribe((res: Response) => { .subscribe((res: Response) => {
// this.navCtrl.pop(); // this.navCtrl.pop();
...@@ -141,8 +130,8 @@ export class ActivityDetailPage { ...@@ -141,8 +130,8 @@ export class ActivityDetailPage {
} }
//预览附件 //预览附件
downLoad(file){ downLoad(file) {
this.commonSer.downloadFile(file.id,file.showName) this.commonSer.downloadFile(file.id, file.showName)
} }
} }
<ion-header> <ion-header>
<ion-navbar> <ion-toolbar>
<ion-title text-center>最新活动</ion-title> <ion-buttons slot="start">
</ion-navbar> <ion-back-button></ion-back-button>
</ion-buttons>
<ion-title>最新活动</ion-title>
</ion-toolbar>
</ion-header> </ion-header>
<ion-content scrollbar-y="true" direction="y"> <ion-content scrollbar-y="true" direction="y">
......
<ion-header> <ion-header>
<ion-toolbar>
<ion-navbar> <ion-buttons slot="start">
<ion-back-button></ion-back-button>
</ion-buttons>
<ion-title>{{batch.batchName}}</ion-title> <ion-title>{{batch.batchName}}</ion-title>
</ion-navbar> </ion-toolbar>
</ion-header> </ion-header>
......
<ion-header> <ion-header>
<ion-navbar> <ion-toolbar>
<ion-buttons slot="start">
<ion-back-button></ion-back-button>
</ion-buttons>
<ion-title>订单详情</ion-title> <ion-title>订单详情</ion-title>
</ion-navbar> </ion-toolbar>
</ion-header> </ion-header>
<ion-content class="content"> <ion-content class="content">
<div class="content"> <div class="content">
......
<ion-header> <ion-header>
<ion-navbar> <ion-toolbar>
<ion-title text-center>报名订单</ion-title> <ion-buttons slot="start">
</ion-navbar> <ion-back-button></ion-back-button>
</ion-buttons>
<ion-title>报名订单</ion-title>
</ion-toolbar>
</ion-header> </ion-header>
<ion-content class="content"> <ion-content class="content">
<ion-item class="content-title"> <ion-item class="content-title">
......
...@@ -41,7 +41,7 @@ ...@@ -41,7 +41,7 @@
<div class="item2" style="padding: 0px;"> <div class="item2" style="padding: 0px;">
<p class="myApp">我的应用</p> <p class="myApp">我的应用</p>
<div class="item2-2"> <div class="item2-2">
<div class="card" (click)="goTo('ActivityListPage')"> <div class="card" routerLink="./activity/activityList">
<img src="./assets/serve/icon-bm.png" alt=""> <img src="./assets/serve/icon-bm.png" alt="">
<label class="label2-2">活动报名</label> <label class="label2-2">活动报名</label>
<img class="new-logo" *ngIf="hasNew.activity==1" src="./assets/imgs/new.png"> <img class="new-logo" *ngIf="hasNew.activity==1" src="./assets/imgs/new.png">
......
...@@ -180,7 +180,7 @@ export class ServePage implements OnInit { ...@@ -180,7 +180,7 @@ export class ServePage implements OnInit {
//前往 //前往
goTo(page) { goTo(page) {
// this.navCtrl.push(page);
} }
......
import {Injectable} from "@angular/core";
import {NavigationEnd, Router} from "@angular/router";
import {Platform} from "@ionic/angular";
import {filter} from "rxjs/operators";
@Injectable({
providedIn:'root'
})
export class TabsCore {
private hideTabBarPages: String[] = [
'activityList','activityDetail','activityApply','activityConfirm',
'batchDetail','orderDetail','orderEdit'
]
constructor(private router:Router,private platform:Platform){
this.platform.ready().then(()=>{
this.navEvent();
})
}
private hideTabs(){
const tabBar = document.getElementById('myTabBar');
if(tabBar.style.display !== 'none') tabBar.style.display = 'none';
}
private showTabs(){
const tabBar = document.getElementById('myTabBar');
if(tabBar.style.display !== 'flex') tabBar.style.display = 'flex';
}
navEvent(){
this.router.events.pipe(filter(e=> e instanceof NavigationEnd))
.subscribe((e:any)=>{
console.log(e);
this.showHideTabs(e)
})
}
private showHideTabs(e: any) {
const urlArray = e.url.split('/');
const pageUrl = urlArray[urlArray.length - 1];
const page = pageUrl.split('?')[0];
const shouldHide = this.hideTabBarPages.indexOf(page) > -1;
try {
setTimeout(() => shouldHide ? this.hideTabs() : this.showTabs(), 300);
} catch (err) {
}
}
}
\ No newline at end of file
...@@ -12,6 +12,6 @@ import { TabsPage } from './tabs.page'; ...@@ -12,6 +12,6 @@ import { TabsPage } from './tabs.page';
CommonModule, CommonModule,
FormsModule, FormsModule,
], ],
declarations: [TabsPage] declarations: [TabsPage],
}) })
export class TabsPageModule {} export class TabsPageModule {}
<ion-tabs> <ion-tabs>
<ion-tab-bar slot="bottom"> <ion-tab-bar #myTabBar id="myTabBar" slot="bottom">
<ion-tab-button tab="home"> <ion-tab-button tab="home">
<ion-icon class="home"></ion-icon> <ion-icon class="home"></ion-icon>
<ion-label>首页</ion-label> <ion-label>首页</ion-label>
......
...@@ -5,7 +5,6 @@ import {FileOpener} from "@ionic-native/file-opener/ngx"; ...@@ -5,7 +5,6 @@ import {FileOpener} from "@ionic-native/file-opener/ngx";
import {environment} from "../environments/environment"; import {environment} from "../environments/environment";
@Injectable() @Injectable()
export class CommonService{ export class CommonService{
constructor(public toastCtrl:ToastController,public alertCtrl:AlertController, constructor(public toastCtrl:ToastController,public alertCtrl:AlertController,
private file: File, private fileOpener: FileOpener){} private file: File, private fileOpener: FileOpener){}
......
...@@ -4,8 +4,8 @@ ion-toolbar{ ...@@ -4,8 +4,8 @@ ion-toolbar{
--background:#e12724; --background:#e12724;
} }
} }
ion-title{ ion-title,ion-back-button{
--color:#fff; --color:#fff !important;
} }
html{ html{
font-size: 12px; font-size: 12px;
...@@ -19,6 +19,10 @@ th, td /* table elements 表格元素 */ { ...@@ -19,6 +19,10 @@ th, td /* table elements 表格元素 */ {
margin: 0; margin: 0;
padding: 0; padding: 0;
} }
:focus {
outline: none;
}
.logo{ .logo{
height: 2.5rem; height: 2.5rem;
margin-left: 1rem; margin-left: 1rem;
......
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