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: xxx@syg.com(必填, 创建模块的人员)
// @description:
//     公告
// <br/>Create: 2019-08-8 20:53:13
// --------------------------------------------------------------------
var PathTool = require("pathtool")
var WelfareConst = require("welfare_const");
 
var PastePanel = cc.Class({
    extends: BasePanel,
    ctor: function () {
        this.prefabPath = PathTool.getPrefabPath("welfare", "notice_panel");
    },
 
    // 可以初始化声明一些变量的
    initConfig: function () {
        this.ctrl = require("notice_controller").getInstance();
        this.dengluMgr = require("login_controller").getInstance().getModel();
        this.node_list = [];
        this.color = new cc.Color(0x64, 0x32, 0x23, 0xff);
    },
 
    // 初始化一些配置数据,可以用于声明一些变量之类的
    initPanel: function () {
        this.main_container = this.seekChild("main_container");
 
        this.title_lab = this.seekChild("title_lab", cc.Label);
        this.qq_lab = this.seekChild("qq_lab", cc.Label);
        this.qq_lab.string = "";
        this.notice_scroll = this.seekChild("notice_scroll");
        this.notice_scroll_sv = this.seekChild("notice_scroll", cc.ScrollView);
        this.scroll_content = this.seekChild(this.notice_scroll, "content");
 
        this.container_size = this.notice_scroll.getContentSize();
    },
 
    // 注册事件监听的接口,不需要手动调用,如果是使用gcore.GlobalEvent监听,可以直接调用addGlobalEvent
    registerEvent: function () {
 
    },
 
 
    setMessage: function () {
        
        this.notice_content = this.ctrl.getNoticeContent();
        if (this.notice_content == null) {
            var loginData = this.dengluMgr.getLoginInfo();
            var svrName = this.dengluMgr.getSvrName(loginData.srv_id);
            var svrTime = loginData.open_time || 0;
            var svrDays = 0;
 
            // let str = '{"error":"success","msg":"\u83b7\u53d6\u6210\u529f","data":[{"type":"2","title":"\u65b0\u670d\u516c\u544a","content":"\u4eb2\u7231\u7684\u5192\u9669\u8005\u5927\u4eba:|\r\n        <div fontcolor=#c23f35>2019-08-07 11:00:00<\/div>\uff0c\u5192\u9669\u4e16\u754c\u5c06\u5f00\u542f\u5168\u65b0\u670d\u52a1\u5668\u2014\u2014<div fontcolor=#c23f35>\u82f1\u96c4\u4e4b\u8defS1<\/div>\u3002\u795d\u613f\u5e7f\u5927\u5192\u9669\u8005\u80fd\u5728\u5192\u9669\u5927\u9646\u4e4b\u4e2d\u5c3d\u60c5\u5192\u9669\uff0c\u5bfb\u89c5\u5feb\u4e50~\u795d\u5927\u5bb6\u5192\u9669\u6109\u5feb\uff01\r\n\r\n \r\n\u300c\u65b0\u670d\u6d3b\u52a8\u300d\r\n  \r\n<div\u00a0fontcolor=#c23f35>\u6d3b\u52a8\u4e00\uff1a\u4e03\u5929\u767b\u5f55\u9886\u597d\u793c\u00b7\u6b21\u65e5\u767b\u5f55\u90015\u661f\u5965\u4e01<\/div>\r\n       \u6bcf\u65e5\u767b\u9646\u5c31\u80fd\u9886\u53d6\u4e30\u539a\u5956\u52b1\uff0c\u9996\u65e5\u767b\u5f55\u9001\u5927\u91cf\u94bb\u77f3\uff0c\u6b21\u65e5\u767b\u9646\u90015\u661f\u8089\u76fe\u82f1\u96c4-\u5965\u4e01\uff01\u7b2c\u4e09\u65e5\u90015\u661f\u8f93\u51fa\u82f1\u96c4--\u7f8e\u675c\u838e\u3002\r\n  \r\n<div\u00a0fontcolor=#c23f35>\u6d3b\u52a8\u4e8c\uff1a\u9996\u5145\u53cc\u500d<\/div>\r\n        \u9996\u6b21\u5355\u7b14\u5145\u503c\u6307\u5b9a\u989d\u5ea6\uff0c\u7acb\u5373\u83b7\u5f97\u53cc\u500d\u94bb\u77f3\uff0c\u8d85\u503c\u8fd4\u5229\u4e0d\u505c\u6b47\uff01\r\n \r\n<div\u00a0fontcolor=#c23f35>\u6d3b\u52a8\u4e09\uff1a\u840c\u65b0\u8865\u7ed9<\/div>\r\n       \u9996\u5145\u6ee16\u5143\u5373\u53ef\u83b7\u5f975\u661f\u8d85\u5f3a\u8f93\u51fa\u82f1\u96c4\u3010\u96c5\u5178\u5a1c\u3011\uff01\u66f4\u6709\u5176\u4ed6\u8d85\u503c\u5956\u52b1\u4e00\u6ce2\u5e26\u8d70\uff0c\u4e0d\u5bb9\u9519\u8fc7\uff01\r\n  \r\n<div\u00a0fontcolor=#c23f35>\u6d3b\u52a8\u56db\uff1a\u4e03\u65e5\u76ee\u6807<\/div>\r\n        \u8fde\u7eed\u4e03\u65e5\u5b8c\u6210\u6bcf\u65e5\u4efb\u52a1\uff0c\u6bcf\u5929\u90fd\u6709\u597d\u793c\u9001\uff0c\u8d85\u503c\u82f1\u96c4\uff0c\u5347\u7ea7\u9053\u5177\uff0c\u52a9\u529b\u5192\u9669\u8005\u5927\u4eba\u63d0\u5347\u4e0d\u95f4\u65ad\uff017\u65e5\u7d2f\u5145\u5956\u52b1\u989d\u5916\u9001\u51fa\u5f3a\u529b\u5149\u6697\u82f1\u96c4\u3002\r\n   \r\n<div\u00a0fontcolor=#c23f35>\u6d3b\u52a8\u4e94\uff1a\u7d2f\u8ba1\u5145\u503c<\/div>\r\n        \u6bcf\u65e5\u7d2f\u8ba1\u5145\u503c\u90015\u661f\u82f1\u96c4\uff0c\u8fd8\u9001\u7ea2\u8272\u88c5\u5907\u4e0e\u5927\u91cf\u8d44\u6e90\uff01\r\n    \r\n<div\u00a0fontcolor=#c23f35>\u6d3b\u52a8\u516d\uff1a\u793c\u5305\u62a2\u8d2d\/\u6bcf\u6708\u798f\u5229\/\u6bcf\u5468\u798f\u5229<\/div>\r\n        \u6bcf\u5468\u9650\u8d2d\u8d85\u503c\u793c\u5305\u964d\u4ef7\u5927\u7529\u5356\uff0c\u5404\u7c7b\u968f\u673a\u798f\u888b\u597d\u793c\u5916\uff0c\u5145\u503c648\u8fd8\u6709\u5f3a\u529b\u5149\u6697\u82f1\u96c4\u788e\u7247\u4e0e\u5f69\u8679\u7b26\u6587\uff01\r\n \r\n<div\u00a0fontcolor=#c23f35>\u6d3b\u52a8\u4e03\uff1a\u79ef\u5929\u8c6a\u793c<\/div>\r\n        \u8fde\u7eed\u5145\u503c\u597d\u793c\u4e0d\u505c\u6b47\uff0c\u51b2\u7684\u5929\u6570\u8d8a\u591a\uff0c\u5956\u52b1\u8d8a\u591a\u3002\u5927\u91cf\u4e94\u661f\u968f\u673a\u788e\u7247\u9001\uff01\r\n\r\n<div\u00a0fontcolor=#c23f35>\u6d3b\u52a8\u516b\uff1a\u6bcf\u65e5\u793c\u5305<\/div>\r\n        \u6bcf\u65e5\u8d85\u503c\u597d\u793c\u8d85\u4f4e\u4ef7\u653e\u9001\uff0c\u989d\u5916\u8d60\u9001\u53cc\u500d\u94bb\u77f3\uff01\r\n  \r\n<div\u00a0fontcolor=#c23f35>\u6d3b\u52a8\u4e5d\uff1a\u7279\u6743\u5546\u57ce<\/div>\r\n        \u5f3a\u529b\u5192\u9669\u8005\u5fc5\u5907\uff0c\u8d85\u503c\u4f18\u60e0\u793c\u5305\u548c\u8d85\u8c6a\u534e\u7279\u6743\uff01\u52a9\u529b\u5192\u9669\u8005\u5feb\u901f\u5347\u7ea7\u3002\r\n  \r\n<div\u00a0fontcolor=#c23f35>\u6d3b\u52a8\u5341\uff1a\u8363\u8000\/\u81f3\u5c0a\u6708\u5361<\/div>\r\n        \u7d2f\u8ba1\u5145\u503c30\/98\u53ef\u6fc0\u6d3b\u8363\u8000\/\u81f3\u5c0a\u6708\u5361\uff0c\u6bcf\u65e5\u94bb\u77f3\u9886\u4e0d\u505c\uff0c\u8fd8\u80fd\u989d\u5916\u6fc0\u6d3b\u8d85\u503c\u57fa\u91d1\u8d2d\u4e70\u673a\u4f1a\uff01\r\n  \r\n<div\u00a0fontcolor=#c23f35>\u6d3b\u52a8\u5341\u4e00\uff1a\u8d85\u503c\u57fa\u91d1<\/div>\r\n20\u500d\u8d85\u503c\u8fd4\u5229\uff0c\u8fde\u7eed30\u65e5\u9886\u53d6\u8c6a\u534e\u5956\u52b1\r\n  \r\n<div\u00a0fontcolor=#c23f35>\u6d3b\u52a8\u5341\u4e8c\uff1a\u6210\u957f\u57fa\u91d1<\/div>\r\n        \u8d2d\u4e70\u8d85\u503c\u6210\u957f\u8ba1\u5212\uff0c\u52a9\u529b\u65b0\u4eba\u6210\u957f\uff0c\u7d2f\u8ba130\u500d\u8fd4\u8fd8\u94bb\u77f3\r\n   \r\n<div\u00a0fontcolor=#c23f35>\u6d3b\u52a8\u5341\u56db\uff1a\u70b9\u77f3\u6210\u91d1<\/div>\r\n        \u6d3b\u52a8\u671f\u95f4\uff0c\u70b9\u91d1\u6b21\u6570\u8d85\u5927\u5e45\u63d0\u5347\uff01\u70b9\u91d1\u8fbe\u5230\u6307\u5b9a\u6b21\u6570\u66f4\u6709\u4e30\u539a\u5956\u52b1\u9886~\u8fbe\u5230\u6700\u7ec8\u76ee\u6807\u53ef\u83b7\u6ce2\u585e\u51ac\u788e\u7247*50,\uff0c\u8fd8\u6709\u9650\u65f6\u6392\u884c\u5956\u52b1\uff0c\u5927\u91cf\u94bb\u77f3\uff0c\u9ad8\u7ea7\u5bfb\u5b9d\u5377\uff0c\u592a\u9633\u7b26\u6587\u7b49\u4f60\u6765\u62a2\r\n  \r\n<div\u00a0fontcolor=#c23f35>\u6d3b\u52a8\u5341\u4e94\uff1a\u9650\u65f6\u7b49\u7ea7\u793c\u5305<\/div>\r\n       \u5168\u670d\u9650\u91cf\u793c\u5305\uff0c\u8fbe\u5230\u7b49\u7ea7\u5373\u53ef\u514d\u8d39\u9886\u53d6\uff01\u6570\u91cf\u6709\u9650\uff0c\u8fd8\u4e0d\u8d76\u7d27\u5feb\u5feb\u5347\u7ea7\uff0c\u62a2\u5168\u670d\u793c\u5305~\r\n    \r\n   \t\u671f\u5f85\u5192\u9669\u8005\u5927\u4eba\u7684\u5149\u4e34\uff0c\u795d\u5927\u4eba\u5192\u9669\u6109\u5feb~\r\n  \r\n        P.S. \u5927\u4eba\u7684\u53cd\u9988\u5efa\u8bae\u5c31\u662f\u6211\u4eec\u524d\u8fdb\u7684\u52a8\u529b\uff0c\u5728\u6e38\u620f\u4e2d\u5982\u6709\u9047\u5230\u95ee\u9898\u6216\u5bf9\u5192\u9669\u4e16\u754c\u6709\u4ec0\u4e48\u5efa\u8bae\uff0c\u8bf7\u70b9\u51fb\u3010\u5934\u50cf\u3011->\u3010BUG\u53cd\u9988\u3011\u8054\u7cfb\u5c0f\u52a9\u624b\uff0c\u5c0f\u52a9\u624b\u4f1a\u9010\u6761\u67e5\u770b\u5927\u4eba\u4eec\u7684\u53cd\u9988\uff0c\u8ba9\u5192\u9669\u4e16\u754c\u53d8\u5f97\u66f4\u597d~"}]}'
            // // str = str.replace(/&lt/g, "<");
            // // str = str.replace(/&gt/g, ">");
            // // str = str.replace(/&#039/g, "'");
            // // str = str.replace(/&quot/g, '"');
            // // str = str.replace(/\9/g, '    ');
            // str = str.replace(/\r\n/g,"\\r\\n");
            // str = str.replace(/\t/g,"");
 
            // // cc.log(str)
            // let _str = JSON.parse(str);
            // let cont = _str.data[0].content
            // cc.log(cont);
            // this.notice_content = StringUtil.parseStr(cont).string;
            // cc.log(StringUtil.parseStr(cont))
            // var list = this.notice_content.split("|");
            // cc.log(list)
            // this.addNoticeContent(list)
 
            // }
            var srvurl = this.ctrl.get_notice_url(svrDays, loginData);
            // console.log(srvurl);
            if (srvurl) {
                DownloadManager.getInstance().downloadText(srvurl, function (status, responseText) {
                    // console.log("url+++++++++++", status, responseText)
                    // console.log("type=", typeof (responseText));
                    // var response = JSON.parse(responseText);
                    // console.log(response);
                    var str = StringUtil.parseStr(responseText);
                    // console.log(str);
                    if (status == null && responseText != null) {
                        let str = responseText;
                        str = str.replace(/\r\n/g, "\\r\\n");
                        str = str.replace(/\t/g, "");
                        let _str = JSON.parse(str);
                        if (_str.data && _str.data[0]) {
                            this.notice_content = StringUtil.parseStr(_str.data[0].content).string;
                            var list = this.notice_content.split("|");
                            // console.log(list)
                            this.addNoticeContent(list)
                            this.ctrl.setNoticeContent(this.notice_content);
                        }
 
                    } else {
                        cc.log("status==>", status, "responseText==>", responseText);
                    }
                }.bind(this))
            }
        } else {
            var list = this.notice_content.split("|");
            this.addNoticeContent(list)
        }
    },
 
 
    addNoticeContent: function (list) {
        if (list == null || list.length == 0) return
 
        //更新先情况,防止加载不到文件时候多次加载
 
        this.main_container.stopAllActions();
        var curY = -80;
 
        //取出第一个用于称谓显示
        this.title_lab.string = list.shift() || "";
 
        this.list_index = 0;
        let _y = 0;
        this.startUpdate(list.length, function () {
            let index = this.list_index;
            let vo = list[index];
            let sub = this.createSubContent(2, 20, vo, this.container_size.width - 4, 0);
            this.node_list.push(sub);
            curY = curY + sub.node.getContentSize().height + 3;//60
            cc.log(curY);
            let maxY = Math.max(curY, this.container_size.height);
            this.scroll_content.setContentSize(this.container_size.width, maxY+80);
 
            sub.node.y = _y - sub.node.getContentSize().height + 5;
            _y = sub.node.y;
            this.list_index += 1;
        }.bind(this), 100)
        this.notice_scroll_sv.scrollToTop(0.5);
    },
 
    createSubContent: function (x, y, content, width, linespce) {
        var label = Utils.createRichLabel(24, this.color, cc.v2(0, 0), cc.v2(0, 0), 30, width, this.scroll_content);
        label.string = content;
        label.horizontalAlign = cc.macro.TextAlignment.LEFT;
        label.node.setPosition(x, y);
        return label
    },
 
    // 预制体加载完成之后,添加到对应主节点之后的回调可以设置一些数据了
    onShow: function (params) {
        this.setMessage();
    },
 
 
 
    setVisibleStatus: function (status) {
        this.setVisible(status)
    },
 
    // 面板设置不可见的回调,这里做一些不可见的屏蔽处理
    onHide: function () {
 
    },
 
    // 当面板从主节点释放掉的调用接口,需要手动调用,而且也一定要调用
    onDelete: function () {
      if (this.node_list) {
            for (var i in this.node_list) {
                var v = this.node_list[i];
                if (v instanceof cc.Node) {
                    v.destroy();
                    v = null;
                } else {
                    v.node.destroy();
                    v = null;
                }
            }
            this.node_list = null;
        }
        if(this.main_container){
            this.main_container.stopAllActions();
        }
    },
})