diff --git a/src/utils/common.js b/src/utils/common.js index a3a9bf8..71a0267 100644 --- a/src/utils/common.js +++ b/src/utils/common.js @@ -2,31 +2,130 @@ export function setHighActive(dom) { const ele = document.getElementById(dom) ele.classList.add('ceshi') - ele.scrollIntoView({behavior:'smooth',block:'start'}) - setTimeout(()=>{ + ele.scrollIntoView({ + behavior: 'smooth', + block: 'start' + }) + setTimeout(() => { ele.classList.remove('ceshi') - },1000) + }, 1000) } export function getServicePriceDesc(price, price_unit, unit_num, unit_name) { let unit = 0; let unit_str = ""; - if (unit_num == 1) return price + price_unit +'/'+unit_name; + if (unit_num == 1) return price + price_unit + '/' + unit_name; - if (unit_num/10000 < 10) { - unit = Math.ceil(unit_num/10000); - unit_str = unit == 1 ? '万' : unit+'万'; + if (unit_num / 10000 < 10) { + unit = Math.ceil(unit_num / 10000); + unit_str = unit == 1 ? '万' : unit + '万'; } - if (unit_num/1000 < 10) { - unit = Math.ceil(unit_num/1000); - unit_str = unit == 1 ? '千' : unit+'千'; + if (unit_num / 1000 < 10) { + unit = Math.ceil(unit_num / 1000); + unit_str = unit == 1 ? '千' : unit + '千'; } - if (unit_num/100 < 10) { - unit = Math.ceil(unit_num/100); - unit_str = unit == 1 ? '百' : unit+'百'; + if (unit_num / 100 < 10) { + unit = Math.ceil(unit_num / 100); + unit_str = unit == 1 ? '百' : unit + '百'; } - return price + price_unit + "/" +unit_str + unit_name; + return price + price_unit + "/" + unit_str + unit_name; } +/** + * 获取格式化的日期字符串--是当下日期 + * @param {string} format - 日期格式,可选值:'YYYY-MM-DD', 'YYYY-MM', 'YYYY', 'HH:mm:ss' 等 + * @returns {string} 格式化后的日期字符串 + * + // 使用示例 + // console.log(getFormattedDate('YYYY')); // 2024 + // console.log(getFormattedDate('YYYY-MM')); // 2024-01 + // console.log(getFormattedDate('YYYY-MM-DD')); // 2024-01-15 + */ +export const getFormattedDate = (format = 'YYYY-MM-DD') => { + const now = new Date(); + const year = now.getFullYear(); + const month = String(now.getMonth() + 1).padStart(2, '0'); + const day = String(now.getDate()).padStart(2, '0'); + const hour = String(now.getHours()).padStart(2, '0'); + const minute = String(now.getMinutes()).padStart(2, '0'); + const second = String(now.getSeconds()).padStart(2, '0'); + + const formats = { + 'YYYY': year, + 'YYYY-MM': `${year}-${month}`, + 'YYYY-MM-DD': `${year}-${month}-${day}`, + 'HH:mm:ss': `${hour}:${minute}:${second}`, + 'YYYY-MM-DD HH:mm:ss': `${year}-${month}-${day} ${hour}:${minute}:${second}`, + 'YYYY/MM/DD': `${year}/${month}/${day}`, + 'YYYY年MM月DD日': `${year}年${month}月${day}日`, + }; + + return formats[format] || formats['YYYY-MM-DD']; +}; + +// 根据指定日期获取年月格式字符串 +/** + * 日期格式化函数 + * + * @param {string} dateStr - 日期字符串,可被Date构造函数解析 + * @param {string} [format='yyyy-mm'] - 输出格式,可选值:'year'、'month'、'year-month'、'yyyy'、'mm'、'm'、'yyyy-mm'、'yyyy-m' + * @returns {string} 格式化后的日期字符串,如果日期无效则返回'Invalid date' + * 使用示例 + * 1. console.log(getDate('2023-12-31')); // 输出: "2023-12" + * 2. console.log(getDate('2023-12-31', 'yyyy' || 'year')); // 输出: "2023" + * 3. console.log(getDate('2023-12-31', 'yyyy-m')); // 输出: "2023-12" + * 4. console.log(getDate('2023-12-31', 'm' || 'month')); // 输出: "12" + * 7. console.log(getDate('2023-12-31', 'year-month')); // 输出: "2023-12" + * 8. console.log(getDate('2023-12-31', 'yyyy/mm')); // 输出: "Invalid date"(因为格式'yyyy/mm'不在可选值中) + * 9.console.log(getDate('2025-03-15T10:30:00', 'yyyy-mm')); // ISO格式 + * 10.console.log(getDate('March 15, 2025', 'yyyy'));//2023 // 英文日期 + * 11.console.log(getDate('2025/03/15', 'year-month')); // 输出: "2025-03" + */ +export function getDate(dateStr, format = 'yyyy-mm') { + try { + const date = new Date(dateStr); + + // 检查日期是否有效 + if (isNaN(date.getTime())) { + throw new Error('日期无效'); + } + + const year = date.getFullYear(); + const month = date.getMonth() + 1; + + const formats = { + 'year': `${year}`, + 'month': `${month.toString().padStart(2, '0')}`, + 'year-month': `${year}-${month.toString().padStart(2, '0')}`, + 'yyyy': `${year}`, + 'mm': `${month.toString().padStart(2, '0')}`, + 'm': `${month}`, + 'yyyy-mm': `${year}-${month.toString().padStart(2, '0')}`, //补0 + 'yyyy-m': `${year}-${month}`//不补0 + }; + + return formats[format] || formats['yyyy-mm']; + } catch (error) { + console.error('Error parsing date:', error); + return 'Invalid date'; + } +} + +//金额千分符 会在整数后添加两个0 --适用于直接显示的 +export function stateFormat(row, column, cellValue) { + if (cellValue) { + return Number(cellValue) + .toFixed(2) + .replace(/(\d)(?=(\d{3})+\.)/g, ($0, $1) => { + return $1 + ","; + }) + .replace(/\.$/, ""); + } +} +//金额千分符 自定义渲染表格内容情况下,调用此方法 +export function formatNumber(value) { + if (value === null || value === undefined) return ''; + return Number(value).toLocaleString(); +} \ No newline at end of file diff --git a/src/views/super/Ranking/RankBatchList.vue b/src/views/super/Ranking/RankBatchList.vue index 3f22a53..1e9f01f 100644 --- a/src/views/super/Ranking/RankBatchList.vue +++ b/src/views/super/Ranking/RankBatchList.vue @@ -29,7 +29,6 @@ -