import { Button, Control, Rectangle, StackPanel, TextBlock } from "@babylonjs/gui"; import { LoginSatus } from "../../controller/status/login-status"; import { StatusManager } from "../../controller/status/status-manager"; import { UIManager } from "../../controller/ui-manager"; import { InstitutionData, NormalData } from "../../model/data/institution/institution-data"; import { InsitutionDataSimple } from "../../model/data/institution/institution-data-simple"; import { MyInputText } from "../../tool/babylon-tool"; import { BabylonUIStyleTool } from "../../tool/babylon-ui-style-tool"; import { UIBase } from "../window-base/ui-base"; //创建单位界面 //由于还没有可存放多个单位信息的位置,先预留,暂时没实现 export class InstitutionCreateWindow extends UIBase { insDataSimple: InsitutionDataSimple;//新单位简易信息 insData: InstitutionData; //新单位的详细信息 //#region 声明周期 onInit() { super.onInit(); } onOpen() { super.onOpen(); this.initUI(); } onClose() { super.onClose(); } //#endregion //#region 创建新单位 //开始创建 startCreate() { this.insDataSimple = new InsitutionDataSimple(); this.insDataSimple.key = "test3";//因不可重复,应该从服务器获得 this.txt_keyValue.inputText.text = this.insDataSimple.key;//假装请求成功 this.txt_keyValue.inputText.onTextChangedObservable.add(() => { this.insDataSimple.key = this.txt_keyValue.inputText.text; console.log("设置key" + this.insDataSimple.key); }) } //确定 onbtnOK() { this.insDataSimple.name = this.inputTxt_insName.inputText.text;//从输入框获取 // console.log("onbtnOK==key" + this.insDataSimple.key); // console.log("onbtnOK==name" + this.insDataSimple.name); if (this.insDataSimple.name == null) { console.log("请输入单位名称"); } else { this.insData = new InstitutionData(); this.insData.normalData = new NormalData(this.insDataSimple.key, this.insDataSimple.name); console.log(this.insData.normalData); this.saveNewIns(); } } //保存新单位信息至服务器 saveNewIns() { let window = this; let loginStatus = StatusManager.getStatus(LoginSatus); loginStatus.saveNewIns(loginStatus, window.insData, window.insDataSimple.key, (insDataSimple) => { loginStatus.closeCreateWindow(); }); } //#endregion //#region UI界面 inputTxt_insName: MyInputText;//名称输入框 txt_keyValue: MyInputText;//唯一Key btn_OK: Button;//确定创建 btn_Cancle: Button;//取消 initUI() { let window = this; this.root = new Rectangle("InstitutionCreateWindow"); this.root.width = "300px"; this.root.height = "382px"; BabylonUIStyleTool.setDefaultStyle_windowRoot(this.root); UIManager.Instance.uiRoot.addControl(this.root); let title = new TextBlock("title", "新建单位"); BabylonUIStyleTool.setStyle_size(title, "80px", "20px"); BabylonUIStyleTool.setStyle_bodyText(title); this.root.addControl(title); BabylonUIStyleTool.setStyle_Alignment(title, Control.HORIZONTAL_ALIGNMENT_CENTER, Control.VERTICAL_ALIGNMENT_TOP); BabylonUIStyleTool.setStyle_padding(title, "40px", undefined, undefined, undefined); let nameRoot = new StackPanel("nameRoor"); BabylonUIStyleTool.setStyle_size(nameRoot, "200px", "300px"); this.root.addControl(nameRoot); BabylonUIStyleTool.setStyle_Alignment(nameRoot, Control.HORIZONTAL_ALIGNMENT_CENTER, Control.VERTICAL_ALIGNMENT_TOP); BabylonUIStyleTool.setStyle_padding(nameRoot, "80px", undefined, undefined, undefined); let nameTxt = new TextBlock("nameTxt", "单位名称"); BabylonUIStyleTool.setStyle_size(nameTxt, "200px", "20px"); nameTxt.textVerticalAlignment = Control.VERTICAL_ALIGNMENT_TOP; BabylonUIStyleTool.setStyle_bodyText(nameTxt, "16px", UIBase.color_black); nameTxt.textHorizontalAlignment = Control.HORIZONTAL_ALIGNMENT_LEFT; nameRoot.addControl(nameTxt); this.inputTxt_insName = BabylonUIStyleTool.createInputText("input_name", nameRoot, "200px", "30px"); let padding = new Control(); BabylonUIStyleTool.setStyle_size(padding, "200px", "20px"); nameRoot.addControl(padding); let keyTxt = new TextBlock("keyTxt", "唯一key,仅供测试可见"); BabylonUIStyleTool.setStyle_size(keyTxt, "200px", "20px"); keyTxt.textVerticalAlignment = Control.VERTICAL_ALIGNMENT_TOP; BabylonUIStyleTool.setStyle_bodyText(keyTxt, "16px", UIBase.color_black); keyTxt.textHorizontalAlignment = Control.HORIZONTAL_ALIGNMENT_LEFT; nameRoot.addControl(keyTxt); keyTxt.alpha = 0.5; this.txt_keyValue = BabylonUIStyleTool.createInputText("keyValueTxt", nameRoot, "200px", "20px", "black", undefined, undefined, BabylonUIStyleTool.c_color_gray, "black", BabylonUIStyleTool.c_color_gray); // BabylonUIStyleTool.setStyle_size(this.txt_keyValue, "200px", "20px"); // this.txt_keyValue.textVerticalAlignment = Control.VERTICAL_ALIGNMENT_TOP; // BabylonUIStyleTool.setStyle_bodyText(this.txt_keyValue, "14px", UIBase.color_black); // this.txt_keyValue.textHorizontalAlignment = Control.HORIZONTAL_ALIGNMENT_LEFT; // nameRoot.addControl(this.txt_keyValue); // this.txt_keyValue.alpha = 0.7; this.txt_keyValue.inputText.onTextChangedObservable.add(() => { window.insDataSimple.key = window.txt_keyValue.inputText.text; }); let btnRoot = new StackPanel("btnRoot"); btnRoot.isVertical = false; this.root.addControl(btnRoot); BabylonUIStyleTool.setStyle_size(btnRoot, "240px", "70px"); BabylonUIStyleTool.setStyle_Alignment(btnRoot, Control.HORIZONTAL_ALIGNMENT_CENTER, Control.VERTICAL_ALIGNMENT_BOTTOM); BabylonUIStyleTool.setStyle_padding(btnRoot, undefined, undefined, "30px"); let padding_btn = new Control("padding_btn"); BabylonUIStyleTool.setStyle_size(padding_btn, "10px", "36px"); btnRoot.addControl(padding_btn); this.btn_OK = BabylonUIStyleTool.createBtn_OK("OK", "确定", "100px", "36px", "18px"); btnRoot.addControl(this.btn_OK); this.btn_OK.onPointerClickObservable.add(() => { window.onbtnOK(); }) let padding_btn1 = new Control("padding_btn1"); BabylonUIStyleTool.setStyle_size(padding_btn1, "20px", "36px"); btnRoot.addControl(padding_btn1); this.btn_Cancle = BabylonUIStyleTool.createBtn_Cancel("Cancel", "取消", "100px", "36px", "18px"); btnRoot.addControl(this.btn_Cancle); this.btn_Cancle.onPointerClickObservable.add(() => { window.onBtnClose(); }) } onBtnClose() { let loginStatus = StatusManager.getStatus(LoginSatus); loginStatus.closeCreateWindow(); loginStatus.openSelectWindow(); } //#endregion }