difenduandada
2024-12-31 34abe6963b344c882358274957f4b992456fee40
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
// --------------------------------------------------------------------
// @author: whjing2012@syg.com(必填, 创建模块的人员)
// @description:
//      头像选择
// <br/>Create: new Date().toISOString()
// --------------------------------------------------------------------
 
var PathTool = require("pathtool");
var RoleController = require("role_controller");
var RoleHeadItem = require("role_head_item");
var CommonScrollView = require("common_scrollview");
 
var RoleHeadPanel = cc.Class({
    extends: BasePanel,
    ctor: function () {
        this.prefabPath = PathTool.getPrefabPath("roleinfo", "role_head_panel");
        this.data = null;
        this.has_list = {};
        this.select_bid = 0;
    },
 
    initPanel: function () {
        this.setPosition(0, 0);
        this.scroll_con = this.root_wnd.getChildByName("scroll_con");
        this.ok_btn = this.root_wnd.getChildByName("ok_btn");
        // this.loadRes(PathTool.getResFrame("face"), (function(resObject){
        //     this.face_res_object = resObject;
        //     if(this.cache_has_list){
        //         this.updateList(this.cache_has_list);
        //         this.cache_has_list = null;
        //     }
        // }).bind(this));
        var setting = {
            item_class: RoleHeadItem,      // 单元类
            start_x: 5,                    // 第一个单元的X起点
            space_x: 4,                    // x方向的间隔
            start_y: 0,                    // 第一个单元的Y起点
            space_y: 10,                   // y方向的间隔
            item_width: 141,               // 单元的尺寸width
            item_height: 120,              // 单元的尺寸height
            row: 0,                        // 行数,作用于水平滚动类型
            col: 4,                        // 列数,作用于垂直滚动类型
            once_num: 4,
            need_dynamic: true
        };
        var scroll_view_size = cc.size(604, 514);
        this.item_scrollview = new CommonScrollView()
        this.item_scrollview.createScroll(this.scroll_con, cc.v2(0, 0), ScrollViewDir.vertical, ScrollViewStartPos.top, scroll_view_size, setting, cc.v2(0.5, 0.5));
        RoleController.getInstance().send10325();
    },
 
    registerEvent: function () {
        this.ok_btn.on(cc.Node.EventType.TOUCH_END, function () {
            if (this.select_bid) {
                RoleController.getInstance().send10327(this.select_bid);
            }
        }, this);
        this.roleVo = RoleController.getInstance().getRoleVo();
        if (!this.role_update_evt) {
            this.role_update_evt = this.roleVo.bind(EventId.UPDATE_ROLE_ATTRIBUTE, (function (key, val) {
                if (key == "face_id") {
                    this.updateList();
                } else if (key == "face_list") {
                    this.updateList(val);
                }
            }), this);
        }
    },
 
    onShow: function () {
    },
 
    updateList: function (has_list) {
        // if(!this.face_res_object){// 资源未加载
        //     this.cache_has_list = has_list || this.cache_has_list;
        //     return;
        // }
        if (has_list) {
            this.has_list = this.has_list || {};
            for (var k in has_list) {
                this.has_list[has_list[k].face_id] = 1;
            }
        }
 
        // for (var k in Config.partner_data.data_partner_base) {
        //     var v = Config.partner_data.data_partner_base[k];
        //     if (v.bid == this.roleVo.face_id) {
        //         list.push({ bid: v.bid, face_id: v.bid, use: 1, status: 1, sort: 1100000 - v.bid });
        //     } else if (this.has_list[v.bid]) {
        //         list.push({ bid: v.bid, face_id: v.bid, use: 0, status: 1, sort: 100000 - v.bid });
        //     } else {
        //         list.push({ bid: v.bid, face_id: v.bid, use: 0, status: 0, sort: -v.bid });
        //     }
        // }
        if (this.list == null) {
            this.list = [];
            for (let k in Config.looks_data.data_head_data) {
                let v = Config.looks_data.data_head_data[k];
                let data = {};
                data.tips = v.tips;
                data.bid = v.id;
                data.face_id = v.id;
                if (this.has_list) {
                    if (this.has_list[v.id]) {
                        data.status = 1;    //拥有
                    } else {
                        data.status = 0;    //未拥有
                    }
                } else {
                    data.status = 0;
                }
                if (this.roleVo.face_id == v.id) {
                    data.use = 1;
                } else {
                    data.use = 0;
                }
                this.list.push(data);
            }
        } else {
            for (let i in this.list) {
                let data = this.list[i];
                if (this.roleVo.face_id == data.bid) {
                    data.use = 1;
                } else {
                    data.use = 0;
                }
            }
        }
 
        // this.list.sort(Utils.tableLowerSorter(["use", "status","bid"]));
        // this.list.sort(Utils.tableUpperSorter(["use", "status"]));
        this.list.sort(Utils.tableCommonSorter([["use",true],["status",true],["bid",false]]));
        
 
        if (this.select_bid == 0)
            this.select_bid = this.roleVo.face_id;
 
        this.item_scrollview.setData(this.list, (function (cell) {
            if (cell.data.status == 0) {
                // var config = Config.partner_data.data_partner_base[cell.data.bid];
                // message(cc.js.formatStr(Utils.TI18N("激活%s可解锁"), config.name));
                message(Utils.TI18N(cell.data.tips));
            } else {
                this.select_bid = cell.data.bid;
                if (this.select_item) {
                    this.select_item.setSelected(false);
                }
                this.select_item = cell;
                this.setSelected(cell);
            }
        }).bind(this), { resObject: this.face_res_object, select_func: this.setSelected.bind(this) });
        this.item_scrollview.addEndCallBack(function () {
            cc.log(this.item_scrollview)
        }.bind(this))
    },
 
    setSelected: function (item) {
        if (item) {
            item.setSelected(this.select_bid == item.data.bid)
            if (this.select_item == null) {
                this.select_item = item;
            }
        }
    },
 
    onHide: function () {
 
    },
 
    onDelete: function () {
        if (this.role_update_evt) {
            this.roleVo.unbind(this.role_update_evt);
        }
        if (this.item_scrollview) {
            this.item_scrollview.DeleteMe()
        }
        this.item_scrollview = null
    }
});
 
module.exports = RoleHeadPanel;