diff --git a/package-lock.json b/package-lock.json index 1b64b40..0732f81 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9843,6 +9843,11 @@ } } }, + "js-base64": { + "version": "3.7.2", + "resolved": "https://registry.npmmirror.com/js-base64/download/js-base64-3.7.2.tgz", + "integrity": "sha1-gW0R2BqK/yQWA9Gc5XYeE+Qdd0U=" + }, "js-levenshtein": { "version": "1.1.6", "resolved": "https://registry.npm.taobao.org/js-levenshtein/download/js-levenshtein-1.1.6.tgz", diff --git a/package.json b/package.json index 3c370ef..0eef8fd 100644 --- a/package.json +++ b/package.json @@ -40,6 +40,7 @@ "echarts": "^4.9.0", "firebase": "^7.6.2", "install": "^0.13.0", + "js-base64": "^3.7.2", "linqjs": "^1.0.2", "moment": "^2.29.1", "ng-zorro-antd": "^9.3.0", diff --git a/src/app/babylon/controller/config-manager.ts b/src/app/babylon/controller/config-manager.ts index 1814886..1db46f5 100644 --- a/src/app/babylon/controller/config-manager.ts +++ b/src/app/babylon/controller/config-manager.ts @@ -135,8 +135,8 @@ export class ConfigManager { [MarkType.SNH, "火(小)"], [MarkType.YWA, "烟雾(大)"], [MarkType.YWB, "烟雾(小)"], - [MarkType.MHF, "消防员"], - [MarkType.PMC, "泡沫车"], + [MarkType.XFY, "消防员"], + [MarkType.XFC, "消防车"], [MarkType.GA, "公安"], [MarkType.JJ, "交警"], [MarkType.YS, "医生"], diff --git a/src/app/babylon/controller/inputController.ts b/src/app/babylon/controller/inputController.ts index 2811549..a922e1f 100644 --- a/src/app/babylon/controller/inputController.ts +++ b/src/app/babylon/controller/inputController.ts @@ -309,7 +309,7 @@ export class InputController { } // 是消防员 public IsFiremen(): boolean { - return this.markType == MarkType.MHF + return this.markType == MarkType.XFY // || this.markType == MarkType.JYF // || this.markType == MarkType.GRF // || this.markType == MarkType.FHF @@ -319,7 +319,7 @@ export class InputController { } // 是消防车 public IsFireTruck(): boolean { - return this.markType == MarkType.PMC + return this.markType == MarkType.XFC // || this.markType == MarkType.SGC // || this.markType == MarkType.GCGSC ; diff --git a/src/app/babylon/controller/scene-manager.ts b/src/app/babylon/controller/scene-manager.ts index 6194e96..1d4ffa9 100644 --- a/src/app/babylon/controller/scene-manager.ts +++ b/src/app/babylon/controller/scene-manager.ts @@ -257,11 +257,13 @@ export class SceneManager { if (this.highLightLayer == null) { this.highLightLayer = new HighlightLayer("highLight", this.scene, { - mainTextureRatio: 1, + mainTextureRatio: 2, + blurVerticalSize: 1.5, + blurHorizontalSize: 1.5, }); - this.highLightLayer.innerGlow = true; + this.openInnerGlow(true); + // this.highLightLayer.innerGlow = true; this.highLightLayer.outerGlow = true; - } let allMesh = mesh.getChildMeshes(); @@ -270,13 +272,22 @@ export class SceneManager { let childMesh = allMesh[i]; if (childMesh instanceof Mesh) { this.highLightLayer.addMesh(childMesh, color); - + // childMesh.material.alphaMode = this.highLightNum++; } } } + /** + * 开启内发光 + */ + openInnerGlow(open: boolean) { + if (this.highLightLayer != null) { + this.highLightLayer.innerGlow = open; + } + } + highLightNum = 0; /** diff --git a/src/app/babylon/controller/serve-manager.ts b/src/app/babylon/controller/serve-manager.ts index b0e2e72..a6de083 100644 --- a/src/app/babylon/controller/serve-manager.ts +++ b/src/app/babylon/controller/serve-manager.ts @@ -47,13 +47,13 @@ export class ServeManager { } //保存单位信息 - saveInstitutionData(institutionData: any, key: string = 'test', onSuccess?: (key: string, + saveInstitutionData(institutionData: any, key: string = 'test', institutionID: number = 1, onSuccess?: (key: string, result: string ) => void, onError?: (key: string, error: string) => void) { let l_data = classToPlain(institutionData); console.log("保存单位", l_data); - this.buildingBISrv.postBuildingBasicInfos(key, 1, l_data) + this.buildingBISrv.postBuildingBasicInfos(key, institutionID, l_data) .subscribe(data => { console.log("保存单位成功:" + key, l_data); if (onSuccess) { @@ -73,7 +73,7 @@ export class ServeManager { saveInstitutionListData(institutionList: InsitutionDataSimple[], onSucess?: () => void) { // console.log("======保存单位"); - ServeManager.instance.saveInstitutionData(institutionList, "InsList", () => { + ServeManager.instance.saveInstitutionData(institutionList, "InsList", -1, () => { //alert("保存单位列表成功"); if (onSucess) { onSucess(); diff --git a/src/app/babylon/controller/status/login-status.ts b/src/app/babylon/controller/status/login-status.ts index 50aae2d..fb86051 100644 --- a/src/app/babylon/controller/status/login-status.ts +++ b/src/app/babylon/controller/status/login-status.ts @@ -23,7 +23,7 @@ export class LoginSatus extends StatusBase { institutionCreateWindow: InstitutionCreateWindow; - institutionList: InsitutionDataSimple[];//单位简易信息列表 + institutionList: InsitutionDataSimple[] = [];//单位简易信息列表 //#region 前端对接 @@ -32,7 +32,7 @@ export class LoginSatus extends StatusBase { * 新建单位 * @param insData 新的单位信息 */ - createInsitution(key: string, name: string, onSuccess?: (insDataSimple: InsitutionDataSimple) => void) { + createInsitution(key: string, name: string, id: number, onSuccess?: (insDataSimple: InsitutionDataSimple) => void) { if (key == null) { console.error("创建单位key为null"); @@ -42,7 +42,7 @@ export class LoginSatus extends StatusBase { let insData = new InstitutionData(); insData.normalData = new NormalData(key, name); - this.saveNewIns(this, insData, key, onSuccess); + this.saveNewIns(this, insData, key, id, onSuccess); } //#endregion @@ -71,15 +71,15 @@ export class LoginSatus extends StatusBase { console.error("获取单位列表失败"); console.log(error); if (error instanceof HttpErrorResponse && error.status === 404) { - let isAdd = confirm('数据库为空,是否进行初始化?') - if (isAdd) { - //数据库没有数据,新建 - this.institutionList = []; - if (onSuccess) { - onSuccess(this.institutionList, this.institutionList); + let isAdd = confirm('数据库为空,是否进行初始化?') + if (isAdd) { + //数据库没有数据,新建 + this.institutionList = []; + if (onSuccess) { + onSuccess(this.institutionList, this.institutionList); + } + console.log("新建数据列表"); } - console.log("新建数据列表"); - } } else { console.log("单纯报错", error instanceof HttpErrorResponse, error.status === 404) @@ -194,10 +194,12 @@ export class LoginSatus extends StatusBase { let status = this; - ServeManager.instance.saveInstitutionListData(this.institutionList, () => { - //进入新单位 - status.onSelectInsSuccess(insData); - }); + //不再自己存列表 + // ServeManager.instance.saveInstitutionListData(this.institutionList, () => { + // //进入新单位 + // status.onSelectInsSuccess(insData); + // }); + status.onSelectInsSuccess(insData); } //#endregion @@ -225,9 +227,9 @@ export class LoginSatus extends StatusBase { //保存新单位信息至服务器 - saveNewIns(status: LoginSatus, insData: InstitutionData, key: string, onSuccess?: (insDataSimple: InsitutionDataSimple) => void) { + saveNewIns(status: LoginSatus, insData: InstitutionData, key: string, id: number, onSuccess?: (insDataSimple: InsitutionDataSimple) => void) { console.log("准备保存新单位"); - ServeManager.instance.saveInstitutionData(insData, key, (key, result) => { + ServeManager.instance.saveInstitutionData(insData, key, id, (key, result) => { console.log("在服务器新建单位" + key); let insDataSimple = new InsitutionDataSimple(); insDataSimple.key = key; diff --git a/src/app/babylon/model/data/institution/institution-data-simple.ts b/src/app/babylon/model/data/institution/institution-data-simple.ts index 6c54561..a06b2dc 100644 --- a/src/app/babylon/model/data/institution/institution-data-simple.ts +++ b/src/app/babylon/model/data/institution/institution-data-simple.ts @@ -2,4 +2,5 @@ export class InsitutionDataSimple { key: string;//唯一身份key name: string;//自定义的名称 + id: number;//保存时要用到,前后端需要,必须是number } \ No newline at end of file diff --git a/src/app/babylon/model/data/mark/all-mark-data.ts b/src/app/babylon/model/data/mark/all-mark-data.ts index a7999d2..2c14be3 100644 --- a/src/app/babylon/model/data/mark/all-mark-data.ts +++ b/src/app/babylon/model/data/mark/all-mark-data.ts @@ -55,8 +55,8 @@ export class AllMarkData { //外部力量 tagPos = MarkTagPos.Outside; - AllMarkData.newMarkData(MarkType.PMC, MarkKindType.Car, tagPos, result); - AllMarkData.newMarkData(MarkType.MHF, MarkKindType.Persion, tagPos, result); + AllMarkData.newMarkData(MarkType.XFC, MarkKindType.Car, tagPos, result); + AllMarkData.newMarkData(MarkType.XFY, MarkKindType.Persion, tagPos, result); AllMarkData.newMarkData(MarkType.JC, MarkKindType.Car, tagPos, result); AllMarkData.newMarkData(MarkType.JJ, MarkKindType.Persion, tagPos, result); AllMarkData.newMarkData(MarkType.GA, MarkKindType.Persion, tagPos, result); diff --git a/src/app/babylon/model/data/mark/mark-data.ts b/src/app/babylon/model/data/mark/mark-data.ts index bd45425..e263145 100644 --- a/src/app/babylon/model/data/mark/mark-data.ts +++ b/src/app/babylon/model/data/mark/mark-data.ts @@ -200,14 +200,14 @@ export enum MarkType { //==================外部力量================ /** - * 灭火服 + * 消防员 */ - MHF = "MHF", + XFY = "XFY", /** - * 泡沫车 + * 消防车 */ - PMC = "PMC", + XFC = "XFC", /** diff --git a/src/app/babylon/model/data/mark/mark-plan-data.ts b/src/app/babylon/model/data/mark/mark-plan-data.ts index bc0687c..358dc28 100644 --- a/src/app/babylon/model/data/mark/mark-plan-data.ts +++ b/src/app/babylon/model/data/mark/mark-plan-data.ts @@ -351,6 +351,21 @@ export class MarkNodeData { return newEnvironment; } + + /** + * 获取展示此节点所需要完整时间 + */ + getShowTime() { + let textNum = 0; + if (this.describe != null) { + textNum = this.describe.length; + } + + let timeScale = 1; + + return textNum * timeScale; + } + } /** diff --git a/src/app/babylon/model/info/mark/mark-plan-info.ts b/src/app/babylon/model/info/mark/mark-plan-info.ts index 0c66994..398e134 100644 --- a/src/app/babylon/model/info/mark/mark-plan-info.ts +++ b/src/app/babylon/model/info/mark/mark-plan-info.ts @@ -99,19 +99,7 @@ export class MarkNodeInfo { return this.currentMarkDataIndex; } - /** - * 获取展示此节点所需要完整时间 - */ - getShowTime() { - let textNum = 0; - if (this.nodeData.describe != null) { - textNum = this.nodeData.describe.length; - } - let timeScale = 1; - - return textNum * timeScale; - } /** * 清空标绘物(表现层和逻辑层) diff --git a/src/app/babylon/model/info/mark/model-info-mark.ts b/src/app/babylon/model/info/mark/model-info-mark.ts index 1522d22..16d1592 100644 --- a/src/app/babylon/model/info/mark/model-info-mark.ts +++ b/src/app/babylon/model/info/mark/model-info-mark.ts @@ -17,7 +17,7 @@ import { ParticleSystemTool } from "src/app/babylon/tool/particle-system-tool"; import { TsTool } from "src/app/babylon/tool/ts-tool"; import { MarkWindow } from "src/app/babylon/view/mark-window/mark-window"; -import { ChildNodeData, MarkData, MarkTask, MarkType } from "../../data/mark/mark-data"; +import { ChildNodeData, MarkData, MarkKindType, MarkTask, MarkType } from "../../data/mark/mark-data"; import { BuildingInfo } from "../building/building-info"; import { ModelInfo } from "../model/model-info"; @@ -195,7 +195,7 @@ export class ModelInfo_mark extends ModelInfo { * @param select */ onSelect(select: boolean) { - console.log("onSelect", select); + // console.log("onSelect", select); this.isSelect = select; // this.lookAt(); if (select) { @@ -210,7 +210,16 @@ export class ModelInfo_mark extends ModelInfo { else { //this.pointerDragBehavior.enabled = true; } - GizmoTool.onPickMeshInfoObservable.notifyObservers(this); + + //特效类、灭火器类,要出现坐标轴 + if (this.markData.markKindType == MarkKindType.Effect + || TsTool.stringContain(this.markData.type, "MHQ")) { + GizmoTool.onPickMeshInfoObservable.notifyObservers(this); + } + else { + GizmoTool.onPickMeshInfoObservable.notifyObservers(null); + } + // SceneManager.Instance.defaultCamera.target = this.modelBox.absolutePosition.clone() // SceneManager.Instance.defaultCamera.setTarget(this.modelBox.absolutePosition.clone()); @@ -378,7 +387,7 @@ export class ModelInfo_mark extends ModelInfo { canSprinkling() { let result = false; switch (this.markData.type) { - case MarkType.MHF: + case MarkType.XFY: result = true; //五种消防员 if (this.node_pt == null && this.models != null) { @@ -392,7 +401,7 @@ export class ModelInfo_mark extends ModelInfo { } break; - case MarkType.PMC: + case MarkType.XFC: //五种消防车 result = true; @@ -451,7 +460,7 @@ export class ModelInfo_mark extends ModelInfo { return; } switch (this.markData.type) { - case MarkType.MHF: + case MarkType.XFY: //消防员,显隐喷枪 if (this.node_pt != null) { diff --git a/src/app/babylon/model/info/mark/other/mark-plan-area-info.ts b/src/app/babylon/model/info/mark/other/mark-plan-area-info.ts index b6ba569..9ff260b 100644 --- a/src/app/babylon/model/info/mark/other/mark-plan-area-info.ts +++ b/src/app/babylon/model/info/mark/other/mark-plan-area-info.ts @@ -232,7 +232,7 @@ export class AreaPoint { this.pos = pos; this.parent = parent; - this.mesh = MeshBuilder.CreateSphere("AreaPoint", { segments: 4, diameter: 3 }); + this.mesh = MeshBuilder.CreateSphere("AreaPoint", { segments: 4, diameter: 0.8 }); this.mesh.material = material; this.mesh.setParent(parent.modelBox); this.mesh.position = pos; diff --git a/src/app/babylon/model/info/mark/other/mark-plan-line-info.ts b/src/app/babylon/model/info/mark/other/mark-plan-line-info.ts index 92c33f7..4cbe22f 100644 --- a/src/app/babylon/model/info/mark/other/mark-plan-line-info.ts +++ b/src/app/babylon/model/info/mark/other/mark-plan-line-info.ts @@ -64,9 +64,9 @@ export class ModelInfo_mark_line extends ModelInfo_mark { */ updateRender() { if (this.lineData.pointData != null && this.lineData.pointData.length > 1) { - this.lineMesh = MeshBuilder.CreateTube("tube", { path: this.lineData.pointData, radius: 0.2, sideOrientation: Mesh.FRONTSIDE, updatable: true }, SceneManager.Instance.scene); + this.lineMesh = MeshBuilder.CreateTube("tube", { path: this.lineData.pointData, radius: 0.1, sideOrientation: Mesh.FRONTSIDE, updatable: true, cap: 3 }, SceneManager.Instance.scene); this.lineMesh.setParent(this.modelBox); - this.lineMesh.position = Vector3.Zero(); + this.lineMesh.position = Vector3.Zero() this.lineMesh.material = this.mat; let length = Vector3.Distance(this.lineData.pointData[0], this.lineData.pointData[1]); @@ -79,7 +79,6 @@ export class ModelInfo_mark_line extends ModelInfo_mark { ModelInfo_mark_line.publicMat = mat; // instance.lineMesh.material.getEffect()?.setFloat("u_alpha", 1); let textures: BaseTexture[] = instance.lineMesh.material.getActiveTextures(); - console.log("图片", textures); let texture0 = (textures[0] as Texture); texture0.vScale = length; texture0.wrapV = 1; diff --git a/src/app/babylon/model/info/mark/other/mark-plan-particle-info.ts b/src/app/babylon/model/info/mark/other/mark-plan-particle-info.ts index 473a8e4..7222579 100644 --- a/src/app/babylon/model/info/mark/other/mark-plan-particle-info.ts +++ b/src/app/babylon/model/info/mark/other/mark-plan-particle-info.ts @@ -35,23 +35,23 @@ export class ModelInfo_mark_particle extends ModelInfo_mark { case MarkType.H: particleJsonPath.push("assets/particlesystem/fire/fire_h_1.json"); particleJsonPath.push("assets/particlesystem/smoke/smoke_a.json"); - instance.modelBox.scaling = new Vector3(5, 1, 5); + instance.modelBox.scaling = new Vector3(50, 70, 50); posOffset.y = 0.7 / instance.modelBox.scaling.y; break; case MarkType.SNH: particleJsonPath.push("assets/particlesystem/fire/fire_snh_1.json"); particleJsonPath.push("assets/particlesystem/smoke/smoke_snh.json"); - instance.modelBox.scaling = new Vector3(3, 1, 3); + instance.modelBox.scaling = new Vector3(30, 60, 30); posOffset.y = 0.2 / instance.modelBox.scaling.y; break; case MarkType.YWA: particleJsonPath.push("assets/particlesystem/smoke/smoke_a.json"); - instance.modelBox.scaling = new Vector3(5, 1, 5); + instance.modelBox.scaling = new Vector3(50, 130, 50); posOffset.y = 0.1 / instance.modelBox.scaling.y; break; case MarkType.YWB: particleJsonPath.push("assets/particlesystem/smoke/smoke_snh.json"); - instance.modelBox.scaling = new Vector3(3, 1, 3); + instance.modelBox.scaling = new Vector3(30, 60, 30); posOffset.y = 0.2 / instance.modelBox.scaling.y; break; } diff --git a/src/app/babylon/tool/babylon-tool.ts b/src/app/babylon/tool/babylon-tool.ts index f24dd6a..3536d1f 100644 --- a/src/app/babylon/tool/babylon-tool.ts +++ b/src/app/babylon/tool/babylon-tool.ts @@ -202,7 +202,7 @@ export class BabylonTool { let shaderUrl = shaderPath; nodeMaterial.loadAsync(shaderUrl).then(() => { - nodeMaterial.build(true); + nodeMaterial.build(false); //关闭shader调试打印 if (mesh != null) { mesh.material = nodeMaterial; // let effect = nodeMaterial.getEffect(); diff --git a/src/app/babylon/view/building-window/building-window.ts b/src/app/babylon/view/building-window/building-window.ts index cbb19de..f0208e4 100644 --- a/src/app/babylon/view/building-window/building-window.ts +++ b/src/app/babylon/view/building-window/building-window.ts @@ -803,6 +803,8 @@ export class BuildingWindow extends UIBase { for (let i = 0; i < showNameFacilitys.length; i++) { showNameFacilitys[i].showNameUI(isShowNameUI_JYJ_YG); } + SceneManager.Instance.openInnerGlow(!isShowNameUI_JYJ_YG); //输油管和油气回收管太细,关闭内发光 + if (show) { diff --git a/src/app/babylon/view/institution/institution-create-window.ts b/src/app/babylon/view/institution/institution-create-window.ts index d6f44e5..67cb33f 100644 --- a/src/app/babylon/view/institution/institution-create-window.ts +++ b/src/app/babylon/view/institution/institution-create-window.ts @@ -68,7 +68,7 @@ export class InstitutionCreateWindow extends UIBase { saveNewIns() { let window = this; let loginStatus = StatusManager.getStatus(LoginSatus); - loginStatus.saveNewIns(loginStatus, window.insData, window.insDataSimple.key, (insDataSimple) => { + loginStatus.saveNewIns(loginStatus, window.insData, window.insDataSimple.key, window.insDataSimple.id, (insDataSimple) => { loginStatus.closeCreateWindow(); }); } diff --git a/src/app/babylon/view/mark-window/mark-window.ts b/src/app/babylon/view/mark-window/mark-window.ts index aade914..ac974dd 100644 --- a/src/app/babylon/view/mark-window/mark-window.ts +++ b/src/app/babylon/view/mark-window/mark-window.ts @@ -29,6 +29,7 @@ import { BabylonTool } from "../../tool/babylon-tool"; import { LoadTool } from "../../tool/load-tool"; import { MeshPool, MeshPoolInfo } from "../../tool/mesh-pool"; import { ParticleSystemTool } from "../../tool/particle-system-tool"; +import { SpeakingTool } from "../../tool/speaking-tool"; import { BuildingUIItem } from "../building-window/building-ui-item"; import { BuildingWindow } from "../building-window/building-window"; import { IndoorFloorUIItem } from "../indoor-window/indoor-floorui-item"; @@ -302,8 +303,9 @@ export class MarkWindow extends UIBase { * @param planId 方案 * @param nodeId 节点 * @param changeBuildingByUI 是否在沙盘状态下,点UI切层、建筑 + * @param readDescribe 朗读描述 */ - selectMarkNode(planId: number, nodeId: number, changeBuildingByUI: boolean = false) { + selectMarkNode(planId: number, nodeId: number, changeBuildingByUI: boolean = false, readDescribe = false) { // //还原数据 // if (this.currentMarkNodeDataCopy != null && reData) { // let oldPlaneData = this.currentMarkNodeInfo.belongToPlanData; @@ -356,11 +358,16 @@ export class MarkWindow extends UIBase { this.currentMarkNodeInfo = new MarkNodeInfo(markPlanData, this.currentMarkNodeDataCopy); //this.currentMarkNodeDataCopy = classToClass(this.currentMarkNodeInfo.nodeData); //更新备份数据 this.updateNodeInfo(); + if (readDescribe) { + this.readDescribe(nodeCopy.describe); + } + } } + /** * 新建方案(一级节点) * @param name 新方案名称 @@ -969,7 +976,6 @@ export class MarkWindow extends UIBase { } }) - console.log(mesh, "是标绘物", result); return result; } @@ -1500,6 +1506,17 @@ export class MarkWindow extends UIBase { } + /** + * 朗读描述 + * @param describe + */ + readDescribe(describe: string) { + if (describe != null) { + SpeakingTool.Instance.clear(); + SpeakingTool.Instance.speak(describe); + } + } + //#endregion diff --git a/src/app/babylon/view/toolbar-window/toobar-window.ts b/src/app/babylon/view/toolbar-window/toobar-window.ts index ba52b8a..7701043 100644 --- a/src/app/babylon/view/toolbar-window/toobar-window.ts +++ b/src/app/babylon/view/toolbar-window/toobar-window.ts @@ -49,7 +49,7 @@ export class ToolbarWindow extends UIBase { onBtnSave() { let data = DataManager.institutionData; ModeManager.log(data); - ServeManager.instance.saveInstitutionData(data, DataManager.institutionData_simple.key, () => { + ServeManager.instance.saveInstitutionData(data, DataManager.institutionData_simple.key, DataManager.institutionData_simple.id, () => { ModeManager.log("保存成功" + DataManager.institutionData_simple.key); }); } diff --git a/src/app/pages/criminal-records-admin/criminal-records-admin.component.html b/src/app/pages/criminal-records-admin/criminal-records-admin.component.html index 36f92e9..4783137 100644 --- a/src/app/pages/criminal-records-admin/criminal-records-admin.component.html +++ b/src/app/pages/criminal-records-admin/criminal-records-admin.component.html @@ -14,7 +14,7 @@ - + @@ -57,8 +57,9 @@
+
-
+
@@ -100,7 +101,7 @@
- +
预警级别 @@ -133,43 +134,53 @@
- + + + +
- Ⅰ级 + Ⅰ级 + Ⅱ级 + Ⅲ级 + Ⅳ级
- 日常预警行为 + {{item.violation.violationType}}
- 中化某某省公司 + {{item.gasStation.companyName}}
- 山东-淄博 + {{item.gasStation.locationName}}
- 自营 +
- 中化山东省淄博市第6加油站 + {{item.gasStation.stationName}}
- 便利店 + {{item.violateArea}}
- 2021-10-12 09:28:13 + {{item.violateTime | date:"yyyy-MM-dd HH:mm:ss"}}
- 查看 + 查看
-
\ No newline at end of file diff --git a/src/app/pages/criminal-records-admin/criminal-records-admin.component.scss b/src/app/pages/criminal-records-admin/criminal-records-admin.component.scss index b92d1fd..4f9b0d3 100644 --- a/src/app/pages/criminal-records-admin/criminal-records-admin.component.scss +++ b/src/app/pages/criminal-records-admin/criminal-records-admin.component.scss @@ -52,6 +52,13 @@ box-sizing: border-box; padding: 0 28px; margin: 13px 0; + position: relative; + .packup { + position: absolute; + right: 33px; + top: 16px; + cursor: pointer; + } } .chartsbox { diff --git a/src/app/pages/criminal-records-admin/criminal-records-admin.component.ts b/src/app/pages/criminal-records-admin/criminal-records-admin.component.ts index 8d024e8..0fe3c51 100644 --- a/src/app/pages/criminal-records-admin/criminal-records-admin.component.ts +++ b/src/app/pages/criminal-records-admin/criminal-records-admin.component.ts @@ -1,11 +1,15 @@ import { HttpClient } from '@angular/common/http'; -import { Component, ElementRef, OnInit } from '@angular/core'; +import { Component, ElementRef, OnInit, ViewContainerRef } from '@angular/core'; import { FormBuilder, FormGroup, Validators } from '@angular/forms'; import { Router } from '@angular/router' import * as echarts from 'echarts'; import { fromEvent } from 'rxjs'; import { debounceTime } from 'rxjs/operators'; + +import * as moment from 'moment'; +import { NzModalService } from 'ng-zorro-antd/modal'; +import { GetOutOfLineDetailsComponent } from '../today-warning/get-out-of-line-details/get-out-of-line-details.component'; @Component({ selector: 'app-criminal-records-admin', templateUrl: './criminal-records-admin.component.html', @@ -14,7 +18,7 @@ import { debounceTime } from 'rxjs/operators'; export class CriminalRecordsAdminComponent implements OnInit { validateForm!: FormGroup; - constructor(private element: ElementRef, private http: HttpClient, private fb: FormBuilder, private router: Router) { } + constructor(private element: ElementRef, private http: HttpClient, private fb: FormBuilder, private router: Router, private modal: NzModalService, private viewContainerRef: ViewContainerRef) { } //饼图 myChart option = { @@ -255,24 +259,44 @@ export class CriminalRecordsAdminComponent implements OnInit { showDetail: false,//即拖拽时候是否显示详细数值信息 默认true realtime: true, //是否实时更新 filterMode: 'filter', - backgroundColor:'#001735', - width:'18' + backgroundColor: '#001735', + width: '18' }, { - type:'inside', - yAxisIndex:0, - zoomOnMouseWheel:false, //滚轮是否触发缩放 - moveOnMouseMove:true, //鼠标滚轮触发滚动 - moveOnMouseWheel:true + type: 'inside', + yAxisIndex: 0, + zoomOnMouseWheel: false, //滚轮是否触发缩放 + moveOnMouseMove: true, //鼠标滚轮触发滚动 + moveOnMouseWheel: true } ] } + isEcharts: boolean = true + isEchartsShow() { + this.isEcharts = !this.isEcharts + } + startdate + enddate ngOnInit(): void { + + //当前日期 + let myDate: any = new Date(); + let nowY = myDate.getFullYear(); + let nowM = myDate.getMonth() + 1; + let nowD = myDate.getDate(); + this.enddate = nowY + "-" + (nowM < 10 ? "0" + nowM : nowM) + "-" + (nowD < 10 ? "0" + nowD : nowD);//当前日期 + //获取三十天前日期 + let lw = new Date(myDate - 1000 * 60 * 60 * 24 * 30);//最后一个数字30可改,30天的意思 + let lastY = lw.getFullYear(); + let lastM = lw.getMonth() + 1; + let lastD = lw.getDate(); + this.startdate = lastY + "-" + (lastM < 10 ? "0" + lastM : lastM) + "-" + (lastD < 10 ? "0" + lastD : lastD);//三十天之前日期 + this.validateForm = this.fb.group({ level: [null], type: [null], site: [null], - datePicker: [null] + datePicker: [[this.startdate, this.enddate]] }); //饼图 @@ -283,13 +307,50 @@ export class CriminalRecordsAdminComponent implements OnInit { this.mybarChart.setOption(this.baroption); this.warningType() + this.getViolateRecordList() + } + + //获得违规记录列表 + SkipCount: string = '0' + MaxResultCount: string = '50' + list: any = [] + totalCount: string + getViolateRecordList() { + let ViolationIds = [] + if (this.validateForm.value.type) { + this.warningTypesDetails.forEach(item => { + item.id ? ViolationIds.push(item.id) : null + }); + } + let params = { + Level: this.validateForm.value.level, + ViolationIds: ViolationIds, + ViolateArea: this.validateForm.value.site, + OrganizationUnitId: JSON.parse(sessionStorage.getItem('userdata')).organization.id, + IsContainsChildren: 'true', + ViolateTime: this.validateForm.value.datePicker ? [moment(this.validateForm.value.datePicker[0]).format('yyyy-MM-DD'), moment(this.validateForm.value.datePicker[1]).format('yyyy-MM-DD')] : null, + SkipCount: this.SkipCount, + MaxResultCount: this.MaxResultCount + } + this.http.get('/api/services/app/ViolateRecord/GetAll', { + params: params + }).subscribe((data: any) => { + this.list = this.list.concat(data.result.items); + this.list = [...this.list] + // this.list = data.result.items + this.totalCount = data.result.totalCount + console.log('违规记录列表', data) + }) } + ngAfterViewInit(): void { fromEvent(this.element.nativeElement.querySelector(`#tbody`) as HTMLCanvasElement, 'scroll').pipe(debounceTime(100)).subscribe((event: any) => { //监听 DOM 滚动事件 if (event.target.scrollHeight - (event.target.scrollTop + event.target.clientHeight) <= 10) { console.log('需要加载数据了', event) + this.SkipCount = String(Number(this.SkipCount) + 50) + this.getViolateRecordList() } }); } @@ -332,6 +393,9 @@ export class CriminalRecordsAdminComponent implements OnInit { this.validateForm.controls[i].markAsDirty(); this.validateForm.controls[i].updateValueAndValidity(); } + this.list = [] + this.SkipCount = '0' + this.getViolateRecordList() } resetForm(e: MouseEvent): void { e.preventDefault(); @@ -340,6 +404,12 @@ export class CriminalRecordsAdminComponent implements OnInit { this.validateForm.controls[key].markAsPristine(); this.validateForm.controls[key].updateValueAndValidity(); } + this.validateForm.patchValue({ + datePicker: [this.startdate, this.enddate] + }); + this.list = [] + this.SkipCount = '0' + this.getViolateRecordList() } //预警类型接口 @@ -351,9 +421,41 @@ export class CriminalRecordsAdminComponent implements OnInit { this.warningTypes = (data.result as any).groupBy((t) => { return t.violationType }); }) } - list: any = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] - look() { - this.router.navigate(['/records/petrolStation']) + typeChange(e) { + this.warningTypes.forEach(element => { + if (element.key == e) { + this.warningTypesDetails = element + } + }); + this.validateForm.patchValue({ + event: null, + }); + } + + + + look(item) { + const modal = this.modal.create({ + nzContent: GetOutOfLineDetailsComponent, + nzViewContainerRef: this.viewContainerRef, + nzWidth: 1200, + nzBodyStyle: { + 'border': '1px solid #6d9cc7', + 'border-radius': '0px', + 'padding': '0px', + 'box-shadow': '0 0 8px 0 #fff', + 'background': '#000D21', + }, + nzComponentParams: { + data: item + }, + nzFooter: null, + nzOnOk: async () => { + + } + }); + const instance = modal.getContentComponent(); + } diff --git a/src/app/pages/criminal-records/criminal-records.component.html b/src/app/pages/criminal-records/criminal-records.component.html index a457144..299ac75 100644 --- a/src/app/pages/criminal-records/criminal-records.component.html +++ b/src/app/pages/criminal-records/criminal-records.component.html @@ -14,7 +14,7 @@ - + @@ -57,8 +57,9 @@
+
-
+
@@ -120,37 +121,47 @@ 操作
-
+
- + + + +
- Ⅰ级 + Ⅰ级 + Ⅱ级 + Ⅲ级 + Ⅳ级
- 日常预警行为 + {{item.violation.violationType}}
- 工作人员倚靠加油机或立柱 + {{item.violation.violationName}}
- 便利店 + {{item.violateArea}}
- 2021-10-12 09:28:13 + {{item.violateTime | date:"yyyy-MM-dd HH:mm:ss"}}
- 查看 + 查看
-
\ No newline at end of file diff --git a/src/app/pages/criminal-records/criminal-records.component.scss b/src/app/pages/criminal-records/criminal-records.component.scss index ec459a9..13599ab 100644 --- a/src/app/pages/criminal-records/criminal-records.component.scss +++ b/src/app/pages/criminal-records/criminal-records.component.scss @@ -52,6 +52,14 @@ height: 64px; box-sizing: border-box; padding: 0 28px; + position: relative; + + .packup { + position: absolute; + right: 33px; + top: 16px; + cursor: pointer; + } } .chartsbox { diff --git a/src/app/pages/criminal-records/criminal-records.component.ts b/src/app/pages/criminal-records/criminal-records.component.ts index e80e752..5972b59 100644 --- a/src/app/pages/criminal-records/criminal-records.component.ts +++ b/src/app/pages/criminal-records/criminal-records.component.ts @@ -1,7 +1,12 @@ import { HttpClient } from '@angular/common/http'; -import { Component, OnInit } from '@angular/core'; +import { Component, OnInit, ViewContainerRef, ElementRef } from '@angular/core'; import { FormBuilder, FormGroup, Validators } from '@angular/forms'; import * as echarts from 'echarts'; +import { NzModalService } from 'ng-zorro-antd/modal'; +import { GetOutOfLineDetailsComponent } from '../today-warning/get-out-of-line-details/get-out-of-line-details.component'; +import * as moment from 'moment'; +import { fromEvent } from 'rxjs'; +import { debounceTime } from 'rxjs/operators'; @Component({ selector: 'app-criminal-records', templateUrl: './criminal-records.component.html', @@ -9,7 +14,7 @@ import * as echarts from 'echarts'; }) export class CriminalRecordsComponent implements OnInit { validateForm!: FormGroup; - constructor(private http: HttpClient, private fb: FormBuilder) { } + constructor(private http: HttpClient, private fb: FormBuilder, private modal: NzModalService, private viewContainerRef: ViewContainerRef, private element: ElementRef) { } myChart: any //左侧饼图 option = { @@ -272,12 +277,31 @@ export class CriminalRecordsComponent implements OnInit { } return dateList; } + + isEcharts: boolean = true + isEchartsShow() { + this.isEcharts = !this.isEcharts + } + startdate + enddate ngOnInit(): void { + //当前日期 + let myDate: any = new Date(); + let nowY = myDate.getFullYear(); + let nowM = myDate.getMonth() + 1; + let nowD = myDate.getDate(); + this.enddate = nowY + "-" + (nowM < 10 ? "0" + nowM : nowM) + "-" + (nowD < 10 ? "0" + nowD : nowD);//当前日期 + //获取三十天前日期 + let lw = new Date(myDate - 1000 * 60 * 60 * 24 * 30);//最后一个数字30可改,30天的意思 + let lastY = lw.getFullYear(); + let lastM = lw.getMonth() + 1; + let lastD = lw.getDate(); + this.startdate = lastY + "-" + (lastM < 10 ? "0" + lastM : lastM) + "-" + (lastD < 10 ? "0" + lastD : lastD);//三十天之前日期 this.validateForm = this.fb.group({ level: [null], type: [null], site: [null], - datePicker: [null] + datePicker: [[this.startdate, this.enddate]] }); // 饼图 this.myChart = echarts.init(document.getElementById('piechart')); @@ -287,14 +311,60 @@ export class CriminalRecordsComponent implements OnInit { this.mybarChart.setOption(this.baroption); this.warningType() + this.getViolateRecordList() + } + + //获得违规记录列表 + SkipCount: string = '0' + MaxResultCount: string = '50' + list: any = [] + totalCount: string + getViolateRecordList() { + let ViolationIds = [] + if (this.validateForm.value.type) { + this.warningTypesDetails.forEach(item => { + item.id ? ViolationIds.push(item.id) : null + }); + } + let params = { + Level: this.validateForm.value.level, + ViolationIds: ViolationIds, + ViolateArea: this.validateForm.value.site, + OrganizationUnitId: JSON.parse(sessionStorage.getItem('userdataOfgasstation')).organization.id, + IsContainsChildren: 'true', + ViolateTime: this.validateForm.value.datePicker ? [moment(this.validateForm.value.datePicker[0]).format('yyyy-MM-DD'), moment(this.validateForm.value.datePicker[1]).format('yyyy-MM-DD')] : null, + SkipCount: this.SkipCount, + MaxResultCount: this.MaxResultCount + } + this.http.get('/api/services/app/ViolateRecord/GetAll', { + params: params + }).subscribe((data: any) => { + this.list = this.list.concat(data.result.items); + this.list = [...this.list] + // this.list = data.result.items + this.totalCount = data.result.totalCount + console.log('违规记录列表', data) + }) + } + ngAfterViewInit(): void { + fromEvent(this.element.nativeElement.querySelector(`#tbody`) as HTMLCanvasElement, 'scroll').pipe(debounceTime(100)).subscribe((event: any) => { //监听 DOM 滚动事件 + if (event.target.scrollHeight - (event.target.scrollTop + event.target.clientHeight) <= 10) { + console.log('需要加载数据了', event) + this.SkipCount = String(Number(this.SkipCount) + 50) + this.getViolateRecordList() + } + }); } + submitForm(): void { for (const i in this.validateForm.controls) { this.validateForm.controls[i].markAsDirty(); this.validateForm.controls[i].updateValueAndValidity(); } - console.log(this.validateForm) + this.list = [] + this.SkipCount = '0' + this.getViolateRecordList() } resetForm(e: MouseEvent): void { e.preventDefault(); @@ -303,6 +373,12 @@ export class CriminalRecordsComponent implements OnInit { this.validateForm.controls[key].markAsPristine(); this.validateForm.controls[key].updateValueAndValidity(); } + this.validateForm.patchValue({ + datePicker: [this.startdate, this.enddate] + }); + this.list = [] + this.SkipCount = '0' + this.getViolateRecordList() } @@ -311,14 +387,17 @@ export class CriminalRecordsComponent implements OnInit { warningTypesDetails: any warningType() { this.http.get('/api/services/app/Violation/GetAllList').subscribe((data: any) => { - this.warningTypesDetails = data.result + // this.warningTypesDetails = data.result this.warningTypes = (data.result as any).groupBy((t) => { return t.violationType }); }) } - - - list: any = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] - + typeChange(e) { + this.warningTypes.forEach(element => { + if (element.key == e) { + this.warningTypesDetails = element + } + }); + } selectedType = '分布' selectedRankingType = '站点排名' echartClick(type) { @@ -332,7 +411,28 @@ export class CriminalRecordsComponent implements OnInit { } } - // echartClick2(type) { - // this.selectedRankingType = type - // } + + look(item) { + const modal = this.modal.create({ + nzContent: GetOutOfLineDetailsComponent, + nzViewContainerRef: this.viewContainerRef, + nzWidth: 1200, + nzBodyStyle: { + 'border': '1px solid #6d9cc7', + 'border-radius': '0px', + 'padding': '0px', + 'box-shadow': '0 0 8px 0 #fff', + 'background': '#000D21', + }, + nzComponentParams: { + data: item + }, + nzFooter: null, + nzOnOk: async () => { + + } + }); + const instance = modal.getContentComponent(); + + } } diff --git a/src/app/pages/login/login.component.ts b/src/app/pages/login/login.component.ts index 2252ca7..acaee6c 100644 --- a/src/app/pages/login/login.component.ts +++ b/src/app/pages/login/login.component.ts @@ -5,7 +5,7 @@ import { CacheTokenService } from '../../service/cache-token.service'//引入服 import { CookieService } from 'ngx-cookie-service';//cookie插件 import { FormBuilder, FormGroup, Validators } from '@angular/forms'; import { NzMessageService } from 'ng-zorro-antd/message'; - +import { Base64 } from 'js-base64'; @Component({ selector: 'app-login', templateUrl: './login.component.html', @@ -30,8 +30,8 @@ export class LoginComponent implements OnInit { let password = localStorage.getItem('password') if (account && password) { this.validateForm.patchValue({ - userName: localStorage.getItem('account'), - password: localStorage.getItem('password') + userName: Base64.decode(localStorage.getItem('account')), + password: Base64.decode(localStorage.getItem('password')) }); this.remember = true //这一步是回显后让勾选框为选中状态 } @@ -40,7 +40,7 @@ export class LoginComponent implements OnInit { this.submitForm() this.autologin = true //这一步是回显后让勾选框为选中状态 } - + } errmsg: string = ''; //错误信息 @@ -57,8 +57,8 @@ export class LoginComponent implements OnInit { rememberInfo() { // 判断用户是否勾选记住密码,如果勾选,在本地储存中储存登录信息 if (this.remember) { - localStorage.setItem("account", this.validateForm.value.userName) - localStorage.setItem("password", this.validateForm.value.password) + localStorage.setItem("account", Base64.encode(this.validateForm.value.userName)) + localStorage.setItem("password", Base64.encode(this.validateForm.value.password)) } } //自动登陆 @@ -80,7 +80,7 @@ export class LoginComponent implements OnInit { localStorage.removeItem("account") localStorage.removeItem("password") } - if(!this.autologin){ + if (!this.autologin) { localStorage.removeItem("isautologin") } diff --git a/src/app/pages/plan-admin/plan-admin.component.ts b/src/app/pages/plan-admin/plan-admin.component.ts index ec73cbf..34ea1a2 100644 --- a/src/app/pages/plan-admin/plan-admin.component.ts +++ b/src/app/pages/plan-admin/plan-admin.component.ts @@ -32,7 +32,7 @@ export class PlanAdminComponent implements OnInit { fromEvent(this.element.nativeElement.querySelector(`.ant-table-body`) as HTMLCanvasElement, 'scroll').pipe(debounceTime(100)).subscribe(async (event: any) => { //监听 DOM 滚动事件 if (event.target.scrollHeight - (event.target.scrollTop + event.target.clientHeight) <= 10) { console.log('需要加载数据了', event) - this.SkipCount += 100 + this.SkipCount = String(Number(this.SkipCount) + 50) await this.getGasStation() } }); diff --git a/src/app/pages/plan/plan.component.ts b/src/app/pages/plan/plan.component.ts index 7dc8483..08a3419 100644 --- a/src/app/pages/plan/plan.component.ts +++ b/src/app/pages/plan/plan.component.ts @@ -69,32 +69,41 @@ export class PlanComponent implements OnInit { } ngAfterViewInit(): void { + + let simpleData: InsitutionDataSimple = new InsitutionDataSimple(); + simpleData.id = 1; + simpleData.key = "ceshi"; + simpleData.name = "测试"; + 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 isAdd = confirm('没有单位' + key + ',是否进行初始化?') - if (isAdd) { - let name = key; - loginStatus.createInsitution(key, name); - } + //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 }) + let find = simpleData; + if (find) { //如果在data中找到了对应的单位key,则表示已经有三维数据,直接进入 + this.beforeOneSatus = StatusManager.getStatus(LoginSatus); + this.beforeOneSatus.onSelectInsSuccess(find) + } else { //如果没有找到对应的单位key,则调用新建单位 + let isAdd = confirm('没有单位' + key + ',是否进行初始化?') + if (isAdd) { + let name = key; + let id = 2;// 单位id + loginStatus.createInsitution(key, name, id); } + } + } else { + //let find = data.find(item => { return item.key === ModeManager.institutionDemoKey }) + let find = simpleData; //测试单位 + if (find) { + sessionStorage.setItem('unitId', find.key) + this.beforeOneSatus = StatusManager.getStatus(LoginSatus); + this.beforeOneSatus.onSelectInsSuccess(find) } 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) //开发模式 选择单位 弹窗 - } + //this.modelInit(data) //开发模式 选择单位 弹窗 } - }); + } + //}); } ngOnDestroy(): void { //组件销毁前 销毁canvas @@ -316,7 +325,7 @@ export class PlanComponent implements OnInit { selectProperty(e: FacilityInfoUIItem) { this.isShowNature = true this.beforeOnePropertyData = e - console.log(e.getPropertyData(),'选中设备') + console.log(e.getPropertyData(), '选中设备') if (this.isShowChildComponent && this.leftDomain) { this.leftDomain.selectFacilityId = e.getID() } diff --git a/src/app/system-management/analysis-of-the-host/analysis-of-the-host.component.ts b/src/app/system-management/analysis-of-the-host/analysis-of-the-host.component.ts index e9921ac..e0c7ef5 100644 --- a/src/app/system-management/analysis-of-the-host/analysis-of-the-host.component.ts +++ b/src/app/system-management/analysis-of-the-host/analysis-of-the-host.component.ts @@ -26,7 +26,14 @@ export class AnalysisOfTheHostComponent implements OnInit { nzExpandAll = false; totalCount: string getAllOrganization() { - this.http.get('/api/services/app/Organization/GetAll').subscribe((data: any) => { + let OrganizationUnitId = sessionStorage.getItem('isGasStation') == 'true' ? JSON.parse(sessionStorage.getItem('userdataOfgasstation')).organization.id : JSON.parse(sessionStorage.getItem('userdata')).organization.id + let params = { + OrganizationUnitId: OrganizationUnitId, + IsContainsChildren: "true" + } + this.http.get('/api/services/app/Organization/GetAll', { + params: params + }).subscribe((data: any) => { this.totalCount = data.result.totalCount data.result.items.forEach(element => { element.key = element.id diff --git a/src/app/system-management/navigation/navigation.component.html b/src/app/system-management/navigation/navigation.component.html index 43a4f69..02cd2a6 100644 --- a/src/app/system-management/navigation/navigation.component.html +++ b/src/app/system-management/navigation/navigation.component.html @@ -17,6 +17,7 @@
  • 用户管理
  • 角色管理
  • 分析主机管理
  • +
  • 推送管理
  • diff --git a/src/app/system-management/organization/organization.component.ts b/src/app/system-management/organization/organization.component.ts index 65ba6a8..88c42df 100644 --- a/src/app/system-management/organization/organization.component.ts +++ b/src/app/system-management/organization/organization.component.ts @@ -36,7 +36,14 @@ export class OrganizationComponent implements OnInit { nzExpandAll = false; totalCount: string getAllOrganization() { - this.http.get('/api/services/app/Organization/GetAll').subscribe((data: any) => { + let OrganizationUnitId = sessionStorage.getItem('isGasStation') == 'true' ? JSON.parse(sessionStorage.getItem('userdataOfgasstation')).organization.id : JSON.parse(sessionStorage.getItem('userdata')).organization.id + let params = { + OrganizationUnitId: OrganizationUnitId, + IsContainsChildren: "true" + } + this.http.get('/api/services/app/Organization/GetAll', { + params: params + }).subscribe((data: any) => { this.totalCount = data.result.totalCount // console.log('组织机构',data.result.totalCount) data.result.items.forEach(element => { diff --git a/src/app/system-management/push/edit-push-item/edit-push-item.component.html b/src/app/system-management/push/edit-push-item/edit-push-item.component.html new file mode 100644 index 0000000..6302b64 --- /dev/null +++ b/src/app/system-management/push/edit-push-item/edit-push-item.component.html @@ -0,0 +1 @@ +

    edit-push-item works!

    diff --git a/src/app/system-management/push/edit-push-item/edit-push-item.component.scss b/src/app/system-management/push/edit-push-item/edit-push-item.component.scss new file mode 100644 index 0000000..e69de29 diff --git a/src/app/system-management/push/edit-push-item/edit-push-item.component.spec.ts b/src/app/system-management/push/edit-push-item/edit-push-item.component.spec.ts new file mode 100644 index 0000000..4a3f2cd --- /dev/null +++ b/src/app/system-management/push/edit-push-item/edit-push-item.component.spec.ts @@ -0,0 +1,25 @@ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { EditPushItemComponent } from './edit-push-item.component'; + +describe('EditPushItemComponent', () => { + let component: EditPushItemComponent; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ EditPushItemComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(EditPushItemComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/system-management/push/edit-push-item/edit-push-item.component.ts b/src/app/system-management/push/edit-push-item/edit-push-item.component.ts new file mode 100644 index 0000000..d6ab49f --- /dev/null +++ b/src/app/system-management/push/edit-push-item/edit-push-item.component.ts @@ -0,0 +1,15 @@ +import { Component, OnInit } from '@angular/core'; + +@Component({ + selector: 'app-edit-push-item', + templateUrl: './edit-push-item.component.html', + styleUrls: ['./edit-push-item.component.scss'] +}) +export class EditPushItemComponent implements OnInit { + + constructor() { } + + ngOnInit(): void { + } + +} diff --git a/src/app/system-management/push/push.component.html b/src/app/system-management/push/push.component.html new file mode 100644 index 0000000..f30a031 --- /dev/null +++ b/src/app/system-management/push/push.component.html @@ -0,0 +1,46 @@ +
    +
    +
    + 通知推送权限配置 +
    +
    +
    + + + + + + + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + +
    预警类别预警/分析事件预警推送范围预警处置范围操作
    {{item.violationType}}{{item.violationName}}34 + 编辑 +
    +
    + +
    \ No newline at end of file diff --git a/src/app/system-management/push/push.component.scss b/src/app/system-management/push/push.component.scss new file mode 100644 index 0000000..27686f2 --- /dev/null +++ b/src/app/system-management/push/push.component.scss @@ -0,0 +1,81 @@ +.pushbox { + width: 100%; + height: 100%; + background: #FFFFFF; + box-sizing: border-box; + padding: 20px; + overflow: hidden; + display: flex; + flex-direction: column; + +} + +.topbox { + width: 100%; + height: 36px; + display: flex; + align-items: center; + justify-content: space-between; + margin-bottom: 12px; + + .lefttop { + span:nth-child(1) { + color: #000D21; + margin-right: 16px; + } + + span:nth-child(2) { + color: rgba(36, 36, 36, 0.24); + } + } + + .righttop { + display: flex; + + button { + margin-left: 16px; + } + + nz-input-group { + height: 32px; + } + } +} + +.tablebox { + flex: 1; + overflow-y: auto; + + //滚动条样式 + ::-webkit-scrollbar { + display: none; + } + table{ + width: 100%; + tr{ + height: 40px; + line-height: 40px; + font-size: 14px; + } + tr:nth-child(1) th{ + font-weight: 600; + font-size: 15px; + } + tr,tr th,td{ + border: 0px; + color: #000D21; + font-family: synormal; + font-weight: 400; + } + tr:nth-child(odd) { + background-color:rgba(145, 204, 255, 0.16); + } + tr:nth-child(even) { + background-color:#fff; + } + tr th:nth-child(1),td:nth-child(1){ + box-sizing: border-box; + padding-left: 5%; + } + } +} diff --git a/src/app/system-management/push/push.component.ts b/src/app/system-management/push/push.component.ts new file mode 100644 index 0000000..5bd9804 --- /dev/null +++ b/src/app/system-management/push/push.component.ts @@ -0,0 +1,46 @@ +import { HttpClient } from '@angular/common/http'; +import { Component, OnInit } from '@angular/core'; +import { FormBuilder, FormGroup, Validators } from '@angular/forms'; +@Component({ + selector: 'app-push', + templateUrl: './push.component.html', + styleUrls: ['./push.component.scss'] +}) + +export class PushComponent implements OnInit { + + validateForm!: FormGroup; + constructor(private fb: FormBuilder, private http: HttpClient) { } + + ngOnInit(): void { + this.validateForm = this.fb.group({ + search: [null] + }); + this.getViolation() + } + + + //获取预警类型 + list:any + getViolation() { + this.http.get('/api/services/app/Violation/GetAllList').subscribe((data:any) => { + this.list = data.result + console.log('预警类型', data) + }) + } + + + edititem(item){ + + } + + + + //搜索框提交 + submitForm(): void { + for (const i in this.validateForm.controls) { + this.validateForm.controls[i].markAsDirty(); + this.validateForm.controls[i].updateValueAndValidity(); + } + } +} diff --git a/src/app/system-management/system-management-routing.module.ts b/src/app/system-management/system-management-routing.module.ts index c0bbef7..c21a207 100644 --- a/src/app/system-management/system-management-routing.module.ts +++ b/src/app/system-management/system-management-routing.module.ts @@ -6,12 +6,14 @@ import { RoleComponent } from './role/role.component'; import { OrganizationComponent } from './organization/organization.component'; import { UserComponent } from './user/user.component'; import { AnalysisOfTheHostComponent } from './analysis-of-the-host/analysis-of-the-host.component'; +import { PushComponent } from './push/push.component'; const routes: Routes = [ { path: 'organization', component: OrganizationComponent }, { path: 'user', component: UserComponent }, { path: 'role', component: RoleComponent }, - { path: 'host', component: AnalysisOfTheHostComponent } + { path: 'host', component: AnalysisOfTheHostComponent }, + { path: 'push', component: PushComponent } ]; @NgModule({ diff --git a/src/app/system-management/system-management.module.ts b/src/app/system-management/system-management.module.ts index 77f63bb..58a2bda 100644 --- a/src/app/system-management/system-management.module.ts +++ b/src/app/system-management/system-management.module.ts @@ -32,8 +32,10 @@ import { AddhostComponent } from './analysis-of-the-host/addhost/addhost.compone import { EdithostComponent } from './analysis-of-the-host/edithost/edithost.component'; import { AddcameraComponent } from './analysis-of-the-host/addcamera/addcamera.component'; import { EditcameraComponent } from './analysis-of-the-host/editcamera/editcamera.component'; +import { PushComponent } from './push/push.component'; +import { EditPushItemComponent } from './push/edit-push-item/edit-push-item.component'; @NgModule({ - declarations: [OrganizationComponent, UserComponent, RoleComponent, NavigationComponent, AdduserComponent, EdituserComponent, AddroleComponent, EditroleComponent, AddorComponent, EditorComponent, AnalysisOfTheHostComponent, AddhostComponent, EdithostComponent, AddcameraComponent, EditcameraComponent], + declarations: [OrganizationComponent, UserComponent, RoleComponent, NavigationComponent, AdduserComponent, EdituserComponent, AddroleComponent, EditroleComponent, AddorComponent, EditorComponent, AnalysisOfTheHostComponent, AddhostComponent, EdithostComponent, AddcameraComponent, EditcameraComponent, PushComponent, EditPushItemComponent], imports: [ CommonModule, SystemRoutingModule, diff --git a/src/app/system-management/user/adduser/adduser.component.ts b/src/app/system-management/user/adduser/adduser.component.ts index 4320adf..ed57586 100644 --- a/src/app/system-management/user/adduser/adduser.component.ts +++ b/src/app/system-management/user/adduser/adduser.component.ts @@ -43,7 +43,14 @@ export class AdduserComponent implements OnInit { //获取所有组织机构 nodes:any = [] getAllOrganization() { - this.http.get('/api/services/app/Organization/GetAll').subscribe((data: any) => { + let OrganizationUnitId = sessionStorage.getItem('isGasStation') == 'true' ? JSON.parse(sessionStorage.getItem('userdataOfgasstation')).organization.id : JSON.parse(sessionStorage.getItem('userdata')).organization.id + let params = { + OrganizationUnitId: OrganizationUnitId, + IsContainsChildren: "true" + } + this.http.get('/api/services/app/Organization/GetAll', { + params: params + }).subscribe((data: any) => { data.result.items.forEach(element => { element.key = element.id element.title = element.displayName diff --git a/src/app/system-management/user/edituser/edituser.component.ts b/src/app/system-management/user/edituser/edituser.component.ts index c39c449..c20d1c4 100644 --- a/src/app/system-management/user/edituser/edituser.component.ts +++ b/src/app/system-management/user/edituser/edituser.component.ts @@ -45,7 +45,14 @@ export class EdituserComponent implements OnInit { //获取所有组织机构 nodes:any = [] getAllOrganization() { - this.http.get('/api/services/app/Organization/GetAll').subscribe((data: any) => { + let OrganizationUnitId = sessionStorage.getItem('isGasStation') == 'true' ? JSON.parse(sessionStorage.getItem('userdataOfgasstation')).organization.id : JSON.parse(sessionStorage.getItem('userdata')).organization.id + let params = { + OrganizationUnitId: OrganizationUnitId, + IsContainsChildren: "true" + } + this.http.get('/api/services/app/Organization/GetAll', { + params: params + }).subscribe((data: any) => { data.result.items.forEach(element => { element.key = element.id element.title = element.displayName diff --git a/src/assets/images/icon/push.png b/src/assets/images/icon/push.png new file mode 100644 index 0000000..f52e818 Binary files /dev/null and b/src/assets/images/icon/push.png differ diff --git a/src/assets/images/mark/inside/gfmhq.png b/src/assets/images/mark/inside/gfmhq.png index e564828..7b64a73 100644 Binary files a/src/assets/images/mark/inside/gfmhq.png and b/src/assets/images/mark/inside/gfmhq.png differ diff --git a/src/assets/images/mark/inside/ptmhq.png b/src/assets/images/mark/inside/ptmhq.png index e564828..eb9dd05 100644 Binary files a/src/assets/images/mark/inside/ptmhq.png and b/src/assets/images/mark/inside/ptmhq.png differ diff --git a/src/assets/images/mark/inside/stcmhq.png b/src/assets/images/mark/inside/stcmhq.png new file mode 100644 index 0000000..fbd2b78 Binary files /dev/null and b/src/assets/images/mark/inside/stcmhq.png differ diff --git a/src/assets/images/mark/inside/tcmhq.png b/src/assets/images/mark/inside/tcmhq.png deleted file mode 100644 index e564828..0000000 Binary files a/src/assets/images/mark/inside/tcmhq.png and /dev/null differ diff --git a/src/assets/images/mark/outside/pmc.png b/src/assets/images/mark/outside/xfc.png similarity index 100% rename from src/assets/images/mark/outside/pmc.png rename to src/assets/images/mark/outside/xfc.png diff --git a/src/assets/images/mark/outside/mhf.png b/src/assets/images/mark/outside/xfy.png similarity index 100% rename from src/assets/images/mark/outside/mhf.png rename to src/assets/images/mark/outside/xfy.png diff --git a/src/assets/images/packup.png b/src/assets/images/packup.png new file mode 100644 index 0000000..04530c7 Binary files /dev/null and b/src/assets/images/packup.png differ diff --git a/src/assets/mesh/mark/outside/mhf/Boots_AlbedoTransparency.jpg b/src/assets/mesh/mark/outside/mhf/Boots_AlbedoTransparency.jpg deleted file mode 100644 index a615c54..0000000 Binary files a/src/assets/mesh/mark/outside/mhf/Boots_AlbedoTransparency.jpg and /dev/null differ diff --git a/src/assets/mesh/mark/outside/mhf/BunkerClothing_AlbedoTransparency.png b/src/assets/mesh/mark/outside/mhf/BunkerClothing_AlbedoTransparency.png deleted file mode 100644 index 6638094..0000000 Binary files a/src/assets/mesh/mark/outside/mhf/BunkerClothing_AlbedoTransparency.png and /dev/null differ diff --git a/src/assets/mesh/mark/outside/mhf/Head_AlbedoTransparency.jpg b/src/assets/mesh/mark/outside/mhf/Head_AlbedoTransparency.jpg deleted file mode 100644 index 9766899..0000000 Binary files a/src/assets/mesh/mark/outside/mhf/Head_AlbedoTransparency.jpg and /dev/null differ diff --git a/src/assets/mesh/mark/outside/mhf/Helmet_AlbedoTransparency.jpg b/src/assets/mesh/mark/outside/mhf/Helmet_AlbedoTransparency.jpg deleted file mode 100644 index 1c9ae7a..0000000 Binary files a/src/assets/mesh/mark/outside/mhf/Helmet_AlbedoTransparency.jpg and /dev/null differ diff --git a/src/assets/mesh/mark/outside/mhf/MHF.bin b/src/assets/mesh/mark/outside/mhf/MHF.bin deleted file mode 100644 index 802e978..0000000 Binary files a/src/assets/mesh/mark/outside/mhf/MHF.bin and /dev/null differ diff --git a/src/assets/mesh/mark/outside/mhf/MHF.gltf b/src/assets/mesh/mark/outside/mhf/MHF.gltf deleted file mode 100644 index f0c9e90..0000000 --- a/src/assets/mesh/mark/outside/mhf/MHF.gltf +++ /dev/null @@ -1,668 +0,0 @@ -{ - "asset" : { - "generator" : "Khronos glTF Blender I/O v1.6.16", - "version" : "2.0" - }, - "extensionsUsed" : [ - "KHR_draco_mesh_compression" - ], - "extensionsRequired" : [ - "KHR_draco_mesh_compression" - ], - "scene" : 0, - "scenes" : [ - { - "name" : "Scene", - "nodes" : [ - 2 - ] - } - ], - "nodes" : [ - { - "mesh" : 0, - "name" : "PZ", - "scale" : [ - 0.009999999776482582, - 0.009999999776482582, - 0.009999999776482582 - ], - "translation" : [ - 0, - 0, - 0.37858137488365173 - ] - }, - { - "children" : [ - 0 - ], - "mesh" : 1, - "name" : "PT", - "translation" : [ - -0.17859923839569092, - 1.069671392440796, - -0.09293144941329956 - ] - }, - { - "children" : [ - 1 - ], - "mesh" : 2, - "name" : "MHF" - } - ], - "materials" : [ - { - "doubleSided" : true, - "name" : "ShuiQiang.004", - "pbrMetallicRoughness" : { - "baseColorTexture" : { - "index" : 0 - }, - "metallicFactor" : 0, - "roughnessFactor" : 0.5 - } - }, - { - "doubleSided" : true, - "name" : "BunkerClothing_AlbedoTransparency.003", - "pbrMetallicRoughness" : { - "baseColorTexture" : { - "index" : 1 - }, - "metallicFactor" : 0, - "roughnessFactor" : 0.5 - } - }, - { - "doubleSided" : true, - "name" : "Helmet_AlbedoTransparency.003", - "pbrMetallicRoughness" : { - "baseColorTexture" : { - "index" : 2 - }, - "metallicFactor" : 0, - "roughnessFactor" : 0.5 - } - }, - { - "alphaMode" : "BLEND", - "name" : "Glasses.003", - "pbrMetallicRoughness" : { - "baseColorFactor" : [ - 0.5882350206375122, - 0.5882350206375122, - 0.5882350206375122, - 0.3897058963775635 - ], - "metallicFactor" : 0, - "roughnessFactor" : 0.5 - } - }, - { - "doubleSided" : true, - "name" : "Straps_AlbedoTransparency.003", - "pbrMetallicRoughness" : { - "baseColorTexture" : { - "index" : 3 - }, - "metallicFactor" : 0, - "roughnessFactor" : 0.5 - } - }, - { - "doubleSided" : true, - "name" : "Head_AlbedoTransparency.003", - "pbrMetallicRoughness" : { - "baseColorTexture" : { - "index" : 4 - }, - "metallicFactor" : 0, - "roughnessFactor" : 0.5 - } - }, - { - "doubleSided" : true, - "name" : "Boots_AlbedoTransparency.003", - "pbrMetallicRoughness" : { - "baseColorTexture" : { - "index" : 5 - }, - "metallicFactor" : 0, - "roughnessFactor" : 0.5 - } - } - ], - "meshes" : [ - { - "name" : "\u7acb\u65b9\u4f53.003", - "primitives" : [ - { - "attributes" : { - "POSITION" : 0, - "NORMAL" : 1, - "TEXCOORD_0" : 2 - }, - "extensions" : { - "KHR_draco_mesh_compression" : { - "bufferView" : 0, - "attributes" : { - "POSITION" : 0, - "NORMAL" : 1, - "TEXCOORD_0" : 2 - } - } - }, - "indices" : 3, - "mode" : 4 - } - ] - }, - { - "name" : "WaterGun.003", - "primitives" : [ - { - "attributes" : { - "POSITION" : 4, - "NORMAL" : 5, - "TEXCOORD_0" : 6 - }, - "extensions" : { - "KHR_draco_mesh_compression" : { - "bufferView" : 1, - "attributes" : { - "POSITION" : 0, - "NORMAL" : 1, - "TEXCOORD_0" : 2 - } - } - }, - "indices" : 7, - "material" : 0, - "mode" : 4 - } - ] - }, - { - "name" : "MieHuoFu.003", - "primitives" : [ - { - "attributes" : { - "POSITION" : 8, - "NORMAL" : 9, - "TEXCOORD_0" : 10 - }, - "extensions" : { - "KHR_draco_mesh_compression" : { - "bufferView" : 2, - "attributes" : { - "POSITION" : 0, - "NORMAL" : 1, - "TEXCOORD_0" : 2 - } - } - }, - "indices" : 11, - "material" : 1, - "mode" : 4 - }, - { - "attributes" : { - "POSITION" : 12, - "NORMAL" : 13, - "TEXCOORD_0" : 14 - }, - "extensions" : { - "KHR_draco_mesh_compression" : { - "bufferView" : 3, - "attributes" : { - "POSITION" : 0, - "NORMAL" : 1, - "TEXCOORD_0" : 2 - } - } - }, - "indices" : 15, - "material" : 2, - "mode" : 4 - }, - { - "attributes" : { - "POSITION" : 16, - "NORMAL" : 17, - "TEXCOORD_0" : 18 - }, - "extensions" : { - "KHR_draco_mesh_compression" : { - "bufferView" : 4, - "attributes" : { - "POSITION" : 0, - "NORMAL" : 1, - "TEXCOORD_0" : 2 - } - } - }, - "indices" : 19, - "material" : 3, - "mode" : 4 - }, - { - "attributes" : { - "POSITION" : 20, - "NORMAL" : 21, - "TEXCOORD_0" : 22 - }, - "extensions" : { - "KHR_draco_mesh_compression" : { - "bufferView" : 5, - "attributes" : { - "POSITION" : 0, - "NORMAL" : 1, - "TEXCOORD_0" : 2 - } - } - }, - "indices" : 23, - "material" : 4, - "mode" : 4 - }, - { - "attributes" : { - "POSITION" : 24, - "NORMAL" : 25, - "TEXCOORD_0" : 26 - }, - "extensions" : { - "KHR_draco_mesh_compression" : { - "bufferView" : 6, - "attributes" : { - "POSITION" : 0, - "NORMAL" : 1, - "TEXCOORD_0" : 2 - } - } - }, - "indices" : 27, - "material" : 5, - "mode" : 4 - }, - { - "attributes" : { - "POSITION" : 28, - "NORMAL" : 29, - "TEXCOORD_0" : 30 - }, - "extensions" : { - "KHR_draco_mesh_compression" : { - "bufferView" : 7, - "attributes" : { - "POSITION" : 0, - "NORMAL" : 1, - "TEXCOORD_0" : 2 - } - } - }, - "indices" : 31, - "material" : 6, - "mode" : 4 - } - ] - } - ], - "textures" : [ - { - "sampler" : 0, - "source" : 0 - }, - { - "sampler" : 0, - "source" : 1 - }, - { - "sampler" : 0, - "source" : 2 - }, - { - "sampler" : 0, - "source" : 3 - }, - { - "sampler" : 0, - "source" : 4 - }, - { - "sampler" : 0, - "source" : 5 - } - ], - "images" : [ - { - "mimeType" : "image/jpeg", - "name" : "ShuiQiang", - "uri" : "ShuiQiang.jpg" - }, - { - "mimeType" : "image/png", - "name" : "BunkerClothing_AlbedoTransparency", - "uri" : "BunkerClothing_AlbedoTransparency.png" - }, - { - "mimeType" : "image/jpeg", - "name" : "Helmet_AlbedoTransparency", - "uri" : "Helmet_AlbedoTransparency.jpg" - }, - { - "mimeType" : "image/jpeg", - "name" : "Straps_AlbedoTransparency", - "uri" : "Straps_AlbedoTransparency.jpg" - }, - { - "mimeType" : "image/jpeg", - "name" : "Head_AlbedoTransparency", - "uri" : "Head_AlbedoTransparency.jpg" - }, - { - "mimeType" : "image/jpeg", - "name" : "Boots_AlbedoTransparency", - "uri" : "Boots_AlbedoTransparency.jpg" - } - ], - "accessors" : [ - { - "componentType" : 5126, - "count" : 24, - "max" : [ - 1, - 1, - 1 - ], - "min" : [ - -1, - -1, - -1 - ], - "type" : "VEC3" - }, - { - "componentType" : 5126, - "count" : 24, - "type" : "VEC3" - }, - { - "componentType" : 5126, - "count" : 24, - "type" : "VEC2" - }, - { - "componentType" : 5123, - "count" : 36, - "type" : "SCALAR" - }, - { - "componentType" : 5126, - "count" : 1430, - "max" : [ - 0.07184479385614395, - 0.07184479385614395, - 0.39843103289604187 - ], - "min" : [ - -0.07183649390935898, - -0.07183649390935898, - -1.3987065727860681e-08 - ], - "type" : "VEC3" - }, - { - "componentType" : 5126, - "count" : 1430, - "type" : "VEC3" - }, - { - "componentType" : 5126, - "count" : 1430, - "type" : "VEC2" - }, - { - "componentType" : 5123, - "count" : 2964, - "type" : "SCALAR" - }, - { - "componentType" : 5126, - "count" : 3652, - "max" : [ - 0.31568726897239685, - 1.579005241394043, - 0.21250030398368835 - ], - "min" : [ - -0.3100007474422455, - 0.029164545238018036, - -0.16183406114578247 - ], - "type" : "VEC3" - }, - { - "componentType" : 5126, - "count" : 3652, - "type" : "VEC3" - }, - { - "componentType" : 5126, - "count" : 3652, - "type" : "VEC2" - }, - { - "componentType" : 5123, - "count" : 15516, - "type" : "SCALAR" - }, - { - "componentType" : 5126, - "count" : 4746, - "max" : [ - 0.13183458149433136, - 1.8140419721603394, - 0.16708354651927948 - ], - "min" : [ - -0.13521797955036163, - 1.4775199890136719, - -0.1361415833234787 - ], - "type" : "VEC3" - }, - { - "componentType" : 5126, - "count" : 4746, - "type" : "VEC3" - }, - { - "componentType" : 5126, - "count" : 4746, - "type" : "VEC2" - }, - { - "componentType" : 5123, - "count" : 22830, - "type" : "SCALAR" - }, - { - "componentType" : 5126, - "count" : 1514, - "max" : [ - 0.11418724805116653, - 1.6796936988830566, - 0.1821955293416977 - ], - "min" : [ - -0.1096891537308693, - 1.5852127075195312, - 0.0685286819934845 - ], - "type" : "VEC3" - }, - { - "componentType" : 5126, - "count" : 1514, - "type" : "VEC3" - }, - { - "componentType" : 5126, - "count" : 1514, - "type" : "VEC2" - }, - { - "componentType" : 5123, - "count" : 7860, - "type" : "SCALAR" - }, - { - "componentType" : 5126, - "count" : 5342, - "max" : [ - 0.09371404349803925, - 1.7351529598236084, - 0.14662612974643707 - ], - "min" : [ - -0.08921344578266144, - 1.498990535736084, - -0.036142800003290176 - ], - "type" : "VEC3" - }, - { - "componentType" : 5126, - "count" : 5342, - "type" : "VEC3" - }, - { - "componentType" : 5126, - "count" : 5342, - "type" : "VEC2" - }, - { - "componentType" : 5123, - "count" : 15522, - "type" : "SCALAR" - }, - { - "componentType" : 5126, - "count" : 3829, - "max" : [ - 0.09659265726804733, - 1.7590115070343018, - 0.1568334698677063 - ], - "min" : [ - -0.0969589576125145, - 1.455280065536499, - -0.08099030703306198 - ], - "type" : "VEC3" - }, - { - "componentType" : 5126, - "count" : 3829, - "type" : "VEC3" - }, - { - "componentType" : 5126, - "count" : 3829, - "type" : "VEC2" - }, - { - "componentType" : 5123, - "count" : 21555, - "type" : "SCALAR" - }, - { - "componentType" : 5126, - "count" : 1388, - "max" : [ - 0.2262089103460312, - 0.2532302439212799, - 0.18883022665977478 - ], - "min" : [ - -0.2262089103460312, - -2.776151220018619e-08, - -0.10604356974363327 - ], - "type" : "VEC3" - }, - { - "componentType" : 5126, - "count" : 1388, - "type" : "VEC3" - }, - { - "componentType" : 5126, - "count" : 1388, - "type" : "VEC2" - }, - { - "componentType" : 5123, - "count" : 5148, - "type" : "SCALAR" - } - ], - "bufferViews" : [ - { - "buffer" : 0, - "byteLength" : 264, - "byteOffset" : 0 - }, - { - "buffer" : 0, - "byteLength" : 8908, - "byteOffset" : 264 - }, - { - "buffer" : 0, - "byteLength" : 28138, - "byteOffset" : 9172 - }, - { - "buffer" : 0, - "byteLength" : 34016, - "byteOffset" : 37312 - }, - { - "buffer" : 0, - "byteLength" : 9580, - "byteOffset" : 71328 - }, - { - "buffer" : 0, - "byteLength" : 37426, - "byteOffset" : 80908 - }, - { - "buffer" : 0, - "byteLength" : 27725, - "byteOffset" : 118336 - }, - { - "buffer" : 0, - "byteLength" : 11416, - "byteOffset" : 146064 - } - ], - "samplers" : [ - { - "magFilter" : 9729, - "minFilter" : 9987 - } - ], - "buffers" : [ - { - "byteLength" : 157480, - "uri" : "MHF.bin" - } - ] -} diff --git a/src/assets/mesh/mark/outside/mhf/MHF.gltf.manifest b/src/assets/mesh/mark/outside/mhf/MHF.gltf.manifest deleted file mode 100644 index 1781cb5..0000000 --- a/src/assets/mesh/mark/outside/mhf/MHF.gltf.manifest +++ /dev/null @@ -1,5 +0,0 @@ -{ - "version" : 1, - "enableSceneOffline" : true, - "enableTexturesOffline" : true -} \ No newline at end of file diff --git a/src/assets/mesh/mark/outside/mhf/ShuiQiang.jpg b/src/assets/mesh/mark/outside/mhf/ShuiQiang.jpg deleted file mode 100644 index 964bacd..0000000 Binary files a/src/assets/mesh/mark/outside/mhf/ShuiQiang.jpg and /dev/null differ diff --git a/src/assets/mesh/mark/outside/mhf/Straps_AlbedoTransparency.jpg b/src/assets/mesh/mark/outside/mhf/Straps_AlbedoTransparency.jpg deleted file mode 100644 index 7e119d2..0000000 Binary files a/src/assets/mesh/mark/outside/mhf/Straps_AlbedoTransparency.jpg and /dev/null differ diff --git a/src/assets/mesh/mark/outside/pmc/CarColor.png b/src/assets/mesh/mark/outside/pmc/CarColor.png deleted file mode 100644 index 89d2afa..0000000 Binary files a/src/assets/mesh/mark/outside/pmc/CarColor.png and /dev/null differ diff --git a/src/assets/mesh/mark/outside/pmc/FireCar.jpg b/src/assets/mesh/mark/outside/pmc/FireCar.jpg deleted file mode 100644 index 0edb25e..0000000 Binary files a/src/assets/mesh/mark/outside/pmc/FireCar.jpg and /dev/null differ diff --git a/src/assets/mesh/mark/outside/pmc/PMC.bin b/src/assets/mesh/mark/outside/pmc/PMC.bin deleted file mode 100644 index d0e62b2..0000000 Binary files a/src/assets/mesh/mark/outside/pmc/PMC.bin and /dev/null differ diff --git a/src/assets/mesh/mark/outside/pmc/PMC.gltf b/src/assets/mesh/mark/outside/pmc/PMC.gltf deleted file mode 100644 index bf703d1..0000000 --- a/src/assets/mesh/mark/outside/pmc/PMC.gltf +++ /dev/null @@ -1,796 +0,0 @@ -{ - "asset" : { - "generator" : "Khronos glTF Blender I/O v1.6.16", - "version" : "2.0" - }, - "extensionsUsed" : [ - "KHR_draco_mesh_compression" - ], - "extensionsRequired" : [ - "KHR_draco_mesh_compression" - ], - "scene" : 0, - "scenes" : [ - { - "name" : "Scene", - "nodes" : [ - 4, - 5, - 6, - 8 - ] - } - ], - "nodes" : [ - { - "mesh" : 0, - "name" : "BL", - "translation" : [ - 0.930389404296875, - 0.5263820886611938, - -1.2779022455215454 - ] - }, - { - "mesh" : 1, - "name" : "BR", - "translation" : [ - -0.8709052801132202, - 0.5263820886611938, - -1.2779022455215454 - ] - }, - { - "mesh" : 2, - "name" : "FL", - "translation" : [ - 0.9883639812469482, - 0.526381254196167, - 2.525930166244507 - ] - }, - { - "mesh" : 3, - "name" : "FR", - "translation" : [ - -0.9485308527946472, - 0.526381254196167, - 2.525930166244507 - ] - }, - { - "children" : [ - 0, - 1, - 2, - 3 - ], - "name" : "wheelModels" - }, - { - "mesh" : 4, - "name" : "Glass" - }, - { - "mesh" : 5, - "name" : "Body" - }, - { - "mesh" : 6, - "name" : "PZ", - "scale" : [ - 0.009999999776482582, - 0.009999999776482582, - 0.009999999776482582 - ], - "translation" : [ - 0.0015363730490207672, - 0.014608621597290039, - 0.6146829128265381 - ] - }, - { - "children" : [ - 7 - ], - "mesh" : 7, - "name" : "PT", - "translation" : [ - 0.032101746648550034, - 3.3492186069488525, - -1.230138897895813 - ] - } - ], - "materials" : [ - { - "doubleSided" : true, - "name" : "FireCar.002", - "pbrMetallicRoughness" : { - "baseColorTexture" : { - "index" : 0 - }, - "metallicFactor" : 0, - "roughnessFactor" : 0.5 - } - }, - { - "doubleSided" : true, - "name" : "CarGlass", - "pbrMetallicRoughness" : { - "baseColorFactor" : [ - 0.07656104862689972, - 0.06475582718849182, - 0.04368578642606735, - 1 - ], - "metallicFactor" : 0, - "roughnessFactor" : 0.15441176295280457 - } - }, - { - "doubleSided" : true, - "name" : "CarColor", - "pbrMetallicRoughness" : { - "baseColorTexture" : { - "index" : 1 - }, - "metallicFactor" : 0, - "roughnessFactor" : 0.5 - } - } - ], - "meshes" : [ - { - "name" : "BL", - "primitives" : [ - { - "attributes" : { - "POSITION" : 0, - "NORMAL" : 1, - "TEXCOORD_0" : 2, - "TEXCOORD_1" : 3 - }, - "extensions" : { - "KHR_draco_mesh_compression" : { - "bufferView" : 0, - "attributes" : { - "POSITION" : 0, - "NORMAL" : 1, - "TEXCOORD_0" : 2, - "TEXCOORD_1" : 3 - } - } - }, - "indices" : 4, - "material" : 0, - "mode" : 4 - } - ] - }, - { - "name" : "BR", - "primitives" : [ - { - "attributes" : { - "POSITION" : 5, - "NORMAL" : 6, - "TEXCOORD_0" : 7, - "TEXCOORD_1" : 8 - }, - "extensions" : { - "KHR_draco_mesh_compression" : { - "bufferView" : 1, - "attributes" : { - "POSITION" : 0, - "NORMAL" : 1, - "TEXCOORD_0" : 2, - "TEXCOORD_1" : 3 - } - } - }, - "indices" : 9, - "material" : 0, - "mode" : 4 - } - ] - }, - { - "name" : "FL", - "primitives" : [ - { - "attributes" : { - "POSITION" : 10, - "NORMAL" : 11, - "TEXCOORD_0" : 12, - "TEXCOORD_1" : 13 - }, - "extensions" : { - "KHR_draco_mesh_compression" : { - "bufferView" : 2, - "attributes" : { - "POSITION" : 0, - "NORMAL" : 1, - "TEXCOORD_0" : 2, - "TEXCOORD_1" : 3 - } - } - }, - "indices" : 14, - "material" : 0, - "mode" : 4 - } - ] - }, - { - "name" : "FR", - "primitives" : [ - { - "attributes" : { - "POSITION" : 15, - "NORMAL" : 16, - "TEXCOORD_0" : 17, - "TEXCOORD_1" : 18 - }, - "extensions" : { - "KHR_draco_mesh_compression" : { - "bufferView" : 3, - "attributes" : { - "POSITION" : 0, - "NORMAL" : 1, - "TEXCOORD_0" : 2, - "TEXCOORD_1" : 3 - } - } - }, - "indices" : 14, - "material" : 0, - "mode" : 4 - } - ] - }, - { - "name" : "Glass", - "primitives" : [ - { - "attributes" : { - "POSITION" : 19, - "NORMAL" : 20, - "TEXCOORD_0" : 21, - "TEXCOORD_1" : 22 - }, - "extensions" : { - "KHR_draco_mesh_compression" : { - "bufferView" : 4, - "attributes" : { - "POSITION" : 0, - "NORMAL" : 1, - "TEXCOORD_0" : 2, - "TEXCOORD_1" : 3 - } - } - }, - "indices" : 23, - "material" : 1, - "mode" : 4 - } - ] - }, - { - "name" : "Body", - "primitives" : [ - { - "attributes" : { - "POSITION" : 24, - "NORMAL" : 25, - "TEXCOORD_0" : 26, - "TEXCOORD_1" : 27, - "TEXCOORD_2" : 28, - "TEXCOORD_3" : 29 - }, - "extensions" : { - "KHR_draco_mesh_compression" : { - "bufferView" : 5, - "attributes" : { - "POSITION" : 0, - "NORMAL" : 1, - "TEXCOORD_0" : 2, - "TEXCOORD_1" : 3, - "TEXCOORD_2" : 4, - "TEXCOORD_3" : 5 - } - } - }, - "indices" : 30, - "material" : 2, - "mode" : 4 - }, - { - "attributes" : { - "POSITION" : 31, - "NORMAL" : 32, - "TEXCOORD_0" : 33, - "TEXCOORD_1" : 34, - "TEXCOORD_2" : 35, - "TEXCOORD_3" : 36 - }, - "extensions" : { - "KHR_draco_mesh_compression" : { - "bufferView" : 6, - "attributes" : { - "POSITION" : 0, - "NORMAL" : 1, - "TEXCOORD_0" : 2, - "TEXCOORD_1" : 3, - "TEXCOORD_2" : 4, - "TEXCOORD_3" : 5 - } - } - }, - "indices" : 37, - "material" : 0, - "mode" : 4 - } - ] - }, - { - "name" : "\u7acb\u65b9\u4f53.008", - "primitives" : [ - { - "attributes" : { - "POSITION" : 38, - "NORMAL" : 39, - "TEXCOORD_0" : 40 - }, - "extensions" : { - "KHR_draco_mesh_compression" : { - "bufferView" : 7, - "attributes" : { - "POSITION" : 0, - "NORMAL" : 1, - "TEXCOORD_0" : 2 - } - } - }, - "indices" : 41, - "mode" : 4 - } - ] - }, - { - "name" : "WaterGun", - "primitives" : [ - { - "attributes" : { - "POSITION" : 42, - "NORMAL" : 43, - "TEXCOORD_0" : 44, - "TEXCOORD_1" : 45 - }, - "extensions" : { - "KHR_draco_mesh_compression" : { - "bufferView" : 8, - "attributes" : { - "POSITION" : 0, - "NORMAL" : 1, - "TEXCOORD_0" : 2, - "TEXCOORD_1" : 3 - } - } - }, - "indices" : 46, - "material" : 2, - "mode" : 4 - } - ] - } - ], - "textures" : [ - { - "sampler" : 0, - "source" : 0 - }, - { - "sampler" : 0, - "source" : 1 - } - ], - "images" : [ - { - "mimeType" : "image/jpeg", - "name" : "FireCar", - "uri" : "FireCar.jpg" - }, - { - "mimeType" : "image/png", - "name" : "CarColor", - "uri" : "CarColor.png" - } - ], - "accessors" : [ - { - "componentType" : 5126, - "count" : 289, - "max" : [ - 0.2735353708267212, - 0.5016516447067261, - 0.5016562938690186 - ], - "min" : [ - -0.3255194425582886, - -0.5016518831253052, - -0.5016472339630127 - ], - "type" : "VEC3" - }, - { - "componentType" : 5126, - "count" : 289, - "type" : "VEC3" - }, - { - "componentType" : 5126, - "count" : 289, - "type" : "VEC2" - }, - { - "componentType" : 5126, - "count" : 289, - "type" : "VEC2" - }, - { - "componentType" : 5123, - "count" : 1068, - "type" : "SCALAR" - }, - { - "componentType" : 5126, - "count" : 284, - "max" : [ - 0.27353453636169434, - 0.5016516447067261, - 0.5016562938690186 - ], - "min" : [ - -0.32552027702331543, - -0.5016518831253052, - -0.5016472339630127 - ], - "type" : "VEC3" - }, - { - "componentType" : 5126, - "count" : 284, - "type" : "VEC3" - }, - { - "componentType" : 5126, - "count" : 284, - "type" : "VEC2" - }, - { - "componentType" : 5126, - "count" : 284, - "type" : "VEC2" - }, - { - "componentType" : 5123, - "count" : 1068, - "type" : "SCALAR" - }, - { - "componentType" : 5126, - "count" : 148, - "max" : [ - 0.12047308683395386, - 0.5016517639160156, - 0.5016556978225708 - ], - "min" : [ - -0.1725015640258789, - -0.5016516447067261, - -0.5016477108001709 - ], - "type" : "VEC3" - }, - { - "componentType" : 5126, - "count" : 148, - "type" : "VEC3" - }, - { - "componentType" : 5126, - "count" : 148, - "type" : "VEC2" - }, - { - "componentType" : 5126, - "count" : 148, - "type" : "VEC2" - }, - { - "componentType" : 5123, - "count" : 588, - "type" : "SCALAR" - }, - { - "componentType" : 5126, - "count" : 148, - "max" : [ - 0.12047266960144043, - 0.5016517639160156, - 0.5016556978225708 - ], - "min" : [ - -0.17250198125839233, - -0.5016516447067261, - -0.5016477108001709 - ], - "type" : "VEC3" - }, - { - "componentType" : 5126, - "count" : 148, - "type" : "VEC3" - }, - { - "componentType" : 5126, - "count" : 148, - "type" : "VEC2" - }, - { - "componentType" : 5126, - "count" : 148, - "type" : "VEC2" - }, - { - "componentType" : 5126, - "count" : 146, - "max" : [ - 1.2894694805145264, - 2.566256523132324, - 3.534332752227783 - ], - "min" : [ - -1.2894694805145264, - 1.629791498184204, - 1.1941930055618286 - ], - "type" : "VEC3" - }, - { - "componentType" : 5126, - "count" : 146, - "type" : "VEC3" - }, - { - "componentType" : 5126, - "count" : 146, - "type" : "VEC2" - }, - { - "componentType" : 5126, - "count" : 146, - "type" : "VEC2" - }, - { - "componentType" : 5123, - "count" : 474, - "type" : "SCALAR" - }, - { - "componentType" : 5126, - "count" : 10285, - "max" : [ - 1.3214938640594482, - 3.396054267883301, - 3.7334296703338623 - ], - "min" : [ - -1.3215093612670898, - 0.06301689147949219, - -3.7334306240081787 - ], - "type" : "VEC3" - }, - { - "componentType" : 5126, - "count" : 10285, - "type" : "VEC3" - }, - { - "componentType" : 5126, - "count" : 10285, - "type" : "VEC2" - }, - { - "componentType" : 5126, - "count" : 10285, - "type" : "VEC2" - }, - { - "componentType" : 5126, - "count" : 10285, - "type" : "VEC2" - }, - { - "componentType" : 5126, - "count" : 10285, - "type" : "VEC2" - }, - { - "componentType" : 5123, - "count" : 19134, - "type" : "SCALAR" - }, - { - "componentType" : 5126, - "count" : 116, - "max" : [ - 1.1970285177230835, - 2.388274908065796, - 3.7181694507598877 - ], - "min" : [ - -1.1981037855148315, - 0.2322521060705185, - -3.6314189434051514 - ], - "type" : "VEC3" - }, - { - "componentType" : 5126, - "count" : 116, - "type" : "VEC3" - }, - { - "componentType" : 5126, - "count" : 116, - "type" : "VEC2" - }, - { - "componentType" : 5126, - "count" : 116, - "type" : "VEC2" - }, - { - "componentType" : 5126, - "count" : 116, - "type" : "VEC2" - }, - { - "componentType" : 5126, - "count" : 116, - "type" : "VEC2" - }, - { - "componentType" : 5123, - "count" : 156, - "type" : "SCALAR" - }, - { - "componentType" : 5126, - "count" : 24, - "max" : [ - 1, - 1, - 1 - ], - "min" : [ - -1, - -1, - -1 - ], - "type" : "VEC3" - }, - { - "componentType" : 5126, - "count" : 24, - "type" : "VEC3" - }, - { - "componentType" : 5126, - "count" : 24, - "type" : "VEC2" - }, - { - "componentType" : 5123, - "count" : 36, - "type" : "SCALAR" - }, - { - "componentType" : 5126, - "count" : 296, - "max" : [ - 0.12257297337055206, - 0.08071567118167877, - 0.6802297830581665 - ], - "min" : [ - -0.11950023472309113, - -0.0514986515045166, - -0.5285130739212036 - ], - "type" : "VEC3" - }, - { - "componentType" : 5126, - "count" : 296, - "type" : "VEC3" - }, - { - "componentType" : 5126, - "count" : 296, - "type" : "VEC2" - }, - { - "componentType" : 5126, - "count" : 296, - "type" : "VEC2" - }, - { - "componentType" : 5123, - "count" : 516, - "type" : "SCALAR" - } - ], - "bufferViews" : [ - { - "buffer" : 0, - "byteLength" : 3246, - "byteOffset" : 0 - }, - { - "buffer" : 0, - "byteLength" : 3168, - "byteOffset" : 3248 - }, - { - "buffer" : 0, - "byteLength" : 1761, - "byteOffset" : 6416 - }, - { - "buffer" : 0, - "byteLength" : 1773, - "byteOffset" : 8180 - }, - { - "buffer" : 0, - "byteLength" : 1721, - "byteOffset" : 9956 - }, - { - "buffer" : 0, - "byteLength" : 77456, - "byteOffset" : 11680 - }, - { - "buffer" : 0, - "byteLength" : 1695, - "byteOffset" : 89136 - }, - { - "buffer" : 0, - "byteLength" : 264, - "byteOffset" : 90832 - }, - { - "buffer" : 0, - "byteLength" : 3101, - "byteOffset" : 91096 - } - ], - "samplers" : [ - { - "magFilter" : 9729, - "minFilter" : 9987 - } - ], - "buffers" : [ - { - "byteLength" : 94200, - "uri" : "PMC.bin" - } - ] -} diff --git a/src/assets/mesh/mark/outside/pmc/PMC.gltf.manifest b/src/assets/mesh/mark/outside/pmc/PMC.gltf.manifest deleted file mode 100644 index 1781cb5..0000000 --- a/src/assets/mesh/mark/outside/pmc/PMC.gltf.manifest +++ /dev/null @@ -1,5 +0,0 @@ -{ - "version" : 1, - "enableSceneOffline" : true, - "enableTexturesOffline" : true -} \ No newline at end of file diff --git a/yarn.lock b/yarn.lock index 2dba4a7..a07d032 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6889,6 +6889,11 @@ jest-worker@^25.1.0: merge-stream "^2.0.0" supports-color "^7.0.0" +js-base64@^3.7.2: + version "3.7.2" + resolved "https://registry.npmmirror.com/js-base64/download/js-base64-3.7.2.tgz?cache=0&sync_timestamp=1632308301843&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fjs-base64%2Fdownload%2Fjs-base64-3.7.2.tgz#816d11d81a8aff241603d19ce5761e13e41d7745" + integrity sha1-gW0R2BqK/yQWA9Gc5XYeE+Qdd0U= + js-levenshtein@^1.1.3: version "1.1.6" resolved "https://registry.npm.taobao.org/js-levenshtein/download/js-levenshtein-1.1.6.tgz#c6cee58eb3550372df8deb85fad5ce66ce01d59d"