dayjs 过滤器移动到 packages 文件件内,保持单独发布,但是改变包名
Former-commit-id: 8edae44b33f18375c30f4da997e379135f9b852e [formerly 8edae44b33f18375c30f4da997e379135f9b852e [formerly 8edae44b33f18375c30f4da997e379135f9b852e [formerly 8edae44b33f18375c30f4da997e379135f9b852e [formerly a7623919d3baa987461b56a6b602c3967815c876 [formerly ad295a79a720c7dc124c6ad5b6d0004e3ad9dc02]]]]] Former-commit-id: e89a5be7f8ff9fa1c079e16f543dc5e87f884f4c Former-commit-id: cf6b44d1f2ca78cde4ec4de1e5f1309eb4c8c7b4 Former-commit-id: 832c549904c0ee4957b18e965793a6797c08b6bf [formerly 259b681de4c28f48656ec65adba0216b8a8a06dd] Former-commit-id: e097b8dfe785f08ae133b9bda63e080e18baf887 Former-commit-id: a2bdb2a55fead0e81dedb31b8145f65b246cd29e Former-commit-id: a6a3d0d9b7ab436a01d89b5bf255d12babb8be61 Former-commit-id: 564403ed9b8fbada916c0b21684268740912270b Former-commit-id: 351f7454b858df065d947dab7f5bf26f619c11dd
This commit is contained in:
@@ -1 +1 @@
|
|||||||
43c1678132bcf45bc978f14f60cb37c6e7d7888d
|
960de087bff8ff9a89ede0b1f2ecec67b2c39257
|
||||||
@@ -14,8 +14,8 @@
|
|||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/runtime": "^7.2.0",
|
"@babel/runtime": "^7.2.0",
|
||||||
|
"@d2-admin/filters-dayjs": "^1.0.1",
|
||||||
"@d2-projects/d2-crud": "^2.0.3",
|
"@d2-projects/d2-crud": "^2.0.3",
|
||||||
"@d2-projects/vue-filters-date": "^1.0.2",
|
|
||||||
"@d2-projects/vue-table-export": "^1.0.1",
|
"@d2-projects/vue-table-export": "^1.0.1",
|
||||||
"@d2-projects/vue-table-import": "^1.0.0",
|
"@d2-projects/vue-table-import": "^1.0.0",
|
||||||
"axios": "^0.17.1",
|
"axios": "^0.17.1",
|
||||||
|
|||||||
13
packages/filters-date/package-lock.json
generated
Normal file
13
packages/filters-date/package-lock.json
generated
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
{
|
||||||
|
"name": "@d2-admin/filters-dayjs",
|
||||||
|
"version": "1.0.1",
|
||||||
|
"lockfileVersion": 1,
|
||||||
|
"requires": true,
|
||||||
|
"dependencies": {
|
||||||
|
"dayjs": {
|
||||||
|
"version": "1.8.12",
|
||||||
|
"resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.8.12.tgz",
|
||||||
|
"integrity": "sha512-7keChCzzjU68sYJpk7kEI1Q9qbJyscyiW0STwEhqDFt+2js9pA/BSzmYE4PRxcMMoUMxNeY0TEMZHqV/JBR4OA=="
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
12
packages/filters-date/package.json
Normal file
12
packages/filters-date/package.json
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
{
|
||||||
|
"name": "@d2-admin/filters-dayjs",
|
||||||
|
"version": "1.0.1",
|
||||||
|
"description": "dayjs to vue filters",
|
||||||
|
"main": "src/index.js",
|
||||||
|
"scripts": {},
|
||||||
|
"author": "",
|
||||||
|
"license": "ISC",
|
||||||
|
"dependencies": {
|
||||||
|
"dayjs": "^1.8.12"
|
||||||
|
}
|
||||||
|
}
|
||||||
86
packages/filters-date/src/filters.js
Normal file
86
packages/filters-date/src/filters.js
Normal file
@@ -0,0 +1,86 @@
|
|||||||
|
// 日期时间相关 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
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
export default {
|
||||||
|
// ---------- [ 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(),
|
||||||
|
// JSON
|
||||||
|
date_to_json: Day => P(Day).toJSON(),
|
||||||
|
// ISO8601 格式
|
||||||
|
date_to_iso: Day => P(Day).toISOString(),
|
||||||
|
// 字符
|
||||||
|
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)
|
||||||
|
}
|
||||||
15
packages/filters-date/src/index.js
Normal file
15
packages/filters-date/src/index.js
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
import filters from './filters'
|
||||||
|
|
||||||
|
const vueFiltersDate = {
|
||||||
|
install: function (Vue, options) {
|
||||||
|
Object.keys(filters).forEach(name => {
|
||||||
|
Vue.filter(name, filters[name])
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (typeof window !== 'undefined' && window.Vue) {
|
||||||
|
window.Vue.use(vueFiltersDate)
|
||||||
|
}
|
||||||
|
|
||||||
|
export default vueFiltersDate
|
||||||
@@ -27,7 +27,7 @@ import VueUeditorWrap from 'vue-ueditor-wrap'
|
|||||||
import pluginExport from '@d2-projects/vue-table-export'
|
import pluginExport from '@d2-projects/vue-table-export'
|
||||||
import pluginImport from '@d2-projects/vue-table-import'
|
import pluginImport from '@d2-projects/vue-table-import'
|
||||||
// [ 可选过滤器 ] 日期相关过滤器
|
// [ 可选过滤器 ] 日期相关过滤器
|
||||||
import d2VueFiltersDate from '@d2-projects/vue-filters-date'
|
import d2VueFiltersDayjs from '@d2-admin/filters-dayjs'
|
||||||
|
|
||||||
// 菜单和路由设置
|
// 菜单和路由设置
|
||||||
import router from './router'
|
import router from './router'
|
||||||
@@ -44,7 +44,7 @@ Vue.use(contentmenu)
|
|||||||
Vue.use(vueJsonTreeView)
|
Vue.use(vueJsonTreeView)
|
||||||
Vue.use(pluginExport)
|
Vue.use(pluginExport)
|
||||||
Vue.use(pluginImport)
|
Vue.use(pluginImport)
|
||||||
Vue.use(d2VueFiltersDate)
|
Vue.use(d2VueFiltersDayjs)
|
||||||
Vue.component('d2-grid-layout', GridLayout)
|
Vue.component('d2-grid-layout', GridLayout)
|
||||||
Vue.component('d2-grid-item', GridItem)
|
Vue.component('d2-grid-item', GridItem)
|
||||||
Vue.component('SplitPane', SplitPane)
|
Vue.component('SplitPane', SplitPane)
|
||||||
|
|||||||
Reference in New Issue
Block a user