日志控制

This commit is contained in:
chen wei bo
2025-09-21 20:36:25 +08:00
parent e78f6b937e
commit 93bfe3174f
23 changed files with 91 additions and 81 deletions
+1 -1
View File
@@ -64,7 +64,7 @@ export default class GameRootUI extends Component {
callback?: Function callback?: Function
) { ) {
if (!this.defaultView) { if (!this.defaultView) {
console.warn("GameRootUI: defaultView not found"); logger.warn("GameRootUI: defaultView not found");
callback && callback(); callback && callback();
return; return;
} }
+2 -2
View File
@@ -89,12 +89,12 @@ export default class HttpUnit {
} }
}; };
xhr.onerror = (error) => { xhr.onerror = (error) => {
console.error("http request onerror"); logger.error("http request onerror");
SubManager.ShowPrompt("网络错误,请检查网络连接"); SubManager.ShowPrompt("网络错误,请检查网络连接");
reason(error) reason(error)
}; };
xhr.ontimeout = (e) => { xhr.ontimeout = (e) => {
console.error("http request timeout"); logger.error("http request timeout");
SubManager.ShowPrompt("网络错误,请检查网络连接"); SubManager.ShowPrompt("网络错误,请检查网络连接");
reason(e) reason(e)
} }
+2 -1
View File
@@ -1,5 +1,6 @@
import { _decorator, Component, Label, Node } from "cc"; import { _decorator, Component, Label, Node } from "cc";
import LanguageUtils, { LanguageType } from "./LanguageUtils"; import LanguageUtils, { LanguageType } from "./LanguageUtils";
import { logger } from "db://assets/Scripts/Main/Common/Logger";
const { ccclass, property, requireComponent } = _decorator; const { ccclass, property, requireComponent } = _decorator;
@@ -30,7 +31,7 @@ export class LanguageLabel extends Component {
onLoad() { onLoad() {
this.label = this.getComponent(Label); this.label = this.getComponent(Label);
if (!this.label) { if (!this.label) {
console.error("LanguageLabel: Label component not found!"); logger.error("LanguageLabel: Label component not found!");
return; return;
} }
+11 -10
View File
@@ -8,6 +8,7 @@ const { ccclass, property, disallowMultiple, menu, executionOrder, requireCompon
import { Node, Component, Enum, tween, _decorator, EventHandler, Tween, ScrollView, Prefab, Layout, Vec2, Size, NodePool, isValid, instantiate, Vec3, Widget, UITransform, CCFloat, CCBoolean, CCInteger } from 'cc'; import { Node, Component, Enum, tween, _decorator, EventHandler, Tween, ScrollView, Prefab, Layout, Vec2, Size, NodePool, isValid, instantiate, Vec3, Widget, UITransform, CCFloat, CCBoolean, CCInteger } from 'cc';
import { DEV } from 'cc/env'; import { DEV } from 'cc/env';
import ScrollViewListItem from './ScrollviewListItem'; import ScrollViewListItem from './ScrollviewListItem';
import { logger } from "db://assets/Scripts/Main/Common/Logger";
enum TemplateType { enum TemplateType {
NODE = 1, NODE = 1,
@@ -263,7 +264,7 @@ export default class HXZ_ScrollViewList extends Component {
if (!t.checkInited(false)) if (!t.checkInited(false))
return; return;
if (val == null || val < 0) { if (val == null || val < 0) {
console.error('numItems set the wrong::', val); logger.error('numItems set the wrong::', val);
return; return;
} }
t._actualNumItems = t._numItems = val; t._actualNumItems = t._numItems = val;
@@ -464,7 +465,7 @@ export default class HXZ_ScrollViewList extends Component {
t.content = t._scrollView.content; t.content = t._scrollView.content;
t._contentUt = t.content.getComponent(UITransform); t._contentUt = t.content.getComponent(UITransform);
if (!t.content) { if (!t.content) {
console.error(t.node.name + "'s ScrollView unset content!"); logger.error(t.node.name + "'s ScrollView unset content!");
return; return;
} }
@@ -728,7 +729,7 @@ export default class HXZ_ScrollViewList extends Component {
checkInited(printLog: boolean = true) { checkInited(printLog: boolean = true) {
if (!this._inited) { if (!this._inited) {
if (printLog) if (printLog)
console.error('List initialization not completed!'); logger.error('List initialization not completed!');
return false; return false;
} }
return true; return true;
@@ -1847,13 +1848,13 @@ export default class HXZ_ScrollViewList extends Component {
let t: any = this; let t: any = this;
if (!t.checkInited() || t.cyclic || !t._virtual) if (!t.checkInited() || t.cyclic || !t._virtual)
return console.error('This function is not allowed to be called!'); return logger.error('This function is not allowed to be called!');
if (!callFunc) if (!callFunc)
return console.error('CallFunc are not allowed to be NULL, You need to delete the corresponding index in the data array in the CallFunc!'); return logger.error('CallFunc are not allowed to be NULL, You need to delete the corresponding index in the data array in the CallFunc!');
if (t._aniDelRuning) if (t._aniDelRuning)
return console.warn('Please wait for the current deletion to finish!'); return logger.warn('Please wait for the current deletion to finish!');
let item: any = t.getItemByListId(listId); let item: any = t.getItemByListId(listId);
let listItem: ScrollViewListItem; let listItem: ScrollViewListItem;
@@ -1969,7 +1970,7 @@ export default class HXZ_ScrollViewList extends Component {
let pos = t.getItemPos(listId); let pos = t.getItemPos(listId);
if (!pos) { if (!pos) {
return DEV && console.error('pos is null', listId); return DEV && logger.error('pos is null', listId);
} }
let targetX: number, targetY: number; let targetX: number, targetY: number;
@@ -2150,7 +2151,7 @@ export default class HXZ_ScrollViewList extends Component {
if (!t.checkInited()) if (!t.checkInited())
return; return;
if (t._slideMode != SlideType.PAGE) if (t._slideMode != SlideType.PAGE)
return console.error('This function is not allowed to be called, Must SlideMode = PAGE!'); return logger.error('This function is not allowed to be called, Must SlideMode = PAGE!');
if (pageNum < 0 || pageNum >= t._numItems) if (pageNum < 0 || pageNum >= t._numItems)
return; return;
if (t.curPageNum == pageNum) if (t.curPageNum == pageNum)
@@ -2168,9 +2169,9 @@ export default class HXZ_ScrollViewList extends Component {
if (!t.checkInited()) if (!t.checkInited())
return; return;
if (!t._itemTmp) if (!t._itemTmp)
return console.error('Unset template item!'); return logger.error('Unset template item!');
if (!t.renderEvent) if (!t.renderEvent)
return console.error('Unset Render-Event!'); return logger.error('Unset Render-Event!');
t._customSize = {}; t._customSize = {};
let temp: any = instantiate(t._itemTmp); let temp: any = instantiate(t._itemTmp);
let ut: UITransform = temp.getComponent(UITransform); let ut: UITransform = temp.getComponent(UITransform);
@@ -1,4 +1,5 @@
import { _decorator } from "cc"; import { _decorator } from "cc";
import { logger } from "db://assets/Scripts/Main/Common/Logger";
const { ccclass, property } = _decorator; const { ccclass, property } = _decorator;
@@ -85,7 +86,7 @@ export default class li_EventManager {
try { try {
handler[0].apply(handler[1], param); handler[0].apply(handler[1], param);
} catch (e) { } catch (e) {
console.error("innerErr:" + e.stack); logger.error("innerErr:" + e.stack);
} }
} }
if (handlerArray.length != length) { if (handlerArray.length != length) {
+1 -1
View File
@@ -362,7 +362,7 @@ export default class ResManager {
loadRemoteAudio(url: string, cb: Function = null) { loadRemoteAudio(url: string, cb: Function = null) {
assetManager.loadRemote<AudioClip>(url, (err, res: AudioClip) => { assetManager.loadRemote<AudioClip>(url, (err, res: AudioClip) => {
if (err) { if (err) {
console.error(err); logger.error(err);
return; return;
} }
cb && cb(res); cb && cb(res);
+3 -2
View File
@@ -8,6 +8,7 @@ import { CommAdDialog } from "./Item/CommAdDialog";
import Utils from "../Main/Common/Utils"; import Utils from "../Main/Common/Utils";
import { InnerMsgCode } from "../Main/Config/InnerMsgCode"; import { InnerMsgCode } from "../Main/Config/InnerMsgCode";
import { TipsPanel } from "../chat18x/ui/panels/TipsPanel"; import { TipsPanel } from "../chat18x/ui/panels/TipsPanel";
import { logger } from "db://assets/Scripts/Main/Common/Logger";
const { ccclass, property } = _decorator; const { ccclass, property } = _decorator;
@@ -34,7 +35,7 @@ export default class SubManager {
/**通用确认框 { content: string, strYes?: string, strNo?: string, yesCallback?: Function, noCallback?: Function, closeCallback?: Function } */ /**通用确认框 { content: string, strYes?: string, strNo?: string, yesCallback?: Function, noCallback?: Function, closeCallback?: Function } */
public static ShowConfirm(param: any) { public static ShowConfirm(param: any) {
if (!GameRootUI.I) { if (!GameRootUI.I) {
console.warn("GameRootUI还未初始化", param); logger.warn("GameRootUI还未初始化", param);
return; return;
} }
ResManager.I.loadSubpackagePrefab("item/ConfirmDialog", (n_node: Node) => { ResManager.I.loadSubpackagePrefab("item/ConfirmDialog", (n_node: Node) => {
@@ -48,7 +49,7 @@ export default class SubManager {
/**通用广告框 { content: string, strAd?: string, strLeft?: string, adCallback?: Function, leftCallback?: Function, closeCallback?: Function } */ /**通用广告框 { content: string, strAd?: string, strLeft?: string, adCallback?: Function, leftCallback?: Function, closeCallback?: Function } */
public static ShowCommonAdDialog(param: any) { public static ShowCommonAdDialog(param: any) {
if (!GameRootUI.I) { if (!GameRootUI.I) {
console.warn("GameRootUI还未初始化", param); logger.warn("GameRootUI还未初始化", param);
return; return;
} }
ResManager.I.loadSubpackagePrefab("item/CommAdDialog", (n_node: Node) => { ResManager.I.loadSubpackagePrefab("item/CommAdDialog", (n_node: Node) => {
+1 -1
View File
@@ -95,7 +95,7 @@ export class SceneBgVideoLayer extends li_BaseView {
} }
) { ) {
if (!this.videoPlayer) { if (!this.videoPlayer) {
console.error("SceneBgVideoLayer: VideoPlayer未初始化"); logger.error("SceneBgVideoLayer: VideoPlayer未初始化");
return; return;
} }
@@ -6,6 +6,7 @@
import { DataId, DataManager } from "../data/DataManager"; import { DataId, DataManager } from "../data/DataManager";
import { GlobalData } from "../data/GlobalData"; import { GlobalData } from "../data/GlobalData";
import { ConfigManager } from "../manager/ConfigManager"; import { ConfigManager } from "../manager/ConfigManager";
import { logger } from "db://assets/Scripts/Main/Common/Logger";
export interface AIConfig { export interface AIConfig {
/** API密钥 */ /** API密钥 */
@@ -60,7 +61,7 @@ export class ApiConfig {
).getTimeout(), // 30秒 ).getTimeout(), // 30秒
}; };
//console.warn(this.config.apiKey); //logger.warn(this.config.apiKey);
} }
/** /**
@@ -97,7 +98,7 @@ export class ApiConfig {
if (temperature >= 0 && temperature <= 2) { if (temperature >= 0 && temperature <= 2) {
this.config.temperature = temperature; this.config.temperature = temperature;
} else { } else {
console.warn("Temperature should be between 0 and 2"); logger.warn("Temperature should be between 0 and 2");
} }
} }
@@ -110,11 +111,11 @@ export class ApiConfig {
*/ */
public validateConfig(): boolean { public validateConfig(): boolean {
if (!this.config.apiKey || this.config.apiKey.trim() === "") { if (!this.config.apiKey || this.config.apiKey.trim() === "") {
console.error("API key is missing"); logger.error("API key is missing");
return false; return false;
} }
if (!this.config.model || this.config.model.trim() === "") { if (!this.config.model || this.config.model.trim() === "") {
console.error("Model name is missing"); logger.error("Model name is missing");
return false; return false;
} }
return true; return true;
+1 -1
View File
@@ -269,7 +269,7 @@ export class ChatAIService {
message, message,
response.text response.text
).catch((emotionError) => { ).catch((emotionError) => {
console.warn( logger.warn(
`Failed to update emotion for role ${roleId}:`, `Failed to update emotion for role ${roleId}:`,
emotionError emotionError
); );
@@ -357,7 +357,7 @@ export class ChatController {
public loadDialogsFromHistory(roleId?: number): void { public loadDialogsFromHistory(roleId?: number): void {
const targetRoleId = roleId || this.chatModel.getCurrentRoleId(); const targetRoleId = roleId || this.chatModel.getCurrentRoleId();
if (!targetRoleId) { if (!targetRoleId) {
console.warn("Cannot load dialogs: no active role"); logger.warn("Cannot load dialogs: no active role");
return; return;
} }
@@ -508,7 +508,7 @@ export class ChatController {
* @param error 错误对象 * @param error 错误对象
*/ */
private handleError(error: Error): void { private handleError(error: Error): void {
console.error("ChatController error:", error); logger.error("ChatController error:", error);
this.callback?.onError(error); this.callback?.onError(error);
} }
} }
@@ -354,7 +354,7 @@ export class EmotionAIService {
} }
} }
} catch (error) { } catch (error) {
console.warn(`Failed to get role name for ${roleId}:`, error); logger.warn(`Failed to get role name for ${roleId}:`, error);
} }
return "AI"; return "AI";
} }
@@ -3,6 +3,7 @@
*/ */
import { BaseData } from "./BaseData"; import { BaseData } from "./BaseData";
import proto from "db://assets/Scripts/proto/proto.pb.js"; import proto from "db://assets/Scripts/proto/proto.pb.js";
import { logger } from "db://assets/Scripts/Main/Common/Logger";
// 数据结构 // 数据结构
export interface AiCharacters { export interface AiCharacters {
@@ -69,7 +70,7 @@ export class AiCharacterData extends BaseData {
try { try {
parsed = JSON.parse(data.data); parsed = JSON.parse(data.data);
} catch (e) { } catch (e) {
console.warn("AiCharacterData JSON 解析失败", e); logger.warn("AiCharacterData JSON 解析失败", e);
return; return;
} }
// 解析数据 // 解析数据
+5 -5
View File
@@ -108,7 +108,7 @@ export class ChatModel {
//const roleDetail = ConfigManager.tables.TbGirlsDetail.get(roleId); //const roleDetail = ConfigManager.tables.TbGirlsDetail.get(roleId);
if (!girlData) { if (!girlData) {
console.error(`ChatModel: Role data not found for roleId ${girlId}`); logger.error(`ChatModel: Role data not found for roleId ${girlId}`);
return null; return null;
} }
@@ -124,7 +124,7 @@ export class ChatModel {
return newRoleData; return newRoleData;
} catch (error) { } catch (error) {
console.error( logger.error(
`ChatModel: Failed to create role data for ${girlId}:`, `ChatModel: Failed to create role data for ${girlId}:`,
error error
); );
@@ -208,18 +208,18 @@ export class ChatModel {
public addDialog(isPlayer: boolean, content: string, roleId?: number): void { public addDialog(isPlayer: boolean, content: string, roleId?: number): void {
const targetRoleId = roleId || this.currentGirlId; const targetRoleId = roleId || this.currentGirlId;
if (!targetRoleId) { if (!targetRoleId) {
console.warn("ChatModel: Cannot add dialog - no active role"); logger.warn("ChatModel: Cannot add dialog - no active role");
return; return;
} }
if (!content || content.trim() === "") { if (!content || content.trim() === "") {
console.warn("ChatModel: Cannot add empty dialog content"); logger.warn("ChatModel: Cannot add empty dialog content");
return; return;
} }
const roleData = this.rolesData.get(targetRoleId); const roleData = this.rolesData.get(targetRoleId);
if (!roleData) { if (!roleData) {
console.warn(`ChatModel: Role data not found for roleId ${targetRoleId}`); logger.warn(`ChatModel: Role data not found for roleId ${targetRoleId}`);
return; return;
} }
+2 -2
View File
@@ -92,7 +92,7 @@ export class DataManager {
*/ */
private register<T extends BaseData>(dataId: string, ctor: DataCtor<T>): void { private register<T extends BaseData>(dataId: string, ctor: DataCtor<T>): void {
if (this._config.has(dataId)) { if (this._config.has(dataId)) {
console.warn(`[DataManager] 重复注册数据ID: ${dataId},将覆盖旧构造器`); logger.warn(`[DataManager] 重复注册数据ID: ${dataId},将覆盖旧构造器`);
} }
this._config.set(dataId, ctor); this._config.set(dataId, ctor);
} }
@@ -108,7 +108,7 @@ export class DataManager {
// 缓存没有→ 查找构造器 // 缓存没有→ 查找构造器
const Ctor = this._config.get(dataId) as DataCtor<T> | undefined; const Ctor = this._config.get(dataId) as DataCtor<T> | undefined;
if (!Ctor) { if (!Ctor) {
console.warn(`[DataManager] 未找到 dataId 的构造器配置: ${dataId}`); logger.warn(`[DataManager] 未找到 dataId 的构造器配置: ${dataId}`);
return null; return null;
} }
@@ -127,7 +127,7 @@ export class ConfigManager {
ctor: DataCtor<T> ctor: DataCtor<T>
): void { ): void {
if (this._config.has(configId)) { if (this._config.has(configId)) {
console.warn( logger.warn(
`[ConfigManager] 重复注册数据ID: ${configId},将覆盖旧构造器` `[ConfigManager] 重复注册数据ID: ${configId},将覆盖旧构造器`
); );
} }
@@ -147,7 +147,7 @@ export class ConfigManager {
// 缓存没有→ 查找构造器 // 缓存没有→ 查找构造器
const Ctor = this._config.get(configId) as DataCtor<T> | undefined; const Ctor = this._config.get(configId) as DataCtor<T> | undefined;
if (!Ctor) { if (!Ctor) {
console.warn(`[ConfigManager] 未找到 configId 的构造器配置: ${configId}`); logger.warn(`[ConfigManager] 未找到 configId 的构造器配置: ${configId}`);
return null; return null;
} }
@@ -316,12 +316,12 @@ export class NavigationManager {
animationConfig?: SubPanelAnimationConfig animationConfig?: SubPanelAnimationConfig
) { ) {
if (!panelName) { if (!panelName) {
console.error("[NavigationManager] openSubPanel: panelName is empty"); logger.error("[NavigationManager] openSubPanel: panelName is empty");
return; return;
} }
if (!basePanel || !basePanel.isValid) { if (!basePanel || !basePanel.isValid) {
console.error("[NavigationManager] openSubPanel: basePanel is invalid"); logger.error("[NavigationManager] openSubPanel: basePanel is invalid");
return; return;
} }
@@ -335,7 +335,7 @@ export class NavigationManager {
const callback = (n: Node) => { const callback = (n: Node) => {
if (!n || !n.isValid) { if (!n || !n.isValid) {
console.error( logger.error(
"[NavigationManager] openSubPanel: created panel is invalid" "[NavigationManager] openSubPanel: created panel is invalid"
); );
return; return;
@@ -352,7 +352,7 @@ export class NavigationManager {
if (basePanelType) { if (basePanelType) {
this.subPanelMapping.set(n, basePanelType); this.subPanelMapping.set(n, basePanelType);
} else { } else {
console.warn( logger.warn(
`[NavigationManager] 无法确定basePanel类型: ${basePanel.name}` `[NavigationManager] 无法确定basePanel类型: ${basePanel.name}`
); );
} }
@@ -646,7 +646,7 @@ export class NavigationManager {
} }
if (!panelNode || !panelNode.isValid) { if (!panelNode || !panelNode.isValid) {
console.warn("[NavigationManager] closeSubPanel: panelNode is invalid"); logger.warn("[NavigationManager] closeSubPanel: panelNode is invalid");
return; return;
} }
@@ -676,7 +676,7 @@ export class NavigationManager {
panel.close(); panel.close();
} }
} catch (error) { } catch (error) {
console.error("[NavigationManager] closeSubPanel error:", error); logger.error("[NavigationManager] closeSubPanel error:", error);
} }
}); });
} }
@@ -700,7 +700,7 @@ export class NavigationManager {
this.subPanelDic.delete(baseNode); this.subPanelDic.delete(baseNode);
} }
} else { } else {
console.warn( logger.warn(
`[NavigationManager] ${panelNode.name} 不在子页面列表中` `[NavigationManager] ${panelNode.name} 不在子页面列表中`
); );
} }
@@ -734,7 +734,7 @@ export class NavigationManager {
} }
private getPanelType(node: Node): PanelType { private getPanelType(node: Node): PanelType {
if (!node || !node.isValid) { if (!node || !node.isValid) {
console.warn("[NavigationManager] getPanelType: node is invalid"); logger.warn("[NavigationManager] getPanelType: node is invalid");
return null; return null;
} }
@@ -748,7 +748,7 @@ export class NavigationManager {
case "PersonalPanel": case "PersonalPanel":
return PanelType.PERSONAL; return PanelType.PERSONAL;
default: default:
console.warn( logger.warn(
`[NavigationManager] Unknown panel type for node: ${node.name}` `[NavigationManager] Unknown panel type for node: ${node.name}`
); );
return null; return null;
@@ -308,7 +308,7 @@ export class ChatPanel extends li_BaseView implements IChatPanelCallback {
private switchVideoByEmotion(emotion: VideoEmotion): void { private switchVideoByEmotion(emotion: VideoEmotion): void {
if (!this.videoLayer) { if (!this.videoLayer) {
console.warn("Cannot switch video: missing video player"); logger.warn("Cannot switch video: missing video player");
return; return;
} }
// Get video data from ChatModel through ChatController // Get video data from ChatModel through ChatController
@@ -472,7 +472,7 @@ export class ChatPanel extends li_BaseView implements IChatPanelCallback {
* @param error 错误信息 * @param error 错误信息
*/ */
public onError(error: Error): void { public onError(error: Error): void {
console.error("Chat error:", error); logger.error("Chat error:", error);
// 出错时加载动画会被自动移除,可以在这里显示错误提示给用户 // 出错时加载动画会被自动移除,可以在这里显示错误提示给用户
} }
@@ -133,7 +133,7 @@ export class GirlDetailPanel extends li_BaseView {
} }
// 如果没有 videoArea,使用默认尺寸 // 如果没有 videoArea,使用默认尺寸
console.warn("GirlDetailPanel: videoArea 未设置,使用默认尺寸"); logger.warn("GirlDetailPanel: videoArea 未设置,使用默认尺寸");
return new Size(600, 800); return new Size(600, 800);
} }
@@ -7,6 +7,7 @@ import {
isValid, isValid,
Node, Node,
} from "cc"; } from "cc";
import { logger } from "db://assets/Scripts/Main/Common/Logger";
const { ccclass } = _decorator; const { ccclass } = _decorator;
@@ -28,12 +29,12 @@ export class ParentResize extends Component {
this.uiTransform = this.getComponent(UITransform); this.uiTransform = this.getComponent(UITransform);
if (!this.sprite) { if (!this.sprite) {
console.warn("ParentResize: 未找到 Sprite 组件"); logger.warn("ParentResize: 未找到 Sprite 组件");
return; return;
} }
if (!this.uiTransform) { if (!this.uiTransform) {
console.warn("ParentResize: 未找到 UITransform 组件"); logger.warn("ParentResize: 未找到 UITransform 组件");
return; return;
} }
@@ -41,11 +42,11 @@ export class ParentResize extends Component {
if (this.node.parent) { if (this.node.parent) {
this.parentTransform = this.node.parent.getComponent(UITransform); this.parentTransform = this.node.parent.getComponent(UITransform);
if (!this.parentTransform) { if (!this.parentTransform) {
console.warn("ParentResize: 父物体未找到 UITransform 组件"); logger.warn("ParentResize: 父物体未找到 UITransform 组件");
return; return;
} }
} else { } else {
console.warn("ParentResize: 未找到父物体"); logger.warn("ParentResize: 未找到父物体");
return; return;
} }
} }
@@ -119,7 +120,7 @@ export class ParentResize extends Component {
this.lastParentSize.set(0, 0); // 重置上次记录的尺寸 this.lastParentSize.set(0, 0); // 重置上次记录的尺寸
this.adjustToParent(); this.adjustToParent();
} else { } else {
console.warn("ParentResize: 新父物体未找到 UITransform 组件"); logger.warn("ParentResize: 新父物体未找到 UITransform 组件");
} }
} }
} }
@@ -7,6 +7,7 @@ import {
Size, Size,
isValid, isValid,
} from "cc"; } from "cc";
import { logger } from "db://assets/Scripts/Main/Common/Logger";
const { ccclass } = _decorator; const { ccclass } = _decorator;
@@ -27,12 +28,12 @@ export class SpriteResize extends Component {
this.uiTransform = this.getComponent(UITransform); this.uiTransform = this.getComponent(UITransform);
if (!this.sprite) { if (!this.sprite) {
console.warn("SpriteResize: 未找到 Sprite 组件"); logger.warn("SpriteResize: 未找到 Sprite 组件");
return; return;
} }
if (!this.uiTransform) { if (!this.uiTransform) {
console.warn("SpriteResize: 未找到 UITransform 组件"); logger.warn("SpriteResize: 未找到 UITransform 组件");
return; return;
} }
} }
@@ -7,6 +7,7 @@ import {
view, view,
UIOpacity, UIOpacity,
} from "cc"; } from "cc";
import { logger } from "db://assets/Scripts/Main/Common/Logger";
const { ccclass, property } = _decorator; const { ccclass, property } = _decorator;
@@ -33,7 +34,7 @@ export class UITransitionHelper {
callback?: Function callback?: Function
): void { ): void {
if (!node || !node.isValid) { if (!node || !node.isValid) {
console.warn("UITransitionHelper: Invalid node for slideInFromRight"); logger.warn("UITransitionHelper: Invalid node for slideInFromRight");
return; return;
} }
@@ -73,7 +74,7 @@ export class UITransitionHelper {
callback?: Function callback?: Function
): void { ): void {
if (!node || !node.isValid) { if (!node || !node.isValid) {
console.warn("UITransitionHelper: Invalid node for slideOutToLeft"); logger.warn("UITransitionHelper: Invalid node for slideOutToLeft");
return; return;
} }
@@ -115,7 +116,7 @@ export class UITransitionHelper {
callback?: Function callback?: Function
): void { ): void {
if (!node || !node.isValid) { if (!node || !node.isValid) {
console.warn("UITransitionHelper: Invalid node for slideInFromLeft"); logger.warn("UITransitionHelper: Invalid node for slideInFromLeft");
return; return;
} }
@@ -155,7 +156,7 @@ export class UITransitionHelper {
callback?: Function callback?: Function
): void { ): void {
if (!node || !node.isValid) { if (!node || !node.isValid) {
console.warn("UITransitionHelper: Invalid node for slideOutToRight"); logger.warn("UITransitionHelper: Invalid node for slideOutToRight");
return; return;
} }
@@ -197,7 +198,7 @@ export class UITransitionHelper {
callback?: Function callback?: Function
): void { ): void {
if (!node || !node.isValid) { if (!node || !node.isValid) {
console.warn("UITransitionHelper: Invalid node for slideInFromTop"); logger.warn("UITransitionHelper: Invalid node for slideInFromTop");
return; return;
} }
@@ -237,7 +238,7 @@ export class UITransitionHelper {
callback?: Function callback?: Function
): void { ): void {
if (!node || !node.isValid) { if (!node || !node.isValid) {
console.warn("UITransitionHelper: Invalid node for slideOutToTop"); logger.warn("UITransitionHelper: Invalid node for slideOutToTop");
return; return;
} }
@@ -279,7 +280,7 @@ export class UITransitionHelper {
callback?: Function callback?: Function
): void { ): void {
if (!node || !node.isValid) { if (!node || !node.isValid) {
console.warn("UITransitionHelper: Invalid node for slideInFromBottom"); logger.warn("UITransitionHelper: Invalid node for slideInFromBottom");
return; return;
} }
@@ -319,7 +320,7 @@ export class UITransitionHelper {
callback?: Function callback?: Function
): void { ): void {
if (!node || !node.isValid) { if (!node || !node.isValid) {
console.warn("UITransitionHelper: Invalid node for slideOutToBottom"); logger.warn("UITransitionHelper: Invalid node for slideOutToBottom");
return; return;
} }
@@ -361,7 +362,7 @@ export class UITransitionHelper {
callback?: Function callback?: Function
): void { ): void {
if (!node || !node.isValid) { if (!node || !node.isValid) {
console.warn("UITransitionHelper: Invalid node for fadeIn"); logger.warn("UITransitionHelper: Invalid node for fadeIn");
return; return;
} }
@@ -402,7 +403,7 @@ export class UITransitionHelper {
callback?: Function callback?: Function
): void { ): void {
if (!node || !node.isValid) { if (!node || !node.isValid) {
console.warn("UITransitionHelper: Invalid node for fadeOut"); logger.warn("UITransitionHelper: Invalid node for fadeOut");
return; return;
} }
@@ -440,7 +441,7 @@ export class UITransitionHelper {
callback?: Function callback?: Function
): void { ): void {
if (!node || !node.isValid) { if (!node || !node.isValid) {
console.warn("UITransitionHelper: Invalid node for scaleIn"); logger.warn("UITransitionHelper: Invalid node for scaleIn");
return; return;
} }
@@ -471,7 +472,7 @@ export class UITransitionHelper {
callback?: Function callback?: Function
): void { ): void {
if (!node || !node.isValid) { if (!node || !node.isValid) {
console.warn("UITransitionHelper: Invalid node for scaleOut"); logger.warn("UITransitionHelper: Invalid node for scaleOut");
return; return;
} }
@@ -493,7 +494,7 @@ export class UITransitionHelper {
*/ */
public static stopAllTweens(node: Node): void { public static stopAllTweens(node: Node): void {
if (!node || !node.isValid) { if (!node || !node.isValid) {
console.warn("UITransitionHelper: Invalid node for stopAllTweens"); logger.warn("UITransitionHelper: Invalid node for stopAllTweens");
return; return;
} }
+13 -12
View File
@@ -1,5 +1,6 @@
import { Sprite, SpriteFrame, Texture2D, ImageAsset, Node } from 'cc'; import { Sprite, SpriteFrame, Texture2D, ImageAsset, Node } from 'cc';
import qrcode from 'qrcode-generator'; import qrcode from 'qrcode-generator';
import { logger } from "db://assets/Scripts/Main/Common/Logger";
/** /**
* 二维码生成工具类 * 二维码生成工具类
@@ -17,7 +18,7 @@ export class QRCodeGenerator {
public static generateQRCodeSprite(text: string, size: number = 256, margin: number = 4, callback?: (sprite: Sprite | null) => void): void { public static generateQRCodeSprite(text: string, size: number = 256, margin: number = 4, callback?: (sprite: Sprite | null) => void): void {
try { try {
if (!text || text.trim().length === 0) { if (!text || text.trim().length === 0) {
console.error('QRCodeGenerator: 文本内容不能为空'); logger.error('QRCodeGenerator: 文本内容不能为空');
callback && callback(null); callback && callback(null);
return; return;
} }
@@ -36,12 +37,12 @@ export class QRCodeGenerator {
callback && callback(sprite); callback && callback(sprite);
} catch (error) { } catch (error) {
console.error('QRCodeGenerator: 创建Sprite组件失败', error); logger.error('QRCodeGenerator: 创建Sprite组件失败', error);
callback && callback(null); callback && callback(null);
} }
}); });
} catch (error) { } catch (error) {
console.error('QRCodeGenerator: 生成二维码Sprite失败', error); logger.error('QRCodeGenerator: 生成二维码Sprite失败', error);
callback && callback(null); callback && callback(null);
} }
} }
@@ -56,13 +57,13 @@ export class QRCodeGenerator {
public static generateQRCodeSpriteFrame(text: string, size: number = 256, margin: number = 4, callback?: (spriteFrame: SpriteFrame | null) => void): void { public static generateQRCodeSpriteFrame(text: string, size: number = 256, margin: number = 4, callback?: (spriteFrame: SpriteFrame | null) => void): void {
try { try {
if (!text || text.trim().length === 0) { if (!text || text.trim().length === 0) {
console.error('QRCodeGenerator: 文本内容不能为空'); logger.error('QRCodeGenerator: 文本内容不能为空');
callback && callback(null); callback && callback(null);
return; return;
} }
if (size <= 0 || size > 2048) { if (size <= 0 || size > 2048) {
console.error('QRCodeGenerator: 尺寸必须在1-2048之间'); logger.error('QRCodeGenerator: 尺寸必须在1-2048之间');
callback && callback(null); callback && callback(null);
return; return;
} }
@@ -83,7 +84,7 @@ export class QRCodeGenerator {
const ctx = canvas.getContext('2d'); const ctx = canvas.getContext('2d');
if (!ctx) { if (!ctx) {
console.error('QRCodeGenerator: 无法获取Canvas上下文'); logger.error('QRCodeGenerator: 无法获取Canvas上下文');
callback && callback(null); callback && callback(null);
return; return;
} }
@@ -124,13 +125,13 @@ export class QRCodeGenerator {
callback && callback(spriteFrame); callback && callback(spriteFrame);
} catch (error) { } catch (error) {
console.error('QRCodeGenerator: 创建纹理失败', error); logger.error('QRCodeGenerator: 创建纹理失败', error);
callback && callback(null); callback && callback(null);
} }
}; };
img.onerror = () => { img.onerror = () => {
console.error('QRCodeGenerator: 图片加载失败'); logger.error('QRCodeGenerator: 图片加载失败');
callback && callback(null); callback && callback(null);
}; };
@@ -138,7 +139,7 @@ export class QRCodeGenerator {
img.src = canvas.toDataURL('image/png'); img.src = canvas.toDataURL('image/png');
} catch (error) { } catch (error) {
console.error('QRCodeGenerator: 生成二维码SpriteFrame失败', error); logger.error('QRCodeGenerator: 生成二维码SpriteFrame失败', error);
callback && callback(null); callback && callback(null);
} }
} }
@@ -153,7 +154,7 @@ export class QRCodeGenerator {
public static generateQRCodeBase64(text: string, size: number = 256, margin: number = 4): string { public static generateQRCodeBase64(text: string, size: number = 256, margin: number = 4): string {
try { try {
if (!text || text.trim().length === 0) { if (!text || text.trim().length === 0) {
console.error('QRCodeGenerator: 文本内容不能为空'); logger.error('QRCodeGenerator: 文本内容不能为空');
return ''; return '';
} }
@@ -173,7 +174,7 @@ export class QRCodeGenerator {
const ctx = canvas.getContext('2d'); const ctx = canvas.getContext('2d');
if (!ctx) { if (!ctx) {
console.error('QRCodeGenerator: 无法获取Canvas上下文'); logger.error('QRCodeGenerator: 无法获取Canvas上下文');
return ''; return '';
} }
@@ -199,7 +200,7 @@ export class QRCodeGenerator {
// 返回Base64字符串 // 返回Base64字符串
return canvas.toDataURL('image/png'); return canvas.toDataURL('image/png');
} catch (error) { } catch (error) {
console.error('QRCodeGenerator: 生成二维码Base64失败', error); logger.error('QRCodeGenerator: 生成二维码Base64失败', error);
return ''; return '';
} }
} }