yingsa/miniprogram/utils/util.js
ethanfly e0713c3fd8 feat: 实现天梯排行数字大屏页面并统一品牌名称为英飒俱乐部
- 新增无需登录的数字大屏页面,包含蓝色和橙色主题
- 在管理后台仪表盘添加大屏入口快速按钮
- 扩展天梯排名接口,支持大屏显示模式(绕过最低参赛场次限制)
- 统一将项目品牌名称从“影杀/羽动俱乐部”更新为“英飒俱乐部”
- 更新相关配置文件、文档和界面中的品牌名称
- 添加公开数据接口用于获取门店列表和天梯排名
2026-01-30 00:59:26 +08:00

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,
};