1.baseui.ts
import { LoadingController, ToastController } from '@ionic/angular';
import { NavController } from '@ionic/angular';
export abstract class BaseUI {
public loadingIsOpen: any = false;
constructor() {
}
/**
* loading加载页面
* @param {LoadingController} loadingCtrl
* @param {string} message
* @returns {Loading}
* @memberof BaseUI
*/
protected async showLoading(loadingCtrl: LoadingController,
message: string) {
const loader = await loadingCtrl.create({
message: message
});
await loader.present();
return loader;
}
/**
* Toast全局提示
* @param {ToastController} toastCtrl
* @param {string} message
* @returns {toast}
* @memberof BaseUI
*/
protected async showToast(toastCtrl: ToastController, message: string) {
const toast = await toastCtrl.create({
message: message,
duration: 2000, // 默认展示的时长
position: 'top'
});
await toast.present();
return toast;
}
/**
* 返回上一页
*/
protected async backLastPage(navCtrl: NavController) {
navCtrl.back();
}
//loading加载
async show(loadingCtrl: LoadingController) {
this.loadingIsOpen = true;
return await loadingCtrl.create({
duration: 7000,
message: "请稍后···"
}).then(a => {
a.present().then(() => {
if (!this.loadingIsOpen) {
a.dismiss()
}
});
});
}
//loading结束
async hide(loadingCtrl: LoadingController) {
if (this.loadingIsOpen == true) {
this.loadingIsOpen = false;
return await loadingCtrl.dismiss();
}
}
// 日期格式化方法
dateFormat(fmt, date) {
let ret;
let opt = {
"Y+": date.getFullYear().toString(), // 年
"m+": (date.getMonth() + 1).toString(), // 月
"d+": date.getDate().toString(), // 日
"H+": date.getHours().toString(), // 时
"M+": date.getMinutes().toString(), // 分
"S+": date.getSeconds().toString() // 秒
// 有其他格式化字符需求可以继续添加,必须转化成字符串
};
for (let k in opt) {
ret = new RegExp("(" + k + ")").exec(fmt);
if (ret) {
fmt = fmt.replace(ret[1], (ret[1].length == 1) ? (opt[k]) : (opt[k].padStart(ret[1].length, "0")))
};
};
return fmt;
}
}
2.页面使用
import { BaseUI } from '../../api/baseui';
export class LoginPage extends BaseUI{ }
constructor(public toast: ToastController,
public loadingCtrl: LoadingController,
) {
super();
}
login(){
super.showToast(this.toast, '密码格式为数字或字母~');
}
goSubmit(){
super.show(this.loadingCtrl);
super.hide(this.loadingCtrl);
}