Files
slgclient/assets/scripts/union/UnionMemberItemOpLogic.ts
2025-11-18 18:38:53 +08:00

99 lines
3.2 KiB
TypeScript

import { _decorator, Component, Button, Node } from 'cc';
const { ccclass, property } = _decorator;
import { MapCityData } from "../map/MapCityProxy";
import MapCommand from "../map/MapCommand";
import UnionCommand from "./UnionCommand";
import { Member, Union } from "./UnionProxy";
@ccclass('UnionMemberItemOpLogic')
export default class UnionMemberItemOpLogic extends Component {
@property(Button)
kickButton: Button = null;
@property(Button)
abdicateButton: Button = null;
@property(Button)
appointButton: Button = null;
@property(Button)
unAppointButton: Button = null;
protected _menberData:Member = null;
protected onLoad():void{
this.node.on(Node.EventType.TOUCH_END, this.click, this);
}
protected onDestroy():void{
this.node.off(Node.EventType.TOUCH_END, this.click, this);
}
protected click():void{
this.node.active = false;
}
public setData(data):void{
this._menberData = data;
let city:MapCityData = MapCommand.getInstance().cityProxy.getMyMainCity();
let unionData:Union = UnionCommand.getInstance().proxy.getUnion(city.unionId);
if (unionData){
if(this._menberData.rid == city.rid){
this.node.active = false;
}else{
if(unionData.getChairman().rid == city.rid){
console.log("unionData:", unionData, unionData.getViceChairman(), this._menberData);
this.unAppointButton.node.active = unionData.getViceChairman().rid == this._menberData.rid;
this.kickButton.node.active = unionData.isMajor(city.rid);
this.abdicateButton.node.active = unionData.getChairman().rid == city.rid;
this.appointButton.node.active = unionData.getChairman().rid == city.rid && unionData.getViceChairman().rid != this._menberData.rid;
}else if(unionData.getViceChairman().rid == city.rid){
if(unionData.getChairman().rid == this._menberData.rid){
this.node.active = false;
}else{
this.unAppointButton.node.active = false;
this.kickButton.node.active = true;
this.abdicateButton.node.active = unionData.getViceChairman().rid != this._menberData.rid;
this.appointButton.node.active = false;
this.node.active = true;
}
}else{
this.node.active = false;
}
}
}else{
this.node.active = false;
}
}
protected kick():void{
UnionCommand.getInstance().unionKick(this._menberData.rid);
this.node.active = false;
}
protected appoint():void{
UnionCommand.getInstance().unionAppoint(this._menberData.rid, 1);
this.node.active = false;
}
protected unAppoint():void{
UnionCommand.getInstance().unionAppoint(this._menberData.rid, 2);
this.node.active = false;
}
protected abdicate():void{
UnionCommand.getInstance().unionAbdicate(this._menberData.rid);
this.node.active = false;
}
}