96 lines
3.2 KiB
TypeScript
96 lines
3.2 KiB
TypeScript
import { _decorator, Component, Label, Node, Sprite, UITransform } from "cc";
|
|
import Utils from "../../Main/Common/Utils";
|
|
import { GButton } from "../../Main/Common/GButton";
|
|
import { DataManager, DataId } from "../data/DataManager";
|
|
import { GirlData } from "../data/GirlData";
|
|
import LanguageUtils from "../../Main/Common/LanguageUtils";
|
|
import ResManager from "../../Main/Manager/ResManager";
|
|
import { EnvData } from "../data/EnvData";
|
|
import { NavigationManager, PanelType } from "../manager/NavigationManager";
|
|
const { ccclass, property } = _decorator;
|
|
|
|
@ccclass("RecomandItem")
|
|
export class RecomandItem extends Component {
|
|
private _nodeTab: any = {};
|
|
|
|
private recPic: Sprite;
|
|
private girlName: Label;
|
|
private tag: Label;
|
|
|
|
private heartParent: Node;
|
|
private hearts: Sprite[] = [];
|
|
|
|
private chatBtn: Node;
|
|
|
|
private id: number;
|
|
|
|
init() {
|
|
Utils.parseNode(this.node, this._nodeTab);
|
|
|
|
this.recPic = this._nodeTab.recPic.getComponent(Sprite);
|
|
this.girlName = this._nodeTab.name.getComponent(Label);
|
|
this.tag = this._nodeTab.tag.getComponent(Label);
|
|
|
|
this.heartParent = this._nodeTab.heartBg;
|
|
|
|
this.heartParent.children.forEach((a) =>
|
|
this.hearts.push(a.getComponent(Sprite))
|
|
);
|
|
|
|
this.chatBtn = this._nodeTab.chatBtn;
|
|
GButton.BandClick(this.chatBtn, this.chatToHer, this);
|
|
GButton.BandClick(this.chatBtn, this.gotoDetail, this);
|
|
}
|
|
|
|
refresh(girlId: number) {
|
|
this.id = girlId;
|
|
const girlData = DataManager.I.getDataById<GirlData>(DataId.Girl);
|
|
const category = girlData.getGrilCategoryById(girlId);
|
|
const rectNameKey = girlData.getRecommendGrilName();
|
|
|
|
this.girlName.string = LanguageUtils.getText(rectNameKey);
|
|
const tagkey = girlData.getGrilTagKey(category.toString(), girlId);
|
|
this.tag.string = LanguageUtils.getText(tagkey);
|
|
|
|
let avatarPath = girlData.getRecommendGrilAvatar();
|
|
|
|
const starCount = girlData.getStar(category.toString(), girlId);
|
|
|
|
for (let i = 0; i < this.hearts.length; i++) {
|
|
const element = this.hearts[i];
|
|
if (starCount > i) {
|
|
ResManager.I.changeResourceSpriteFrame(element, "ui/common/ZY_UI_AX1");
|
|
} else {
|
|
ResManager.I.changeResourceSpriteFrame(element, "ui/common/ZY_UI_AX2");
|
|
}
|
|
}
|
|
|
|
// 加载远程资源
|
|
const envData = DataManager.I.getDataById<EnvData>(DataId.Env);
|
|
let newPath = envData.cdn + "/" + "Girls/" + avatarPath + ".png";
|
|
ResManager.I.changeRemoteSpriteFrame(this.recPic, newPath, () => {
|
|
let sizeTran = this.recPic.node.parent.getComponent(UITransform);
|
|
Utils.adjustBgPixelRatioToSize(sizeTran.contentSize, this.recPic.node, 1);
|
|
});
|
|
}
|
|
chatToHer() {
|
|
const girlData = DataManager.I.getDataById<GirlData>(DataId.Girl);
|
|
|
|
NavigationManager.Instance.setSelectedGirlId(this.id);
|
|
NavigationManager.Instance.setSelectedCategoryId(
|
|
girlData.getGrilCategoryById(this.id)
|
|
);
|
|
NavigationManager.Instance.switchToPanel(PanelType.GIRL_DETAIL);
|
|
}
|
|
gotoDetail()
|
|
{
|
|
const girlData = DataManager.I.getDataById<GirlData>(DataId.Girl);
|
|
|
|
NavigationManager.Instance.setSelectedGirlId(this.id);
|
|
NavigationManager.Instance.setSelectedCategoryId(
|
|
girlData.getGrilCategoryById(this.id)
|
|
);
|
|
NavigationManager.Instance.switchToPanel(PanelType.GIRL_DETAIL);
|
|
}
|
|
}
|