mirror of
https://github.com/louislam/uptime-kuma.git
synced 2024-11-23 23:04:04 +00:00
create datetime mixin
This commit is contained in:
parent
61e758d872
commit
5e52f230b1
4 changed files with 60 additions and 20 deletions
|
@ -22,15 +22,11 @@ export default {
|
|||
|
||||
computed: {
|
||||
displayText() {
|
||||
if (this.value !== undefined && this.value !== "") {
|
||||
let format = "YYYY-MM-DD HH:mm:ss";
|
||||
if (this.dateOnly) {
|
||||
format = "YYYY-MM-DD";
|
||||
}
|
||||
return dayjs.utc(this.value).tz(this.$root.timezone).format(format);
|
||||
if (this.dateOnly) {
|
||||
return this.$root.date(this.value);
|
||||
} else {
|
||||
return this.$root.datetime(this.value);
|
||||
}
|
||||
|
||||
return "";
|
||||
},
|
||||
},
|
||||
}
|
||||
|
|
|
@ -11,6 +11,7 @@ import Layout from "./layouts/Layout.vue";
|
|||
import socket from "./mixins/socket";
|
||||
import theme from "./mixins/theme";
|
||||
import mobile from "./mixins/mobile";
|
||||
import datetime from "./mixins/datetime";
|
||||
import Dashboard from "./pages/Dashboard.vue";
|
||||
import DashboardHome from "./pages/DashboardHome.vue";
|
||||
import Details from "./pages/Details.vue";
|
||||
|
@ -80,7 +81,8 @@ const app = createApp({
|
|||
mixins: [
|
||||
socket,
|
||||
theme,
|
||||
mobile
|
||||
mobile,
|
||||
datetime
|
||||
],
|
||||
data() {
|
||||
return {
|
||||
|
|
53
src/mixins/datetime.js
Normal file
53
src/mixins/datetime.js
Normal file
|
@ -0,0 +1,53 @@
|
|||
import dayjs from "dayjs";
|
||||
import utc from "dayjs/plugin/utc";
|
||||
import timezone from "dayjs/plugin/timezone";
|
||||
import relativeTime from "dayjs/plugin/relativeTime";
|
||||
dayjs.extend(utc);
|
||||
dayjs.extend(timezone);
|
||||
dayjs.extend(relativeTime);
|
||||
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
userTimezone: localStorage.timezone || "auto",
|
||||
}
|
||||
},
|
||||
|
||||
methods: {
|
||||
datetime(value) {
|
||||
return this.datetimeFormat(value, "YYYY-MM-DD HH:mm:ss");
|
||||
},
|
||||
|
||||
date(value) {
|
||||
return this.datetimeFormat(value, "YYYY-MM-DD");
|
||||
},
|
||||
|
||||
time(value, second = true) {
|
||||
let secondString;
|
||||
if (second) {
|
||||
secondString = ":ss";
|
||||
} else {
|
||||
secondString = "";
|
||||
}
|
||||
return this.datetimeFormat(value, "HH:mm" + secondString);
|
||||
},
|
||||
|
||||
datetimeFormat(value, format) {
|
||||
if (value !== undefined && value !== "") {
|
||||
return dayjs.utc(value).tz(this.timezone).format(format);
|
||||
}
|
||||
return "";
|
||||
}
|
||||
},
|
||||
|
||||
computed: {
|
||||
timezone() {
|
||||
if (this.userTimezone === "auto") {
|
||||
return dayjs.tz.guess()
|
||||
}
|
||||
|
||||
return this.userTimezone
|
||||
},
|
||||
}
|
||||
|
||||
}
|
|
@ -1,4 +1,3 @@
|
|||
import dayjs from "dayjs";
|
||||
import { io } from "socket.io-client";
|
||||
import { useToast } from "vue-toastification";
|
||||
const toast = useToast()
|
||||
|
@ -17,7 +16,6 @@ export default {
|
|||
connectCount: 0,
|
||||
},
|
||||
remember: (localStorage.remember !== "0"),
|
||||
userTimezone: localStorage.timezone || "auto",
|
||||
allowLoginDialog: false, // Allowed to show login dialog, but "loggedIn" have to be true too. This exists because prevent the login dialog show 0.1s in first before the socket server auth-ed.
|
||||
loggedIn: false,
|
||||
monitorList: { },
|
||||
|
@ -265,15 +263,6 @@ export default {
|
|||
|
||||
computed: {
|
||||
|
||||
timezone() {
|
||||
|
||||
if (this.userTimezone === "auto") {
|
||||
return dayjs.tz.guess()
|
||||
}
|
||||
|
||||
return this.userTimezone
|
||||
},
|
||||
|
||||
lastHeartbeatList() {
|
||||
let result = {}
|
||||
|
||||
|
|
Loading…
Reference in a new issue