panxingxin 5 年之前
父节点
当前提交
46abac6c1a

+ 2 - 2
src/app/app.component.ts

@@ -15,8 +15,8 @@ import { Update } from '../providers/update'
   templateUrl: 'app.component.html'
 })
 export class AppComponent {
-  private loggedIn: boolean = false;
-  private version_number: any
+  public loggedIn: boolean = false;
+  public version_number: any
   constructor(
     private device: Device,
     private localNotifications: LocalNotifications,

+ 2 - 3
src/app/app.module.ts

@@ -26,14 +26,13 @@ import { BarcodeScanner } from '@ionic-native/barcode-scanner/ngx';
 import { NativeService } from "../providers/native.service"
 import { Device } from '@ionic-native/device/ngx';
 import { LocalNotifications } from '@ionic-native/local-notifications/ngx';
-import { PopoverPage } from './qc-popover/qc-popover';
 import { File } from '@ionic-native/file/ngx';
 import { FileOpener } from '@ionic-native/file-opener/ngx';
 import { FileTransfer, FileTransferObject } from '@ionic-native/file-transfer/ngx';
 
 @NgModule({
-  declarations: [AppComponent,PopoverPage],
-  entryComponents: [PopoverPage],
+  declarations: [AppComponent],
+  entryComponents: [],
   imports: [BrowserModule,IonicStorageModule.forRoot(), IonicModule.forRoot(), AppRoutingModule, HttpModule, HttpClientModule],
   providers: [
     StatusBar,

+ 1 - 1
src/app/contract-detail/contract-detail.page.ts

@@ -56,7 +56,7 @@ export class ContractDetailPage implements OnInit {
 
   takePicture(contract) {
     const options: CameraOptions = {
-      quality: 10,
+      quality: 50,
       destinationType: this.camera.DestinationType.DATA_URL,
       encodingType: this.camera.EncodingType.JPEG,
       mediaType: this.camera.MediaType.PICTURE

+ 8 - 37
src/app/drawTab/drawTab.page.ts

@@ -1,11 +1,7 @@
 import { Component, ViewChild } from '@angular/core';
-import { ToastController } from '@ionic/angular';
-import { HTTP } from '@ionic-native/http/ngx';
-import { from } from 'rxjs';
-import { finalize } from 'rxjs/operators';
-import { Storage } from '@ionic/storage'
 import { Keyboard } from '@ionic-native/keyboard/ngx';
 import { BarcodeScanner } from '@ionic-native/barcode-scanner/ngx';
+import { UserData } from '../../providers/user-data';
 
 @Component({
   selector: 'app-drawTab',
@@ -13,20 +9,15 @@ import { BarcodeScanner } from '@ionic-native/barcode-scanner/ngx';
   styleUrls: ['drawTab.page.scss']
 })
 export class drawTabPage {
-  private currentCode: string
-  private ssfCode: string
-  private access_token: string
-  constructor(private nativeHttp: HTTP,
+  public currentCode: string
+  public ssfCode: string
+  constructor(
+    public userData: UserData,
     private barcodeScanner: BarcodeScanner,
-    private storage: Storage,
-    private keyboard: Keyboard,
-    private toastCtrl: ToastController) { }
+    private keyboard: Keyboard) { }
 
   @ViewChild('drawInput') drawInput;
   ngOnInit() {
-    this.storage.get('access_token').then((val) => {
-      this.access_token = val
-    });
   }
   codechange() {
     if (this.ssfCode) {
@@ -36,9 +27,8 @@ export class drawTabPage {
     }
   }
   ionViewDidEnter() {
-    this.keyboard.hide()  
+    this.keyboard.hide()
     this.inputFocus()
-    console.log('enter')
   }
   inputFocus() {
     this.drawInput.setFocus();
@@ -47,30 +37,11 @@ export class drawTabPage {
   doClick() {
     this.inputFocus()
     this.keyboard.hide()
-    
-    console.log(this.keyboard)
   }
   // 获取扫描信息
   async getInfo() {
-    // let loading = await this.loadingCtrl.create();
     let data = { ssfCode: this.currentCode }
-    this.nativeHttp.setDataSerializer('json');
-    let headers = { 'Authorization': `Bearer ${this.access_token}`, 'Content-Type': 'application/json;charset=UTF-8' }
-    // Returns a promise, need to convert with of() to Observable (if want)!
-    from(this.nativeHttp.post('http://192.168.20.32/production/sample/factory/',
-      data,
-      headers)).pipe(
-        finalize(() => { })
-      ).subscribe(data => {
-        this.storage.set('ssfId', JSON.parse(data.data).data.ssfId)
-      }, async err => {
-        let toast = await this.toastCtrl.create({
-          message: '获取数据失败',
-          duration: 1000,
-          position: 'top'
-        });
-        await toast.present();
-      });
+    this.userData.ssfCodeScan(data)
   }
   qrscan() {
     this.barcodeScanner.scan().then(barcodeData => {

+ 1 - 1
src/app/enter-store/enter-store.page.ts

@@ -55,7 +55,7 @@ export class EnterStorePage implements OnInit {
   //   })
   // }
   // 获取入库单详情
-  async getStoreDetail(item) {
+  async getStoreDetail(item?) {
     // console.log(this.scanCode)
     this.keyboard.hide()
     if (item) {

+ 1 - 1
src/app/infoTab/infoTab.page.html

@@ -39,7 +39,7 @@
 
   <ion-item>
     <ion-thumbnail slot="end">
-      <ion-img [src]="imgSrc"></ion-img>
+      <ion-img [src]="imgSrc" (click)="showFullScreenImage(imgSrc)"></ion-img>
     </ion-thumbnail>
     <ion-label>图片:</ion-label>
   </ion-item>

+ 27 - 66
src/app/infoTab/infoTab.page.ts

@@ -1,11 +1,9 @@
 import { Component, OnInit, ViewChild } from '@angular/core';
-import { from } from 'rxjs';
-import { HTTP } from '@ionic-native/http/ngx';
-import { ToastController } from '@ionic/angular';
-import { finalize } from 'rxjs/operators';
 import { Keyboard } from '@ionic-native/keyboard/ngx';
 import { Storage } from '@ionic/storage'
 import { BarcodeScanner } from '@ionic-native/barcode-scanner/ngx';
+import { UserData } from '../../providers/user-data';
+import { commonService } from '../../providers/common.service'
 
 @Component({
   selector: 'app-infoTab',
@@ -13,29 +11,28 @@ import { BarcodeScanner } from '@ionic-native/barcode-scanner/ngx';
   styleUrls: ['./infoTab.page.scss'],
 })
 export class infoTabPage implements OnInit {
-  private pCode: string
-  private currentpCode: string
-  private supplierName: string
-  private outSendFactoryName: string
-  private imgSrc: string
-  private ssfId: any
-  private access_token: string
-  constructor(private nativeHttp: HTTP,
+  public pCode: string
+  public currentpCode: string
+  public supplierName: string
+  public outSendFactoryName: string
+  public imgSrc: string
+  public ssfId: any
+  constructor(
+    public userData: UserData,
+    public commonService: commonService,
     private barcodeScanner: BarcodeScanner,
     private storage: Storage,
-    private keyboard: Keyboard,
-    private toastCtrl: ToastController) { }
+    private keyboard: Keyboard) { }
 
   @ViewChild('infoInput') infoInput;
 
   ngOnInit() {
-    this.storage.get('access_token').then((val) => {
-      this.access_token = val
+    this.storage.get('ssfId').then((val) => {
+      this.ssfId = val
     });
   }
   ionViewDidEnter() {
     this.inputFocus()
-    console.log('enter')
   }
   pcodechange() {
     if (this.pCode) {
@@ -50,60 +47,24 @@ export class infoTabPage implements OnInit {
   }
   doClick() {
     this.inputFocus()
-    console.log('click info')
   }
   // 扫描货号获取详细信息
   async getPcodeInfo() {
-    this.storage.get('ssfId').then((val) => {
-      this.ssfId = val
-    });
-    let headers = { 'Authorization': `Bearer ${this.access_token}`, 'Content-Type': 'application/json;charset=UTF-8' }
-    // Returns a promise, need to convert with of() to Observable (if want)!
-    from(this.nativeHttp.get('http://192.168.20.32/production/sample/factory/pCode',
-      { pCode: this.currentpCode },
-      headers)).pipe(
-        finalize(() => { })
-      ).subscribe(data => {
-        this.supplierName = (JSON.parse(data.data).data).supplierName
-        this.outSendFactoryName = (JSON.parse(data.data).data).outSendFactoryName
-        if ((JSON.parse(data.data).data).pictures.length !== 0) {
-          this.imgSrc = (JSON.parse(data.data).data).pictures[0].smallPicture
-        }
-      }, async err => {
-        let toast = await this.toastCtrl.create({
-          message: '获取数据失败',
-          duration: 1000,
-          position: 'top'
-        });
-        await toast.present();
-      });
+    let data = await this.userData.pCodeScan({ pCode: this.currentpCode })
+    this.supplierName = data.supplierName
+    this.outSendFactoryName = data.outSendFactoryName
+    if (data.pictures.length !== 0) {
+      this.imgSrc = data.pictures[0].smallPicture
+    }
   }
+
+  // 新增样品工厂详细
   async save() {
-    this.nativeHttp.setDataSerializer('json');
-    let data = { ssfCode: this.currentpCode, ssfId: this.ssfId }
-    let headers = { 'Authorization': `Bearer ${this.access_token}`, 'Content-Type': 'application/json;charset=UTF-8' }
-    // Returns a promise, need to convert with of() to Observable (if want)!
-    from(this.nativeHttp.post('http://192.168.20.32/production/sample/factory/details/',
-      data,
-      headers)).pipe(
-        finalize(() => { })
-      ).subscribe(async data => {
-        if (JSON.parse(data.data).msg === 'success') {
-          let toast = await this.toastCtrl.create({
-            message: '保存成功',
-            position: 'top',
-            duration: 1000
-          });
-          toast.present()
-        }
-      }, async err => {
-        let toast = await this.toastCtrl.create({
-          message: '保存失败',
-          duration: 1000,
-          position: 'top'
-        });
-        await toast.present();
-      });
+    this.userData.saveFactoryDetails({ ssfCode: this.currentpCode, ssfId: this.ssfId })
+  }
+
+  showFullScreenImage(data) {
+    this.commonService.fullScreenImg(data)
   }
 
   qrscan() {

+ 0 - 29
src/app/qc-popover/qc-popover.ts

@@ -1,29 +0,0 @@
-import { Component } from '@angular/core';
-
-import { PopoverController } from '@ionic/angular';
-
-@Component({
-  template: `
-    <ion-list>
-      <ion-item button (click)="recordQC()">
-        <ion-label>记录</ion-label>
-      </ion-item>
-      <ion-item button (click)="generateQC()">
-        <ion-label>生成</ion-label>
-      </ion-item>
-    </ion-list>
-  `
-})
-export class PopoverPage {
-  constructor(public popoverCtrl: PopoverController) {}
-
-  support() {
-    // this.app.getRootNavs()[0].push('/support');
-    this.popoverCtrl.dismiss();
-  }
-
-  close(url: string) {
-    window.open(url, '_blank');
-    this.popoverCtrl.dismiss();
-  }
-}

+ 1 - 1
src/app/sample-detail/sample-detail.page.ts

@@ -55,7 +55,7 @@ export class SampleDetailPage implements OnInit {
   }
   takePicture(sample) {
     const options: CameraOptions = {
-      quality: 10,
+      quality: 50,
       destinationType: this.camera.DestinationType.DATA_URL,
       encodingType: this.camera.EncodingType.JPEG,
       mediaType: this.camera.MediaType.PICTURE

+ 1 - 1
src/app/store-qc-detail/store-qc-detail.page.html

@@ -36,7 +36,7 @@
       <ion-label color="danger">无详情</ion-label>
     </ion-item>
   </ion-list>
-  <ion-list *ngFor="let qc of qcData.details">
+  <ion-list *ngFor="let qc of qcData['details']">
     <ion-item-group>
       <ion-item-divider sticky>
         <ion-label>

+ 7 - 3
src/app/store-qc-detail/store-qc-detail.page.ts

@@ -16,8 +16,12 @@ import { commonService } from '../../providers/common.service'
 export class StoreQCDetailPage implements OnInit {
 
   defaultHref = ""
-  qcData = {}
-  QCdetails = ''
+  qcData = {
+    details: []
+  }
+  QCdetails = {
+    details: []
+  }
   pId = ''
   sscId = ''
   showDetail: boolean = true
@@ -83,7 +87,7 @@ export class StoreQCDetailPage implements OnInit {
   }
   takePicture(qc) {
     const options: CameraOptions = {
-      quality: 10,
+      quality: 50,
       destinationType: this.camera.DestinationType.DATA_URL,
       encodingType: this.camera.EncodingType.PNG,
       mediaType: this.camera.MediaType.PICTURE

+ 2 - 2
src/app/store-qc-scanning/store-qc-scanning.page.ts

@@ -79,7 +79,7 @@ export class StoreQCScanningPage implements OnInit {
   }
 
   // 获取扫描详情
-  async getStoreQCDetail(item) {
+  async getStoreQCDetail(item?) {
     this.storeQCDetailList = []
     this.keyboard.hide()
     if (item) {
@@ -179,7 +179,7 @@ export class StoreQCScanningPage implements OnInit {
 
   takePicture(qc) {
     const options: CameraOptions = {
-      quality: 10,
+      quality: 50,
       destinationType: this.camera.DestinationType.DATA_URL,
       encodingType: this.camera.EncodingType.JPEG,
       mediaType: this.camera.MediaType.PICTURE

+ 2 - 2
src/app/store-sample-barcode/store-sample-barcode.page.html

@@ -8,7 +8,7 @@
 </ion-header>
 
 <ion-content>
-  <ion-item>
+  <!-- <ion-item>
     <ion-icon name="ios-bluetooth" item-start color="purple"></ion-icon>
     <ion-label>打开蓝牙</ion-label>
     <ion-toggle color="purple" [(ngModel)]="blestate" (ngModelChange)="bleChange($event)"></ion-toggle>
@@ -19,7 +19,7 @@
     <button ion-item *ngFor="let p of this.bluetoothList;let i=index">
       {{p.name}} ({{p.address}})
     </button>
-  </ion-list>
+  </ion-list> -->
   <!-- <ion-item>
     <ion-label>输入编号:</ion-label>
     <ion-input [(ngModel)]="code"></ion-input>

+ 1 - 1
src/app/store-sample-barcode/store-sample-barcode.page.ts

@@ -11,7 +11,7 @@ import { Platform } from '@ionic/angular';
 })
 export class StoreSampleBarcodePage implements OnInit {
 
-  private code: string
+  public code: string
 
   constructor(public userData: UserData,
     public bluetoothle: BluetoothLE,

+ 0 - 20
src/components/paging-page/paging-page.component.html

@@ -1,20 +0,0 @@
-<ion-grid text-center *ngIf="total>pageSize">
-  <ion-row>
-    <ion-col no-padding>
-      <button ion-button small [color]="color" [disabled]="pageNum==1" (click)="btnClick(1)">首页</button>
-      <button ion-button small [color]="color" [disabled]="pageNum==1" (click)="btnClick(pageNum-1)">上一页
-      </button>
-      <button ion-button small [color]="color" [disabled]="pageNum==ceil(total/pageSize)"
-        (click)="btnClick(pageNum+1)">下一页
-      </button>
-      <button ion-button small [color]="color" [disabled]="pageNum==ceil(total/pageSize)"
-        (click)="btnClick(ceil(total/pageSize))">尾页
-      </button>
-    </ion-col>
-  </ion-row>
-  <ion-row>
-    <ion-col no-padding style="font-size: 12px">
-      每页显示{{pageSize}}条数据,共{{total}}条,当前为第{{pageNum}}页,共{{ceil(total/pageSize)}}页
-    </ion-col>
-  </ion-row>
-</ion-grid>

+ 0 - 0
src/components/paging-page/paging-page.component.scss


+ 0 - 29
src/components/paging-page/paging-page.component.spec.ts

@@ -1,29 +0,0 @@
-import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
-import { async, ComponentFixture, TestBed } from '@angular/core/testing';
-
-import { PagingPage } from './paging-page.component';
-
-describe('PagingPage', () => {
-  let component: PagingPage;
-  let fixture: ComponentFixture<PagingPage>;
-
-  beforeEach(async(() => {
-    TestBed.configureTestingModule({
-      declarations: [ PagingPage ],
-      schemas: [CUSTOM_ELEMENTS_SCHEMA],
-    })
-    .compileComponents();
-  }));
-
-  beforeEach(() => {
-    fixture = TestBed.createComponent(PagingPage);
-    component = fixture.componentInstance;
-    fixture.detectChanges();
-  });
-
-
-
-  it('should create', () => {
-    expect(component).toBeTruthy();
-  });
-});

+ 0 - 42
src/components/paging-page/paging-page.component.ts

@@ -1,42 +0,0 @@
-import {Component, Input, Output, EventEmitter} from '@angular/core';
-// import { IonicPage } from '@ionic/angular'
-
-/**
- * @name 自定义分页组件
- * @description
- * @example <page-paging [total]="18" (pageNumChange)="doSearch($event)"></page-paging>
- * @example <page-paging [total]="total" (pageNumChange)="doSearch($event)" pageSize="10" color="dark"></page-paging>
- */
-// @IonicPage()
-@Component({
-  selector: 'page-paging',
-  templateUrl: 'paging-page.component.html',
-})
-export class PagingPage {
-
-  @Input()
-  total:number;//共多少条数据
-
-  @Input()
-  pageSize:number=5;//每页大小,默认5条
-
-  @Input()
-  color:string='primary';//主题颜色
-
-  @Input() pageNum:number=1;//当前第几页,默认1
-  @Output() pageNumChange = new EventEmitter<any>();
-
-
-  constructor() {
-  }
-
-  btnClick(pageNum){
-    this.pageNum = pageNum;
-    this.pageNumChange.emit(pageNum);
-  }
-
-  ceil(num){
-    return Math.ceil(num);
-  }
-
-}

+ 148 - 48
src/providers/user-data.ts

@@ -125,6 +125,106 @@ export class UserData {
     return this.storage.clear();
   }
 
+  // 开单号扫描
+  async ssfCodeScan(data: object): Promise<any> {
+    const token = await this.getToken();
+    const loading = await this.loadingCtrl.create();
+    await loading.present();
+    this.nativeHttp.setDataSerializer('json');
+    const headers = { Authorization: `Bearer ${token}`, 'Content-Type': 'application/json;charset=UTF-8' };
+    from(this.nativeHttp.post(`http://dev.sgsino.cn/production/sample/factory/`,
+      data,
+      headers)).pipe(
+        finalize(() => { })
+      ).subscribe(data => {
+        this.storage.set('ssfId', JSON.parse(data.data).data.ssfId)
+      }, async err => {
+        console.log(err)
+        let toast = await this.toastCtrl.create({
+          message: '获取数据失败',
+          duration: 1000,
+          position: 'top'
+        });
+        await toast.present();
+      });
+    return;
+  }
+
+  // 货号扫描
+  async pCodeScan(data: object): Promise<any> {
+    const token = await this.getToken();
+    const loading = await this.loadingCtrl.create();
+    await loading.present();
+    this.nativeHttp.setDataSerializer('json');
+    const headers = { Authorization: `Bearer ${token}`, 'Content-Type': 'application/json;charset=UTF-8' };
+    return new Promise((resolve, reject) => {
+      from(this.nativeHttp.post('http://dev.sgsino.cn/production/sample/factory/pCode',
+        data,
+        headers)).pipe(
+          finalize(() => { })
+        ).subscribe(async data => {
+          if (JSON.parse(data.data).code == 1) {
+            const toast = await this.toastCtrl.create({
+              message: JSON.parse(data.data).msg,
+              duration: 1000,
+              position: 'top'
+            });
+            await toast.present();
+            resolve([]);
+          } else if (JSON.parse(data.data).code == 0) {
+            resolve(JSON.parse(data.data).data)
+          }
+        }, async err => {
+          console.log(err)
+          let toast = await this.toastCtrl.create({
+            message: '获取数据失败',
+            duration: 1000,
+            position: 'top'
+          });
+          await toast.present();
+        });
+    })
+  }
+
+  // 新增样品工厂详细
+  async saveFactoryDetails(data: object): Promise<any> {
+    const token = await this.getToken();
+    const loading = await this.loadingCtrl.create();
+    await loading.present();
+    this.nativeHttp.setDataSerializer('json');
+    const headers = { Authorization: `Bearer ${token}`, 'Content-Type': 'application/json;charset=UTF-8' };
+    return new Promise((resolve, reject) => {
+      from(this.nativeHttp.post('http://dev.sgsino.cn/production/sample/factory/details/',
+        data,
+        headers)).pipe(
+          finalize(() => { })
+        ).subscribe(async data => {
+          let message = ''
+          if (JSON.parse(data.data).code == 1) {
+            message = JSON.parse(data.data).msg
+            resolve([]);
+          } else if (JSON.parse(data.data).code == 0) {
+            message = '保存成功'
+            resolve(JSON.parse(data.data).data)
+          }
+          const toast = await this.toastCtrl.create({
+            message: message,
+            duration: 1000,
+            position: 'top'
+          });
+          await toast.present();
+        }, async err => {
+          console.log(err)
+          let toast = await this.toastCtrl.create({
+            message: '保存失败',
+            duration: 1000,
+            position: 'top'
+          });
+          await toast.present();
+        });
+    })
+  }
+
   // 获取样品单列表
   async getSampleTableData(form: object): Promise<any> {
     const token = await this.getToken();
@@ -253,7 +353,7 @@ export class UserData {
             resolve(data.data);
           }
           const toast = await this.toastCtrl.create({
-            message,
+            message: message,
             duration: 1000,
             position: 'top'
           });
@@ -753,30 +853,30 @@ export class UserData {
     const headers = { Authorization: `Bearer ${token}`, 'Content-Type': 'application/json;charset=UTF-8' };
     return new Promise((resolve, reject) => {
       from(this.nativeHttp.get(`http://dev.sgsino.cn/inventory/warehouse/mobile/pending?${current}&${size}`, {},
-          headers)).pipe(
+        headers)).pipe(
           finalize(() => loading.dismiss())
-      ).subscribe(async data => {
-        console.log(data)
-        if (data.data === null || JSON.parse(data.data).data.records == null) {
+        ).subscribe(async data => {
+          console.log(data)
+          if (data.data === null || JSON.parse(data.data).data.records == null) {
+            const toast = await this.toastCtrl.create({
+              message: '无数据',
+              duration: 1000,
+              position: 'top'
+            });
+            await toast.present();
+            resolve([]);
+          } else {
+            resolve(JSON.parse(data.data).data.records);
+          }
+        }, async err => {
+          console.log(err);
           const toast = await this.toastCtrl.create({
-            message: '无数据',
+            message: '查询失败',
             duration: 1000,
             position: 'top'
           });
           await toast.present();
-          resolve([]);
-        } else {
-          resolve(JSON.parse(data.data).data.records);
-        }
-      }, async err => {
-        console.log(err);
-        const toast = await this.toastCtrl.create({
-          message: '查询失败',
-          duration: 1000,
-          position: 'top'
         });
-        await toast.present();
-      });
     });
   }
 
@@ -789,39 +889,39 @@ export class UserData {
     const headers = { Authorization: `Bearer ${token}`, 'Content-Type': 'application/json;charset=UTF-8' };
     return new Promise((resolve, reject) => {
       from(this.nativeHttp.put(`http://dev.sgsino.cn/inventory/warehouse/mobile/prepare?sscId=${sscId}&pId=${pId}`, {},
-          headers)).pipe(
+        headers)).pipe(
           finalize(() => loading.dismiss())
-      ).subscribe(async data => {
-        let message = '';
-        if (JSON.parse(data.data).code === 0) {
-          message = `备货完成`;
-        } else if (JSON.parse(data.data).code === 1) {
-          message = JSON.parse(data.data).msg;
-        }
-        const alert = await this.alertController.create({
-          // header: 'Confirm!',
-          message:message,
-          buttons: [
-            {
-              text: '确定',
-              role: 'cancel',
-              cssClass: 'secondary',
-              handler: (blah) => {
+        ).subscribe(async data => {
+          let message = '';
+          if (JSON.parse(data.data).code === 0) {
+            message = `备货完成`;
+          } else if (JSON.parse(data.data).code === 1) {
+            message = JSON.parse(data.data).msg;
+          }
+          const alert = await this.alertController.create({
+            // header: 'Confirm!',
+            message: message,
+            buttons: [
+              {
+                text: '确定',
+                role: 'cancel',
+                cssClass: 'secondary',
+                handler: (blah) => {
+                }
               }
-            }
-          ]
-        });
-        await alert.present();
-        resolve(data.data);
-      }, async err => {
-        console.log(err);
-        const toast = await this.toastCtrl.create({
-          message: '保存失败',
-          duration: 1000,
-          position: 'top'
+            ]
+          });
+          await alert.present();
+          resolve(data.data);
+        }, async err => {
+          console.log(err);
+          const toast = await this.toastCtrl.create({
+            message: '保存失败',
+            duration: 1000,
+            position: 'top'
+          });
+          await toast.present();
         });
-        await toast.present();
-      });
     });
   }