Files
fc/dev/project/assets/Scripts/mod/partner/partner.clerk.mod.js
T

153 lines
3.5 KiB
JavaScript
Raw Normal View History

2026-05-23 22:10:14 +08:00
/*******************************************************************************
*
* 伙伴秘书组管理
*
*
*
* 2023.04.10
******************************************************************************/
const BridgeController = require( "bridge.controller" );
const RoleController = require( "role_controller" );
const PartnerClerkMod = cc.Class( {
extends: BridgeController,
// 初始化配置数据
initConfig: function() {
// 视图清理
this.reset();
// 全局支持
nx.bridge.clerks = this;
},
// 注册监听事件
registerEvents: function() {
},
// 注册协议接受事件
registerProtocals: function() {
// 获取秘书组信息
this.RegisterProtocal( 10361, this.onFetchData.bind( this ) );
// 修改秘书组信息
this.RegisterProtocal( 10362, this.onModifyData.bind( this ) );
// 修改当前展示的秘书
this.RegisterProtocal( 10363, this.onShowChanged.bind( this ) );
},
// 从服务器初始化数据
reqBaseFromServer: function( _cb ) {
// 配置加载
let cfgs = [
"secretary_data", // 秘书组
];
this.loadConfigs( cfgs, ( _ret, _data ) => {
this.reqFetch( _cb );
} );
},
// 重置
reset: function( _list, _cur ) {
nx.bridge.vset( "clerkList", _list || [] );
nx.bridge.vset( "clerkShowId", _cur || "" );
},
// 获取秘书组信息
reqFetch: function( _cb ) {
this.SendProtocal( 10361, {}, _cb );
},
// REC: 获取秘书组信息
onFetchData: function( _data ) {
this.reset( _data.secretary_group, _data.current_resource_id );
},
// 修改秘书组信息
reqModify: function( _data, _cb ) {
this.cbModify = _cb;
this.SendProtocal( 10362, {
secretary_group: _data
} );
},
// REC: 修改秘书组信息
onModifyData: function( _data ) {
console.log( _data );
// 失败
if( _data.code != 1 ) {
nx.tbox( _data.msg );
return;
}
this.reset( _data.secretary_group, _data.current_resource_id );
nx.dt.fnInvoke( this.cbModify, _data );
this.cbModify = null;
},
// 修改当前展示的秘书
reqActiveShow: function( _cb ) {
// 判空
let lst = nx.bridge.vget( "clerkList" );
if( nx.dt.arrEmpty( lst ) ) {
return;
}
// 唯一
let cur = nx.bridge.vget( "clerkShowId" );
if( lst.length == 1 && lst[0].resource_id == cur ) {
nx.tbox( "NeedSet" );
return;
}
// 下一个
let idx = 0;
for( let i = 0; i < lst.length; ++i ) {
if( lst[i].resource_id == cur ) {
idx = i + 1;
break;
}
}
idx = ( idx + lst.length ) % lst.length;
this.cbActive = _cb;
this.SendProtocal( 10363, {
resource_id: lst[idx].resource_id
} );
},
// REC: 修改当前展示的秘书
onShowChanged: function( _data ) {
console.log( _data );
// 失败
if( _data.code != 1 ) {
nx.tbox( _data.msg );
return;
}
nx.bridge.vset( "clerkShowId", _data.current_resource_id );
nx.dt.fnInvoke( this.cbActive, _data );
this.cbActive = null;
},
} );
module.exports = PartnerClerkMod;