添加天气设置
This commit is contained in:
parent
c7cc7289a6
commit
3c193859c7
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "media_player_client",
|
"name": "media_player_client",
|
||||||
"version": "1.4.7",
|
"version": "1.4.8",
|
||||||
"description": "A Quasar Framework app",
|
"description": "A Quasar Framework app",
|
||||||
"productName": "MediaPlayerClient",
|
"productName": "MediaPlayerClient",
|
||||||
"author": "fangxiang <fangxiang@cloudview.work>",
|
"author": "fangxiang <fangxiang@cloudview.work>",
|
||||||
|
|
|
@ -1064,6 +1064,16 @@ export default class ClientConnection {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public async getCityList() {
|
||||||
|
try {
|
||||||
|
return await this.doRpc<Protocol.GetCityListResponseEntity>(
|
||||||
|
new Protocol.GetCityListRequestEntity()
|
||||||
|
);
|
||||||
|
} catch (e) {
|
||||||
|
console.error(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public destory() {
|
public destory() {
|
||||||
if (this.ws) {
|
if (this.ws) {
|
||||||
this.ws.onclose = null;
|
this.ws.onclose = null;
|
||||||
|
|
|
@ -80,7 +80,16 @@
|
||||||
{{ $t("font size") }}
|
{{ $t("font size") }}
|
||||||
</q-item-section>
|
</q-item-section>
|
||||||
<q-item-section>
|
<q-item-section>
|
||||||
<q-input v-model="clock_entity.font_size" type="number" />
|
<q-input
|
||||||
|
v-model="clock_entity.font_size"
|
||||||
|
type="number"
|
||||||
|
lazy-rules
|
||||||
|
:rules="[
|
||||||
|
(val) =>
|
||||||
|
(val && val.toString().length > 0) ||
|
||||||
|
$t('Please type something'),
|
||||||
|
]"
|
||||||
|
/>
|
||||||
</q-item-section>
|
</q-item-section>
|
||||||
</q-item>
|
</q-item>
|
||||||
</q-item-section>
|
</q-item-section>
|
||||||
|
@ -487,7 +496,12 @@ export default defineComponent({
|
||||||
if (json) {
|
if (json) {
|
||||||
try {
|
try {
|
||||||
const temp = JSON.parse(json);
|
const temp = JSON.parse(json);
|
||||||
clock_entity.value = temp;
|
|
||||||
|
for (const item of Object.keys(clock_entity.value)) {
|
||||||
|
if (typeof temp[item] != "undefined") {
|
||||||
|
(<any>clock_entity.value)[item] = temp[item];
|
||||||
|
}
|
||||||
|
}
|
||||||
} catch {}
|
} catch {}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
|
@ -466,7 +466,6 @@ export default defineComponent({
|
||||||
if (result && !result.result.err) {
|
if (result && !result.result.err) {
|
||||||
licence_str = result.result.lic;
|
licence_str = result.result.lic;
|
||||||
}
|
}
|
||||||
console.log(result);
|
|
||||||
clearTimeout(timeout_handler);
|
clearTimeout(timeout_handler);
|
||||||
resolve(true);
|
resolve(true);
|
||||||
} catch {
|
} catch {
|
||||||
|
|
|
@ -157,12 +157,15 @@
|
||||||
? doSelectFile('.jpg;.png')
|
? doSelectFile('.jpg;.png')
|
||||||
: item_data.window_type == 'EwindowType::Clock'
|
: item_data.window_type == 'EwindowType::Clock'
|
||||||
? showClockDialog()
|
? showClockDialog()
|
||||||
|
: item_data.window_type == 'EwindowType::Weather'
|
||||||
|
? showWeatherDialog()
|
||||||
: showPlaylistDialog('.mp4;.avi;.ts;')
|
: showPlaylistDialog('.mp4;.avi;.ts;')
|
||||||
"
|
"
|
||||||
v-model="item_data.media_url"
|
v-model="item_data.media_url"
|
||||||
:readonly="
|
:readonly="
|
||||||
media_url_label.startsWith($t('file path')) ||
|
media_url_label.startsWith($t('file path')) ||
|
||||||
media_url_label.startsWith($t('clock'))
|
media_url_label.startsWith($t('clock')) ||
|
||||||
|
media_url_label.startsWith($t('weather'))
|
||||||
"
|
"
|
||||||
:label="media_url_label"
|
:label="media_url_label"
|
||||||
:hint="
|
:hint="
|
||||||
|
@ -170,6 +173,8 @@
|
||||||
? $t('dbclick select file')
|
? $t('dbclick select file')
|
||||||
: media_url_label.startsWith($t('clock'))
|
: media_url_label.startsWith($t('clock'))
|
||||||
? $t('dbclick config clock')
|
? $t('dbclick config clock')
|
||||||
|
: media_url_label.startsWith($t('weather'))
|
||||||
|
? $t('dbclick config weather')
|
||||||
: $t('please input') +
|
: $t('please input') +
|
||||||
media_url_label.substr(0, media_url_label.length - 1)
|
media_url_label.substr(0, media_url_label.length - 1)
|
||||||
"
|
"
|
||||||
|
@ -283,6 +288,7 @@
|
||||||
<playlist-dialog ref="playlist_dialog" />
|
<playlist-dialog ref="playlist_dialog" />
|
||||||
<file-manage-dialog ref="file_manage_dialog" />
|
<file-manage-dialog ref="file_manage_dialog" />
|
||||||
<clock-signal-source-dialog ref="clock_dialog" />
|
<clock-signal-source-dialog ref="clock_dialog" />
|
||||||
|
<weather-signal-source-dialog ref="weather_dialog" />
|
||||||
</q-dialog>
|
</q-dialog>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
@ -312,11 +318,18 @@ import { SignalSourceEntity } from "src/entities/SignalSourceEntity";
|
||||||
import FileManageDialog from "src/components/FileManageDialog.vue";
|
import FileManageDialog from "src/components/FileManageDialog.vue";
|
||||||
import PlaylistDialog from "src/components/PlaylistDialog.vue";
|
import PlaylistDialog from "src/components/PlaylistDialog.vue";
|
||||||
import ClockSignalSourceDialog from "src/components/ClockSignalSourceDialog.vue";
|
import ClockSignalSourceDialog from "src/components/ClockSignalSourceDialog.vue";
|
||||||
|
import WeatherSignalSourceDialog from "src/components/WeatherSignalSourceDialog.vue";
|
||||||
|
|
||||||
import FileEntity from "src/entities/FileEntity";
|
import FileEntity from "src/entities/FileEntity";
|
||||||
|
|
||||||
export default defineComponent({
|
export default defineComponent({
|
||||||
name: "ComponentSignalSourceDialog",
|
name: "ComponentSignalSourceDialog",
|
||||||
components: { FileManageDialog, PlaylistDialog, ClockSignalSourceDialog },
|
components: {
|
||||||
|
FileManageDialog,
|
||||||
|
PlaylistDialog,
|
||||||
|
ClockSignalSourceDialog,
|
||||||
|
WeatherSignalSourceDialog,
|
||||||
|
},
|
||||||
|
|
||||||
setup() {
|
setup() {
|
||||||
let $store = useStore();
|
let $store = useStore();
|
||||||
|
@ -332,6 +345,7 @@ export default defineComponent({
|
||||||
let loading = ref(false);
|
let loading = ref(false);
|
||||||
let playlist_dialog: any = ref(null);
|
let playlist_dialog: any = ref(null);
|
||||||
let clock_dialog: any = ref(null);
|
let clock_dialog: any = ref(null);
|
||||||
|
let weather_dialog: any = ref(null);
|
||||||
let file_manage_dialog: any = ref(null);
|
let file_manage_dialog: any = ref(null);
|
||||||
|
|
||||||
let suppored_window_types = new Set<string>([
|
let suppored_window_types = new Set<string>([
|
||||||
|
@ -340,6 +354,7 @@ export default defineComponent({
|
||||||
"EwindowType::Image",
|
"EwindowType::Image",
|
||||||
"EwindowType::Rtsp",
|
"EwindowType::Rtsp",
|
||||||
"EwindowType::Clock",
|
"EwindowType::Clock",
|
||||||
|
"EwindowType::Weather",
|
||||||
]);
|
]);
|
||||||
|
|
||||||
let signal_source_options = [
|
let signal_source_options = [
|
||||||
|
@ -363,6 +378,10 @@ export default defineComponent({
|
||||||
label: $t.t("clock"),
|
label: $t.t("clock"),
|
||||||
value: "EwindowType::Clock",
|
value: "EwindowType::Clock",
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
label: $t.t("weather"),
|
||||||
|
value: "EwindowType::Weather",
|
||||||
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
const tree_nodes = computed({
|
const tree_nodes = computed({
|
||||||
|
@ -399,6 +418,9 @@ export default defineComponent({
|
||||||
case "EwindowType::Clock":
|
case "EwindowType::Clock":
|
||||||
media_url_label.value = $t.t("clock setting") + ":";
|
media_url_label.value = $t.t("clock setting") + ":";
|
||||||
break;
|
break;
|
||||||
|
case "EwindowType::Weather":
|
||||||
|
media_url_label.value = $t.t("weather setting") + ":";
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
media_url_label.value = $t.t("file path") + ":";
|
media_url_label.value = $t.t("file path") + ":";
|
||||||
break;
|
break;
|
||||||
|
@ -456,6 +478,7 @@ export default defineComponent({
|
||||||
tree_nodes,
|
tree_nodes,
|
||||||
playlist_dialog,
|
playlist_dialog,
|
||||||
clock_dialog,
|
clock_dialog,
|
||||||
|
weather_dialog,
|
||||||
file_manage_dialog,
|
file_manage_dialog,
|
||||||
showDialog(options: any) {
|
showDialog(options: any) {
|
||||||
if (options) {
|
if (options) {
|
||||||
|
@ -512,6 +535,17 @@ export default defineComponent({
|
||||||
item_data.media_url = decodeURI(result);
|
item_data.media_url = decodeURI(result);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
async showWeatherDialog() {
|
||||||
|
if (item_data.window_type != "EwindowType::Weather") {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
const result = await weather_dialog.value.showDialogAsync(
|
||||||
|
item_data.media_url
|
||||||
|
);
|
||||||
|
if (result) {
|
||||||
|
item_data.media_url = decodeURI(result);
|
||||||
|
}
|
||||||
|
},
|
||||||
async showPlaylistDialog(filter: string) {
|
async showPlaylistDialog(filter: string) {
|
||||||
if (item_data.window_type != "EwindowType::Multimedia") {
|
if (item_data.window_type != "EwindowType::Multimedia") {
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -0,0 +1,596 @@
|
||||||
|
<template>
|
||||||
|
<q-dialog
|
||||||
|
persistent
|
||||||
|
v-model="show_dialog"
|
||||||
|
@before-hide="resetData"
|
||||||
|
@keydown="
|
||||||
|
(evt) => {
|
||||||
|
if (!loading && evt.keyCode == 27) {
|
||||||
|
show_dialog = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
"
|
||||||
|
>
|
||||||
|
<q-card class="overflow-hidden" style="overflow-y: scroll; max-width: 60vw">
|
||||||
|
<q-form @submit="onSubmit">
|
||||||
|
<q-card-section class="q-ma-none q-pa-sm">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-auto text-h6">
|
||||||
|
{{ $t("weather") }}
|
||||||
|
</div>
|
||||||
|
<q-space />
|
||||||
|
<div>
|
||||||
|
<q-btn
|
||||||
|
:loading="loading"
|
||||||
|
flat
|
||||||
|
round
|
||||||
|
icon="close"
|
||||||
|
color="red"
|
||||||
|
v-close-popup
|
||||||
|
>
|
||||||
|
<q-tooltip>
|
||||||
|
{{ $t("close") }}
|
||||||
|
</q-tooltip>
|
||||||
|
</q-btn>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</q-card-section>
|
||||||
|
|
||||||
|
<q-separator />
|
||||||
|
|
||||||
|
<q-card-section style="max-height: 68vh; width: 55vw" class="scroll">
|
||||||
|
<q-list>
|
||||||
|
<q-item>
|
||||||
|
<q-item-section>
|
||||||
|
<q-checkbox
|
||||||
|
left-label
|
||||||
|
v-model="weather_entity.auto_location"
|
||||||
|
:label="$t('auto location')"
|
||||||
|
/>
|
||||||
|
</q-item-section>
|
||||||
|
|
||||||
|
<q-item-section>
|
||||||
|
<q-checkbox
|
||||||
|
left-label
|
||||||
|
v-model="weather_entity.background_transparent"
|
||||||
|
:label="$t('background transparent')"
|
||||||
|
/>
|
||||||
|
</q-item-section>
|
||||||
|
<q-item-section></q-item-section>
|
||||||
|
</q-item>
|
||||||
|
|
||||||
|
<q-item v-if="!weather_entity.auto_location">
|
||||||
|
<q-item-section avatar class="head_1">
|
||||||
|
{{ $t("location") }}
|
||||||
|
</q-item-section>
|
||||||
|
<q-item-section v-if="false">
|
||||||
|
<q-select
|
||||||
|
:label="$t('city_country')"
|
||||||
|
v-model="country"
|
||||||
|
:loading="loading"
|
||||||
|
:disable="loading"
|
||||||
|
:options="country_options"
|
||||||
|
emit-value
|
||||||
|
map-options
|
||||||
|
:rules="[(val) => !!val || 'Field is required']"
|
||||||
|
/>
|
||||||
|
</q-item-section>
|
||||||
|
<q-item-section>
|
||||||
|
<q-select
|
||||||
|
:label="$t('city_province')"
|
||||||
|
v-model="province"
|
||||||
|
:loading="loading"
|
||||||
|
:disable="loading"
|
||||||
|
:options="province_options"
|
||||||
|
@update:model-value="refresh_city_options"
|
||||||
|
emit-value
|
||||||
|
map-options
|
||||||
|
/>
|
||||||
|
</q-item-section>
|
||||||
|
<q-item-section>
|
||||||
|
<q-select
|
||||||
|
:label="$t('city_city')"
|
||||||
|
v-model="city"
|
||||||
|
:loading="loading"
|
||||||
|
:disable="loading"
|
||||||
|
:options="city_options"
|
||||||
|
@update:model-value="refresh_area_options"
|
||||||
|
emit-value
|
||||||
|
map-options
|
||||||
|
/>
|
||||||
|
</q-item-section>
|
||||||
|
<q-item-section>
|
||||||
|
<q-select
|
||||||
|
:label="$t('city_area')"
|
||||||
|
v-model="area"
|
||||||
|
:loading="loading"
|
||||||
|
:disable="loading"
|
||||||
|
:options="area_options"
|
||||||
|
@update:model-value="on_area_selected"
|
||||||
|
emit-value
|
||||||
|
map-options
|
||||||
|
/>
|
||||||
|
</q-item-section>
|
||||||
|
</q-item>
|
||||||
|
|
||||||
|
<q-item>
|
||||||
|
<q-item-section avatar class="head_1">
|
||||||
|
{{ $t("background color") }}
|
||||||
|
</q-item-section>
|
||||||
|
<q-item-section>
|
||||||
|
<q-input
|
||||||
|
:disable="weather_entity.background_transparent"
|
||||||
|
v-model="weather_entity.background_color"
|
||||||
|
:rules="['anyColor']"
|
||||||
|
>
|
||||||
|
<template v-slot:append>
|
||||||
|
<q-icon name="colorize" class="cursor-pointer">
|
||||||
|
<q-popup-proxy
|
||||||
|
cover
|
||||||
|
transition-show="scale"
|
||||||
|
transition-hide="scale"
|
||||||
|
>
|
||||||
|
<q-color v-model="weather_entity.background_color" />
|
||||||
|
</q-popup-proxy>
|
||||||
|
</q-icon>
|
||||||
|
</template>
|
||||||
|
</q-input>
|
||||||
|
</q-item-section>
|
||||||
|
</q-item>
|
||||||
|
|
||||||
|
<q-item v-if="false">
|
||||||
|
<q-item-section avatar class="head_1">
|
||||||
|
{{ $t("font color") }}
|
||||||
|
</q-item-section>
|
||||||
|
<q-item-section>
|
||||||
|
<q-input
|
||||||
|
v-model="weather_entity.text_color"
|
||||||
|
:rules="['anyColor']"
|
||||||
|
>
|
||||||
|
<template v-slot:append>
|
||||||
|
<q-icon name="colorize" class="cursor-pointer">
|
||||||
|
<q-popup-proxy
|
||||||
|
cover
|
||||||
|
transition-show="scale"
|
||||||
|
transition-hide="scale"
|
||||||
|
>
|
||||||
|
<q-color v-model="weather_entity.text_color" />
|
||||||
|
</q-popup-proxy>
|
||||||
|
</q-icon>
|
||||||
|
</template>
|
||||||
|
</q-input>
|
||||||
|
</q-item-section>
|
||||||
|
</q-item>
|
||||||
|
|
||||||
|
<q-item>
|
||||||
|
<q-item-section avatar class="head_1">
|
||||||
|
{{ $t("font size") }}
|
||||||
|
</q-item-section>
|
||||||
|
<q-item-section>
|
||||||
|
<q-input
|
||||||
|
v-model="weather_entity.font_size"
|
||||||
|
type="number"
|
||||||
|
lazy-rules
|
||||||
|
:rules="[
|
||||||
|
(val) =>
|
||||||
|
(val && val.toString().length > 0) ||
|
||||||
|
$t('Please type something'),
|
||||||
|
]"
|
||||||
|
/>
|
||||||
|
</q-item-section>
|
||||||
|
</q-item>
|
||||||
|
</q-list>
|
||||||
|
</q-card-section>
|
||||||
|
|
||||||
|
<q-separator />
|
||||||
|
<q-card-actions>
|
||||||
|
<q-space />
|
||||||
|
<q-btn
|
||||||
|
:loading="loading"
|
||||||
|
flat
|
||||||
|
:label="$t('close and reset')"
|
||||||
|
color="primary"
|
||||||
|
v-close-popup
|
||||||
|
/>
|
||||||
|
<q-btn
|
||||||
|
ref="accept"
|
||||||
|
flat
|
||||||
|
:label="$t('close and save')"
|
||||||
|
:loading="loading"
|
||||||
|
type="submit"
|
||||||
|
color="primary"
|
||||||
|
/>
|
||||||
|
</q-card-actions>
|
||||||
|
</q-form>
|
||||||
|
</q-card>
|
||||||
|
</q-dialog>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
.head_1 {
|
||||||
|
width: 15%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.head_2 {
|
||||||
|
width: 8%;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<script lang="ts">
|
||||||
|
import { defineComponent, ref, Ref, watch, computed, reactive } from "vue";
|
||||||
|
import { useStore } from "src/store";
|
||||||
|
import GlobalData from "src/common/GlobalData";
|
||||||
|
import { useQuasar, date as DateHelper } from "quasar";
|
||||||
|
import { useI18n } from "vue-i18n";
|
||||||
|
import WeatherWindowParamEntity from "src/entities/WeatherWindowParamEntity";
|
||||||
|
import { api } from "src/boot/axios";
|
||||||
|
|
||||||
|
export default defineComponent({
|
||||||
|
name: "ComponentWeatherSignalSourceDialog",
|
||||||
|
components: {},
|
||||||
|
|
||||||
|
setup() {
|
||||||
|
let $store = useStore();
|
||||||
|
let $q = useQuasar();
|
||||||
|
let $t = useI18n();
|
||||||
|
|
||||||
|
const weather_entity = ref(new WeatherWindowParamEntity());
|
||||||
|
|
||||||
|
let show_dialog = ref(false);
|
||||||
|
let loading = ref(false);
|
||||||
|
|
||||||
|
const country: Ref<string | null> = ref(null);
|
||||||
|
const country_options: Ref<any[]> = ref([]);
|
||||||
|
const province: Ref<string | null> = ref(null);
|
||||||
|
const province_options: Ref<any[]> = ref([]);
|
||||||
|
const city: Ref<string | null> = ref(null);
|
||||||
|
const city_options: Ref<any[]> = ref([]);
|
||||||
|
const area: Ref<string | null> = ref(null);
|
||||||
|
const area_options: Ref<any[]> = ref([]);
|
||||||
|
|
||||||
|
let all_city_data: any[] | null = null;
|
||||||
|
|
||||||
|
let get_all_city_data: any = null;
|
||||||
|
|
||||||
|
let refresh_city_options: any = null;
|
||||||
|
let refresh_area_options: any = null;
|
||||||
|
let on_area_selected: any = null;
|
||||||
|
|
||||||
|
const refresh_province_options = () => {
|
||||||
|
if (!country.value) {
|
||||||
|
if (country_options.value.length) {
|
||||||
|
country.value = country_options.value[0].value;
|
||||||
|
} else {
|
||||||
|
console.error(
|
||||||
|
"country is null and country_options is empty",
|
||||||
|
country.value,
|
||||||
|
country_options.value
|
||||||
|
);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!all_city_data) {
|
||||||
|
if (get_all_city_data && typeof get_all_city_data == "function") {
|
||||||
|
get_all_city_data();
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
const countrt_data = all_city_data.find(
|
||||||
|
(e) => e && e.country == country.value
|
||||||
|
);
|
||||||
|
if (countrt_data) {
|
||||||
|
if (Array.isArray(countrt_data.provinces)) {
|
||||||
|
province_options.value = [];
|
||||||
|
for (const _province of countrt_data.provinces) {
|
||||||
|
province_options.value.push({
|
||||||
|
label: _province.province,
|
||||||
|
data: _province,
|
||||||
|
value: _province.province,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
const find = province_options.value.find(
|
||||||
|
(e) => e && e.label == province.value
|
||||||
|
);
|
||||||
|
if (!find && province_options.value.length) {
|
||||||
|
province.value = province_options.value[0].value;
|
||||||
|
}
|
||||||
|
refresh_city_options();
|
||||||
|
} else {
|
||||||
|
console.error("countrt_data is not array", countrt_data);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
console.error(
|
||||||
|
"countrt_data is null!",
|
||||||
|
countrt_data,
|
||||||
|
all_city_data,
|
||||||
|
country.value
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
refresh_city_options = () => {
|
||||||
|
if (!province.value) {
|
||||||
|
if (province_options.value.length) {
|
||||||
|
province.value = province_options.value[0].value;
|
||||||
|
} else {
|
||||||
|
console.error(
|
||||||
|
"province is null and province_options is empty",
|
||||||
|
province.value,
|
||||||
|
province_options.value
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const province_data = province_options.value.find(
|
||||||
|
(e) => e && e.value == province.value
|
||||||
|
);
|
||||||
|
if (province_data) {
|
||||||
|
if (province_data.data && Array.isArray(province_data.data.citys)) {
|
||||||
|
city_options.value = [];
|
||||||
|
for (const _city of province_data.data.citys) {
|
||||||
|
city_options.value.push({
|
||||||
|
label: _city.city,
|
||||||
|
value: _city.city,
|
||||||
|
data: _city,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
const find = city_options.value.find(
|
||||||
|
(e) => e && e.label == city.value
|
||||||
|
);
|
||||||
|
if (!find && city_options.value.length) {
|
||||||
|
city.value = city_options.value[0].value;
|
||||||
|
}
|
||||||
|
refresh_area_options();
|
||||||
|
} else {
|
||||||
|
console.error("province_data is invalid!", province_data);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
console.error(
|
||||||
|
"can't find province_data",
|
||||||
|
province.value,
|
||||||
|
province_options.value
|
||||||
|
);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
refresh_area_options = () => {
|
||||||
|
if (!city.value) {
|
||||||
|
if (city_options.value.length) {
|
||||||
|
city.value = city_options.value[0].value;
|
||||||
|
} else {
|
||||||
|
console.error(
|
||||||
|
"city is null and city_options is empty",
|
||||||
|
city.value,
|
||||||
|
city_options.value
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const city_data = city_options.value.find(
|
||||||
|
(e) => e && e.value == city.value
|
||||||
|
);
|
||||||
|
|
||||||
|
if (city_data) {
|
||||||
|
if (city_data.data && Array.isArray(city_data.data.areas)) {
|
||||||
|
area_options.value = [];
|
||||||
|
for (const _area of city_data.data.areas) {
|
||||||
|
let area_value = _area.area;
|
||||||
|
if (_area.area == city.value) {
|
||||||
|
area_value = $t.t("city_city_area");
|
||||||
|
}
|
||||||
|
area_options.value.push({
|
||||||
|
label: area_value,
|
||||||
|
value: area_value,
|
||||||
|
data: _area,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
const find = area_options.value.find(
|
||||||
|
(e) => e && e.label == area.value
|
||||||
|
);
|
||||||
|
if (!find && area_options.value.length) {
|
||||||
|
area.value = area_options.value[0].value;
|
||||||
|
}
|
||||||
|
on_area_selected();
|
||||||
|
} else {
|
||||||
|
console.error("city_data is invalid!", city_data);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
console.error("can't find city_data", city.value, area_options.value);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
get_all_city_data = () => {
|
||||||
|
const global_data = GlobalData.getInstance().getCurrentClient();
|
||||||
|
if (global_data) {
|
||||||
|
global_data
|
||||||
|
.getCityList()
|
||||||
|
.then((resposne) => {
|
||||||
|
if (!resposne) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
const data = resposne.city_list;
|
||||||
|
if (Array.isArray(data)) {
|
||||||
|
all_city_data = data;
|
||||||
|
country_options.value = [];
|
||||||
|
for (const _country of all_city_data) {
|
||||||
|
country_options.value.push({
|
||||||
|
data: _country,
|
||||||
|
label: _country.country,
|
||||||
|
value: _country.country,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
console.error("data is not array!", data);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.catch((e) => {
|
||||||
|
console.error(e);
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
console.error(
|
||||||
|
"get_all_city_data failed, current client connection is null!"
|
||||||
|
);
|
||||||
|
setTimeout(() => {
|
||||||
|
if (get_all_city_data) {
|
||||||
|
get_all_city_data();
|
||||||
|
}
|
||||||
|
}, 500);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
on_area_selected = () => {
|
||||||
|
if (!area.value) {
|
||||||
|
if (area_options.value.length) {
|
||||||
|
area.value = area_options.value[0].value;
|
||||||
|
} else {
|
||||||
|
console.error(
|
||||||
|
"area is null and area_options is empty",
|
||||||
|
area.value,
|
||||||
|
area_options.value
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const area_data = area_options.value.find(
|
||||||
|
(e) => e && e.value == area.value
|
||||||
|
);
|
||||||
|
|
||||||
|
if (area_data) {
|
||||||
|
if (area_data && area_data.data && area_data.data.code) {
|
||||||
|
weather_entity.value.location_code = area_data.data.code;
|
||||||
|
return;
|
||||||
|
} else {
|
||||||
|
console.error("area_data is invalid!", area_data);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
console.error("can't find area_data", area.value, area_options.value);
|
||||||
|
}
|
||||||
|
area.value = null;
|
||||||
|
};
|
||||||
|
|
||||||
|
get_all_city_data();
|
||||||
|
|
||||||
|
let _resolove: any = null;
|
||||||
|
|
||||||
|
const initialize_properties = (json: string) => {
|
||||||
|
if (json) {
|
||||||
|
try {
|
||||||
|
const temp = JSON.parse(json);
|
||||||
|
for (const item of Object.keys(weather_entity.value)) {
|
||||||
|
if (typeof temp[item] != "undefined") {
|
||||||
|
(<any>weather_entity.value)[item] = temp[item];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch {}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
return {
|
||||||
|
show_dialog,
|
||||||
|
loading,
|
||||||
|
weather_entity,
|
||||||
|
country,
|
||||||
|
country_options,
|
||||||
|
province,
|
||||||
|
province_options,
|
||||||
|
city,
|
||||||
|
city_options,
|
||||||
|
area,
|
||||||
|
area_options,
|
||||||
|
|
||||||
|
refresh_province_options,
|
||||||
|
refresh_city_options,
|
||||||
|
refresh_area_options,
|
||||||
|
on_area_selected,
|
||||||
|
|
||||||
|
showDialogAsync(options: any) {
|
||||||
|
if (_resolove) {
|
||||||
|
_resolove();
|
||||||
|
_resolove = null;
|
||||||
|
}
|
||||||
|
show_dialog.value = true;
|
||||||
|
initialize_properties(options);
|
||||||
|
|
||||||
|
let find_flag = false;
|
||||||
|
if (Array.isArray(all_city_data)) {
|
||||||
|
if (weather_entity.value.location_code) {
|
||||||
|
for (const _country of all_city_data) {
|
||||||
|
if (find_flag) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (_country) {
|
||||||
|
for (const _province of _country.provinces) {
|
||||||
|
if (find_flag) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (_province) {
|
||||||
|
for (const _city of _province.citys) {
|
||||||
|
if (find_flag) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (_city) {
|
||||||
|
for (const _area of _city.areas) {
|
||||||
|
if (find_flag) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (
|
||||||
|
_area.code == weather_entity.value.location_code
|
||||||
|
) {
|
||||||
|
// 找到地区码对应的地区、城市、省、国家
|
||||||
|
country.value = _country.country;
|
||||||
|
province.value = _province.province;
|
||||||
|
city.value = _city.city;
|
||||||
|
area.value = _area.area;
|
||||||
|
find_flag = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!find_flag && country_options.value.length) {
|
||||||
|
country.value = country_options.value[0].value;
|
||||||
|
}
|
||||||
|
|
||||||
|
refresh_province_options();
|
||||||
|
|
||||||
|
return new Promise((resolove) => {
|
||||||
|
_resolove = resolove;
|
||||||
|
});
|
||||||
|
},
|
||||||
|
resetData() {
|
||||||
|
loading.value = false;
|
||||||
|
if (_resolove) {
|
||||||
|
_resolove();
|
||||||
|
_resolove = null;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
async onSubmit() {
|
||||||
|
loading.value = true;
|
||||||
|
try {
|
||||||
|
if (_resolove) {
|
||||||
|
try {
|
||||||
|
weather_entity.value.font_size = parseInt(
|
||||||
|
weather_entity.value.font_size.toString()
|
||||||
|
);
|
||||||
|
_resolove(JSON.stringify(weather_entity.value));
|
||||||
|
} catch {
|
||||||
|
_resolove();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
show_dialog.value = false;
|
||||||
|
} catch {}
|
||||||
|
loading.value = false;
|
||||||
|
},
|
||||||
|
};
|
||||||
|
},
|
||||||
|
});
|
||||||
|
</script>
|
|
@ -424,6 +424,10 @@ export namespace Protocol {
|
||||||
return Commands.PROTOCOL_PREFIX + "RpcSetHdmiInDecodeType";
|
return Commands.PROTOCOL_PREFIX + "RpcSetHdmiInDecodeType";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static get kRpcGetCityList() {
|
||||||
|
return Commands.PROTOCOL_PREFIX + "RpcGetCityList";
|
||||||
|
}
|
||||||
|
|
||||||
static _all_commands = new Set([
|
static _all_commands = new Set([
|
||||||
Commands.kUnKnowCommand,
|
Commands.kUnKnowCommand,
|
||||||
Commands.kSearchDevice,
|
Commands.kSearchDevice,
|
||||||
|
@ -529,6 +533,7 @@ export namespace Protocol {
|
||||||
Commands.kRpcGetTimingTasks,
|
Commands.kRpcGetTimingTasks,
|
||||||
Commands.kRpcGetSystemNetworkInfo,
|
Commands.kRpcGetSystemNetworkInfo,
|
||||||
Commands.kRpcSetHdmiInDecodeType,
|
Commands.kRpcSetHdmiInDecodeType,
|
||||||
|
Commands.kRpcGetCityList,
|
||||||
]);
|
]);
|
||||||
public static get AllCommands() {
|
public static get AllCommands() {
|
||||||
return this._all_commands;
|
return this._all_commands;
|
||||||
|
@ -559,7 +564,7 @@ export namespace Protocol {
|
||||||
}
|
}
|
||||||
|
|
||||||
export class NoneResponse extends PacketEntity {
|
export class NoneResponse extends PacketEntity {
|
||||||
timestamp = new Date().getMilliseconds();
|
timestamp = Date.now();
|
||||||
}
|
}
|
||||||
export class LoginRequest extends PacketEntity {
|
export class LoginRequest extends PacketEntity {
|
||||||
user_name = "";
|
user_name = "";
|
||||||
|
@ -584,8 +589,7 @@ export namespace Protocol {
|
||||||
}
|
}
|
||||||
|
|
||||||
export class GetSignalSourcesRequest extends PacketEntity {
|
export class GetSignalSourcesRequest extends PacketEntity {
|
||||||
timestamp = new Date().getMilliseconds();
|
timestamp = Date.now();
|
||||||
|
|
||||||
constructor(rpcid?: number) {
|
constructor(rpcid?: number) {
|
||||||
super();
|
super();
|
||||||
this.rpc_id = rpcid ?? 0;
|
this.rpc_id = rpcid ?? 0;
|
||||||
|
@ -604,7 +608,7 @@ export namespace Protocol {
|
||||||
}
|
}
|
||||||
|
|
||||||
export class GetModesRequestEntity extends PacketEntity {
|
export class GetModesRequestEntity extends PacketEntity {
|
||||||
timestamp = new Date().getMilliseconds();
|
timestamp = Date.now();
|
||||||
|
|
||||||
constructor(rpcid?: number) {
|
constructor(rpcid?: number) {
|
||||||
super();
|
super();
|
||||||
|
@ -624,7 +628,7 @@ export namespace Protocol {
|
||||||
}
|
}
|
||||||
|
|
||||||
export class GetPlansRequestEntity extends PacketEntity {
|
export class GetPlansRequestEntity extends PacketEntity {
|
||||||
timestamp = new Date().getMilliseconds();
|
timestamp = Date.now();
|
||||||
|
|
||||||
constructor(rpcid?: number) {
|
constructor(rpcid?: number) {
|
||||||
super();
|
super();
|
||||||
|
@ -644,7 +648,7 @@ export namespace Protocol {
|
||||||
}
|
}
|
||||||
|
|
||||||
export class GetApplicationConfigRequestEntity extends PacketEntity {
|
export class GetApplicationConfigRequestEntity extends PacketEntity {
|
||||||
timestamp: number = new Date().getMilliseconds();
|
timestamp = Date.now();
|
||||||
|
|
||||||
constructor(rpcid?: number) {
|
constructor(rpcid?: number) {
|
||||||
super();
|
super();
|
||||||
|
@ -663,7 +667,7 @@ export namespace Protocol {
|
||||||
}
|
}
|
||||||
|
|
||||||
export class GetWindowsRequestEntity extends PacketEntity {
|
export class GetWindowsRequestEntity extends PacketEntity {
|
||||||
timestamp: number = new Date().getMilliseconds();
|
timestamp = Date.now();
|
||||||
|
|
||||||
constructor(rpcid?: number) {
|
constructor(rpcid?: number) {
|
||||||
super();
|
super();
|
||||||
|
@ -1423,7 +1427,7 @@ export namespace Protocol {
|
||||||
}
|
}
|
||||||
|
|
||||||
export class GetCurrentRunningPlanRequestEntity extends Protocol.PacketEntity {
|
export class GetCurrentRunningPlanRequestEntity extends Protocol.PacketEntity {
|
||||||
timestamp: number = new Date().getMilliseconds();
|
timestamp = Date.now();
|
||||||
constructor(rcp_id?: number) {
|
constructor(rcp_id?: number) {
|
||||||
super();
|
super();
|
||||||
this.rpc_id = rcp_id ?? 0;
|
this.rpc_id = rcp_id ?? 0;
|
||||||
|
@ -1457,7 +1461,7 @@ export namespace Protocol {
|
||||||
}
|
}
|
||||||
|
|
||||||
export class StopCurrentRunningPlanRequestEntity extends Protocol.PacketEntity {
|
export class StopCurrentRunningPlanRequestEntity extends Protocol.PacketEntity {
|
||||||
timestamp = new Date().getMilliseconds();
|
timestamp = Date.now();
|
||||||
|
|
||||||
constructor() {
|
constructor() {
|
||||||
super();
|
super();
|
||||||
|
@ -1532,7 +1536,7 @@ export namespace Protocol {
|
||||||
}
|
}
|
||||||
|
|
||||||
export class GetSubtitleRequestEntity extends Protocol.PacketEntity {
|
export class GetSubtitleRequestEntity extends Protocol.PacketEntity {
|
||||||
timestamp: number = new Date().getMilliseconds();
|
timestamp = Date.now();
|
||||||
constructor(rcp_id?: number) {
|
constructor(rcp_id?: number) {
|
||||||
super();
|
super();
|
||||||
this.rpc_id = rcp_id ?? 0;
|
this.rpc_id = rcp_id ?? 0;
|
||||||
|
@ -1550,7 +1554,7 @@ export namespace Protocol {
|
||||||
}
|
}
|
||||||
|
|
||||||
export class GetRegisterInfoRequestEntity extends Protocol.PacketEntity {
|
export class GetRegisterInfoRequestEntity extends Protocol.PacketEntity {
|
||||||
timestamp: number = new Date().getMilliseconds();
|
timestamp = Date.now();
|
||||||
constructor(rcp_id?: number) {
|
constructor(rcp_id?: number) {
|
||||||
super();
|
super();
|
||||||
this.rpc_id = rcp_id ?? 0;
|
this.rpc_id = rcp_id ?? 0;
|
||||||
|
@ -1573,7 +1577,7 @@ export namespace Protocol {
|
||||||
}
|
}
|
||||||
|
|
||||||
export class RegisterDeviceRequestEntity extends Protocol.PacketEntity {
|
export class RegisterDeviceRequestEntity extends Protocol.PacketEntity {
|
||||||
timestamp: number = new Date().getMilliseconds();
|
timestamp = Date.now();
|
||||||
register_code: string = "";
|
register_code: string = "";
|
||||||
secret_key: string = "";
|
secret_key: string = "";
|
||||||
active_code: string = "";
|
active_code: string = "";
|
||||||
|
@ -1592,7 +1596,7 @@ export namespace Protocol {
|
||||||
super();
|
super();
|
||||||
this.rpc_id = rcp_id ?? 0;
|
this.rpc_id = rcp_id ?? 0;
|
||||||
this.command = Protocol.Commands.kRpcRegisterDevice;
|
this.command = Protocol.Commands.kRpcRegisterDevice;
|
||||||
this.timestamp = new Date().getMilliseconds();
|
this.timestamp = Date.now();
|
||||||
this.register_code = register_code;
|
this.register_code = register_code;
|
||||||
|
|
||||||
this.active_code = active_code;
|
this.active_code = active_code;
|
||||||
|
@ -1638,7 +1642,7 @@ export namespace Protocol {
|
||||||
}
|
}
|
||||||
|
|
||||||
export class GetScreenSizeRequestEntity extends Protocol.PacketEntity {
|
export class GetScreenSizeRequestEntity extends Protocol.PacketEntity {
|
||||||
timestamp = new Date().getMilliseconds();
|
timestamp = Date.now();
|
||||||
|
|
||||||
constructor(rcp_id?: number) {
|
constructor(rcp_id?: number) {
|
||||||
super();
|
super();
|
||||||
|
@ -1680,7 +1684,7 @@ export namespace Protocol {
|
||||||
}
|
}
|
||||||
|
|
||||||
export class SetSystemNetworkResponseEntity extends Protocol.PacketEntity {
|
export class SetSystemNetworkResponseEntity extends Protocol.PacketEntity {
|
||||||
timestamp = new Date().getMilliseconds();
|
timestamp = Date.now();
|
||||||
|
|
||||||
constructor() {
|
constructor() {
|
||||||
super();
|
super();
|
||||||
|
@ -1730,7 +1734,7 @@ export namespace Protocol {
|
||||||
}
|
}
|
||||||
|
|
||||||
export class SetSystemOtherResponseEntity extends Protocol.PacketEntity {
|
export class SetSystemOtherResponseEntity extends Protocol.PacketEntity {
|
||||||
timestamp = new Date().getMilliseconds();
|
timestamp = Date.now();
|
||||||
|
|
||||||
constructor() {
|
constructor() {
|
||||||
super();
|
super();
|
||||||
|
@ -1739,7 +1743,7 @@ export namespace Protocol {
|
||||||
}
|
}
|
||||||
|
|
||||||
export class GetSupportResolutionsRequestEntity extends Protocol.PacketEntity {
|
export class GetSupportResolutionsRequestEntity extends Protocol.PacketEntity {
|
||||||
timestamp = new Date().getMilliseconds();
|
timestamp = Date.now();
|
||||||
|
|
||||||
constructor(rcp_id?: number) {
|
constructor(rcp_id?: number) {
|
||||||
super();
|
super();
|
||||||
|
@ -1767,7 +1771,7 @@ export namespace Protocol {
|
||||||
}
|
}
|
||||||
|
|
||||||
export class GetOutputBoardSettingRequestEntity extends Protocol.PacketEntity {
|
export class GetOutputBoardSettingRequestEntity extends Protocol.PacketEntity {
|
||||||
timestamp = new Date().getMilliseconds();
|
timestamp = Date.now();
|
||||||
|
|
||||||
constructor(rcp_id?: number) {
|
constructor(rcp_id?: number) {
|
||||||
super();
|
super();
|
||||||
|
@ -1812,7 +1816,7 @@ export namespace Protocol {
|
||||||
}
|
}
|
||||||
|
|
||||||
export class SetOutputBoardSettingResponseEntity extends Protocol.PacketEntity {
|
export class SetOutputBoardSettingResponseEntity extends Protocol.PacketEntity {
|
||||||
timestamp = new Date().getMilliseconds();
|
timestamp = Date.now();
|
||||||
|
|
||||||
constructor() {
|
constructor() {
|
||||||
super();
|
super();
|
||||||
|
@ -1821,7 +1825,7 @@ export namespace Protocol {
|
||||||
}
|
}
|
||||||
|
|
||||||
export class RestoreOutputBoardRequestEntity extends Protocol.PacketEntity {
|
export class RestoreOutputBoardRequestEntity extends Protocol.PacketEntity {
|
||||||
timestamp = new Date().getMilliseconds();
|
timestamp = Date.now();
|
||||||
|
|
||||||
constructor(rcp_id?: number) {
|
constructor(rcp_id?: number) {
|
||||||
super();
|
super();
|
||||||
|
@ -1831,7 +1835,7 @@ export namespace Protocol {
|
||||||
}
|
}
|
||||||
|
|
||||||
export class RestoreOutputBoardResponseEntity extends Protocol.PacketEntity {
|
export class RestoreOutputBoardResponseEntity extends Protocol.PacketEntity {
|
||||||
timestamp = new Date().getMilliseconds();
|
timestamp = Date.now();
|
||||||
|
|
||||||
constructor() {
|
constructor() {
|
||||||
super();
|
super();
|
||||||
|
@ -1919,7 +1923,7 @@ export namespace Protocol {
|
||||||
}
|
}
|
||||||
|
|
||||||
export class GetBuildInfoRequestEntity extends Protocol.PacketEntity {
|
export class GetBuildInfoRequestEntity extends Protocol.PacketEntity {
|
||||||
timestamp = new Date().getMilliseconds();
|
timestamp = Date.now();
|
||||||
|
|
||||||
constructor(rcp_id?: number) {
|
constructor(rcp_id?: number) {
|
||||||
super();
|
super();
|
||||||
|
@ -2058,7 +2062,7 @@ export namespace Protocol {
|
||||||
}
|
}
|
||||||
|
|
||||||
export class GetSystemTimesRequestEntity extends PacketEntity {
|
export class GetSystemTimesRequestEntity extends PacketEntity {
|
||||||
timestamp = new Date().getMilliseconds();
|
timestamp = Date.now();
|
||||||
|
|
||||||
constructor(rpcid?: number) {
|
constructor(rpcid?: number) {
|
||||||
super();
|
super();
|
||||||
|
@ -2081,7 +2085,7 @@ export namespace Protocol {
|
||||||
}
|
}
|
||||||
|
|
||||||
export class GetUsbDevicesRequestEntity extends PacketEntity {
|
export class GetUsbDevicesRequestEntity extends PacketEntity {
|
||||||
timestamp = new Date().getMilliseconds();
|
timestamp = Date.now();
|
||||||
|
|
||||||
constructor(rpcid?: number) {
|
constructor(rpcid?: number) {
|
||||||
super();
|
super();
|
||||||
|
@ -2100,7 +2104,7 @@ export namespace Protocol {
|
||||||
}
|
}
|
||||||
|
|
||||||
export class GetPollingsRequestEntity extends PacketEntity {
|
export class GetPollingsRequestEntity extends PacketEntity {
|
||||||
timestamp = new Date().getMilliseconds();
|
timestamp = Date.now();
|
||||||
|
|
||||||
constructor(rpcid?: number) {
|
constructor(rpcid?: number) {
|
||||||
super();
|
super();
|
||||||
|
@ -2144,7 +2148,7 @@ export namespace Protocol {
|
||||||
}
|
}
|
||||||
|
|
||||||
export class GetEdgeBlendingInfoRequestEntity extends PacketEntity {
|
export class GetEdgeBlendingInfoRequestEntity extends PacketEntity {
|
||||||
timestamp = new Date().getMilliseconds();
|
timestamp = Date.now();
|
||||||
|
|
||||||
constructor(rpcid?: number) {
|
constructor(rpcid?: number) {
|
||||||
super();
|
super();
|
||||||
|
@ -2696,4 +2700,23 @@ export namespace Protocol {
|
||||||
success = false;
|
success = false;
|
||||||
note = "";
|
note = "";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export class GetCityListRequestEntity extends PacketEntity {
|
||||||
|
constructor(rpc_id = 0) {
|
||||||
|
super();
|
||||||
|
super.command = Commands.kRpcGetCityList;
|
||||||
|
super.flag = PacketEntity.FLAG_REQUEST;
|
||||||
|
super.rpc_id = rpc_id;
|
||||||
|
}
|
||||||
|
timestamp = Date.now();
|
||||||
|
}
|
||||||
|
|
||||||
|
export class GetCityListResponseEntity extends PacketEntity {
|
||||||
|
constructor() {
|
||||||
|
super();
|
||||||
|
super.flag = PacketEntity.FLAG_RESPONSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
city_list = [];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,8 @@
|
||||||
|
export default class WeatherWindowParamEntity {
|
||||||
|
auto_location = true;
|
||||||
|
location_code = "101010100";
|
||||||
|
background_color = "#478DD2";
|
||||||
|
text_color = "#FFFFFF";
|
||||||
|
font_size = 25;
|
||||||
|
background_transparent = false;
|
||||||
|
}
|
|
@ -535,4 +535,14 @@ export default {
|
||||||
"only normal clock support time hiding": "只有普通时钟支持时间隐藏",
|
"only normal clock support time hiding": "只有普通时钟支持时间隐藏",
|
||||||
"only normal clock support multiple lines": "只有普通时钟支持换行",
|
"only normal clock support multiple lines": "只有普通时钟支持换行",
|
||||||
"only normal clock support": "只有普通时钟支持",
|
"only normal clock support": "只有普通时钟支持",
|
||||||
|
weather: "天气",
|
||||||
|
"weather setting": "天气设置",
|
||||||
|
"dbclick config weather": "双击配置天气",
|
||||||
|
"auto location": "自动获取位置",
|
||||||
|
city_country: "国家",
|
||||||
|
city_province: "省份",
|
||||||
|
city_city: "市",
|
||||||
|
city_area: "区",
|
||||||
|
location: "位置",
|
||||||
|
city_city_area: "市区",
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue