@d2-projects/vue-filters-date

Former-commit-id: 4f10378208aa67a5072be74c24da3d74ff327af2 [formerly 4f10378208aa67a5072be74c24da3d74ff327af2 [formerly 4f10378208aa67a5072be74c24da3d74ff327af2 [formerly 4f10378208aa67a5072be74c24da3d74ff327af2 [formerly c07c0f99b4a31dfc1a686002ad6b82976e26eefc [formerly 1a4246217c1cd6931ad915b546740c2e4f3ecf7d]]]]]
Former-commit-id: 76c50d24a2feab3f5e5711a7287e20ef5c767b8f
Former-commit-id: e77efd8622d1c0effdc47f385a700c37d1be7734
Former-commit-id: 95fc10c83c6de1956eb0d81fa7cc604016777bda [formerly 5cb0b573e2b6976e7ce8a2b3335a043828bb09d7]
Former-commit-id: 0918c2b1d4ca59dcb561888b8afa3c88e299a3c5
Former-commit-id: 39dad34618d230a9386de15046d013bcc0774d1d
Former-commit-id: 3c5ca48402581d7eb080843111b5906e6817425a
Former-commit-id: 7865ae783991f2df19684c58d6fd55f132383588
Former-commit-id: 87e4572ff7182eb2480f746c9e98f514c2f4fc05
This commit is contained in:
liyang
2018-12-16 14:21:36 +08:00
parent 17d8a70897
commit 67bbc7725b
4 changed files with 4 additions and 101 deletions

View File

@@ -1 +1 @@
71c7a0f0efd0c1c51288f45b81f5c519d81068cb
94d0ae90880c3276771b5f95da03cb7b4ac7effe

View File

@@ -14,6 +14,7 @@
},
"dependencies": {
"@d2-projects/d2-crud": "^1.3.4",
"@d2-projects/vue-filters-date": "^1.0.0",
"axios": "^0.17.1",
"babel-polyfill": "^6.26.0",
"better-scroll": "^1.12.1",

View File

@@ -1,98 +0,0 @@
// 日期时间相关 filter
// https://github.com/iamkun/dayjs/blob/master/docs/zh-cn/API-reference.md
import dayjs from 'dayjs'
// 对象代理
const P = Day => {
return new Proxy(Day, {
get (target, key) {
if (dayjs.isDayjs(target)) {
// 是 Dayjs 对象,正常返回
return target[key]
} else {
// 不是 Dayjs 对象
if (dayjs(target).isValid()) {
// 尝试帮用户解析成 Dayjs 对象
return dayjs(target)[key]
} else {
// 无法解析
return function () {
return '无效日期'
}
}
}
},
set (target, key, value) {
target[key] = value
}
})
}
const filters = {
// ---------- [ dayjs 解析 ] ----------
// 时间字符串 | Date 对象 | Unix 时间戳 (毫秒)
day: value => dayjs(value),
// Unix 时间戳 (秒)
date_unix: value => dayjs.unix(value),
// ---------- [ 获取 ] ----------
date_year: Day => P(Day).year(),
date_month: Day => P(Day).month(),
date_date: Day => P(Day).date(),
date_day: Day => P(Day).day(),
date_hour: Day => P(Day).hour(),
date_minute: Day => P(Day).minute(),
date_second: Day => P(Day).second(),
date_millisecond: Day => P(Day).millisecond(),
// ---------- [ 设置 ] ----------
// date | day | month | year | hour | minute | second | millisecond
// 对大小写不敏感
date_set: (Day, unit, value) => P(Day).set(unit, value),
// ---------- [ 操作 ] ----------
// 增加
date_add: (Day, value, unit) => P(Day).add(value, unit),
// 减少
date_subtract: (Day, value, unit) => P(Day).subtract(value, unit),
// 开头时间
date_startof: (Day, unit) => P(Day).startOf(unit),
// 末尾时间
date_endof: (Day, unit) => P(Day).endOf(unit),
// ---------- [ 显示 ] ----------
// 格式化
date_format: (Day, setting = 'YYYY-MM-DD HH:mm:ss') => P(Day).format(setting),
// 时间差
date_diff: (Day, Day2 = '', unit = 'millisecond', accurate = false) => P(Day).diff(dayjs(Day2), unit, accurate),
// Unix 时间戳 (毫秒)
date_value_millisecond: Day => P(Day).valueOf(),
// Unix 时间戳 (秒)
date_value_second: Day => P(Day).unix(),
// 月份的天数
date_days_in_month: Day => P(Day).daysInMonth(),
// Date 对象
date_to_date: Day => P(Day).toDate(),
// 数组
date_to_array: Day => P(Day).toArray(),
// JSON
date_to_json: Day => P(Day).toJSON(),
// ISO8601 格式
date_to_iso: Day => P(Day).toISOString(),
// 对象
date_to_object: Day => P(Day).toObject(),
// 字符
date_to_string: Day => P(Day).toString(),
// ---------- [ 查询 ] ----------
// 是否之前
date_is_before: (Day, Day2, unit = 'millisecond') => P(Day).isBefore(dayjs(Day2), unit),
// 是否之后
date_is_after: (Day, Day2, unit = 'millisecond') => P(Day).isAfter(dayjs(Day2), unit),
// 是否相同
date_is_same: (Day, Day2, unit = 'millisecond') => P(Day).isSame(dayjs(Day2), unit)
}
export default {
install: function (Vue) {
Object.keys(filters).forEach(name => {
Vue.filter(name, filters[name])
})
}
}

View File

@@ -8,7 +8,7 @@ import '@/components'
// svg 图标
import '@/assets/svg-icons'
// 过滤器
import d2VueFiltersDateModule from '@/filters/module.date'
import d2VueFiltersDate from '@d2-projects/vue-filters-date'
// 功能插件
import pluginError from '@/plugin/error'
import pluginExport from '@/plugin/export'
@@ -32,7 +32,7 @@ export default {
// Element
Vue.use(ElementUI)
// 过滤器 日期模块
Vue.use(d2VueFiltersDateModule)
Vue.use(d2VueFiltersDate)
// 插件
Vue.use(pluginError)
Vue.use(pluginExport)