Kaynağa Gözat

照片从相册中选取,版本1.0.19

panxingxin 5 yıl önce
ebeveyn
işleme
df81e9a36b

+ 1 - 1
dev.xml

@@ -1,5 +1,5 @@
 <?xml version='1.0' encoding='utf-8'?>
-<widget id="com.ionicframework.devSgZongLi" version="1.0.18" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
+<widget id="com.ionicframework.devSgZongLi" version="1.0.19" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
     <name>SG测试</name>
     <description>An awesome Ionic/Cordova app.</description>
     <author email="hi@ionicframework.com" href="http://ionicframework.com/">Ionic Framework Team</author>

+ 1 - 1
prod.xml

@@ -1,5 +1,5 @@
 <?xml version='1.0' encoding='utf-8'?>
-<widget id="com.ionicframework.sgZongLi" version="1.0.17" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
+<widget id="com.ionicframework.sgZongLi" version="1.0.19" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
     <name>SG综礼</name>
     <description>An awesome Ionic/Cordova app.</description>
     <author email="hi@ionicframework.com" href="http://ionicframework.com/">Ionic Framework Team</author>

+ 1 - 0
src/app/contract-detail/contract-detail.page.html

@@ -71,6 +71,7 @@
         QA日志:
       </ion-label>
       <ion-textarea [(ngModel)]="contract.qalog"></ion-textarea>
+      <ion-icon name="cloud-upload" slot="end" (click)="choosePicture(contract)"></ion-icon>
       <ion-icon name="camera" slot="end" (click)="takePicture(contract)"></ion-icon>
     </ion-item>
     <ion-item>

+ 11 - 9
src/app/contract-detail/contract-detail.page.ts

@@ -1,7 +1,8 @@
 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 { Camera } from '@ionic-native/camera/ngx';
+import { CameraSetting } from '../../providers/camera-photo'
 import { commonService } from '../../providers/common.service'
 
 @Component({
@@ -20,6 +21,7 @@ export class ContractDetailPage implements OnInit {
   constructor(
     private camera: Camera,
     public commonService: commonService,
+    private cameraSetting: CameraSetting,
     private storage: Storage,
     public userData: UserData
   ) { }
@@ -60,15 +62,15 @@ export class ContractDetailPage implements OnInit {
     this.commonService.fullScreenImg(data)
   }
 
+  choosePicture(contract) {
+    this.showPicture(contract, this.cameraSetting.albumOption)
+  }
+
   takePicture(contract) {
-    const options: CameraOptions = {
-      quality: 90,
-      destinationType: this.camera.DestinationType.DATA_URL,
-      encodingType: this.camera.EncodingType.JPEG,
-      mediaType: this.camera.MediaType.PICTURE,
-      targetWidth: 1800,
-      targetHeight: 1350
-    }
+    this.showPicture(contract, this.cameraSetting.takePhotoOption)
+  }
+
+  showPicture(contract, options) {
 
     this.camera.getPicture(options).then((imageData) => {
       contract.imgList.push(

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

@@ -78,6 +78,7 @@
         QA日志:
       </ion-label>
       <ion-textarea [(ngModel)]="sample.qalog"></ion-textarea>
+      <ion-icon name="cloud-upload" slot="end" (click)="choosePicture(sample)"></ion-icon>
       <ion-icon name="camera" slot="end" (click)="takePicture(sample)"></ion-icon>
       <!-- <ion-col size="6" *ngFor="let photo of photos"> -->
       <!-- <img [src]="photo.data" /> -->

+ 27 - 13
src/app/sample-detail/sample-detail.page.ts

@@ -1,8 +1,10 @@
 import { Component, OnInit } from '@angular/core';
 import { Storage } from '@ionic/storage'
 import { UserData } from '../../providers/user-data';
+import { CameraSetting } from '../../providers/camera-photo'
 import { commonService } from '../../providers/common.service'
-import { Camera, CameraOptions } from '@ionic-native/camera/ngx';
+import { Camera } from '@ionic-native/camera/ngx';
+// import { ImagePicker, ImagePickerOptions } from '@ionic-native/image-picker/ngx';
 // import { PhotoService, Photo } from '../services/photo.service';
 
 @Component({
@@ -16,6 +18,8 @@ export class SampleDetailPage implements OnInit {
   constructor(
     // public photoService: PhotoService,
     private camera: Camera,
+    private cameraSetting: CameraSetting,
+    // private imagePicker: ImagePicker,
     private storage: Storage,
     public commonService: commonService,
     public userData: UserData) { }
@@ -66,21 +70,31 @@ export class SampleDetailPage implements OnInit {
   }
 
   takePicture(sample) {
-    const options: CameraOptions = {
-      quality: 90,
-      destinationType: this.camera.DestinationType.DATA_URL,
-      encodingType: this.camera.EncodingType.JPEG,
-      mediaType: this.camera.MediaType.PICTURE,
-      targetWidth: 1800,
-      targetHeight: 1350
-      // 1500
-    }
+    this.showPicture(sample, this.cameraSetting.takePhotoOption)
+  }
+
+  choosePicture(sample) {
+    // const options: ImagePickerOptions = {  
+    //   maximumImagesCount: 5,  
+    //   outputType: 1,  
+    //   width: 1800,
+    //   height: 1350,
+    //   quality: 90  
+    // };  
+
+    // this.imagePicker.getPictures(options).then((results) => {
+    //   for (var i = 0; i < results.length; i++) {
+    //       console.log('Image URI: ' + results[i]);
+    //   }
+    // }, (err) => { });
+    this.showPicture(sample, this.cameraSetting.albumOption)
+  }
 
+  showPicture(sample, options) {
     this.camera.getPicture(options).then((imageData) => {
       sample.imgList.push(
         'data:image/png;base64,' + imageData
       )
-      // sample.imgUrl = 'data:image/png;base64,' + imageData
       if (sample.imageData) {
         sample.imageData = sample.imageData + ',' + imageData
       } else {
@@ -103,7 +117,7 @@ export class SampleDetailPage implements OnInit {
       for (let j of i['qaIdList']) {
         this.userData.deleteSampleQa(j)
       }
-      if (i.qalog && i.imageData) { 
+      if (i.qalog && i.imageData) {
         let form = {
           sdpId: i.sdpId,
           mark: i.qalog,
@@ -127,7 +141,7 @@ export class SampleDetailPage implements OnInit {
   deletePicture(sample, index) {
     sample.imgList.splice(index, 1)
     let arr = sample.imageData.split(',')
-    arr.splice(index,1)
+    arr.splice(index, 1)
     sample.imageData = arr.toString()
   }
 }

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

@@ -115,6 +115,7 @@
         QC日志:
       </ion-label>
       <ion-textarea [(ngModel)]="qc.qclog"></ion-textarea>
+      <ion-icon name="cloud-upload" slot="end" (click)="choosePicture(qc)"></ion-icon>
       <ion-icon name="camera" slot="end" (click)="takePicture(qc)"></ion-icon>
     </ion-item>
     <ion-item>

+ 9 - 10
src/app/store-qc-detail/store-qc-detail.page.ts

@@ -1,7 +1,8 @@
 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 { Camera } from '@ionic-native/camera/ngx';
+import { CameraSetting } from '../../providers/camera-photo'
 import { commonService } from '../../providers/common.service'
 // import { FullScreenImage } from '@ionic-native/full-screen-image/ngx';
 
@@ -27,6 +28,7 @@ export class StoreQCDetailPage implements OnInit {
   showDetail: boolean = true
   constructor(private storage: Storage,
     public commonService: commonService,
+    private cameraSetting: CameraSetting,
     // private fullScreenImage: FullScreenImage,
     // public popoverCtrl: PopoverController,
     private camera: Camera,
@@ -92,16 +94,13 @@ export class StoreQCDetailPage implements OnInit {
     //   this.qcData['details'] = new Array(data)
     // }
   }
+  choosePicture(qc) {
+    this.showPicture(qc, this.cameraSetting.albumOption)
+  }
   takePicture(qc) {
-    const options: CameraOptions = {
-      quality: 90,
-      destinationType: this.camera.DestinationType.DATA_URL,
-      encodingType: this.camera.EncodingType.JPEG,
-      mediaType: this.camera.MediaType.PICTURE,
-      targetWidth: 1800,
-      targetHeight: 1350
-    }
-
+    this.showPicture(qc, this.cameraSetting.takePhotoOption)
+  }
+  showPicture(qc, options) {
     this.camera.getPicture(options).then((imageData) => {
       qc.qcimgList.push(
         'data:image/png;base64,' + imageData

+ 1 - 0
src/app/store-qc-scanning/store-qc-scanning.page.html

@@ -99,6 +99,7 @@
         QC日志:
       </ion-label>
       <ion-textarea [(ngModel)]="qc.qclog"></ion-textarea>
+      <ion-icon name="cloud-upload" slot="end" (click)="choosePicture(qc)"></ion-icon>
       <ion-icon name="camera" slot="end" (click)="takePicture(qc)"></ion-icon>
     </ion-item>
     <ion-item>

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

@@ -3,7 +3,8 @@ import { Router } from '@angular/router';
 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 { Camera } from '@ionic-native/camera/ngx';
+import { CameraSetting } from '../../providers/camera-photo'
 import { commonService } from '../../providers/common.service';
 import { ActivatedRoute } from '@angular/router'
 import { BarcodeScanner } from '@ionic-native/barcode-scanner/ngx';
@@ -24,6 +25,7 @@ export class StoreQCScanningPage implements OnInit {
     private barcodeScanner: BarcodeScanner,
     private activeRoute: ActivatedRoute,
     public commonService: commonService,
+    private cameraSetting: CameraSetting,
     private storage: Storage,
     public userData: UserData,
     private camera: Camera,
@@ -187,16 +189,14 @@ export class StoreQCScanningPage implements OnInit {
     }
   }
 
+  choosePicture(qc) {
+    this.showPicture(qc, this.cameraSetting.albumOption)
+  }
   takePicture(qc) {
-    const options: CameraOptions = {
-      quality: 90,
-      destinationType: this.camera.DestinationType.DATA_URL,
-      encodingType: this.camera.EncodingType.JPEG,
-      mediaType: this.camera.MediaType.PICTURE,
-      targetWidth: 1800,
-      targetHeight: 1350
-    }
+    this.showPicture(qc, this.cameraSetting.takePhotoOption)
+  }
 
+  showPicture(qc, options) {
     this.camera.getPicture(options).then((imageData) => {
       qc.qcimgList.push(
         'data:image/png;base64,' + imageData

+ 31 - 0
src/providers/camera-photo.ts

@@ -0,0 +1,31 @@
+import { Camera, CameraOptions } from '@ionic-native/camera/ngx';
+import { Injectable } from '@angular/core';
+
+@Injectable({
+    providedIn: 'root'
+})
+
+export class CameraSetting {
+    public albumOption: CameraOptions = {
+        quality: 90,
+        destinationType: this.camera.DestinationType.DATA_URL,
+        encodingType: this.camera.EncodingType.JPEG,
+        mediaType: this.camera.MediaType.PICTURE,
+        sourceType: this.camera.PictureSourceType.SAVEDPHOTOALBUM,
+        targetWidth: 1800,
+        targetHeight: 1350
+    }
+
+    public takePhotoOption: CameraOptions = {
+        quality: 90,
+        destinationType: this.camera.DestinationType.DATA_URL,
+        encodingType: this.camera.EncodingType.JPEG,
+        mediaType: this.camera.MediaType.PICTURE,
+        sourceType: this.camera.PictureSourceType.CAMERA,
+        targetWidth: 1800,
+        targetHeight: 1350
+        // 1500
+    }
+    constructor(private camera: Camera) {
+    }
+}