From ff69fdc805489937466c1ba94df5b4bfa2af551e Mon Sep 17 00:00:00 2001
From: cpf <1105965053@qq.com>
Date: Fri, 29 Oct 2021 14:02:31 +0800
Subject: [PATCH] =?UTF-8?q?=E5=BB=BA=E7=AD=91=E5=88=97=E8=A1=A8=E5=AE=8C?=
=?UTF-8?q?=E5=96=84?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/app/pages/pages.module.ts | 4 +-
src/app/pages/plan/plan.component.html | 21 ++++++++
src/app/pages/plan/plan.component.scss | 67 +++++++++++++++++++++++
src/app/pages/plan/plan.component.ts | 75 +++++++++++++++++++++++++-
4 files changed, 163 insertions(+), 4 deletions(-)
diff --git a/src/app/pages/pages.module.ts b/src/app/pages/pages.module.ts
index 9801b0f..28167ce 100644
--- a/src/app/pages/pages.module.ts
+++ b/src/app/pages/pages.module.ts
@@ -12,8 +12,6 @@ import { RouterModule } from '@angular/router';
import { LoginComponent } from './login/login.component';
import { RegisterComponent } from './register/register.component';
import { HomeComponent } from './home/home.component';
-
-
import { NzFormModule } from 'ng-zorro-antd/form';
import { NzInputModule } from 'ng-zorro-antd/input';
import { UiModule } from '../ui/ui.module';
@@ -22,12 +20,12 @@ import { PlanComponent } from './plan/plan.component';
import { PagesRoutingModule } from './pages-routing.module';
import { TodayWarningComponent } from './today-warning/today-warning.component';
import { CriminalRecordsComponent } from './criminal-records/criminal-records.component';
-
import { NzSelectModule } from 'ng-zorro-antd/select';
import { NzDatePickerModule } from 'ng-zorro-antd/date-picker';
import { NzIconModule } from 'ng-zorro-antd/icon';
import { NzGridModule } from 'ng-zorro-antd/grid';
import { NzModalModule } from 'ng-zorro-antd/modal';
+
@NgModule({
declarations: [LoginComponent, RegisterComponent, HomeComponent, PlanComponent, TodayWarningComponent, CriminalRecordsComponent,],
imports: [
diff --git a/src/app/pages/plan/plan.component.html b/src/app/pages/plan/plan.component.html
index bf2dc3b..85e1e3c 100644
--- a/src/app/pages/plan/plan.component.html
+++ b/src/app/pages/plan/plan.component.html
@@ -1,3 +1,24 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/app/pages/plan/plan.component.scss b/src/app/pages/plan/plan.component.scss
index ea25d2d..7457f99 100644
--- a/src/app/pages/plan/plan.component.scss
+++ b/src/app/pages/plan/plan.component.scss
@@ -4,4 +4,71 @@
overflow: hidden;
position: relative;
canvas{ width: 100%; height: 100%; border: none; outline: none; }
+}
+//文本溢出
+.overflowText{
+ overflow: hidden;
+ text-overflow:ellipsis;
+ white-space: nowrap;
+}
+
+//左侧建筑
+.showLeftBuilding{
+ width: 30px;
+ height: 30px;
+ line-height: 30px;
+ text-align: center;
+ position: absolute;
+ left: 1px;
+ top: 50%;
+ margin-top: -15px;
+ color: #48A5FF;
+ background: rgba(0,17,33,0.7);
+ border-radius: 0px 50% 50% 0px;
+}
+.leftBuilding{
+ width: 230px;
+ height: 70%;
+ position: absolute;
+ left: 1px;
+ top: 0;
+ bottom: 0;
+ margin: auto;/*这行代码是关键*/
+ background: rgba(0,17,33,0.7);
+ border-radius: 0px 10px 10px 0px;
+ margin-left: 0;
+ transition: margin-left 0.5s;
+ display: flex;
+ flex-direction: column;
+ .hideLeft { text-align: right; color: #fff; padding: 3px 5px; z-index: 10; }
+ .leftHeader {
+ overflow: hidden;
+ text-align: center;
+ margin-top: -15px;
+ h1 { font-size: 18px; color: #fff; margin-bottom: 10px; }
+ button { width: 90%; }
+ }
+ .leftCenter{
+ flex: 1;
+ overflow-x: hidden;
+ overflow-y: auto;
+ .everyBuilding {
+ height: 30px;
+ line-height: 30px;
+ margin-top: 5px;
+ box-sizing: border-box;
+ padding-left: 5px;
+ color: #fff;
+ font-size: 16px;
+ display: flex;
+ border-bottom: 1px solid rgba(255, 255, 255, 0.1);
+ .modelTitle { font-size: 14px; }
+ label { display: block; }
+ }
+ .selectLeftBuilding { background-color: #2196f3; } //选中样式
+ }
+}
+.isShowLeftBuilding{ //隐藏 动态效果
+ margin-left: -300px;
+ transition: margin-left 0.5s;
}
\ No newline at end of file
diff --git a/src/app/pages/plan/plan.component.ts b/src/app/pages/plan/plan.component.ts
index a393299..f3e155a 100644
--- a/src/app/pages/plan/plan.component.ts
+++ b/src/app/pages/plan/plan.component.ts
@@ -1,5 +1,14 @@
import { Component, ElementRef, OnInit } from '@angular/core';
import { Game } from 'src/app/babylon/game';
+import { LoginSatus } from 'src/app/babylon/controller/status/login-status';
+import { StatusManager } from 'src/app/babylon/controller/status/status-manager';
+import { InsitutionDataSimple } from 'src/app/babylon/model/data/institution/institution-data-simple';
+import { ModeManager } from 'src/app/babylon/controller/mode-manager';
+import { ServeManager } from 'src/app/babylon/controller/serve-manager';
+import { BuildingBasicInfosService } from 'src/app/service/babylon/building-basic-infos.service';
+import { ObjectsService } from 'src/app/service/objects.service';
+
+
@Component({
selector: 'app-plan',
@@ -8,21 +17,85 @@ import { Game } from 'src/app/babylon/game';
})
export class PlanComponent implements OnInit {
- constructor(private element: ElementRef,) { }
+ constructor(private element: ElementRef,private buildingBISrv: BuildingBasicInfosService, private objectsSrv: ObjectsService,) { }
static instance: PlanComponent;
public game: Game = new Game();
+ public beforeOneSatus; //当前 satus
public canvas: HTMLCanvasElement; //canvas 实例
ngOnInit(): void {
PlanComponent.instance = this;
+ // ServeManager.Init(this.buildingBISrv, this.objectsSrv);
this.canvas = this.element.nativeElement.querySelector('#center') as HTMLCanvasElement;
this.game.init(this.canvas);
}
+ ngAfterViewInit(): void {
+ let loginStatus = StatusManager.getStatus(LoginSatus);
+ loginStatus.getInstitutionListFromServe((result: InsitutionDataSimple[], data: any) => {
+ if (ModeManager.institutionDemoKey == ModeManager.c_demoKey_null) { //无指定测试单位,则为正式启动,根据当前单位key寻找
+ let key = 'ceshi';
+ let find = data.find(item => { return item.key === key })
+ if (find) { //如果在data中找到了对应的单位key,则表示已经有三维数据,直接进入
+ this.beforeOneSatus = StatusManager.getStatus(LoginSatus);
+ this.beforeOneSatus.onSelectInsSuccess(find)
+ } else { //如果没有找到对应的单位key,则调用新建单位
+ let name = 'ceshi';
+ loginStatus.createInsitution(key, name);
+ }
+ } else {
+ let find = data.find(item => { return item.key === ModeManager.institutionDemoKey })
+ if (find) {
+ sessionStorage.setItem('unitId', find.key)
+ this.beforeOneSatus = StatusManager.getStatus(LoginSatus);
+ this.beforeOneSatus.onSelectInsSuccess(find)
+ } else {
+ this.modelInit(data) //开发模式 选择单位 弹窗
+ }
+ }
+ });
+ }
+
ngOnDestroy(): void { //组件销毁前 销毁canvas
this.game.dispose();
this.game = null;
}
+ //开发模式 选择单位 弹窗
+ modelInit(InsList) {
+ console.log(InsList)
+ }
+
+ buildingUIItems: any[] = []; //左侧 建筑list
+ beforeOneBuildingID: string = null; //选中 左侧建筑ID
+ isShowLeftBuilding: boolean = true; //显隐 建筑
+ toggleLeftBuilding(e) { this.isShowLeftBuilding = e }; //显隐 建筑
+
+ //选择建筑
+ selectLeftBuilding(e) {
+
+ }
+
+ //创建建筑
+ addModelBuilding() {
+
+ }
+
+ //编辑建筑
+ editModelBuilding(event, e) {
+ event.stopPropagation()
+ }
+
+ //删除建筑
+ deleteModelBuilding(event, e) {
+ event.stopPropagation()
+ let isTrue = confirm('您确定要删除吗')
+ if (isTrue) {
+
+ }
+ }
+
+
+
}