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
"use strict";
cc._RF.push(module, '5c685tZb5BISb0muzSIY7g8', 'notice_panel');
// Scripts/mod/welfare/view/notice_panel.js
 
"use strict";
 
// --------------------------------------------------------------------
// @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 ctor() {
    this.prefabPath = PathTool.getPrefabPath("welfare", "notice_panel");
  },
  // 可以初始化声明一些变量的
  initConfig: function initConfig() {
    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 initPanel() {
    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 registerEvent() {},
  setMessage: function setMessage() {
    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) {
            var _str2 = responseText;
            _str2 = _str2.replace(/\r\n/g, "\\r\\n");
            _str2 = _str2.replace(/\t/g, "");
 
            var _str = JSON.parse(_str2);
 
            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 addNoticeContent(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;
    var _y = 0;
    this.startUpdate(list.length, function () {
      var index = this.list_index;
      var vo = list[index];
      var 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);
      var 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 createSubContent(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 onShow(params) {
    this.setMessage();
  },
  setVisibleStatus: function setVisibleStatus(status) {
    this.setVisible(status);
  },
  // 面板设置不可见的回调,这里做一些不可见的屏蔽处理
  onHide: function onHide() {},
  // 当面板从主节点释放掉的调用接口,需要手动调用,而且也一定要调用
  onDelete: function onDelete() {
    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();
    }
  }
});
 
cc._RF.pop();