Commit a5b655ff by niuxiaolin

盘点接口新修改以及资源上传

parent 04fc4797
...@@ -128,3 +128,26 @@ export function convertModelToUrlData(data = {}, form = null, namespace = "") { ...@@ -128,3 +128,26 @@ export function convertModelToUrlData(data = {}, form = null, namespace = "") {
} }
return formData; return formData;
} }
export function b64toBlob(b64Data, contentType, sliceSize=512) {
contentType = contentType || '';
sliceSize = sliceSize || 512;
var byteCharacters = atob(b64Data);
var byteArrays = [];
for (var offset = 0; offset < byteCharacters.length; offset += sliceSize) {
var slice = byteCharacters.slice(offset, offset + sliceSize);
var byteNumbers = new Array(slice.length);
for (var i = 0; i < slice.length; i++) {
byteNumbers[i] = slice.charCodeAt(i);
}
var byteArray = new Uint8Array(byteNumbers);
byteArrays.push(byteArray);
}
var blob = new Blob(byteArrays, {type: contentType});
return blob;
}
\ No newline at end of file
<form [formGroup]="registerForm" (ngSubmit)="onSubmit()"> <form [formGroup]="registerForm" (ngSubmit)="onSubmit()">
<input type="hidden" formControlName="id" [ngModel]="detail.id">
<List [renderHeader]=(renderHeader)> <List [renderHeader]=(renderHeader)>
<ListItem [extra]="detail.modelNum">盘点单号</ListItem> <ListItem [extra]="detail.modelNum">盘点单号</ListItem>
<ListItem [extra]="detail.name">事项名称</ListItem> <ListItem [extra]="detail.name">事项名称</ListItem>
...@@ -16,7 +16,7 @@ ...@@ -16,7 +16,7 @@
<ListItem [extra]="detail.useUnit">产权单位</ListItem> <ListItem [extra]="detail.useUnit">产权单位</ListItem>
<ListItem [extra]="detail.company"> 管理单位</ListItem> <ListItem [extra]="detail.company"> 管理单位</ListItem>
<ListItem [extra]="detail.useUnit">使用单位</ListItem> <ListItem [extra]="detail.useUnit">使用单位</ListItem>
<app-form-select [options]="checkStaType" formControlName="checkSta"> <app-form-select [options]="checkStaType" formControlName="checkSta">
<font color="red">*</font>盘点状态 <font color="red">*</font>盘点状态
</app-form-select> </app-form-select>
<!-- <InputItem [placeholder]="'盘点单号'" [value]="detail.modelNum" [disabled]="disabled" [(ngModel)]="detail.modelNum"> <!-- <InputItem [placeholder]="'盘点单号'" [value]="detail.modelNum" [disabled]="disabled" [(ngModel)]="detail.modelNum">
...@@ -76,7 +76,7 @@ ...@@ -76,7 +76,7 @@
<ListItem> <ListItem>
<div class="submit-btn"> <div class="submit-btn">
<button Button [type]="'primary'" [size]="'small'" [inline]="true" (click)="onCheck()"> <button Button [type]="'primary'" [size]="'small'" [inline]="true">
执行 执行
</button> </button>
<button Button type="button" style="margin-left: 2.5px;" [size]="'small'" [inline]="true" (onClick)="onReset()"> <button Button type="button" style="margin-left: 2.5px;" [size]="'small'" [inline]="true" (onClick)="onReset()">
......
...@@ -2,7 +2,7 @@ import { Component, OnInit } from "@angular/core"; ...@@ -2,7 +2,7 @@ import { Component, OnInit } from "@angular/core";
import { Router, ActivatedRoute } from "@angular/router"; import { Router, ActivatedRoute } from "@angular/router";
import { switchMap } from "rxjs/operators"; import { switchMap } from "rxjs/operators";
import { Modal, Picker, Toast } from "ng-zorro-antd-mobile"; import { Modal, Picker, Toast, PickerService, ToastService, ModalService } from "ng-zorro-antd-mobile";
import { import {
FormGroup, FormGroup,
...@@ -15,6 +15,7 @@ import { ...@@ -15,6 +15,7 @@ import {
GaoDeLocation, GaoDeLocation,
PositionOptions PositionOptions
} from "@ionic-native/gao-de-location/ngx"; } from "@ionic-native/gao-de-location/ngx";
import { b64toBlob } from 'src/app/layout/service/util.service';
const data = []; const data = [];
@Component({ @Component({
...@@ -30,7 +31,8 @@ export class CheckAddComponent implements OnInit { ...@@ -30,7 +31,8 @@ export class CheckAddComponent implements OnInit {
private api: APIService, private api: APIService,
private fb: FormBuilder, private fb: FormBuilder,
private route: Router, private route: Router,
private gaoDeLocation: GaoDeLocation private gaoDeLocation: GaoDeLocation,
private _toast: ToastService
) { ) {
this.getCurrentPosition(); this.getCurrentPosition();
} }
...@@ -46,7 +48,8 @@ export class CheckAddComponent implements OnInit { ...@@ -46,7 +48,8 @@ export class CheckAddComponent implements OnInit {
registerForm: FormGroup; registerForm: FormGroup;
submit: any = { checkPlanAssetList: [] }; submit: any = { checkPlanAssetList: [] };
inventoryType = ["资产明细盘点", "资产范围盘点"]; inventoryType = ["资产明细盘点", "资产范围盘点"];
checkStaType = ["未开始", "待审核", "清查中", "已完成"]; checkStaType = ["未开始", "待审核", "清查中", "已完成","其他"];
fileStrs:[]=[];
detail: any = { asset: {}, belongUnit: {}, projectTeam: {}, assetClass: {} }; detail: any = { asset: {}, belongUnit: {}, projectTeam: {}, assetClass: {} };
msg: any = ""; msg: any = "";
formErrors: any = { formErrors: any = {
...@@ -93,6 +96,7 @@ export class CheckAddComponent implements OnInit { ...@@ -93,6 +96,7 @@ export class CheckAddComponent implements OnInit {
buildForm(): void { buildForm(): void {
this.registerForm = this.fb.group({ this.registerForm = this.fb.group({
mode: "add", mode: "add",
id:[],
invoicesNum: ["", Validators.required], invoicesNum: ["", Validators.required],
name: ["", Validators.required], name: ["", Validators.required],
inventoryType: [], inventoryType: [],
...@@ -105,9 +109,45 @@ export class CheckAddComponent implements OnInit { ...@@ -105,9 +109,45 @@ export class CheckAddComponent implements OnInit {
remarks: [] remarks: []
}); });
this.registerForm.valueChanges.subscribe(data => this.onValueChanged(data)); this.registerForm.valueChanges.subscribe(data => this.onValueChanged(data));
this.registerForm.controls['checkSta'].valueChanges.subscribe(value => {
if(value=="其他"){
this.showPromptPromise();
}
});
this.onValueChanged(); this.onValueChanged();
} }
showPromptPromise() {
ModalService.prompt(
'自定义盘点状态',
'',
[
{
text: '关闭',
onPress: value =>
new Promise(resolve => {
resolve();
})
},
{
text: '确定',
onPress: value =>
new Promise((resolve, reject) => {
this.detail.checkSta=value;
this.registerForm.controls["checkSta"].setValue(value);
resolve();
})
}
],
'default',
null
);
}
onValueChanged(data?: any) { onValueChanged(data?: any) {
if (!this.registerForm) { if (!this.registerForm) {
return; return;
...@@ -151,9 +191,13 @@ export class CheckAddComponent implements OnInit { ...@@ -151,9 +191,13 @@ export class CheckAddComponent implements OnInit {
} }
onSubmit() { onSubmit() {
var result = this.registerForm.value; // var result = this.registerForm.value;
console.log(result); // console.log(result);
result.checkPlanAssetList = [this.detail]; // result.checkPlanAssetList = [this.detail];
console.log(this.registerForm.value);
var result = {id:this.registerForm.value.id,remarks:this.registerForm.value.remarks,checkSta:this.registerForm.value.checkSta,checkAnnex:""}
result.checkAnnex = this.fileStrs.join(',');
this.api.addCheckPlan(result).subscribe(data => { this.api.addCheckPlan(result).subscribe(data => {
if (!data.success) { if (!data.success) {
this.msg = data.msg.replace(/\w+:/g, "*"); this.msg = data.msg.replace(/\w+:/g, "*");
...@@ -174,11 +218,36 @@ export class CheckAddComponent implements OnInit { ...@@ -174,11 +218,36 @@ export class CheckAddComponent implements OnInit {
fileChange(params) { fileChange(params) {
console.log(params); console.log(params);
const { files, type, index } = params; const { files, type, index ,operationType} = params;
if(operationType=="remove"){
this.fileStrs.splice(index);
return;
}
this.files = files; this.files = files;
var data = new FormData(); var data = new FormData();
data.append("file", files[0]); var block = files[0].url.split(";");
this.api.upload(data, "/asset/checkPlan"); // Get the content type of the image
var contentType = block[0].split(":")[1];// In this case "image/gif"
// get the real base64 content of the file
var realData = block[1].split(",")[1];// In this case "R0lGODlhPQBEAPeoAJosM...."
data.append("type", contentType);
data.append("name", "WU_FILE_0.jpg");
data.append("id", "WU_FILE_0");
data.append("file", b64toBlob( realData, contentType),"upload.jpg");
var query = {assetNum:this.detail.asset.num,modeName:"盘点",uploadPath:"/asset/checkPlan"};
var xhr = new XMLHttpRequest();
xhr.open("POST",`asset/a/sys/file/webupload/upload?assetNum=${this.detail.asset.num}&modelName=盘点&uploadPath=/asset/checkPlan`);
xhr.send(data);
const _this =this;
xhr.onreadystatechange= function(data){
if ( xhr.readyState !== 4 ) {
return;
}
_this.fileStrs.push((JSON.parse(xhr.responseText).body.url) as never);
}
} }
imageClick(params) { imageClick(params) {
......
...@@ -58,9 +58,10 @@ const ConsumableInspect = "asset/a/asset/consumableInspect/data"; ...@@ -58,9 +58,10 @@ const ConsumableInspect = "asset/a/asset/consumableInspect/data";
const ConsumableReceive = "asset/a/asset/consumableReceive/data"; const ConsumableReceive = "asset/a/asset/consumableReceive/data";
const FixedAssets = "asset/a/asset/assets/data?kindAsset=2"; const FixedAssets = "asset/a/asset/assets/data?kindAsset=2";
const QrCode = "asset/a/asset/qrCode/data"; const QrCode = "asset/a/asset/qrCode/data";
const CheckTask = "asset/a/asset/assets/view/qrCode/"; const CheckTask = "asset/a/asset/checkPlan/view/checkPlanList/";
const CheckSave = "asset/a/asset/checkPlan/save"; const CheckDetail = "asset/a/asset/checkPlan/view/checkInfo/";
const Upload = "asset/a/sys/file/webupload/upload?uploadPath=/asset/checkPlan"; const CheckSave = "asset/a/asset/checkPlan/save/result";
const Upload = "asset/a/sys/file/webupload/upload";
@Injectable({ @Injectable({
providedIn: "root" providedIn: "root"
}) })
...@@ -88,9 +89,9 @@ export class APIService { ...@@ -88,9 +89,9 @@ export class APIService {
}); });
} }
upload(data: FormData, path: string) { upload(data: FormData, obj: any) {
return this.http.post<any>(Upload, data, { return this.http.post<any>(Upload, data, {
params: { uploadPath: path }, params: obj,
headers: new HttpHeaders({ "Content-Type": "multipart/form-data;" }) headers: new HttpHeaders({ "Content-Type": "multipart/form-data;" })
}); });
} }
...@@ -99,7 +100,7 @@ export class APIService { ...@@ -99,7 +100,7 @@ export class APIService {
return this.http.post<any>(CheckTask + id, {}); return this.http.post<any>(CheckTask + id, {});
} }
getCheckTaskText(id, detailId): Observable<any> { getCheckTaskText(id, detailId): Observable<any> {
return this.http.post<any>(CheckTask + id + "/" + detailId, {}); return this.http.post<any>(CheckDetail + id + "/" + detailId, {});
} }
addCheckPlan(obj): Observable<any> { addCheckPlan(obj): Observable<any> {
......
...@@ -21,8 +21,7 @@ export class FormSelectComponent implements OnInit ,ControlValueAccessor { ...@@ -21,8 +21,7 @@ export class FormSelectComponent implements OnInit ,ControlValueAccessor {
selected:any = ""; selected:any = "";
change($event){ change($event){
const index = this.options.indexOf($event[0]); this.propagateChange($event[0]);
this.propagateChange(index);
} }
writeValue(obj: any): void { writeValue(obj: any): void {
this.selected = obj; this.selected = obj;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment