mirror of
https://gitee.com/jisol/jisol-game/
synced 2025-06-26 03:14:47 +00:00
94 lines
2.5 KiB
TypeScript
94 lines
2.5 KiB
TypeScript
import { _decorator, Component, Node } from 'cc';
|
|
import JNLayerBase from '../../../../../extensions/ngame/assets/ngame/ui/base/JNLayerBase';
|
|
import { Label } from 'cc';
|
|
import { Button } from 'cc';
|
|
import { app } from '../../../App';
|
|
const { ccclass, property } = _decorator;
|
|
|
|
export interface SelectionBoxInfo{
|
|
cancelText?:string, //取消按钮文字
|
|
cancel?:Function, //取消事件
|
|
confirmText?:string, //确认按钮文字
|
|
confirm?:Function, //确认事件
|
|
isHideMake?:boolean, //是否隐藏遮罩
|
|
isMaskClose?:boolean, //是否点击遮罩关闭
|
|
|
|
tigText?:string, //提示内容
|
|
titleText?:string, //标题内容
|
|
}
|
|
|
|
@ccclass('SelectionBox')
|
|
export class SelectionBox extends JNLayerBase {
|
|
|
|
//标题
|
|
@property(Label)
|
|
titleLabel:Label;
|
|
|
|
//提示文字
|
|
@property(Label)
|
|
tigLabel:Label;
|
|
|
|
//取消按钮
|
|
@property(Button)
|
|
cancalBtn:Button;
|
|
|
|
//确认按钮
|
|
@property(Button)
|
|
confirmBtn:Button;
|
|
|
|
//按钮列表
|
|
@property(Node)
|
|
btns:Node;
|
|
|
|
data:SelectionBoxInfo;
|
|
|
|
onJNLoad(data?: SelectionBoxInfo): void {
|
|
|
|
this.data = data;
|
|
|
|
//默认不可以
|
|
data.isMaskClose = !!data.isMaskClose;
|
|
data.tigText = data.tigText || "这是一个提示选择框";
|
|
data.titleText = data.titleText || "标 题";
|
|
data.cancelText = data.cancelText || "取 消";
|
|
data.confirmText = data.confirmText || "确 认";
|
|
|
|
this.mask = !data.isHideMake;
|
|
this.isClickMaskeClose = data.isMaskClose;
|
|
|
|
this.tigLabel.string = data.tigText;
|
|
this.titleLabel.string = data.titleText;
|
|
|
|
//没有事件则不显示
|
|
this.cancalBtn.node.active = !!data.cancel;
|
|
this.confirmBtn.node.active = !!data.confirm;
|
|
|
|
//显示按钮文字
|
|
this.cancalBtn.getComponentInChildren(Label).string = data.cancelText;
|
|
this.confirmBtn.getComponentInChildren(Label).string = data.confirmText;
|
|
|
|
//如果都没有则隐藏按钮列表
|
|
if(!data.cancel && data.confirm)
|
|
this.btns.active = false;
|
|
|
|
super.onJNLoad();
|
|
|
|
}
|
|
|
|
//点击确认
|
|
async onClickConfirm(){
|
|
this.data.confirm && await this.data.confirm();
|
|
//关闭页面
|
|
app.layer.CloseNode(this.node);
|
|
}
|
|
//点击取消
|
|
async onClickCancel(){
|
|
this.data.cancel && await this.data.cancel();
|
|
//关闭页面
|
|
app.layer.CloseNode(this.node);
|
|
}
|
|
|
|
}
|
|
|
|
|