From 67bbc7725b734588f40875010fc487bfa9135fb6 Mon Sep 17 00:00:00 2001 From: liyang <1711467488@qq.com> Date: Sun, 16 Dec 2018 14:21:36 +0800 Subject: [PATCH] @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 --- package-lock.json.REMOVED.git-id | 2 +- package.json | 1 + src/filters/module.date.js | 98 -------------------------------- src/plugin/d2admin/index.js | 4 +- 4 files changed, 4 insertions(+), 101 deletions(-) delete mode 100644 src/filters/module.date.js diff --git a/package-lock.json.REMOVED.git-id b/package-lock.json.REMOVED.git-id index cc2a0b82..a8602ab8 100644 --- a/package-lock.json.REMOVED.git-id +++ b/package-lock.json.REMOVED.git-id @@ -1 +1 @@ -71c7a0f0efd0c1c51288f45b81f5c519d81068cb \ No newline at end of file +94d0ae90880c3276771b5f95da03cb7b4ac7effe \ No newline at end of file diff --git a/package.json b/package.json index a0ec1396..82de57b7 100644 --- a/package.json +++ b/package.json @@ -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", diff --git a/src/filters/module.date.js b/src/filters/module.date.js deleted file mode 100644 index 35352ce6..00000000 --- a/src/filters/module.date.js +++ /dev/null @@ -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]) - }) - } -} diff --git a/src/plugin/d2admin/index.js b/src/plugin/d2admin/index.js index 3e9724c7..a552f8ec 100644 --- a/src/plugin/d2admin/index.js +++ b/src/plugin/d2admin/index.js @@ -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)