110 lines
2.8 KiB
JavaScript
110 lines
2.8 KiB
JavaScript
import { createWidget, widget, align, updateStatusBarTitle } from "@zos/ui";
|
|
import { log as Logger, px } from "@zos/utils";
|
|
import { back } from "@zos/router";
|
|
import {
|
|
DEFAULT_COLOR,
|
|
DEFAULT_COLOR_TRANSPARENT,
|
|
} from "../../utils/config/constants";
|
|
import { DEVICE_WIDTH } from "../../utils/config/device";
|
|
import VisLog from "@silver-zepp/vis-log";
|
|
const vis = new VisLog("index.js");
|
|
|
|
const logger = Logger.getLogger("ZeppSpace");
|
|
const { messageBuilder } = getApp()._options.globalData;
|
|
|
|
let title = "";
|
|
let url = "";
|
|
|
|
Page({
|
|
state: {},
|
|
onInit(params) {
|
|
const data = JSON.parse(params);
|
|
if (data["url"] == undefined || data["name"] == undefined) {
|
|
back();
|
|
return;
|
|
}
|
|
title = data["name"];
|
|
url = data["url"];
|
|
},
|
|
build() {
|
|
updateStatusBarTitle(title + " (Loading)");
|
|
this.fetchData();
|
|
},
|
|
|
|
fetchData() {
|
|
messageBuilder
|
|
.request({
|
|
method: "GET_STATUS",
|
|
url: url,
|
|
})
|
|
.then((data) => {
|
|
const statusSuccess = data["success"];
|
|
if (!statusSuccess) {
|
|
return;
|
|
}
|
|
|
|
let open = data["result"]["state"]["open"];
|
|
|
|
let openText = open ? "Yes" : "No";
|
|
|
|
createWidget(widget.TEXT, {
|
|
x: 0,
|
|
y: px(70),
|
|
w: px(DEVICE_WIDTH),
|
|
h: px(50),
|
|
align_h: align.CENTER_H,
|
|
align_v: align.CENTER_V,
|
|
text_size: px(32),
|
|
color: 0xffffff,
|
|
text: "Open: " + openText,
|
|
});
|
|
|
|
createWidget(widget.TEXT, {
|
|
x: 0,
|
|
y: px(120),
|
|
w: px(DEVICE_WIDTH),
|
|
h: px(50),
|
|
align_h: align.CENTER_H,
|
|
align_v: align.CENTER_V,
|
|
text_size: px(32),
|
|
color: 0xffffff,
|
|
text:
|
|
"Last Updated: " +
|
|
this.convertTime(data["result"]["state"]["lastchange"]),
|
|
});
|
|
|
|
updateStatusBarTitle(title);
|
|
});
|
|
},
|
|
|
|
convertTime(timestamp) {
|
|
var a = new Date(timestamp * 1000);
|
|
var today = new Date();
|
|
var yesterday = new Date(Date.now() - 86400000);
|
|
var months = [
|
|
"Jan",
|
|
"Feb",
|
|
"Mar",
|
|
"Apr",
|
|
"May",
|
|
"Jun",
|
|
"Jul",
|
|
"Aug",
|
|
"Sep",
|
|
"Oct",
|
|
"Nov",
|
|
"Dec",
|
|
];
|
|
var year = a.getFullYear();
|
|
var month = months[a.getMonth()];
|
|
var date = a.getDate();
|
|
var hour = a.getHours() < 10 ? "0" + a.getHours() : a.getHours();
|
|
var min = a.getMinutes() < 10 ? "0" + a.getMinutes() : a.getMinutes();
|
|
if (a.setHours(0, 0, 0, 0) == today.setHours(0, 0, 0, 0))
|
|
return hour + ":" + min;
|
|
else if (a.setHours(0, 0, 0, 0) == yesterday.setHours(0, 0, 0, 0))
|
|
return "Yesterday, " + hour + ":" + min;
|
|
else if (year == today.getFullYear()) return date + " " + month;
|
|
else return date + " " + month + " " + year;
|
|
},
|
|
});
|