中化加油站项目
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

190 lines
7.1 KiB

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>(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>(LoginSatus);
loginStatus.closeCreateWindow();
loginStatus.openSelectWindow();
}
//#endregion
}