- 新增无需登录的数字大屏页面,包含蓝色和橙色主题 - 在管理后台仪表盘添加大屏入口快速按钮 - 扩展天梯排名接口,支持大屏显示模式(绕过最低参赛场次限制) - 统一将项目品牌名称从“影杀/羽动俱乐部”更新为“英飒俱乐部” - 更新相关配置文件、文档和界面中的品牌名称 - 添加公开数据接口用于获取门店列表和天梯排名
81 lines
2.0 KiB
JavaScript
81 lines
2.0 KiB
JavaScript
// 格式化日期
|
|
const formatDate = (date, format = "YYYY-MM-DD HH:mm") => {
|
|
if (!date) return "";
|
|
const d = new Date(date);
|
|
const year = d.getFullYear();
|
|
const month = String(d.getMonth() + 1).padStart(2, "0");
|
|
const day = String(d.getDate()).padStart(2, "0");
|
|
const hour = String(d.getHours()).padStart(2, "0");
|
|
const minute = String(d.getMinutes()).padStart(2, "0");
|
|
const second = String(d.getSeconds()).padStart(2, "0");
|
|
|
|
return format
|
|
.replace("YYYY", year)
|
|
.replace("MM", month)
|
|
.replace("DD", day)
|
|
.replace("HH", hour)
|
|
.replace("mm", minute)
|
|
.replace("ss", second);
|
|
};
|
|
|
|
// 等级名称
|
|
const levelNames = {
|
|
1: "新锐",
|
|
2: "精锐",
|
|
3: "高手",
|
|
4: "大师",
|
|
5: "宗师",
|
|
};
|
|
|
|
const getLevelName = (level) => levelNames[level] || "未知";
|
|
|
|
// 等级描述
|
|
const levelDescs = {
|
|
1: "掌握基础动作,能进行多拍回合。",
|
|
2: "技术较全面,具备初步的战术意识。",
|
|
3: "技术稳定,战术意图清晰,比赛经验丰富。",
|
|
4: "在英飒俱乐部内属顶尖战力,具备较强掌控力。",
|
|
5: "技术全面,战术素养高,是英飒俱乐部标杆。",
|
|
};
|
|
|
|
const getLevelDesc = (level) => levelDescs[level] || "";
|
|
|
|
// 比赛状态
|
|
const matchStatusTexts = {
|
|
0: "待开始",
|
|
1: "进行中",
|
|
2: "已结束",
|
|
3: "已取消",
|
|
};
|
|
|
|
const getMatchStatusText = (status) => matchStatusTexts[status] || "未知";
|
|
|
|
// 订单状态
|
|
const orderStatusTexts = {
|
|
0: "待核销",
|
|
1: "已完成",
|
|
2: "已取消",
|
|
};
|
|
|
|
const getOrderStatusText = (status) => orderStatusTexts[status] || "未知";
|
|
|
|
// 生成随机字符串
|
|
const randomString = (len = 16) => {
|
|
const chars =
|
|
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
|
|
let result = "";
|
|
for (let i = 0; i < len; i++) {
|
|
result += chars.charAt(Math.floor(Math.random() * chars.length));
|
|
}
|
|
return result;
|
|
};
|
|
|
|
module.exports = {
|
|
formatDate,
|
|
getLevelName,
|
|
getLevelDesc,
|
|
getMatchStatusText,
|
|
getOrderStatusText,
|
|
randomString,
|
|
};
|