import { Component, OnInit } from '@angular/core'; import { Storage } from '@ionic/storage' import { UserData } from '../../providers/user-data'; import { Camera } from '@ionic-native/camera/ngx'; import { CameraSetting } from '../../providers/camera-photo' import { commonService } from '../../providers/common.service' import { ImagePicker, ImagePickerOptions } from '@ionic-native/image-picker/ngx'; import { Base64 } from '@ionic-native/base64/ngx'; // import { FullScreenImage } from '@ionic-native/full-screen-image/ngx'; // import { PopoverController } from '@ionic/angular' // import { PopoverPage } from '../qc-popover/qc-popover'; @Component({ selector: 'app-store-qc-detail', templateUrl: './store-qc-detail.page.html', styleUrls: ['./store-qc-detail.page.scss'], }) export class StoreQCDetailPage implements OnInit { defaultHref = "" qcData = { details: [] } QCdetails = { details: [] } pId = '' sscId = '' showDetail: boolean = true constructor(private storage: Storage, public commonService: commonService, private cameraSetting: CameraSetting, private base64: Base64, private imagePicker: ImagePicker, // private fullScreenImage: FullScreenImage, // public popoverCtrl: PopoverController, private camera: Camera, public userData: UserData) { } ngOnInit() { this.showDetail = true this.storage.get('QCdetails').then((val) => { this.QCdetails = JSON.parse(val) }); this.storage.get('qc-pId').then((val) => { this.pId = val }); this.storage.get('qc-sscId').then((val) => { this.sscId = val }); } ionViewDidEnter() { // console.log(this.fullScreenImage) this.getDetail() } showFullScreenImage(data) { this.commonService.fullScreenImg(data) } async getDetail() { if (this.QCdetails) { this.qcData = this.QCdetails for (let i of this.qcData['details']) { this.showDetail = false // 获取QA日志 i.qaimgList = [] i.qcimgList = [] i['qcIdList'] = [] let qalogdata = await this.userData.getQAlog(i.sscId, i.pid) if (JSON.parse(qalogdata).data.length !== 0) { i.qalog = JSON.parse(qalogdata).data[0].mark i.qaimgList = JSON.parse(qalogdata).data[0].picture.split(",") } let qclogdata = await this.userData.getQClog(i.sscId, i.pid) if (JSON.parse(qclogdata).data.length !== 0) { for (let j of JSON.parse(qclogdata).data) { i['qcIdList'].push(j.id) // qc记录的id数组 } i.qclog = JSON.parse(qclogdata).data[0].mark i.qcimgList = JSON.parse(qclogdata).data[0].picture.split(",") i.imageData = JSON.parse(qclogdata).data[0].picture } // 处理意见转换boolean if (i.dealpropose == 1) { i.deal = true } else { i.deal = false } } this.defaultHref = `/store-qc`; } // if (this.pId && this.sscId) { // let data = await this.userData.getQCDetail(this.pId, this.sscId) // this.defaultHref = `/store-qc-scanning`; // this.qcData['details'] = new Array(data) // } } choosePicture(qc) { const options: ImagePickerOptions = { maximumImagesCount: 10, outputType: 1, width: 1800, height: 1350, quality: 90 }; this.imagePicker.getPictures(options).then((results) => { for (var i = 0; i < results.length; i++) { this.base64.encodeFile(results[i]).then((base64File: string) => { qc.qcimgList.push( base64File ) let imageData = base64File.split('base64,')[1] if (qc.imageData) { qc.imageData = qc.imageData + ',' + imageData } else { qc.imageData = '' + imageData } }, (err) => { console.log(err); }); } }, (err) => { }); // this.showPicture(qc, this.cameraSetting.albumOption) } takePicture(qc) { this.showPicture(qc, this.cameraSetting.takePhotoOption) } showPicture(qc, options) { this.camera.getPicture(options).then((imageData) => { qc.qcimgList.push( 'data:image/png;base64,' + imageData ) if (qc.imageData) { qc.imageData = qc.imageData + ',' + imageData } else { qc.imageData = '' + imageData } }, (err) => { // Handle error console.log("Camera issue: " + err); }); } deletePicture(qc, index) { qc.qcimgList.splice(index, 1) let arr = qc.imageData.split(',') arr.splice(qc, 1) qc.imageData = arr.toString() } // async presentPopover(event: Event) { // const popover = await this.popoverCtrl.create({ // component: PopoverPage, // event: event, // translucent: true // }); // return await popover.present(); // } async createQC() { await this.userData.createQC(this.qcData['details']) } async addQClog() { for (let i of this.qcData['details']) { for (let j of i['qcIdList']) { this.userData.deleteSampleQc(j) } if (i.imageData) { let form = { files: i.imageData, mark: i.qclog, pId: i.pid, sscId: i.sscId } await this.userData.addQClog(form) } } } }