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
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 |
|
|
|
|
|
|
|
|
|
} |