From 0eb0e61b16e166fa4ece8b7e114bcca11b460f32 Mon Sep 17 00:00:00 2001 From: Odboy Date: Wed, 4 Feb 2026 23:26:14 +0800 Subject: [PATCH] =?UTF-8?q?feat(filter):=20=E6=9B=B4=E6=96=B0=E6=97=A5?= =?UTF-8?q?=E6=9C=9F=E5=92=8C=E9=87=91=E9=A2=9D=E6=A0=BC=E5=BC=8F=E5=8C=96?= =?UTF-8?q?=E8=BF=87=E6=BB=A4=E5=99=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cutejava-front/src/main.js | 86 ++++++++++++++++++++++++---------- cutejava-front/src/settings.js | 2 +- 2 files changed, 61 insertions(+), 27 deletions(-) diff --git a/cutejava-front/src/main.js b/cutejava-front/src/main.js index d4e86d59..3783579f 100644 --- a/cutejava-front/src/main.js +++ b/cutejava-front/src/main.js @@ -31,7 +31,8 @@ import store from './store' import router from './router/routers' import './assets/icons' // icon -import './router/index' // permission control +import './router/index' +import dayjs from 'dayjs' // permission control Vue.use(checkPer) Vue.use(permission) @@ -46,44 +47,77 @@ Vue.component('split-pane', SplitPane) /** * 日期格式化
- * 例子: {{ scope.row.createTime | dateFormat }} + * 例子: {{ scope.row.createTime | formatDate }} */ -Vue.filter('dateFormat', function(originVal) { - if (originVal === undefined) { - return '' +Vue.filter('formatDate', function(originVal) { + if (originVal) { + return dayjs(originVal).format('YY-MM-DD') + } else { + return '-' } - const dt = new Date(originVal) - const y = dt.getFullYear() - const m = (dt.getMonth() + 1 + '').padStart(2, '0') - const d = (dt.getDate() + '').padStart(2, '0') - return `${y}-${m}-${d}` + // const dt = new Date(originVal) + // const y = dt.getFullYear() + // const m = (dt.getMonth() + 1 + '').padStart(2, '0') + // const d = (dt.getDate() + '').padStart(2, '0') + // return `${y}-${m}-${d}` }) /** - * 日期时间格式化 + * 日期时间格式化
+ * 例子: {{ scope.row.createTime | formatDateTime }} */ -Vue.filter('dateTimeFormat', function(originVal) { - if (originVal === undefined) { - return '' +Vue.filter('formatDateTime', function(originVal) { + if (originVal) { + return dayjs(originVal).format('YY-MM-DD HH:mm:ss') + } else { + return '-' } - const dt = new Date(originVal) - const y = dt.getFullYear() - const m = (dt.getMonth() + 1 + '').padStart(2, '0') - const d = (dt.getDate() + '').padStart(2, '0') - const hh = (dt.getHours() + '').padStart(2, '0') - const mm = (dt.getMinutes() + '').padStart(2, '0') - const ss = (dt.getSeconds() + '').padStart(2, '0') - return `${y}-${m}-${d} ${hh}:${mm}:${ss}` + // const dt = new Date(originVal) + // const y = dt.getFullYear() + // const m = (dt.getMonth() + 1 + '').padStart(2, '0') + // const d = (dt.getDate() + '').padStart(2, '0') + // const hh = (dt.getHours() + '').padStart(2, '0') + // const mm = (dt.getMinutes() + '').padStart(2, '0') + // const ss = (dt.getSeconds() + '').padStart(2, '0') + // return `${y}-${m}-${d} ${hh}:${mm}:${ss}` }) /** - * 金额格式化 + * 金额格式化,并保留2位小数
+ * 例子: {{ scope.row.totalAmount | formatAmount2 }} */ -Vue.filter('priceFormat', function(data) { - if (data !== undefined && data != null) { +Vue.filter('formatAmount2', function(data) { + if (data) { return data.toFixed(2) } - return 0.00 + return '-' +}) + +/** + * 金额格式化,并保留1位小数
+ * 例子: {{ scope.row.totalAmount | formatAmount1 }} + */ +Vue.filter('formatAmount1', function(data) { + if (data) { + return data.toFixed(1) + } + return '-' +}) + +/** + * 千分位数值格式化,并保留dot位小数
+ * data是value, dot是param1 + * 例子: {{ scope.row.totalAmount | formatNumber(2) }} + */ +Vue.filter('formatNumber', function(data, dot) { + if (data) { + const formatter = new Intl.NumberFormat('zh-CN', { + minimumFractionDigits: dot || 0, + maximumFractionDigits: dot || 0 + }) + return formatter.format(Number(data)) + } + return '-' }) Vue.config.productionTip = false diff --git a/cutejava-front/src/settings.js b/cutejava-front/src/settings.js index 1be10c52..23b4bf97 100644 --- a/cutejava-front/src/settings.js +++ b/cutejava-front/src/settings.js @@ -38,7 +38,7 @@ module.exports = { /** * 底部文字,支持html语法 */ - footerTxt: '© 2022-2025 Odboy Apache License 2.0', + footerTxt: '© 2022-2026 Odboy Apache License 2.0', /** * 备案号 */