邵佳豪 3 years ago
parent
commit
3648f2fa24
  1. 5
      src/app/babylon/controller/serve-manager.ts
  2. 17
      src/app/babylon/model/data/mark/mark-plan-data.ts
  3. 18
      src/app/babylon/view/mark-window/mark-window.ts
  4. 9
      src/app/pages/left-domain/left-domain.component.html
  5. 11
      src/app/pages/left-domain/left-domain.component.ts
  6. 1
      src/app/pages/plan/plan.component.ts
  7. 11
      src/app/service/babylon/building-basic-infos.service.ts

5
src/app/babylon/controller/serve-manager.ts

@ -170,7 +170,7 @@ export class ServeManager {
.subscribe(data => { .subscribe(data => {
console.log("得到所有模板", data); console.log("得到所有模板", data);
if (onSuccess) { if (onSuccess) {
onSuccess(JSON.parse((data as any).items)); onSuccess((data as any).result.items);
} }
}, error => { }, error => {
console.error("From serve:AllMarkTemplate", error); console.error("From serve:AllMarkTemplate", error);
@ -188,7 +188,8 @@ export class ServeManager {
subscribe(data => { subscribe(data => {
console.log("得到单个模板" + id, data); console.log("得到单个模板" + id, data);
if (onSuccess) { if (onSuccess) {
// onSuccess( JSON.parse((data as any).result));
onSuccess(JSON.parse((data as any).result.value));
} }
}, error => { }, error => {
console.error("From serve:OneMarkTemplate", error); console.error("From serve:OneMarkTemplate", error);

17
src/app/babylon/model/data/mark/mark-plan-data.ts

@ -1,4 +1,4 @@
import { Type } from "class-transformer"; import { classToClass, Type } from "class-transformer";
import { TsTool } from "src/app/babylon/tool/ts-tool"; import { TsTool } from "src/app/babylon/tool/ts-tool";
@ -27,8 +27,6 @@ export class AllMarkPlanData {
datas: MarkPlanData[]; datas: MarkPlanData[];
/** /**
* *
* @param name * @param name
@ -40,6 +38,19 @@ export class AllMarkPlanData {
return data; return data;
} }
/**
*
* @param template
*/
createPlanDataByTemplate(template: MarkPlanData): MarkPlanData {
let id = this.getNextPlaneId();
let data = classToClass<MarkPlanData>(template);
data.id = id;
this.datas.push(data);
return data;
}
/** /**
* *
*/ */

18
src/app/babylon/view/mark-window/mark-window.ts

@ -1,7 +1,7 @@
import { AbstractMesh, Vector3 } from "@babylonjs/core"; import { AbstractMesh, Vector3 } from "@babylonjs/core";
import { PointerEventTypes, PointerInfo } from "@babylonjs/core/Events/pointerEvents"; import { PointerEventTypes, PointerInfo } from "@babylonjs/core/Events/pointerEvents";
import { EventState, Observer } from "@babylonjs/core/Misc/observable"; import { EventState, Observer } from "@babylonjs/core/Misc/observable";
import { classToClass } from "class-transformer"; import { classToClass, plainToClass } from "class-transformer";
import { PlanComponent } from "src/app/pages/plan/plan.component"; import { PlanComponent } from "src/app/pages/plan/plan.component";
import { DataManager } from "../../controller/data-manager"; import { DataManager } from "../../controller/data-manager";
import { EventManager } from "../../controller/event-manager/event-manager"; import { EventManager } from "../../controller/event-manager/event-manager";
@ -1597,24 +1597,26 @@ export class MarkWindow extends UIBase {
getAllSandBoxTemplate() { getAllSandBoxTemplate() {
let instance = this; let instance = this;
this.allSandBoxTemplate = []; this.allSandBoxTemplate = [];
ServeManager.instance.getAllMarkTemplate((data: string) => { ServeManager.instance.getAllMarkTemplate((data: any) => {
if (data == null) { if (data == null) {
instance.allSandBoxTemplate = []; instance.allSandBoxTemplate = [];
} }
else { else {
console.log("getAllSandBoxTemplate", data);
instance.allSandBoxTemplate = data;
} }
}); });
} }
/** /**
* *
* @param id * @param id
*/ */
getOneSandBoxTemplate(id: number) { addMarkPlanByTemplate(id: number) {
let instance = this; let instance = this;
ServeManager.instance.getOneMarkTemplate(id, (data: string) => { ServeManager.instance.getOneMarkTemplate(id, (data: any) => {
let value = plainToClass(MarkPlanData, data);
instance.allMarkPlanData.createPlanDataByTemplate(value);
}) })
} }
@ -1627,7 +1629,7 @@ export class MarkWindow extends UIBase {
*/ */
saveToSandBoxTemplate(data: MarkPlanData) { saveToSandBoxTemplate(data: MarkPlanData) {
let name: string = data.name; let name: string = data.name;
let id: number = new Date().getTime(); let id: number = Math.ceil(new Date().getTime() * 0.001);
let instance = this; let instance = this;
ServeManager.instance.saveOneMarkTemplate(id, name, data, (data: string) => { ServeManager.instance.saveOneMarkTemplate(id, name, data, (data: string) => {

9
src/app/pages/left-domain/left-domain.component.html

@ -217,6 +217,15 @@
<input nz-input #nodeName='ngModel' ngModel name="name" required/> <input nz-input #nodeName='ngModel' ngModel name="name" required/>
</nz-form-control> </nz-form-control>
</nz-form-item> </nz-form-item>
<nz-form-item *ngIf="addDisposalPop">
<nz-form-label [nzSpan]="6">选取模板</nz-form-label>
<nz-form-control>
<nz-select ngModel name="selectMould">
<nz-option nzValue="" nzLabel="无"></nz-option>
<nz-option [nzValue]="item.id" [nzLabel]="item.name" *ngFor="let item of allSandBoxTemplate"></nz-option>
</nz-select>
</nz-form-control>
</nz-form-item>
</form> </form>
</nz-modal> </nz-modal>
<nz-modal [(nzVisible)]="editSelectDisposal" nzTitle="编辑预案名称" [nzOkDisabled]='name.invalid'> <nz-modal [(nzVisible)]="editSelectDisposal" nzTitle="编辑预案名称" [nzOkDisabled]='name.invalid'>

11
src/app/pages/left-domain/left-domain.component.ts

@ -16,6 +16,7 @@ import { ServeManager } from 'src/app/babylon/controller/serve-manager';
import { ObjectsService } from 'src/app/service/objects.service'; import { ObjectsService } from 'src/app/service/objects.service';
import Viewer from 'viewerjs'; import Viewer from 'viewerjs';
import { HttpClient } from '@angular/common/http'; import { HttpClient } from '@angular/common/http';
import { MarkTemplate } from 'src/app/babylon/model/data/mark/mark-template-data';
@Component({ @Component({
selector: 'app-left-domain', selector: 'app-left-domain',
@ -239,6 +240,7 @@ export class LeftDomainComponent implements OnInit {
} }
allMarkPlanData: AllMarkPlanData; //处置预案节点数据 allMarkPlanData: AllMarkPlanData; //处置预案节点数据
allSandBoxTemplate: MarkTemplate[] = []; //所有模板
selectPlanId: number; selectPlanId: number;
selectNodeId: number; selectNodeId: number;
addDisposalPop: boolean = false; //显示/隐藏 创建预案 弹窗 addDisposalPop: boolean = false; //显示/隐藏 创建预案 弹窗
@ -247,8 +249,13 @@ export class LeftDomainComponent implements OnInit {
//创建预案/节点 //创建预案/节点
addDisposal(e) { addDisposal(e) {
if (this.addDisposalPop) { //创建预案 if (this.addDisposalPop) { //创建预案
MarkWindow.instance.createMarkPlaneData(e.name) if (e.selectMould) {
this.addDisposalPop = false MarkWindow.instance.addMarkPlanByTemplate(e.selectMould)
this.addDisposalPop = false
} else {
MarkWindow.instance.createMarkPlaneData(e.name)
this.addDisposalPop = false
}
} else { //创建节点 } else { //创建节点
MarkWindow.instance.createMarkNodeData(this.addNodePop, e.name) MarkWindow.instance.createMarkNodeData(this.addNodePop, e.name)
this.addNodePop = null this.addNodePop = null

1
src/app/pages/plan/plan.component.ts

@ -261,6 +261,7 @@ export class PlanComponent implements OnInit {
if (this.isShowChildComponent && this.leftDomain) { if (this.isShowChildComponent && this.leftDomain) {
if (type) { //创建预案 if (type) { //创建预案
this.leftDomain.addDisposalPop = true this.leftDomain.addDisposalPop = true
this.leftDomain.allSandBoxTemplate = MarkWindow.instance.allSandBoxTemplate
} else { //整体保存 } else { //整体保存
this.leftDomain.saveDisposal() this.leftDomain.saveDisposal()
} }

11
src/app/service/babylon/building-basic-infos.service.ts

@ -32,12 +32,12 @@ export class BuildingBasicInfosService {
/** /**
* *
*/ */
readonly api_sandBoxTemplate = "api/Services/3D/SandboxTemplate"; readonly api_sandBoxTemplate = "api/Services/3D/SandboxTemplate";
/** /**
* *
*/ */
readonly api_sandBoxTemplateGetAll = "api/Services/3D/SandboxTemplate/GetAll"; readonly api_sandBoxTemplateGetAll = "api/Services/3D/SandboxTemplate/GetAll";
@ -111,7 +111,7 @@ export class BuildingBasicInfosService {
* @param data * @param data
*/ */
postSandBoxTemplate(name: string, id: number, data: object) { postSandBoxTemplate(name: string, id: number, data: object) {
return this.postInfos(this.api_sandBoxTemplate, data, { name: name, "Id": id }); return this.postInfos(this.api_sandBoxTemplate, data, { name: name, "id": id });
} }
@ -156,7 +156,10 @@ export class BuildingBasicInfosService {
let headers = this.headers; let headers = this.headers;
return this.http.post<any>(api + this.c_post, `'${JSON.stringify(body)}'`, { headers, params }) let l_body = `'${JSON.stringify(body)}'`;
console.log("postInfos", l_body, api);
return this.http.post<any>(api + this.c_post, l_body, { headers, params })
.pipe( .pipe(
catchError((err) => this.handleError(err)) catchError((err) => this.handleError(err))
); );

Loading…
Cancel
Save