-
diff --git a/src/CONSTANT.ts b/src/CONSTANT.ts
index a901088..1a6338c 100644
--- a/src/CONSTANT.ts
+++ b/src/CONSTANT.ts
@@ -1 +1 @@
-export const API_BASE_URL = 'http://localhost:5000'
+export const API_BASE_URL = 'https://gca-api.dustella.net:8443'
diff --git a/src/components/Image.vue b/src/components/Image.vue
new file mode 100644
index 0000000..f613eee
--- /dev/null
+++ b/src/components/Image.vue
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
+ 下载
+
+
+
+
+
+
diff --git a/src/components/Loading.vue b/src/components/Loading.vue
new file mode 100644
index 0000000..7131c3e
--- /dev/null
+++ b/src/components/Loading.vue
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
diff --git a/src/components/NavigationMenuListItem.vue b/src/components/NavigationMenuListItem.vue
new file mode 100644
index 0000000..cd0466a
--- /dev/null
+++ b/src/components/NavigationMenuListItem.vue
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+ {{ props.title }}
+
+
+
+
+
+
+
+
diff --git a/src/components/TestHeader.vue b/src/components/TestHeader.vue
new file mode 100644
index 0000000..69cb0d7
--- /dev/null
+++ b/src/components/TestHeader.vue
@@ -0,0 +1,150 @@
+
+
+
+
+
+
+
+ Learn
+
+
+
+
+
+
+
+
+
+ Overview
+
+
+
+
+
+ Build high-quality, accessible design systems and web apps.
+
+
+ A quick tutorial to get you up and running with Radix Primitives.
+
+
+ Unstyled and compatible with any styling solution.
+
+
+ Use CSS keyframes or any animation library of your choice.
+
+
+ Tested in a range of browsers and assistive technologies.
+
+
+ Radix Primitives releases and their changelogs.
+
+
+
+
+
+
+
+ Github
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/TheHeader.vue b/src/components/TheHeader.vue
index 98539ca..fc21180 100644
--- a/src/components/TheHeader.vue
+++ b/src/components/TheHeader.vue
@@ -9,131 +9,70 @@ import {
navigationMenuTriggerStyle,
} from './ui/navigation-menu'
-/**
- * comboType = [
- "探空气球",
- "流星雷达",
- "Saber",
- "TIDI",
- "COSMIC",
- ]
-
- comboMode = [
- ["重力波单次", "重力波统计"],
- ["重力波月统计", "潮汐波单次", "潮汐波月统计"],
- ["行星波月统计", "重力波单次", "重力波月统计"],
- ["行星波月统计"],
- ["行星波月统计"],
- ]
- */
-const components: { title: string, href: string, description: string }[] = [
- {
- title: '探空气球',
- href: '/ballon',
- description:
- '探空气球',
- },
- {
- title: 'Hover Card',
- href: '/docs/components/hover-card',
- description:
- 'For sighted users to preview content available behind a link.',
- },
- {
- title: 'Progress',
- href: '/docs/components/progress',
- description:
- 'Displays an indicator showing the completion progress of a task, typically displayed as a progress bar.',
- },
- {
- title: 'Scroll-area',
- href: '/docs/components/scroll-area',
- description: 'Visually or semantically separates content.',
- },
- {
- title: 'Tabs',
- href: '/docs/components/tabs',
- description:
- 'A set of layered sections of content—known as tab panels—that are displayed one at a time.',
- },
- {
- title: 'Tooltip',
- href: '/docs/components/tooltip',
- description:
- 'A popup that displays information related to an element when the element receives keyboard focus or the mouse hovers over it.',
- },
-]
+const header_data: Record
= {
+ 探空气球: [{
+ title: '重力波单次',
+ href: '/balloon/single',
+ }, {
+ title: '重力波统计',
+ href: '/balloon/year',
+ }],
+ 流星雷达: [{
+ title: '潮汐波强度',
+ href: '/radar/v1',
+ }, {
+ title: '潮汐波时空变化',
+ href: '/radar/v2',
+ }],
+ Saber: [
+ {
+ title: '波动拟合图',
+ href: '/saber/plot_wave_fitting',
+ },
+ {
+ title: '日数据傅里叶变换分析',
+ href: '/saber/day_fft_ifft_plot',
+ },
+ {
+ title: '日周期波动能量分析',
+ href: '/saber/day_cycle_power_wave_plot',
+ },
+ {
+ // month_power_wave_plot
+ title: ' 月度波动能量分析',
+ href: '/saber/month_power_wave_plot',
+ },
+ ],
+}
-
+
主页
-
- 探空气球
+
+ {{ headers }}
-
-
- Components
-
-
-
-
-
-
- Documentation
-
-
diff --git a/src/components/ui/button/Button.vue b/src/components/ui/button/Button.vue
new file mode 100644
index 0000000..d30aeb5
--- /dev/null
+++ b/src/components/ui/button/Button.vue
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
diff --git a/src/components/ui/button/index.ts b/src/components/ui/button/index.ts
new file mode 100644
index 0000000..18a065a
--- /dev/null
+++ b/src/components/ui/button/index.ts
@@ -0,0 +1,35 @@
+import { cva, type VariantProps } from 'class-variance-authority'
+
+export { default as Button } from './Button.vue'
+
+export const buttonVariants = cva(
+ 'inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0',
+ {
+ variants: {
+ variant: {
+ default:
+ 'bg-primary text-primary-foreground shadow hover:bg-primary/90',
+ destructive:
+ 'bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90',
+ outline:
+ 'border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground',
+ secondary:
+ 'bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80',
+ ghost: 'hover:bg-accent hover:text-accent-foreground',
+ link: 'text-primary underline-offset-4 hover:underline',
+ },
+ size: {
+ default: 'h-9 px-4 py-2',
+ sm: 'h-8 rounded-md px-3 text-xs',
+ lg: 'h-10 rounded-md px-8',
+ icon: 'h-9 w-9',
+ },
+ },
+ defaultVariants: {
+ variant: 'default',
+ size: 'default',
+ },
+ },
+)
+
+export type ButtonVariants = VariantProps
diff --git a/src/components/ui/label/Label.vue b/src/components/ui/label/Label.vue
new file mode 100644
index 0000000..ee7bc66
--- /dev/null
+++ b/src/components/ui/label/Label.vue
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
diff --git a/src/components/ui/label/index.ts b/src/components/ui/label/index.ts
new file mode 100644
index 0000000..572c2f0
--- /dev/null
+++ b/src/components/ui/label/index.ts
@@ -0,0 +1 @@
+export { default as Label } from './Label.vue'
diff --git a/src/components/ui/navigation-menu/NavigationMenu.vue b/src/components/ui/navigation-menu/NavigationMenu.vue
index 51c5fe9..449caff 100644
--- a/src/components/ui/navigation-menu/NavigationMenu.vue
+++ b/src/components/ui/navigation-menu/NavigationMenu.vue
@@ -25,7 +25,7 @@ const forwarded = useForwardPropsEmits(delegatedProps, emits)
diff --git a/src/components/ui/navigation-menu/NavigationMenuContent.vue b/src/components/ui/navigation-menu/NavigationMenuContent.vue
index 196d320..02163da 100644
--- a/src/components/ui/navigation-menu/NavigationMenuContent.vue
+++ b/src/components/ui/navigation-menu/NavigationMenuContent.vue
@@ -25,7 +25,7 @@ const forwarded = useForwardPropsEmits(delegatedProps, emits)
diff --git a/src/components/ui/navigation-menu/NavigationMenuList.vue b/src/components/ui/navigation-menu/NavigationMenuList.vue
index 20514da..80998af 100644
--- a/src/components/ui/navigation-menu/NavigationMenuList.vue
+++ b/src/components/ui/navigation-menu/NavigationMenuList.vue
@@ -19,7 +19,7 @@ const forwardedProps = useForwardProps(delegatedProps)
v-bind="forwardedProps"
:class="
cn(
- 'group flex flex-1 list-none items-center justify-center gap-x-1',
+ 'center flex list-none gap-x-1',
props.class,
)
"
diff --git a/src/components/ui/navigation-menu/NavigationMenuViewport.vue b/src/components/ui/navigation-menu/NavigationMenuViewport.vue
index a6394fb..6f1ce6e 100644
--- a/src/components/ui/navigation-menu/NavigationMenuViewport.vue
+++ b/src/components/ui/navigation-menu/NavigationMenuViewport.vue
@@ -19,7 +19,7 @@ const forwardedProps = useForwardProps(delegatedProps)
-
+
+import type { HTMLAttributes } from 'vue'
+import { cn } from '~/lib/utils'
+
+interface SkeletonProps {
+ class?: HTMLAttributes['class']
+}
+
+const props = defineProps()
+
+
+
+
+
diff --git a/src/components/ui/skeleton/index.ts b/src/components/ui/skeleton/index.ts
new file mode 100644
index 0000000..be21fad
--- /dev/null
+++ b/src/components/ui/skeleton/index.ts
@@ -0,0 +1 @@
+export { default as Skeleton } from './Skeleton.vue'
diff --git a/src/pages/balloon/single.vue b/src/pages/balloon/single.vue
index be9c5f0..ce62e3e 100644
--- a/src/pages/balloon/single.vue
+++ b/src/pages/balloon/single.vue
@@ -1,4 +1,6 @@
-
-
-
-
- Vitesse Lite
-
-
-
- Opinionated Vite Starter Template
-
-
-
-
-
-
-
-
- Go
-
-
+
+
diff --git a/src/pages/radar/v1.vue b/src/pages/radar/v1.vue
index c226c8f..8fd5739 100644
--- a/src/pages/radar/v1.vue
+++ b/src/pages/radar/v1.vue
@@ -39,7 +39,7 @@ onFetchResponse(async (resp) => {
})
onMounted(async () => {
- const resp = await fetch('http://localhost:5000/radar/metadata')
+ const resp = await fetch(`${API_BASE_URL}/radar/metadata`)
const data = await resp.json()
// use regex to extract the year from the path,
// ./radar/data\\武汉左岭镇站\\2017\\ZLT_MET01_DLL_L21_01D_20170316.txt
@@ -66,8 +66,6 @@ onMounted(async () => {
- {{ stations }}
- {{ years }}
@@ -115,7 +113,7 @@ onMounted(async () => {
-
+
loading...
diff --git a/src/pages/radar/v2.vue b/src/pages/radar/v2.vue
index cadf7f0..b65769f 100644
--- a/src/pages/radar/v2.vue
+++ b/src/pages/radar/v2.vue
@@ -1,13 +1,127 @@
-
- a
+
+
+
+
+
+
+
+
+
+ 计算模式
+
+ {{ mode }}
+
+
+
+
+
+
+
+
+
+
+ 观测站
+
+ {{ station }}
+
+
+
+
+
+
+
+
+
+
+ 天
+
+ {{ year }}
+
+
+
+
+
+
+
+ {{ selectedMode }}
+ {{ selectedYear }}
+
+
+
+
+
+
+ 警告:由于计算一年的数据,需要等待大约1分钟出图
+ 请勿刷新页面或者离开当前页面、改动参数
+ 否则需要重新等待 3 分钟
+ loading...
+
+
-
diff --git a/src/pages/saber/day_cycle_power_wave_plot.vue b/src/pages/saber/day_cycle_power_wave_plot.vue
new file mode 100644
index 0000000..20b3bb1
--- /dev/null
+++ b/src/pages/saber/day_cycle_power_wave_plot.vue
@@ -0,0 +1,110 @@
+
+
+
+
+
+
+ 年月
+
+
+
+
+
+
+ 月份
+
+ {{ renderPath(path) }}
+
+
+
+
+ 天数
+
+
+
+
+
+
+ Day
+
+ {{ day }}
+
+
+
+
+ Cycle No.
+
+
+
+
+
+
+
+
+
+
+ {{ selected.day }}
+ {{ selected.path }}
+
+
+
+
+
+
diff --git a/src/pages/saber/day_fft_ifft_plot.vue b/src/pages/saber/day_fft_ifft_plot.vue
new file mode 100644
index 0000000..8b0db11
--- /dev/null
+++ b/src/pages/saber/day_fft_ifft_plot.vue
@@ -0,0 +1,110 @@
+
+
+
+
+
+
+ 年月
+
+
+
+
+
+
+ 月份
+
+ {{ renderPath(path) }}
+
+
+
+
+ 天数
+
+
+
+
+
+
+ Day
+
+ {{ day }}
+
+
+
+
+ Cycle No.
+
+
+
+
+
+
+
+
+
+
+ {{ selected.day }}
+ {{ selected.path }}
+
+
+
+
+
+
diff --git a/src/pages/saber/month_power_wave_plot.vue b/src/pages/saber/month_power_wave_plot.vue
new file mode 100644
index 0000000..416018c
--- /dev/null
+++ b/src/pages/saber/month_power_wave_plot.vue
@@ -0,0 +1,77 @@
+
+
+
+
+
+
+ 年月
+
+
+
+
+
+
+ 月份
+
+ {{ renderPath(path) }}
+
+
+
+
+
+
+
+ {{ selected.path }}
+
+
+
+
+
+
diff --git a/src/pages/saber/plot_wave_fitting.vue b/src/pages/saber/plot_wave_fitting.vue
new file mode 100644
index 0000000..f2c3bf4
--- /dev/null
+++ b/src/pages/saber/plot_wave_fitting.vue
@@ -0,0 +1,110 @@
+
+
+
+
+
+
+ 年月
+
+
+
+
+
+
+ 月份
+
+ {{ renderPath(path) }}
+
+
+
+
+ 天数
+
+
+
+
+
+
+ Day
+
+ {{ day }}
+
+
+
+
+ 高度
+
+
+
+
+
+
+
+
+
+
+ {{ selected.day }}
+ {{ selected.path }}
+
+
+
+
+
+
diff --git a/src/pages/saber/utils.ts b/src/pages/saber/utils.ts
new file mode 100644
index 0000000..36553d1
--- /dev/null
+++ b/src/pages/saber/utils.ts
@@ -0,0 +1,20 @@
+import { API_BASE_URL } from '~/CONSTANT'
+
+const saberPaths = ref
([])
+const currentSaberDays = ref('')
+
+async function refreshPath() {
+ if (saberPaths.value.length)
+ return
+ const resp = await fetch(`${API_BASE_URL}/saber/metadata`)
+ const data = await resp.json()
+ saberPaths.value = data
+}
+
+async function refreshCurrentSaberDays(path: string) {
+ const resp = await fetch(`${API_BASE_URL}/saber/metadata/list_days?path=${path}`)
+ const data = await resp.json()
+ currentSaberDays.value = data
+}
+
+export { currentSaberDays, refreshCurrentSaberDays, refreshPath, saberPaths }
diff --git a/typed-router.d.ts b/typed-router.d.ts
index a76792c..828d443 100644
--- a/typed-router.d.ts
+++ b/typed-router.d.ts
@@ -24,5 +24,9 @@ declare module 'vue-router/auto-routes' {
'/balloon/year': RouteRecordInfo<'/balloon/year', '/balloon/year', Record, Record>,
'/radar/v1': RouteRecordInfo<'/radar/v1', '/radar/v1', Record, Record>,
'/radar/v2': RouteRecordInfo<'/radar/v2', '/radar/v2', Record, Record>,
+ '/saber/day_cycle_power_wave_plot': RouteRecordInfo<'/saber/day_cycle_power_wave_plot', '/saber/day_cycle_power_wave_plot', Record, Record>,
+ '/saber/day_fft_ifft_plot': RouteRecordInfo<'/saber/day_fft_ifft_plot', '/saber/day_fft_ifft_plot', Record, Record>,
+ '/saber/month_power_wave_plot': RouteRecordInfo<'/saber/month_power_wave_plot', '/saber/month_power_wave_plot', Record, Record>,
+ '/saber/plot_wave_fitting': RouteRecordInfo<'/saber/plot_wave_fitting', '/saber/plot_wave_fitting', Record, Record>,
}
}
diff --git a/vite.config.ts b/vite.config.ts
index 3c03c1b..0bb6053 100644
--- a/vite.config.ts
+++ b/vite.config.ts
@@ -5,7 +5,6 @@ import Vue from '@vitejs/plugin-vue'
import UnoCSS from 'unocss/vite'
import AutoImport from 'unplugin-auto-import/vite'
import Components from 'unplugin-vue-components/vite'
-import VueMacros from 'unplugin-vue-macros/vite'
import { VueRouterAutoImports } from 'unplugin-vue-router'
import VueRouter from 'unplugin-vue-router/vite'
import { defineConfig } from 'vite'
@@ -17,19 +16,12 @@ export default defineConfig({
},
},
plugins: [
- VueMacros({
- defineOptions: false,
- defineModels: false,
- plugins: {
- vue: Vue({
- script: {
- propsDestructure: true,
- defineModel: true,
- },
- }),
+ Vue({
+ script: {
+ propsDestructure: true,
+ defineModel: true,
},
}),
-
// https://github.com/posva/unplugin-vue-router
VueRouter(),