some fix
Some checks are pending
Test / build (lts/*, ubuntu-latest) (push) Waiting to run
Test / build (lts/*, windows-latest) (push) Waiting to run

This commit is contained in:
Dustella 2025-02-21 00:53:31 +08:00
parent 1e27f4ab9c
commit 94746d9a85
Signed by: Dustella
GPG Key ID: 35AA0AA3DC402D5C
18 changed files with 201 additions and 93 deletions

View File

@ -13,7 +13,7 @@ const selectedDateType = ref('month')
const selectedStation = ref('武汉左岭镇站')
const selectedYear = ref('2017')
const selectedWindType = ref('uwind')
const selectedH = ref(94000)
const selectedH = ref(94)
const selectedDate = ref('20170316')
const selectedMonth = ref('1')
@ -42,7 +42,7 @@ const queryUrl = computed(() => {
query.set('year', year)
query.set('model_name', mode)
query.set('wind_type', windType)
query.set('H', selectedH.value.toString())
query.set('H', (selectedH.value * 1000).toString())
query.set('mode', selectedDateType.value)
if (props.isDay) {
const queryDay = `${selectedDate.value.slice(0, 4)}-${selectedDate.value.slice(4, 6)}-${selectedDate.value.slice(6, 8)}`
@ -99,7 +99,7 @@ watch(selectedYear, (newV) => {
<div>
<div flex="~ col gap-3" py-3>
<div v-if="selectedWave === '行星波'">
<Label>行星波类型</Label>
<Label>行星波周期</Label>
<Tabs v-model="selectedMode" default-value="2日行星波">
<TabsList class="grid grid-cols-4 w-full">
<TabsTrigger v-for="m in modes" :key="m" :value="m">
@ -122,7 +122,7 @@ watch(selectedYear, (newV) => {
<div v-if="!props.isDay">
<Label for="H">日期类型</Label>
<Tabs id="date_type" v-model="selectedDateType" default-value="month">
<TabsList class="grid grid-cols-3 w-full">
<TabsList class="grid grid-cols-2 w-full">
<!-- <TabsTrigger value="day">
</TabsTrigger> -->
@ -149,12 +149,15 @@ watch(selectedYear, (newV) => {
</SelectGroup>
</SelectContent>
</Select>
<Label>高度</Label>
<Label>高度km</Label>
<NumberField
id="start"
v-model:model-value="selectedH" :format-options="{
useGrouping: false,
}" :default-value="94000"
}" :default-value="94"
:step="2"
:max="110"
:min="70"
>
<NumberFieldContent>
<NumberFieldDecrement />

View File

@ -43,7 +43,7 @@ onMounted(async () => {
<template>
<DenseFramework :image-query="urll">
<div>
<div flex="~ row items-center gap-3" py-3>
<div flex="~ col items-stretch gap-3" py-3>
<Label>纬度带</Label>
<Select v-model="selected.lat_range">
<SelectTrigger>

View File

@ -31,8 +31,11 @@ interface UseAPIOnlineOptions {
}
export function useAPIOnline(options: UseAPIOnlineOptions = {}) {
// check current protocal, if is https, use wss, if is http, use ws
const wsProtocal = API_BASE_URL.startsWith('https') ? 'wss' : 'ws'
const {
url = `ws://${API_BASE_URL.replace('https://', '').replace('http://', '')}/ping/ws`,
url = `${wsProtocal}://${API_BASE_URL.replace('https://', '').replace('http://', '')}/ping/ws`,
heartbeatInterval = 30000,
reconnectDelay = 5000,
onConnected,

View File

@ -3,7 +3,7 @@ meta:
title: 探空气球-重力波单次
description: 探空气球-重力波单次
group: 探空气球
item_name: 重力波单次
item_name: 重力波提取
</route>
<script setup lang="ts">

View File

@ -11,7 +11,7 @@ import { API_BASE_URL } from '~/CONSTANT'
/**
if mode == "布伦特-维萨拉频率分布":
await run_sync(p.plot_heatmap_tempNz)()
elif mode == "位温分布":
elif mode == "不同高度下的逐日统计分析":
await run_sync(p.plot_heatmap_tempPtz)()
elif mode == "每月浮力频率变化趋势":
await run_sync(p.plot_floatage_trend)()
@ -19,7 +19,7 @@ import { API_BASE_URL } from '~/CONSTANT'
await run_sync(p.plot_monthly_energy)()
*/
const MODES = [
'位温分布',
'不同高度下的逐日统计分析',
'每月浮力频率变化趋势',
'每月平均重力势能的折线图',
'布伦特-维萨拉频率分布',
@ -28,7 +28,7 @@ const MODES = [
const selected = reactive({
year: '2008',
// begin_day
mode: '位温分布',
mode: '不同高度下的逐日统计分析',
})
const queryUrl = computed(() => {
const q = new URLSearchParams()

View File

@ -0,0 +1,90 @@
<route lang="json">
{"meta":{
"title":"COSMIC",
"description":"行星波统计",
"group":"COSMIC",
"item_name":"行星波统计"
}}
</route>
<script setup lang="ts">
import DenseFramework from '~/components/DenseFramework.vue'
import { API_BASE_URL } from '~/CONSTANT'
const selectedT = ref<'5' | '10' | '16'>('5')
const selectedH = ref(90)
const selectedRange = ref('-30')
const selectedK = ref(0)
const ranges = ['-30', '-60', '30', '60']
const fetchUrl = computed(() => {
const query = new URLSearchParams()
query.set('T', selectedT.value)
query.set('H', selectedH.value.toString())
query.set('lat_range', selectedRange.value)
query.set('k', selectedK.value.toString())
return `${API_BASE_URL}/cosmic/render/planet_wave/daily?${query}`
})
</script>
<template>
<DenseFramework :image-query="fetchUrl">
<Label for="T_range">行星波周期</Label>
<Tabs id="T_range" v-model="selectedT" default-value="5">
<TabsList class="grid grid-cols-3 w-full">
<TabsTrigger value="5">
5
</TabsTrigger>
<TabsTrigger value="10">
10
</TabsTrigger>
<TabsTrigger value="16">
16
</TabsTrigger>
</TabsList>
</Tabs>
<!-- TODO: not implemented -->
<Label>高度km</Label>
<NumberField
id="start"
v-model:model-value="selectedH" :format-options="{
useGrouping: false,
}" :default-value="94"
:step="10"
:max="110"
:min="70"
>
<NumberFieldContent>
<NumberFieldDecrement />
<NumberFieldInput />
<NumberFieldIncrement />
</NumberFieldContent>
</NumberField>
<Label>纬度带</Label>
<Select v-model="selectedRange">
<SelectTrigger>
<SelectValue placeholder="选择纬度带" />
</SelectTrigger>
<SelectContent>
<SelectGroup>
<SelectLabel>纬度带</SelectLabel>
<SelectItem v-for="range in ranges" :key="range" :value="range">
{{ range }}
</SelectItem>
</SelectGroup>
</SelectContent>
</Select>
<Label>波数 k</Label>
<NumberField
v-model="selectedK"
:default-value="0"
:max="4" :min="-4" :step="1"
>
<NumberFieldContent>
<NumberFieldIncrement />
<NumberFieldInput />
<NumberFieldDecrement />
</NumberFieldContent>
</NumberField>
</DenseFramework>
</template>

View File

@ -1,40 +0,0 @@
<route lang="json">
{"meta":{
"title":"COSMIC",
"description":"行星波统计",
"group":"COSMIC",
"item_name":"行星波统计"
}}
</route>
<script setup lang="ts">
import DenseFramework from '~/components/DenseFramework.vue'
import { API_BASE_URL } from '~/CONSTANT'
const selectedT = ref<'5' | '10' | '16'>('5')
const fetchUrl = computed(() => {
const query = new URLSearchParams()
query.set('T_', selectedT.value)
return `${API_BASE_URL}/cosmic/render/planet_wave/daily?${query}`
})
</script>
<template>
<DenseFramework :image-query="fetchUrl">
<Label for="T_range">行星波周期</Label>
<Tabs id="T_range" v-model="selectedT" default-value="5">
<TabsList class="grid grid-cols-3 w-full">
<TabsTrigger value="5">
5
</TabsTrigger>
<TabsTrigger value="10">
10
</TabsTrigger>
<TabsTrigger value="16">
16
</TabsTrigger>
</TabsList>
</Tabs>
</DenseFramework>
</template>

View File

@ -15,8 +15,17 @@ import { API_BASE_URL } from '~/CONSTANT'
const selected = reactive({
year: '2018',
T: '16',
k: 0,
H: 90,
range: '60',
})
const ranges = [
'-20',
'30',
'60',
]
const queryUrl = computed(() => {
const q = new URLSearchParams()
q.set('year', selected.year)
@ -41,22 +50,64 @@ const queryUrl = computed(() => {
</SelectGroup>
</SelectContent>
</Select>
<Label>时间窗口大小</Label>
<Label>行星波周期</Label>
<!-- can be 510,16 -->
<!-- use Tabs -->
<Tabs v-model="selected.T" default-value="16">
<TabsList class="grid grid-cols-3 w-full">
<TabsTrigger value="5">
5
5
</TabsTrigger>
<TabsTrigger value="10">
10
10
</TabsTrigger>
<TabsTrigger value="16">
16
16
</TabsTrigger>
</TabsList>
</Tabs>
<Label>高度km</Label>
<NumberField
id="start"
v-model:model-value="selected.H" :format-options="{
useGrouping: false,
}" :default-value="94"
:step="20"
:max="110"
:min="70"
>
<NumberFieldContent>
<NumberFieldDecrement />
<NumberFieldInput />
<NumberFieldIncrement />
</NumberFieldContent>
</NumberField>
<Label>纬度带</Label>
<Select v-model="selected.range">
<SelectTrigger>
<SelectValue placeholder="选择纬度带" />
</SelectTrigger>
<SelectContent>
<SelectGroup>
<SelectLabel>纬度带</SelectLabel>
<SelectItem v-for="range in ranges" :key="range" :value="range">
{{ range }}
</SelectItem>
</SelectGroup>
</SelectContent>
</Select>
<Label>波数 k</Label>
<NumberField
v-model="selected.k"
:default-value="0"
:max="4" :min="-4" :step="1"
>
<NumberFieldContent>
<NumberFieldIncrement />
<NumberFieldInput />
<NumberFieldDecrement />
</NumberFieldContent>
</NumberField>
</DenseFramework>
</template>

View File

@ -76,17 +76,21 @@ onMounted(async () => {
</SelectGroup>
</SelectContent>
</Select>
<Label>波数 k</Label>
<NumberField
v-model="selectedK"
:max="4" :min="-4" :step="1"
>
<NumberFieldContent>
<NumberFieldIncrement />
<NumberFieldInput />
<NumberFieldDecrement />
</NumberFieldContent>
</NumberField>
<Label>行星波周期</Label>
<Tabs v-model:model-value="selectedT" default-value="15">
<TabsList class="grid grid-cols-3 w-full">
<TabsTrigger value="5">
5
</TabsTrigger>
<TabsTrigger value="10">
10
</TabsTrigger>
<TabsTrigger value="16">
16
</TabsTrigger>
</TabsList>
</Tabs>
<Label>高度</Label>
<Select v-model="selectedHeight">
<SelectTrigger>
@ -115,20 +119,17 @@ onMounted(async () => {
</SelectGroup>
</SelectContent>
</Select>
<Label>滑动窗口 T</Label>
<Tabs v-model:model-value="selectedT" default-value="15">
<TabsList class="grid grid-cols-3 w-full">
<TabsTrigger value="5">
5
</TabsTrigger>
<TabsTrigger value="10">
10
</TabsTrigger>
<TabsTrigger value="16">
16
</TabsTrigger>
</TabsList>
</Tabs>
<Label>波数 k</Label>
<NumberField
v-model="selectedK"
:max="4" :min="-4" :step="1"
>
<NumberFieldContent>
<NumberFieldIncrement />
<NumberFieldInput />
<NumberFieldDecrement />
</NumberFieldContent>
</NumberField>
</div>
</DenseFramework>
</template>

24
typed-router.d.ts vendored
View File

@ -21,21 +21,21 @@ declare module 'vue-router/auto-routes' {
'/': RouteRecordInfo<'/', '/', Record<never, never>, Record<never, never>>,
'/[...all]': RouteRecordInfo<'/[...all]', '/:all(.*)', { all: ParamValue<true> }, { all: ParamValue<false> }>,
'/auth': RouteRecordInfo<'/auth', '/auth', Record<never, never>, Record<never, never>>,
'/balloon/gravity_wave/single': RouteRecordInfo<'/balloon/gravity_wave/single', '/balloon/gravity_wave/single', Record<never, never>, Record<never, never>>,
'/balloon/gravity_wave/year': RouteRecordInfo<'/balloon/gravity_wave/year', '/balloon/gravity_wave/year', Record<never, never>, Record<never, never>>,
'/cosmic/gravity_wave/multiday': RouteRecordInfo<'/cosmic/gravity_wave/multiday', '/cosmic/gravity_wave/multiday', Record<never, never>, Record<never, never>>,
'/cosmic/gravity_wave/perday': RouteRecordInfo<'/cosmic/gravity_wave/perday', '/cosmic/gravity_wave/perday', Record<never, never>, Record<never, never>>,
'/cosmic/planet_wave/daily': RouteRecordInfo<'/cosmic/planet_wave/daily', '/cosmic/planet_wave/daily', Record<never, never>, Record<never, never>>,
'/balloon/gravity_wave/0-perday': RouteRecordInfo<'/balloon/gravity_wave/0-perday', '/balloon/gravity_wave/0-perday', Record<never, never>, Record<never, never>>,
'/balloon/gravity_wave/1-year': RouteRecordInfo<'/balloon/gravity_wave/1-year', '/balloon/gravity_wave/1-year', Record<never, never>, Record<never, never>>,
'/cosmic/gravity_wave/0-perday': RouteRecordInfo<'/cosmic/gravity_wave/0-perday', '/cosmic/gravity_wave/0-perday', Record<never, never>, Record<never, never>>,
'/cosmic/gravity_wave/1-multiday': RouteRecordInfo<'/cosmic/gravity_wave/1-multiday', '/cosmic/gravity_wave/1-multiday', Record<never, never>, Record<never, never>>,
'/cosmic/planet_wave/0-daily': RouteRecordInfo<'/cosmic/planet_wave/0-daily', '/cosmic/planet_wave/0-daily', Record<never, never>, Record<never, never>>,
'/debug': RouteRecordInfo<'/debug', '/debug', Record<never, never>, Record<never, never>>,
'/radar/planet_wave/single': RouteRecordInfo<'/radar/planet_wave/single', '/radar/planet_wave/single', Record<never, never>, Record<never, never>>,
'/radar/planet_wave/stats': RouteRecordInfo<'/radar/planet_wave/stats', '/radar/planet_wave/stats', Record<never, never>, Record<never, never>>,
'/radar/tidal_wave/single': RouteRecordInfo<'/radar/tidal_wave/single', '/radar/tidal_wave/single', Record<never, never>, Record<never, never>>,
'/radar/tidal_wave/stats': RouteRecordInfo<'/radar/tidal_wave/stats', '/radar/tidal_wave/stats', Record<never, never>, Record<never, never>>,
'/radar/planet_wave/0-single': RouteRecordInfo<'/radar/planet_wave/0-single', '/radar/planet_wave/0-single', Record<never, never>, Record<never, never>>,
'/radar/planet_wave/1-stats': RouteRecordInfo<'/radar/planet_wave/1-stats', '/radar/planet_wave/1-stats', Record<never, never>, Record<never, never>>,
'/radar/tidal_wave/0-single': RouteRecordInfo<'/radar/tidal_wave/0-single', '/radar/tidal_wave/0-single', Record<never, never>, Record<never, never>>,
'/radar/tidal_wave/1-stats': RouteRecordInfo<'/radar/tidal_wave/1-stats', '/radar/tidal_wave/1-stats', Record<never, never>, Record<never, never>>,
'/radar/v1': RouteRecordInfo<'/radar/v1', '/radar/v1', Record<never, never>, Record<never, never>>,
'/radar/v2': RouteRecordInfo<'/radar/v2', '/radar/v2', Record<never, never>, Record<never, never>>,
'/saber/gravity_wave/monthly': RouteRecordInfo<'/saber/gravity_wave/monthly', '/saber/gravity_wave/monthly', Record<never, never>, Record<never, never>>,
'/saber/gravity_wave/perday': RouteRecordInfo<'/saber/gravity_wave/perday', '/saber/gravity_wave/perday', Record<never, never>, Record<never, never>>,
'/saber/planet_wave/monthly': RouteRecordInfo<'/saber/planet_wave/monthly', '/saber/planet_wave/monthly', Record<never, never>, Record<never, never>>,
'/saber/gravity_wave/0-perday': RouteRecordInfo<'/saber/gravity_wave/0-perday', '/saber/gravity_wave/0-perday', Record<never, never>, Record<never, never>>,
'/saber/gravity_wave/1-monthly': RouteRecordInfo<'/saber/gravity_wave/1-monthly', '/saber/gravity_wave/1-monthly', Record<never, never>, Record<never, never>>,
'/saber/planet_wave/1-monthly': RouteRecordInfo<'/saber/planet_wave/1-monthly', '/saber/planet_wave/1-monthly', Record<never, never>, Record<never, never>>,
'/tidi/gravity_wave/monthly': RouteRecordInfo<'/tidi/gravity_wave/monthly', '/tidi/gravity_wave/monthly', Record<never, never>, Record<never, never>>,
'/tidi/planet_wave/daily': RouteRecordInfo<'/tidi/planet_wave/daily', '/tidi/planet_wave/daily', Record<never, never>, Record<never, never>>,
}