import { Injectable } from '@angular/core'; import { Events, LoadingController, ToastController } from '@ionic/angular'; import { Storage } from '@ionic/storage'; import { HTTP } from '@ionic-native/http/ngx'; import { from } from 'rxjs'; import { Router } from '@angular/router'; import { AlertController } from '@ionic/angular'; import { finalize } from 'rxjs/operators'; import { queryForm } from './query'; import { environment } from '../environments/environment'; @Injectable({ providedIn: 'root' }) export class UserData { // tslint:disable-next-line:variable-name _favorites: string[] = []; HAS_LOGGED_IN = 'hasLoggedIn'; HAS_SEEN_TUTORIAL = 'hasSeenTutorial'; constructor( public events: Events, private nativeHttp: HTTP, private loadingCtrl: LoadingController, public alertController: AlertController, public storage: Storage, public queryForm: queryForm, private router: Router, private toastCtrl: ToastController ) { // this.nativeHttp.setDataSerializer('json') } // hasFavorite(sessionName: string): boolean { // return (this._favorites.indexOf(sessionName) > -1); // } // addFavorite(sessionName: string): void { // this._favorites.push(sessionName); // } // removeFavorite(sessionName: string): void { // const index = this._favorites.indexOf(sessionName); // if (index > -1) { // this._favorites.splice(index, 1); // } // } // 登录 login(account: string, password: string): Promise { return this.storage.set(this.HAS_LOGGED_IN, false).then(async () => { const loading = await this.loadingCtrl.create(); await loading.present(); // Returns a promise, need to convert with of() to Observable (if want)! // this.nativeHttp.setDataSerializer('json') // tslint:disable-next-line:max-line-length from(this.nativeHttp.post(`${environment.APP_SERVE_URL}/auth/oauth/token?username=${account}&password=${encodeURIComponent(password)}&grant_type=password&scope=server`, {}, { Authorization: 'Basic cGlnOnBpZw==', TENANT_ID: '1', isToken: 'false', })).pipe( finalize(() => loading.dismiss()) ).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(); } else { this.storage.set('access_token', JSON.parse(data.data).access_token); this.storage.set('username', JSON.parse(data.data).username); this.storage.set('user_id', JSON.parse(data.data).user_id); this.storage.set(this.HAS_LOGGED_IN, true); this.router.navigateByUrl('/home'); return this.events.publish('user:login'); } }, async err => { console.log(err); const toast = await this.toastCtrl.create({ message: err.error + err.url, duration: 1000, position: 'top' }); await toast.present(); }); return; }); } // signup(username: string): Promise { // return this.storage.set(this.HAS_LOGGED_IN, true).then(() => { // this.setUsername(username); // return this.events.publish('user:signup'); // }); // } getToken(): Promise { return this.storage.get('access_token').then((val) => { return val; }); } // 获取App menu async getAppMenu(): Promise { const token = await this.getToken(); return new Promise((resolve, reject) => { from(this.nativeHttp.get(`${environment.APP_SERVE_URL}/admin/menu/app`, {}, { Authorization: `Bearer ${token}`, 'Content-Type': 'application/json;charset=UTF-8' })).pipe( finalize(() => { }) ).subscribe(async data => { // console.log(JSON.parse(data.data)) resolve(JSON.parse(data.data).data) }, async err => { console.log(err); const toast = await this.toastCtrl.create({ message: '查询目录失败', duration: 1000, position: 'top' }); await toast.present(); }); return; }) } async logout(): Promise { const alert = await this.alertController.create({ header: '安全退出', message: '确定要登出吗', buttons: [ { text: '确定', role: 'cancel', cssClass: 'secondary', handler: () => { this.router.navigateByUrl('/login'); return this.storage.remove(this.HAS_LOGGED_IN).then(async () => { }).then(() => { this.events.publish('user:logout'); }); } }, { text: '取消' } ] }); await alert.present(); return this.storage.clear(); } // 开单号扫描 async ssfCodeScan(data: object): Promise { 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(`${environment.APP_SERVE_URL}/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 { 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.get(`${environment.APP_SERVE_URL}/production/sample/factory/pCode`, data, headers)).pipe( finalize(() => loading.dismiss() ) ).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 { 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(`${environment.APP_SERVE_URL}/production/sample/factory/details/`, data, headers)).pipe( finalize(() => loading.dismiss()) ).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 { 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(`${environment.APP_SERVE_URL}/search/samples/mobile/page`, form, headers)).pipe( finalize(() => loading.dismiss()) ).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(); reject() } else if (JSON.parse(data.data).code == 0) { resolve(JSON.parse(data.data)) } // this.storage.set('sample-table-data', data.data); // this.router.navigateByUrl('/sample-table'); }, async err => { console.log(err); const toast = await this.toastCtrl.create({ message: '查询失败', duration: 1000, position: 'top' }); await toast.present(); }); return; }) } // 获得采购合同列表 async getContractTableData(form: object): Promise { 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(`${environment.APP_SERVE_URL}/search/supplier/contract/mobile/page`, form, headers)).pipe( finalize(() => loading.dismiss()) ).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(); reject() } else if (JSON.parse(data.data).code == 0) { resolve(JSON.parse(data.data)) } }, async err => { console.log(err); const toast = await this.toastCtrl.create({ message: '查询失败', duration: 1000, position: 'top' }); await toast.present(); }); return; }) } // 获取样品单详情 // tslint:disable-next-line:ban-types async getSampleDetail(sdId: Number): Promise { 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.get(`${environment.APP_SERVE_URL}/production/samples/mobile/${sdId}`, {}, headers)).pipe( finalize(() => loading.dismiss()) ).subscribe(async data => { resolve(data.data); }, async err => { console.log(err); const toast = await this.toastCtrl.create({ message: '查询失败', duration: 1000, position: 'top' }); await toast.present(); }); }); } // 获取样品单QA详情 async getSampleQAlog(sdpId: Number): Promise { const token = await this.getToken(); this.nativeHttp.setDataSerializer('json'); const headers = { Authorization: `Bearer ${token}`, 'Content-Type': 'application/json;charset=UTF-8' }; return new Promise((resolve, reject) => { from(this.nativeHttp.get(`${environment.APP_SERVE_URL}/production/samples/mobile/qalog/${sdpId}`, {}, headers)).pipe( finalize(() => {}) ).subscribe(async data => { resolve(data.data); }, async err => { console.log(err); const toast = await this.toastCtrl.create({ message: '查询失败', duration: 1000, position: 'top' }); await toast.present(); }); }); } // 样品单保存(添加QA日志) async saveSampleDetail(form: any): Promise { const token = await this.getToken(); const loading = await this.loadingCtrl.create(); await loading.present(); this.nativeHttp.setDataSerializer('urlencoded'); // let headers = new Headers({ // 'Authorization': `Bearer ${token}`, // 'enctype': 'multipart/form-data; boundary=----WebKitFormBoundaryuL67FWkv1CA' // }) const header = { Authorization: `Bearer ${token}` }; return new Promise((resolve, reject) => { from(this.nativeHttp.post(`${environment.APP_SERVE_URL}/production/samples/mobile/qalog`, form, header)).pipe( finalize(() => loading.dismiss()) ).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(data.data); } const toast = await this.toastCtrl.create({ message: message, duration: 1000, position: 'top' }); await toast.present(); }, async err => { console.log(err); const toast = await this.toastCtrl.create({ message: '保存失败', duration: 1000, position: 'top' }); await toast.present(); }); }); } // 删除qa日志 async deleteSampleQa(id: any): Promise { const token = await this.getToken(); const loading = await this.loadingCtrl.create(); await loading.present(); const header = { Authorization: `Bearer ${token}` }; return new Promise((resolve, reject) => { from(this.nativeHttp.delete(`${environment.APP_SERVE_URL}/inventory/qa/mobile/qalog/${id}`, {}, header)).pipe( finalize(() => loading.dismiss()) ).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(); } }, async err => { console.log(err); const toast = await this.toastCtrl.create({ message: '操作失败', duration: 1000, position: 'top' }); await toast.present(); }); }); } // 删除qc日志 async deleteSampleQc(id: any): Promise { const token = await this.getToken(); const loading = await this.loadingCtrl.create(); await loading.present(); const header = { Authorization: `Bearer ${token}` }; return new Promise((resolve, reject) => { from(this.nativeHttp.delete(`${environment.APP_SERVE_URL}/inventory/qc/mobile/qclog/${id}`, {}, header)).pipe( finalize(() => loading.dismiss()) ).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(); } }, async err => { console.log(err); const toast = await this.toastCtrl.create({ message: '操作失败', duration: 1000, position: 'top' }); await toast.present(); }); }); } // 获取采购合同详情 async getContractDetail(sscId: Number): Promise { 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.get(`${environment.APP_SERVE_URL}/production/purchase/mobile/${sscId}`, {}, headers)).pipe( finalize(() => loading.dismiss()) ).subscribe(async data => { resolve(data.data); }, async err => { console.log(err); const toast = await this.toastCtrl.create({ message: '查询失败', duration: 1000, position: 'top' }); await toast.present(); }); }); } // 保存采购合同qa日志 async contractQAlog(form: any): Promise { const token = await this.getToken(); const loading = await this.loadingCtrl.create(); await loading.present(); this.nativeHttp.setDataSerializer('urlencoded'); const headers = { Authorization: `Bearer ${token}` }; return new Promise((resolve, reject) => { from(this.nativeHttp.post(`${environment.APP_SERVE_URL}/inventory/qa/mobile/qalog`, form, headers)).pipe( finalize(() => loading.dismiss()) ).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(data.data); } const toast = await this.toastCtrl.create({ message, duration: 1000, position: 'top' }); await toast.present(); }, async err => { console.log(err); const toast = await this.toastCtrl.create({ message: '保存失败', duration: 1000, position: 'top' }); await toast.present(); }); }); } // 获取采购合同QA日志 async getQAlog(sscId: any, pId: any): Promise { const token = await this.getToken(); this.nativeHttp.setDataSerializer('json'); const headers = { Authorization: `Bearer ${token}` }; return new Promise((resolve, reject) => { from(this.nativeHttp.get(`${environment.APP_SERVE_URL}/inventory/qa/mobile/qalog/${sscId}/${pId}`, {}, headers)).pipe( finalize(() => { }) ).subscribe(async data => { resolve(data.data); }, async err => { console.log(err); const toast = await this.toastCtrl.create({ message: '查询失败', duration: 1000, position: 'top' }); await toast.present(); }); }); } // 获取采购合同QC日志 async getQClog(sscId: any, pId: any): Promise { const token = await this.getToken(); const headers = { Authorization: `Bearer ${token}` }; return new Promise((resolve, reject) => { from(this.nativeHttp.get(`${environment.APP_SERVE_URL}/inventory/qc/mobile/qclog/${sscId}/${pId}`, {}, headers)).pipe( finalize(() => { }) ).subscribe(async data => { resolve(data.data); }, async err => { console.log(err); const toast = await this.toastCtrl.create({ message: '查询失败', duration: 1000, position: 'top' }); await toast.present(); }); }); } // 获取入库详情 async getStoreDetail(sscId: number, pId: number): Promise { 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.get(`${environment.APP_SERVE_URL}/inventory/enterStore/mobile/detail?sscId=${sscId}&pId=${pId}`, {}, headers)).pipe( finalize(() => loading.dismiss()) ).subscribe(async data => { if (data.data === null) { const toast = await this.toastCtrl.create({ message: '无数据', duration: 1000, position: 'top' }); await toast.present(); resolve([]); } resolve(data.data); }, async err => { console.log(err); const toast = await this.toastCtrl.create({ message: '查询失败', duration: 1000, position: 'top' }); await toast.present(); }); }); } // 获取仓库样品 async getStoreSampleDetail(code: string): Promise { 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.get(`${environment.APP_SERVE_URL}/inventory/shelf/mobile/code?code=${code}`, {}, headers)).pipe( finalize(() => loading.dismiss()) ).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([]); } resolve(data.data); }, async err => { console.log(err); const toast = await this.toastCtrl.create({ message: '查询失败', duration: 1000, position: 'top' }); await toast.present(); }); }); } // 生成入库单 async saveStoreDetail(list: Array<[]>): Promise { 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(`${environment.APP_SERVE_URL}/inventory/enterStore/mobile/`, list, headers)).pipe( finalize(() => loading.dismiss()) ).subscribe(async data => { let message = ''; if (JSON.parse(data.data).code === 0) { message = `保存成功,入库单号为${JSON.parse(data.data).data}`; } else if (JSON.parse(data.data).code === 1) { message = JSON.parse(data.data).msg; } const alert = await this.alertController.create({ // header: 'Confirm!', 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 toast.present(); }); }); } // 获取货架列表 async getStoreSampleList(current: number, size: number): Promise { 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.get(`${environment.APP_SERVE_URL}/inventory/shelf/mobile?${current}&${size}`, {}, headers)).pipe( finalize(() => loading.dismiss()) ).subscribe(async 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([]); } 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(); }); }); } // 货架借出销毁 async changeShelf(list: object): Promise { 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(`${environment.APP_SERVE_URL}/inventory/shelf/mobile`, list, 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, 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 toast.present(); }); }); } // 货架借出 async changeShelfLend(code: string): Promise { const token = await this.getToken(); const loading = await this.loadingCtrl.create(); await loading.present(); const headers = { Authorization: `Bearer ${token}` }; return new Promise((resolve, reject) => { from(this.nativeHttp.put(`${environment.APP_SERVE_URL}/inventory/shelf/mobile/lend?code=${code}`, {}, headers)).pipe( finalize(() => loading.dismiss()) ).subscribe(async data => { console.log(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, 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 toast.present(); }); }); } // 生成条形码 async createBarCode(code: string): Promise { 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.get(`${environment.APP_SERVE_URL}/inventory/shelf/mobile/12`, {}, headers)).pipe( finalize(() => loading.dismiss()) ).subscribe(async data => { resolve(data); }, async err => { const toast = await this.toastCtrl.create({ message: '查询失败', duration: 1000, position: 'top' }); await toast.present(); }); }); } // 货架货号绑定 async shelveBinding(list: Object): Promise { 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(`${environment.APP_SERVE_URL}/inventory/shelf/mobile/bind/sample`, list, 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 toast = await this.toastCtrl.create({ message, duration: 1000, position: 'top' }); await toast.present(); resolve(data); }, async err => { console.log(err); const toast = await this.toastCtrl.create({ message: '绑定失败', duration: 1000, position: 'top' }); await toast.present(); }); }); } // 获取待验货物列表 async getStorePendingList(current: number, size: number): Promise { 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.get(`${environment.APP_SERVE_URL}/inventory/qc/mobile/Pending?${current}&${size}`, {}, headers)).pipe( finalize(() => loading.dismiss()) ).subscribe(async 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([]); } 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(); }); }); } // 获取待备样列表 async getStoreSamplePendingList(current: number, size: number): Promise { 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.get(`${environment.APP_SERVE_URL}/inventory/shelf/mobile/pending?${current}&${size}`, {}, headers)).pipe( finalize(() => loading.dismiss()) ).subscribe(async 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([]); } 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(); }); }); } // 获取待备货列表 async getWarehouseManagePendingList(current: number, size: number): Promise { 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.get(`${environment.APP_SERVE_URL}/inventory/warehouse/mobile/pending?${current}&${size}`, {}, 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: '无数据', 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(); }); }); } // 备货完成 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(`${environment.APP_SERVE_URL}/inventory/warehouse/mobile/prepare?sscId=${sscId}&pId=${pId}`, {}, 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) => { } } ] }); 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(); }); }); } // 获取QC验货初检报告列表 async getQCList(current: number, size: number): Promise { 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.get(`${environment.APP_SERVE_URL}/inventory/qc/mobile?${current}&${size}`, {}, headers)).pipe( finalize(() => loading.dismiss()) ).subscribe(async 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([]); } 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(); }); }); } // 获取QC验货初检报告详情 async getQCDetail(sscId: number, pId: number): Promise { 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.get(`${environment.APP_SERVE_URL}/inventory/qc/mobile/detail?sscId=${sscId}&pId=${pId}`, {}, headers)).pipe( finalize(() => loading.dismiss()) ).subscribe(async data => { let message = ''; if (JSON.parse(data.data).code == 0) { resolve(JSON.parse(data.data).data); } else if (JSON.parse(data.data).code == 1) { message = JSON.parse(data.data).msg; const toast = await this.toastCtrl.create({ message, duration: 1000, position: 'top' }); await toast.present(); } }, async err => { console.log(err); const toast = await this.toastCtrl.create({ message: '查询失败', duration: 1000, position: 'top' }); await toast.present(); }); }); } // 生成QC验货初检报告 async createQC(form: any): Promise { 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(`${environment.APP_SERVE_URL}/inventory/qc/mobile`, form, headers)).pipe( finalize(() => loading.dismiss()) ).subscribe(async data => { if (JSON.parse(data.data).msg === 'success') { const alert = await this.alertController.create({ // header: 'Confirm!', message: `生成成功,初检报告编号${JSON.parse(data.data).data}`, buttons: [ { text: '确定', role: 'cancel', cssClass: 'secondary', handler: (blah) => { } } ] }); await alert.present(); } resolve(JSON.parse(data.data)); }, async err => { console.log(err); const toast = await this.toastCtrl.create({ message: '生成失败', duration: 1000, position: 'top' }); await toast.present(); }); }); } // 添加qc日志 async addQClog(form: any): Promise { const token = await this.getToken(); const loading = await this.loadingCtrl.create(); await loading.present(); this.nativeHttp.setDataSerializer('urlencoded'); const headers = { Authorization: `Bearer ${token}` }; return new Promise((resolve, reject) => { from(this.nativeHttp.post(`${environment.APP_SERVE_URL}/inventory/qc/mobile/qclog`, form, headers)).pipe( finalize(() => loading.dismiss()) ).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)); } const toast = await this.toastCtrl.create({ message, duration: 1000, position: 'top' }); await toast.present(); }, async err => { console.log(err); const toast = await this.toastCtrl.create({ message: '添加失败', duration: 1000, position: 'top' }); await toast.present(); }); }); } setUsername(username: string): Promise { return this.storage.set('username', username); } getUsername(): Promise { return this.storage.get('username').then((value) => { return value; }); } isLoggedIn(): Promise { return this.storage.get(this.HAS_LOGGED_IN).then((value) => { return value === true; }); } // checkHasSeenTutorial(): Promise { // return this.storage.get(this.HAS_SEEN_TUTORIAL).then((value) => { // return value; // }); // } }