diff --git a/package-lock.json b/package-lock.json
index 6d11f420..388c36a3 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -2462,18 +2462,6 @@
"supports-color": "^7.0.0"
}
},
- "loader-utils": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz",
- "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==",
- "dev": true,
- "optional": true,
- "requires": {
- "big.js": "^5.2.2",
- "emojis-list": "^3.0.0",
- "json5": "^2.1.2"
- }
- },
"locate-path": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
@@ -2603,31 +2591,6 @@
"webpack-sources": "^1.4.3"
}
},
- "vue-loader-v16": {
- "version": "npm:vue-loader@16.0.0-beta.8",
- "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-16.0.0-beta.8.tgz",
- "integrity": "sha512-oouKUQWWHbSihqSD7mhymGPX1OQ4hedzAHyvm8RdyHh6m3oIvoRF+NM45i/bhNOlo8jCnuJhaSUf/6oDjv978g==",
- "dev": true,
- "optional": true,
- "requires": {
- "chalk": "^4.1.0",
- "hash-sum": "^2.0.0",
- "loader-utils": "^2.0.0"
- },
- "dependencies": {
- "chalk": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz",
- "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==",
- "dev": true,
- "optional": true,
- "requires": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- }
- }
- }
- },
"wrap-ansi": {
"version": "6.2.0",
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz",
@@ -6083,6 +6046,11 @@
}
}
},
+ "dayjs": {
+ "version": "1.8.36",
+ "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.8.36.tgz",
+ "integrity": "sha512-3VmRXEtw7RZKAf+4Tv1Ym9AGeo8r8+CjDi26x+7SYQil1UqtqdaokhzoEJohqlzt0m5kacJSDhJQkG/LWhpRBw=="
+ },
"de-indent": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz",
@@ -16154,6 +16122,88 @@
}
}
},
+ "vue-loader-v16": {
+ "version": "npm:vue-loader@16.0.0-beta.8",
+ "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-16.0.0-beta.8.tgz",
+ "integrity": "sha512-oouKUQWWHbSihqSD7mhymGPX1OQ4hedzAHyvm8RdyHh6m3oIvoRF+NM45i/bhNOlo8jCnuJhaSUf/6oDjv978g==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "chalk": "^4.1.0",
+ "hash-sum": "^2.0.0",
+ "loader-utils": "^2.0.0"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz",
+ "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@types/color-name": "^1.1.1",
+ "color-convert": "^2.0.1"
+ }
+ },
+ "chalk": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz",
+ "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
+ },
+ "color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "dev": true,
+ "optional": true
+ },
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "dev": true,
+ "optional": true
+ },
+ "loader-utils": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz",
+ "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "big.js": "^5.2.2",
+ "emojis-list": "^3.0.0",
+ "json5": "^2.1.2"
+ }
+ },
+ "supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ }
+ }
+ },
"vue-ls": {
"version": "3.2.1",
"resolved": "https://registry.npmjs.org/vue-ls/-/vue-ls-3.2.1.tgz",
diff --git a/package.json b/package.json
index 4dd79c73..9bfdf28e 100644
--- a/package.json
+++ b/package.json
@@ -22,13 +22,13 @@
"dependencies": {
"ant-design-vue": "^1.6.5",
"axios": "^0.19.2",
+ "dayjs": "^1.8.36",
"enquire.js": "^2.1.6",
"filepond": "^4.20.1",
"filepond-plugin-image-preview": "^4.6.4",
"flv.js": "^1.5.0",
"halo-editor": "^2.8.2",
"marked": "^1.1.1",
- "moment": "^2.27.0",
"tiny-pinyin": "^1.3.0",
"verte": "^0.0.12",
"vue": "^2.6.12",
diff --git a/src/utils/datetime.js b/src/utils/datetime.js
new file mode 100644
index 00000000..d0d5fd5d
--- /dev/null
+++ b/src/utils/datetime.js
@@ -0,0 +1,36 @@
+import dayjs from 'dayjs'
+import 'dayjs/locale/zh-cn'
+dayjs.locale('zh-cn')
+
+function datetimeFormat(datetime = new Date(), pattern = 'YYYY-MM-DD HH:mm') {
+ return dayjs(datetime).format(pattern)
+}
+
+function timeAgo(datetime) {
+ var currentTime = new Date().getTime()
+ var between = currentTime - datetime
+ var days = Math.floor(between / (24 * 3600 * 1000))
+ if (days === 0) {
+ var leave1 = between % (24 * 3600 * 1000)
+ var hours = Math.floor(leave1 / (3600 * 1000))
+ if (hours === 0) {
+ var leave2 = leave1 % (3600 * 1000)
+ var minutes = Math.floor(leave2 / (60 * 1000))
+ if (minutes === 0) {
+ var leave3 = leave2 % (60 * 1000)
+ var seconds = Math.round(leave3 / 1000)
+ return seconds + ' 秒前'
+ }
+ return minutes + ' 分钟前'
+ }
+ return hours + ' 小时前'
+ }
+ if (days < 0) return '刚刚'
+ if (days < 5) {
+ return days + ' 天前'
+ } else {
+ return dayjs(datetime).format('YYYY-MM-DD HH:mm')
+ }
+}
+
+export { datetimeFormat, timeAgo }
diff --git a/src/utils/filter.js b/src/utils/filter.js
index a669d4b3..5c2a7a1f 100644
--- a/src/utils/filter.js
+++ b/src/utils/filter.js
@@ -1,10 +1,10 @@
import Vue from 'vue'
-import moment from 'moment'
-import 'moment/locale/zh-cn'
-import {
- timeAgo
-} from '@/utils/util'
-moment.locale('zh-cn')
+
+import dayjs from 'dayjs'
+import 'dayjs/locale/zh-cn'
+
+import { timeAgo } from '@/utils/datetime'
+dayjs.locale('zh-cn')
Vue.filter('NumberFormat', function(value) {
if (!value) {
@@ -14,20 +14,16 @@ Vue.filter('NumberFormat', function(value) {
return intPartFormat
})
-Vue.filter('dayjs', function(dataStr, pattern = 'YYYY-MM-DD HH:mm') {
- return moment(dataStr).format(pattern)
-})
-
Vue.filter('moment', function(dataStr, pattern = 'YYYY-MM-DD HH:mm') {
- return moment(dataStr).format(pattern)
+ return dayjs(dataStr).format(pattern)
})
Vue.filter('moment_post_date', function(dataStr, pattern = '/YYYY/MM/') {
- return moment(dataStr).format(pattern)
+ return dayjs(dataStr).format(pattern)
})
Vue.filter('moment_post_day', function(dataStr, pattern = '/YYYY/MM/DD/') {
- return moment(dataStr).format(pattern)
+ return dayjs(dataStr).format(pattern)
})
Vue.filter('timeAgo', timeAgo)
diff --git a/src/utils/util.js b/src/utils/util.js
index 90c6ac0a..54639035 100644
--- a/src/utils/util.js
+++ b/src/utils/util.js
@@ -1,8 +1,4 @@
-import moment from 'moment'
-import 'moment/locale/zh-cn'
-/**
- * 触发 window.resize
- */
+
export function triggerWindowResizeEvent() {
const event = document.createEvent('HTMLEvents')
event.initEvent('resize', true, true)
@@ -10,41 +6,10 @@ export function triggerWindowResizeEvent() {
window.dispatchEvent(event)
}
-export function timeAgo(time) {
- var currentTime = new Date().getTime()
- var between = currentTime - time
- var days = Math.floor(between / (24 * 3600 * 1000))
- if (days === 0) {
- var leave1 = between % (24 * 3600 * 1000)
- var hours = Math.floor(leave1 / (3600 * 1000))
- if (hours === 0) {
- var leave2 = leave1 % (3600 * 1000)
- var minutes = Math.floor(leave2 / (60 * 1000))
- if (minutes === 0) {
- var leave3 = leave2 % (60 * 1000)
- var seconds = Math.round(leave3 / 1000)
- return seconds + ' 秒前'
- }
- return minutes + ' 分钟前'
- }
- return hours + ' 小时前'
- }
- if (days < 0) return '刚刚'
- if (days < 5) {
- return days + ' 天前'
- } else {
- return moment(time).format('YYYY-MM-DD HH:mm')
- }
-}
-
export function isObject(value) {
return value && typeof value === 'object' && value.constructor === Object
}
-export function datetimeFormat(value, pattern = 'YYYY-MM-DD HH:mm') {
- return moment(value).format(pattern)
-}
-
// decode html tag
export function decodeHTML(html) {
let elem = document.createElement('div')
diff --git a/src/views/post/PostEdit.vue b/src/views/post/PostEdit.vue
index c05afcf0..7963a1bb 100644
--- a/src/views/post/PostEdit.vue
+++ b/src/views/post/PostEdit.vue
@@ -74,7 +74,8 @@
diff --git a/src/views/post/components/PostSettingDrawer.vue b/src/views/post/components/PostSettingDrawer.vue
index 459386bf..f9588554 100644
--- a/src/views/post/components/PostSettingDrawer.vue
+++ b/src/views/post/components/PostSettingDrawer.vue
@@ -322,10 +322,9 @@ import TagSelect from './TagSelect'
// libs
import { mixin, mixinDevice } from '@/utils/mixin.js'
-import moment from 'moment'
+import { datetimeFormat } from '@/utils/datetime'
import pinyin from 'tiny-pinyin'
import { mapGetters } from 'vuex'
-import { datetimeFormat } from '@/utils/util'
// apis
import categoryApi from '@/api/category'
@@ -421,9 +420,9 @@ export default {
pickerDefaultValue() {
if (this.selectedPost.createTime) {
var date = new Date(this.selectedPost.createTime)
- return moment(date, 'YYYY-MM-DD HH:mm:ss')
+ return datetimeFormat(date, 'YYYY-MM-DD HH:mm:ss')
}
- return moment(new Date(), 'YYYY-MM-DD HH:mm:ss')
+ return datetimeFormat(new Date(), 'YYYY-MM-DD HH:mm:ss')
},
fullPath() {
const permalinkType = this.options.post_permalink_type
diff --git a/src/views/sheet/SheetEdit.vue b/src/views/sheet/SheetEdit.vue
index c61e0a2a..d9b27bea 100644
--- a/src/views/sheet/SheetEdit.vue
+++ b/src/views/sheet/SheetEdit.vue
@@ -69,7 +69,7 @@