Prechádzať zdrojové kódy

图片查看,以及其他功能

panxingxin 5 rokov pred
rodič
commit
a1109b950f

+ 1 - 1
src/app/app.component.html

@@ -103,7 +103,7 @@
             <ion-item routerLink="/store-sample">
               <ion-icon slot="start" name="home"></ion-icon>
               <ion-label>
-                样品列表
+                仓库样品列表
               </ion-label>
             </ion-item>
           </ion-menu-toggle>

+ 6 - 7
src/app/app.component.ts

@@ -32,12 +32,10 @@ export class AppComponent {
     // private wsService: WebSocketService
   ) {
     this.initializeApp();
-    // this.update.isUpdate()
     this.backButtonEvent()
   }
   ngOnInit() {
     this.initWebSocket()
-    this.getVersionNumber()
     //WS连接的IP和端口提前保存在localStorage里,现在读出来
     // this.wsService.createObservableSocket(`ws://192.168.20.32:8804/websocket/403`);
     // this.wsService.sendMessage('testhis.fullScreenImaget')
@@ -48,13 +46,12 @@ export class AppComponent {
 
   getUserId(): Promise<string> {
     return this.storage.get('user_id').then((value) => {
-      // this.update.isUpdate()
       return value;
     });
   }
 
- async getVersionNumber() {
-    this.version_number =  await this.update.getVersionNumber()
+  async getVersionNumber() {
+    this.version_number = await this.update.getVersionNumber()
   }
 
   async initWebSocket() {
@@ -146,10 +143,12 @@ export class AppComponent {
   async logout() {
     this.userData.logout()
   }
-  initializeApp() {
-    this.platform.ready().then(() => {
+  async initializeApp() {
+    this.platform.ready().then(async () => {
       this.statusBar.styleDefault();
       this.splashScreen.hide();
+      await this.getVersionNumber()
+      await this.update.isUpdate()
     });
   }
   //android通过返回按钮退出应用

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

@@ -20,6 +20,7 @@ import { Keyboard } from '@ionic-native/keyboard/ngx';
 import { queryForm } from '../providers/query'
 import { AppVersion } from '@ionic-native/app-version/ngx'; 
 import { WebSocketService } from '../providers/WebSocketService';
+import { UserData } from '../providers/user-data';
 // import { BluetoothLE } from '@ionic-native/bluetooth-le/ngx'
 // import { BluetoothSerial } from '@ionic-native/bluetooth-serial/ngx';
 import { NativeService } from "../providers/native.service"
@@ -41,6 +42,7 @@ import { FileTransfer, FileTransferObject } from '@ionic-native/file-transfer/ng
     PhotoService,
     Camera,
     PhotoViewer,
+    UserData,
     Device,
     File,
     FileOpener,

+ 4 - 4
src/app/contract-detail/contract-detail.page.html

@@ -13,9 +13,9 @@
 </ion-header>
 
 <ion-content>
-  <div class="detail-header">
+  <!-- <div class="detail-header">
     <img src="../../assets/img/sg.png" alt="ionic logo">
-  </div>
+  </div> -->
   <ion-item>
     <ion-label>采购合同号:</ion-label>
     <ion-input disabled>{{sscCode}}</ion-input>
@@ -38,7 +38,7 @@
     </ion-item-group>
     <ion-item lines="none">
       <span>产品图片:</span>
-      <img slot="end" *ngIf="contract.imgsrc" [src]="contract.imgsrc" class="title-image"/>
+      <img slot="end" *ngIf="contract.imgsrc" (click)="showFullScreenImage(contract.imgsrc)" [src]="contract.imgsrc" class="title-image"/>
     </ion-item>
 
     <ion-item>
@@ -75,7 +75,7 @@
     <ion-item>
       <ion-label>QA日志图片:</ion-label>
       <ion-thumbnail *ngIf="contract.imgUrl">
-        <ion-img [src]="contract.imgUrl"></ion-img>
+        <ion-img [src]="contract.imgUrl" (click)="showFullScreenImage(contract.imgUrl)"></ion-img>
       </ion-thumbnail>
       <ion-icon *ngIf="contract.imgUrl" name="close-circle-outline" (click)="deletePicture(contract)" slot="end"></ion-icon>
     </ion-item>

+ 6 - 0
src/app/contract-detail/contract-detail.page.ts

@@ -2,6 +2,7 @@ import { Component, OnInit } from '@angular/core';
 import { Storage } from '@ionic/storage'
 import { UserData } from '../../providers/user-data';
 import { Camera, CameraOptions } from '@ionic-native/camera/ngx';
+import { commonService } from '../../providers/common.service'
 
 @Component({
   selector: 'app-contract-detail',
@@ -18,6 +19,7 @@ export class ContractDetailPage implements OnInit {
   sscId=''
   constructor(
     private camera: Camera,
+    public commonService: commonService,
     private storage: Storage,
     public userData: UserData
   ) { }
@@ -48,6 +50,10 @@ export class ContractDetailPage implements OnInit {
     this.defaultHref = `/contract-table`;
   }
 
+  showFullScreenImage(url) {
+    this.commonService.fullScreenImg(url)
+  }
+
   takePicture(contract) {
     const options: CameraOptions = {
       quality: 10,

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

@@ -20,7 +20,6 @@ export class ContractPage implements OnInit {
   ngOnInit() {
   }
   search() {
-    console.log(this.getSerchForm())
     this.userData.getContractTableData(this.getSerchForm())
   }
   getSerchForm() {
@@ -39,7 +38,7 @@ export class ContractPage implements OnInit {
     };
     if (this.contractInfo.sscCode) {
       let prefix = {}
-      prefix['sscCode'] = this.contractInfo.sscCode
+      prefix['sscCode.keyword'] = this.contractInfo.sscCode.toUpperCase()
       queryForm.query.bool.must.push({
         prefix: prefix
       })

+ 3 - 3
src/app/sample-detail/sample-detail.page.html

@@ -13,9 +13,9 @@
 </ion-header>
 
 <ion-content>
-  <div class="detail-header">
+  <!-- <div class="detail-header">
     <img src="../../assets/img/sg.png" alt="ionic logo">
-  </div>
+  </div> -->
   <ion-item>
     <ion-label>样品单号:</ion-label>
     <ion-input disabled>{{sdDocument}}</ion-input>
@@ -46,7 +46,7 @@
 
     <ion-item lines="none">
       <span>产品图片:</span>
-      <img slot="end" [src]="sample.imgsrc" @click="showFullScreenImage(sample.imgsrc)" class="title-image"/>
+      <img slot="end" [src]="sample.imgsrc" (click)="showFullScreenImage(sample.imgsrc)" class="title-image"/>
     </ion-item>
 
     <ion-item>

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

@@ -29,6 +29,7 @@ export class SampleDetailPage implements OnInit {
     this.storage.get('sdId').then(async (val) => {
       if (val) {
         let data = await this.userData.getSampleDetail(val)
+        console.log(JSON.parse(data))
         if (JSON.parse(data).data.length !== 0) {
           this.sdpPost = JSON.parse(data).data[0].sdpPost
           this.sdpModifydate = JSON.parse(data).data[0].sdpModifydate

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

@@ -41,7 +41,7 @@ export class SamplePage implements OnInit {
     };
     if (this.sampleInfo.sdDocument) {
       let prefix = {}
-      prefix['sdDocument.keyword'] = this.sampleInfo.sdDocument
+      prefix['sdDocument.keyword'] = this.sampleInfo.sdDocument.toUpperCase()
       queryForm.query.bool.must.push({
         prefix: prefix
       })

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

@@ -46,7 +46,7 @@
     </ion-item-group>
     <ion-item>
       <ion-label>产品图片:</ion-label>
-      <ion-img [src]="qc.pictures[0].smallPicture" class="qc-product-img"></ion-img>
+      <ion-img [src]="qc.pictures[0].smallPicture" (click)="showFullScreenImage(qc.pictures[0].smallPicture)" class="qc-product-img"></ion-img>
     </ion-item>
     <ion-item>
       <ion-label>
@@ -104,7 +104,7 @@
     <ion-item>
       <ion-label>qa日志图片:</ion-label>
       <ion-thumbnail *ngIf="qc.qaimgUrl">
-        <ion-img [src]="qc.qaimgUrl"></ion-img>
+        <ion-img [src]="qc.qaimgUrl" (click)="showFullScreenImage(qc.qaimgUrl)"></ion-img>
       </ion-thumbnail>
       <!-- <ion-icon *ngIf="qc.showPicture" name="close-circle-outline" (click)="deletePicture(qc)" slot="end"> -->
       <!-- </ion-icon> -->
@@ -119,7 +119,7 @@
     <ion-item>
       <ion-label>QC日志图片:</ion-label>
       <ion-thumbnail *ngIf="qc.qcimgUrl">
-        <ion-img [src]="qc.qcimgUrl"></ion-img>
+        <ion-img [src]="qc.qcimgUrl" (click)="showFullScreenImage(qc.qcimgUrl)"></ion-img>
       </ion-thumbnail>
       <ion-icon *ngIf="qc.qcimgUrl" name="close-circle-outline" (click)="deletePicture(qc)" slot="end">
       </ion-icon>

+ 6 - 0
src/app/store-qc-detail/store-qc-detail.page.ts

@@ -2,6 +2,7 @@ import { Component, OnInit } from '@angular/core';
 import { Storage } from '@ionic/storage'
 import { UserData } from '../../providers/user-data';
 import { Camera, CameraOptions } from '@ionic-native/camera/ngx';
+import { commonService } from '../../providers/common.service'
 // import { FullScreenImage } from '@ionic-native/full-screen-image/ngx';
 
 // import { PopoverController } from '@ionic/angular'
@@ -20,6 +21,7 @@ export class StoreQCDetailPage implements OnInit {
   pId = ''
   sscId = ''
   constructor(private storage: Storage,
+    public commonService: commonService,
     // private fullScreenImage: FullScreenImage,
     // public popoverCtrl: PopoverController,
     private camera: Camera,
@@ -42,6 +44,10 @@ export class StoreQCDetailPage implements OnInit {
     this.getDetail()
   }
 
+  showFullScreenImage(url) {
+    this.commonService.fullScreenImg(url)
+  }
+
   async getDetail() {
     if (this.QCdetails) {
       this.qcData = this.QCdetails

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

@@ -81,7 +81,7 @@
     <ion-item>
       <ion-label>qa日志图片:</ion-label>
       <ion-thumbnail *ngIf="qc.qaimgUrl">
-        <ion-img [src]="qc.qaimgUrl"></ion-img>
+        <ion-img [src]="qc.qaimgUrl" (click)="showFullScreenImage(qc.qaimgUrl)"></ion-img>
       </ion-thumbnail>
       <!-- <ion-icon *ngIf="qc.showPicture" name="close-circle-outline" (click)="deletePicture(qc)" slot="end"> -->
       <!-- </ion-icon> -->
@@ -96,7 +96,7 @@
     <ion-item>
       <ion-label>QC日志图片:</ion-label>
       <ion-thumbnail *ngIf="qc.qcimgUrl">
-        <ion-img [src]="qc.qcimgUrl"></ion-img>
+        <ion-img [src]="qc.qcimgUrl" (click)="showFullScreenImage(qc.qcimgUrl)"></ion-img>
       </ion-thumbnail>
       <ion-icon *ngIf="qc.qcimgUrl" name="close-circle-outline" (click)="deletePicture(qc)" slot="end">
       </ion-icon>

+ 7 - 0
src/app/store-qc-scanning/store-qc-scanning.page.ts

@@ -4,6 +4,8 @@ import { Storage } from '@ionic/storage'
 import { Keyboard } from '@ionic-native/keyboard/ngx';
 import { UserData } from '../../providers/user-data';
 import { Camera, CameraOptions } from '@ionic-native/camera/ngx';
+import { commonService } from '../../providers/common.service'
+
 
 @Component({
   selector: 'app-store-qc-scanning',
@@ -16,6 +18,7 @@ export class StoreQCScanningPage implements OnInit {
   storeQCList = []
   storeQCDetailList = []
   constructor(private router: Router,
+    public commonService: commonService,
     private storage: Storage,
     public userData: UserData,
     private camera: Camera,
@@ -35,6 +38,10 @@ export class StoreQCScanningPage implements OnInit {
     this.scanInput.setFocus();
   }
 
+  showFullScreenImage(url) {
+    this.commonService.fullScreenImg(url)
+  }
+
   // 获取扫描详情
   async getStoreQCDetail(item) {
     this.keyboard.hide()

+ 3 - 3
src/app/store-sample-binding/store-sample-binding.page.html

@@ -1,7 +1,7 @@
 <ion-header>
   <ion-toolbar>
     <ion-buttons slot="start">
-        <ion-back-button [defaultHref]="defaultHref"></ion-back-button>
+      <ion-menu-button></ion-menu-button>
     </ion-buttons>
     <ion-title>货架货号绑定</ion-title>
   </ion-toolbar>
@@ -11,11 +11,11 @@
   <ion-list>
     <ion-item>
       <ion-label>货架:</ion-label>
-      <ion-input [(ngModel)]="shelves.shelves" autofocus></ion-input>
+      <ion-input [(ngModel)]="shelves" (keyup)="enterShelves($event)" #shelvesInput autofocus></ion-input>
     </ion-item>
     <ion-item>
       <ion-label>货号:</ion-label>
-      <ion-input [(ngModel)]="shelves.code"></ion-input>
+      <ion-input [(ngModel)]="code" #codeInput></ion-input>
     </ion-item>
   </ion-list>
   <div class="ion-padding">

+ 23 - 20
src/app/store-sample-binding/store-sample-binding.page.ts

@@ -1,4 +1,4 @@
-import { Component, OnInit } from '@angular/core';
+import { Component, OnInit, ViewChild } from '@angular/core';
 import { UserData } from '../../providers/user-data';
 import { Storage } from '@ionic/storage'
 
@@ -9,20 +9,13 @@ import { Storage } from '@ionic/storage'
 })
 export class StoreSampleBindingPage implements OnInit {
 
-  shelf: string
+  shelves: string
   code: string
-  defaultHref: string
-  shelves: Object = {
-    id: '',
-    shelves: '',
-    code: '',
-    active: '',
-    lend: '',
-    updatetime: '',
-    count: ''
-  }
   constructor(private storage: Storage, public userData: UserData) { }
 
+  @ViewChild('shelvesInput') shelvesInput;
+  @ViewChild('codeInput') codeInput;
+
   ngOnInit() {
     this.storage.get('shelf').then((val) => {
       this.shelves = JSON.parse(val)
@@ -30,15 +23,25 @@ export class StoreSampleBindingPage implements OnInit {
   }
 
   ionViewDidEnter() {
-    this.shelves['shelves'] = ''
-    this.shelves['code'] = ''
-    this.defaultHref = `/store-sample`;
+    this.shelvesInput.setFocus();
+    this.shelves = ''
+    this.code = ''
   }
 
   async binding() {
-    let data = await this.userData.shelveBinding(this.shelves)
-    this.shelves['shelves'] = ''
-    this.shelves['code'] = ''
-    console.log(data)
-   }
+    let form = {
+      shelves: this.shelves,
+      code: this.code
+    }
+    await this.userData.shelveBinding(form)
+    this.shelves = ''
+    this.code = ''
+  }
+
+  enterShelves(e) {
+    let keycode = window.event ? e.keyCode : e.which;
+    if (keycode == 13) {
+      this.codeInput.setFocus();
+    }
+  }
 }

+ 1 - 1
src/app/store-sample-pending/store-sample-pending.page.html

@@ -28,7 +28,7 @@
     <ion-card-content class="storeSample-content">
       <ion-item lines="none">
         <span>产品图片:</span>
-        <img slot="end" [src]="storeSample.imgsrc" class="title-image" />
+        <img slot="end" (click)="showFullScreenImage(storeSample.imgsrc)" [src]="storeSample.imgsrc" class="title-image" />
       </ion-item>
       <ion-item>
         <ion-icon name="briefcase"></ion-icon>

+ 5 - 1
src/app/store-sample-pending/store-sample-pending.page.ts

@@ -1,6 +1,7 @@
 import { Component, OnInit } from '@angular/core';
 import { UserData } from '../../providers/user-data';
 import {Keyboard} from "@ionic-native/keyboard/ngx";
+import { commonService } from '../../providers/common.service'
 
 @Component({
   selector: 'app-store-sample-pending',
@@ -14,6 +15,7 @@ export class StoreSamplePendingPage implements OnInit {
   size: number = 10
   constructor(
       private keyboard: Keyboard,
+      public commonService: commonService,
       public userData: UserData) { }
   scanCode: string
   ngOnInit() {
@@ -41,7 +43,9 @@ export class StoreSamplePendingPage implements OnInit {
     }
   }
 
-
+  showFullScreenImage(url) {
+    this.commonService.fullScreenImg(url)
+  }
 
   // 通过code获取仓库样品详情
   async getStoreSampleDetail() {

+ 1 - 1
src/app/store-sample/store-sample.page.html

@@ -13,7 +13,7 @@
       refreshingText="刷新...">
     </ion-refresher-content>
   </ion-refresher>
-  <ion-card *ngFor="let storeSample of storeSampleList" (click)="getDetail(storeSample);$event.stopPropagation()">
+  <ion-card *ngFor="let storeSample of storeSampleList">
     <ion-item-sliding>
       <ion-item>
         <ion-card-content class="storeSample-content">

+ 5 - 5
src/app/store-sample/store-sample.page.ts

@@ -62,11 +62,11 @@ export class StoreSamplePage implements OnInit {
     this.getList()
   }
 
-  getDetail(storeSample) {
-    this.storage.set('shelf', JSON.stringify(storeSample)).then(() => {
-      this.router.navigateByUrl('/store-sample-binding')
-    })
-  }
+  // getDetail(storeSample) {
+  //   this.storage.set('shelf', JSON.stringify(storeSample)).then(() => {
+  //     this.router.navigateByUrl('/store-sample-binding')
+  //   })
+  // }
 
   async destroy(storeSample) {
     storeSample.active = false

+ 2 - 2
src/app/warehouse-manage-pending/warehouse-manage-pending.page.html

@@ -28,7 +28,7 @@
     <ion-card-content class="storeSample-content">
       <ion-item lines="none">
         <span>产品图片:</span>
-        <img slot="end" [src]="warehouseManage.imgsrc" class="title-image" />
+        <img slot="end" (click)="showFullScreenImage(warehouseManage.imgsrc)" [src]="warehouseManage.imgsrc" class="title-image" />
       </ion-item>
       <ion-item>
         <ion-icon name="briefcase"></ion-icon>
@@ -63,7 +63,7 @@
       </ion-item> -->
 
       <div class="ion-padding">
-        <ion-button color="primary" type="submit" expand="block" (click)="prepareGoods()">
+        <ion-button color="primary" type="submit" expand="block" (click)="prepareGoods(warehouseManage.sscId,warehouseManage.pid)">
           备货完成</ion-button>
       </div>
     </ion-card-content>

+ 16 - 13
src/app/warehouse-manage-pending/warehouse-manage-pending.page.ts

@@ -1,6 +1,6 @@
 import { Component, OnInit } from '@angular/core';
 import { UserData } from '../../providers/user-data';
-import {Keyboard} from '@ionic-native/keyboard/ngx';
+import { commonService } from '../../providers/common.service'
 
 @Component({
   selector: 'app-warehouse-manage-pending',
@@ -10,26 +10,30 @@ import {Keyboard} from '@ionic-native/keyboard/ngx';
 export class WarehouseManagePendingPage implements OnInit {
 
 
-  warehouseManageLists  = [];
+  warehouseManageLists = [];
   current = 1;
   size = 10;
   constructor(
-      private keyboard: Keyboard,
-      public userData: UserData) { }
+    public commonService: commonService,
+    public userData: UserData) { }
   scanCode: string;
   pId = ''
   sscId = ''
   ngOnInit() {
-
   }
 
   ionViewDidEnter() {
     this.getList();
   }
 
-  async doRefresh(event) {
-    await this.getList();
-    event.target.complete();    // 告诉ion-refresher  更新数据
+  showFullScreenImage(url) {
+    this.commonService.fullScreenImg(url)
+  }
+
+  doRefresh(event) {
+    this.getList();
+    event.target.complete()
+    // 告诉ion-refresher  更新数据
   }
 
   async getList() {
@@ -45,10 +49,9 @@ export class WarehouseManagePendingPage implements OnInit {
   }
 
 
-  async prepareGoods() {
-    await this.userData.prepareGoods(Number(this.sscId), Number(this.pId));
-    }
-
-
+  async prepareGoods(sscId, pid) {
+    await this.userData.prepareGoods(sscId, pid);
+    this.getList()
+  }
 }
 

+ 21 - 18
src/providers/update.ts

@@ -35,18 +35,10 @@ export class Update {
     async isUpdate() {
         // 1、获取当前应用的版本号
         // console.log(this.appVersion.getAppName())
-        let version_number = await this.getVersionNumber()
         let server_version_number = await this.getServerVersionNumber()
+        let version_number = await this.getVersionNumber()
         if (version_number !== server_version_number) {
-            await this.appVersion.getVersionNumber().then((value: any) => {
-                // console.log('ss'+server_version_number)
-                //2、请求服务器接口获取服务器的版本号
-
-                this.showAlert(server_version_number);
-
-            }).catch(err => {
-                console.log('getVersionNumber:' + err);
-            });
+            this.showAlert(server_version_number);
         }
 
     }
@@ -64,16 +56,27 @@ export class Update {
 
     getServerVersionNumber() {
         return new Promise((resolve, reject) => {
-            from(this.nativeHttp.get(`http://192.168.20.15:803/SoftUpdate/SgApp/version.txt`,
-                {},
-                {})).pipe(
-                    finalize(() => { })
-                ).subscribe(data => {
+            this.nativeHttp.get('http://192.168.20.15:803/SoftUpdate/SgApp/version.json', {}, {})
+                .then(data => {
                     resolve(JSON.parse(data.data).version)
-                }, async err => {
-                    console.log(err)
+                })
+                .catch(error => {
+                    console.log(error.status);
+                    console.log(error.error); // error message as string
+                    console.log(error.headers);
+
                 });
-            return
+            // from(this.nativeHttp.get(`http://192.168.20.15:803/SoftUpdate/SgApp/version.txt`,
+            //     {},
+            //     {})).pipe(
+            //         finalize(() => { })
+            //     ).subscribe(data => {
+            //         console.log(JSON.parse(data.data).version)
+            //         resolve(JSON.parse(data.data).version)
+            //     }, async err => {
+            //         console.log(err)
+            //     });
+            // return
         })
     }
 

+ 6 - 4
src/providers/user-data.ts

@@ -755,6 +755,7 @@ export class UserData {
           headers)).pipe(
           finalize(() => loading.dismiss())
       ).subscribe(async data => {
+        console.log(data)
         if (data.data === null || JSON.parse(data.data).data.records == null) {
           const toast = await this.toastCtrl.create({
             message: '无数据',
@@ -763,8 +764,9 @@ export class UserData {
           });
           await toast.present();
           resolve([]);
+        } else {
+          resolve(JSON.parse(data.data).data.records);
         }
-        resolve(JSON.parse(data.data).data.records);
       }, async err => {
         console.log(err);
         const toast = await this.toastCtrl.create({
@@ -777,14 +779,14 @@ export class UserData {
     });
   }
 
-  prepareGoods(sscId: number, pId: number) {
+  async prepareGoods(sscId: any, pId: 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.put(`http://dev.sgsino.cn/inventory/warehouse/mobile/?${sscId}&${pId}`, {},
+      from(this.nativeHttp.put(`http://dev.sgsino.cn/inventory/warehouse/mobile/prepare?sscId=${sscId}&pId=${pId}`, {},
           headers)).pipe(
           finalize(() => loading.dismiss())
       ).subscribe(async data => {
@@ -796,7 +798,7 @@ export class UserData {
         }
         const alert = await this.alertController.create({
           // header: 'Confirm!',
-          message,
+          message:message,
           buttons: [
             {
               text: '确定',