// 格式化日期 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 }