NoticeView.lua 7.56 KB
local NoticeView = dialog.uinode("ui/notice/NoticeLayer.csb");

function NoticeView:ctor(notice,completeFun)
    self.notice = notice;
    self.completeFun = completeFun;
    self:init(notice);
end

function NoticeView:init()
    self.panel = self:getChildByName("panel");
    local item = nil;
    if self.notice.id == 1 then
        item = self:getNoticeItem1(self.notice);
    elseif self.notice.id == 2 then
        item = self:getNoticeItem2(self.notice);
    elseif self.notice.id == 3 then
        item = self:getNoticeItem3(self.notice);
    elseif self.notice.id == 4 then
        item = self:getNoticeItem4(self.notice);
    elseif self.notice.id == 5 then
        item = self:getNoticeItem5(self.notice);
    end
    
    if item then
        item:setPositionX(300);
        local moveBy = cc.MoveBy:create(10,cc.p(-800-300,0));
        item:runAction(cc.Sequence:create(moveBy,cc.CallFunc:create(function ()
            if self.completeFun then
                self.completeFun();
            end
            self:removeFromParent();
        end)));
        self.panel:addChild(item);
    else
        if self.completeFun then
            self.completeFun();
        end
        self:runAction(cc.Sequence:create(cc.DelayTime:create(0.5),cc.CallFunc:create(function ()
            self:removeFromParent();
        end)));
    end
end

function NoticeView:getNoticeItem1(notice)
    local item = cc.CSLoader:createNode("ui/notice/NoticeItem1.csb");
    item:getChildByName("txt_nick"):setString(notice.nick);
    local nick_len = StringUtil.GetUTFLen(notice.nick)/2;

    local shopInfo = ShopInfo.getShopInfo(tonumber(notice.param[1]));
    local itemInfo = ItemInfo.getItemInfo(shopInfo.itemList[1].id);

    local goods_name = "";
    if itemInfo.id == 100001 then
        goods_name = shopInfo.des;
    else
        goods_name = itemInfo.name;
    end
    
    local txt_2 = item:getChildByName("txt_2");
    txt_2:setPositionX(txt_2:getPositionX()+nick_len*22);

    local txt_goods = item:getChildByName("txt_goods");
    txt_goods:setString(goods_name);
    txt_goods:setPositionX(txt_goods:getPositionX()+nick_len*22);

    local goods_len = StringUtil.GetUTFLen(goods_name)/2;

    local txt_3 = item:getChildByName("txt_3");
    txt_3:setPositionX(txt_3:getPositionX()+nick_len*22+goods_len*22);
    local btn = item:getChildByName("btn");
    btn:setPositionX(btn:getPositionX()+nick_len*22+goods_len*22);
    btn:addTouchEventListener(handler(self,self.onGoBtnClick));

    return item;
end

function NoticeView:getNoticeItem2(notice)
    local item = cc.CSLoader:createNode("ui/notice/NoticeItem2.csb");
    item:getChildByName("txt_nick"):setString(notice.nick);
    local nick_len = StringUtil.GetUTFLen(notice.nick)/2;

    local payInfo = ShopInfo.getPayInfo(tonumber(notice.param[1]));
    
    local goods_name = payInfo.name;
    
    local txt_2 = item:getChildByName("txt_2");
    txt_2:setPositionX(txt_2:getPositionX()+nick_len*22);

    local txt_goods = item:getChildByName("txt_goods");
    txt_goods:setString(goods_name);
    txt_goods:setPositionX(txt_goods:getPositionX()+nick_len*22);

    local goods_len = StringUtil.GetUTFLen(goods_name)/2;

    local txt_3 = item:getChildByName("txt_3");
    txt_3:setPositionX(txt_3:getPositionX()+nick_len*22+goods_len*22);

    local get_name = "";
    if payInfo.type == 2 then
        --如果是月卡
        get_name = StringUtil.getWanString(payInfo.payItemInfo.num)..ItemInfo.getItemInfo(payInfo.payItemInfo.id).name;
    else
        local itemInfo = ItemInfo.getItemInfo(payInfo.itemList[1].id);
        get_name = StringUtil.getWanString(payInfo.itemList[1].num)..itemInfo.name;
    end

    local txt_get = item:getChildByName("txt_get");
    txt_get:setString(get_name);
    txt_get:setPositionX(txt_get:getPositionX()+nick_len*22+goods_len*22);

    local get_len = StringUtil.GetUTFLen(get_name)/2;

    local txt_4 = item:getChildByName("txt_4");
    txt_4:setPositionX(txt_4:getPositionX()+nick_len*22+goods_len*22+get_len*22);

    local btn = item:getChildByName("btn");
    btn:setPositionX(btn:getPositionX()+nick_len*22+goods_len*22+get_len*22);
    btn:addTouchEventListener(handler(self,self.onGoBtnClick));

    return item;
end

function NoticeView:getNoticeItem3(notice)
    local item = cc.CSLoader:createNode("ui/notice/NoticeItem3.csb");
    item:getChildByName("txt_nick"):setString(notice.nick);
    local nick_len = StringUtil.GetUTFLen(notice.nick)/2;

    local game_name = GameConfig.getGameNameByID(tonumber(notice.param[1]));
    
    local txt_2 = item:getChildByName("txt_2");
    txt_2:setPositionX(txt_2:getPositionX()+nick_len*22);

    local txt_game = item:getChildByName("txt_game");
    txt_game:setString(game_name);
    txt_game:setPositionX(txt_game:getPositionX()+nick_len*22);

    local game_len = StringUtil.GetUTFLen(game_name)/2;

    local txt_3 = item:getChildByName("txt_3");
    txt_3:setPositionX(txt_3:getPositionX()+nick_len*22+game_len*22);

    local beishu = notice.param[2];

    local txt_beishu = item:getChildByName("txt_beishu");
    txt_beishu:setString(beishu);
    txt_beishu:setPositionX(txt_beishu:getPositionX()+nick_len*22+game_len*22);

    local beishu_len = StringUtil.GetUTFLen(beishu)/2;

    local txt_4 = item:getChildByName("txt_4");
    txt_4:setPositionX(txt_4:getPositionX()+nick_len*22+game_len*22+beishu_len*22);

    local btn = item:getChildByName("btn");
    btn:setPositionX(btn:getPositionX()+nick_len*22+game_len*22+beishu_len*22);
    btn:addTouchEventListener(handler(self,self.onGoBtnClick));

    return item;
end

function NoticeView:getNoticeItem4(notice)
    local item = cc.CSLoader:createNode("ui/notice/NoticeItem4.csb");
    item:getChildByName("txt_nick"):setString(notice.nick);
    local nick_len = StringUtil.GetUTFLen(notice.nick)/2;

    local shopInfo = ShopInfo.getShopInfo(tonumber(notice.param[1]));
    local itemInfo = ItemInfo.getItemInfo(shopInfo.itemList[1].id);

    local goods_name = "";
    if itemInfo.id == 100001 then
        goods_name = shopInfo.des;
    else
        goods_name = itemInfo.name;
    end
    
    local txt_2 = item:getChildByName("txt_2");
    txt_2:setPositionX(txt_2:getPositionX()+nick_len*22);

    local txt_goods = item:getChildByName("txt_goods");
    txt_goods:setString(goods_name);
    txt_goods:setPositionX(txt_goods:getPositionX()+nick_len*22);

    local goods_len = StringUtil.GetUTFLen(goods_name)/2;

    local txt_3 = item:getChildByName("txt_3");
    txt_3:setPositionX(txt_3:getPositionX()+nick_len*22+goods_len*22);
    local btn = item:getChildByName("btn");
    btn:setPositionX(btn:getPositionX()+nick_len*22+goods_len*22);
    btn:addTouchEventListener(handler(self,self.onGoBtnClick));

    return item;
end

function NoticeView:getNoticeItem5(notice)
    local item = cc.CSLoader:createNode("ui/notice/NoticeItem5.csb");
    item:getChildByName("txt"):setString(notice.param[1]);

    return item;
end

function NoticeView:onGoBtnClick(ref, type)
    if type == 2 then
        local scene = cc.Director:getInstance():getRunningScene();
        if self.notice.id == 1 then
            local reciever = require("app.views.view.ShopView"):show(1);
            scene.keypadManager:addKeypadReceiver(reciever);
        elseif self.notice.id == 2 then
            local reciever = require("app.views.view.ActivityView"):show();
            scene.keypadManager:addKeypadReceiver(reciever);
        elseif self.notice.id == 3 then
            app:enterScene("DdzHallScene");
        elseif self.notice.id == 4 then
            local reciever = require("app.views.view.ShopRealView"):show();
            scene.keypadManager:addKeypadReceiver(reciever);
        end
    end
end

return NoticeView