diff --git a/src/render/bootstrapScript/BD&time.ts b/src/render/bootstrapScript/BD&time.ts
new file mode 100644
index 0000000..fd2ecc4
--- /dev/null
+++ b/src/render/bootstrapScript/BD&time.ts
@@ -0,0 +1,5 @@
+import { bootstrap } from './base'
+import { App } from '@/app/BD&time'
+import { setupStore } from '@/stores'
+
+bootstrap(App, [ setupStore ])
diff --git a/src/render/bootstrapScript/BDCommunicationAssistant.ts b/src/render/bootstrapScript/BDCommunicationAssistant.ts
new file mode 100644
index 0000000..a67328c
--- /dev/null
+++ b/src/render/bootstrapScript/BDCommunicationAssistant.ts
@@ -0,0 +1,5 @@
+import { bootstrap } from './base'
+import { App } from '@/app/BDCommunicationAssistant'
+import { setupStore } from '@/stores'
+
+bootstrap(App, [ setupStore ])
diff --git a/src/render/bootstrapScript/BDComprehensiveExperimentalPlatform.ts b/src/render/bootstrapScript/BDComprehensiveExperimentalPlatform.ts
new file mode 100644
index 0000000..1be3332
--- /dev/null
+++ b/src/render/bootstrapScript/BDComprehensiveExperimentalPlatform.ts
@@ -0,0 +1,6 @@
+import { bootstrap } from './base'
+import { App } from '@/app/BDComprehensiveExperimentalPlatform'
+import { setupMap } from '@/components/Map'
+import { setupStore } from '@/stores'
+
+bootstrap(App, [ setupMap, setupStore ])
diff --git a/src/render/bootstrapScript/BDDataAnalysisPlatform.ts b/src/render/bootstrapScript/BDDataAnalysisPlatform.ts
new file mode 100644
index 0000000..efb2b9e
--- /dev/null
+++ b/src/render/bootstrapScript/BDDataAnalysisPlatform.ts
@@ -0,0 +1,6 @@
+import { bootstrap } from './base'
+import { App } from '@/app/BDDataAnalysisPlatform'
+import { setupMap } from '@/components/Map'
+import { setupStore } from '@/stores'
+
+bootstrap(App, [ setupMap, setupStore ])
diff --git a/src/render/bootstrapScript/BDMeteorologicalDataDisplayPlatform.ts b/src/render/bootstrapScript/BDMeteorologicalDataDisplayPlatform.ts
new file mode 100644
index 0000000..c916078
--- /dev/null
+++ b/src/render/bootstrapScript/BDMeteorologicalDataDisplayPlatform.ts
@@ -0,0 +1,6 @@
+import { bootstrap } from './base'
+import { App } from '@/app/BDMeteorologicalDataDisplayPlatform'
+import { setupMap } from '@/components/Map'
+import { setupStore } from '@/stores'
+
+bootstrap(App, [ setupMap, setupStore ])
diff --git a/src/render/bootstrapScript/BDMeteorologicalDataProtocol.ts b/src/render/bootstrapScript/BDMeteorologicalDataProtocol.ts
new file mode 100644
index 0000000..b553fe0
--- /dev/null
+++ b/src/render/bootstrapScript/BDMeteorologicalDataProtocol.ts
@@ -0,0 +1,4 @@
+import { bootstrap } from './base'
+import { App } from '@/app/BDMeteorologicalDataProtocol'
+
+bootstrap(App)
diff --git a/src/render/bootstrapScript/BDPositionTrackRetracing.ts b/src/render/bootstrapScript/BDPositionTrackRetracing.ts
new file mode 100644
index 0000000..6f96c09
--- /dev/null
+++ b/src/render/bootstrapScript/BDPositionTrackRetracing.ts
@@ -0,0 +1,6 @@
+import { bootstrap } from './base'
+import { App } from '@/app/BDPositionTrackRetracing'
+import { setupMap } from '@/components/Map'
+import { setupStore } from '@/stores'
+
+bootstrap(App, [ setupMap, setupStore ])
diff --git a/src/render/bootstrapScript/BDSatellite3DPostureControl.ts b/src/render/bootstrapScript/BDSatellite3DPostureControl.ts
new file mode 100644
index 0000000..5cfa8b0
--- /dev/null
+++ b/src/render/bootstrapScript/BDSatellite3DPostureControl.ts
@@ -0,0 +1,5 @@
+import { bootstrap } from './base'
+import { App } from '@/app/BDSatellite3DPostureControl'
+import { setupStore } from '@/stores'
+
+bootstrap(App, [ setupStore ])
diff --git a/src/render/bootstrapScript/BDSatelliteAttitudeControl.ts b/src/render/bootstrapScript/BDSatelliteAttitudeControl.ts
new file mode 100644
index 0000000..daff883
--- /dev/null
+++ b/src/render/bootstrapScript/BDSatelliteAttitudeControl.ts
@@ -0,0 +1,5 @@
+import { bootstrap } from './base'
+import { App } from '@/app/BDSatelliteAttitudeControl'
+import { setupStore } from '@/stores'
+
+bootstrap(App, [ setupStore ])
diff --git a/src/render/bootstrapScript/BDSatelliteParameterMonitoringPlatform.ts b/src/render/bootstrapScript/BDSatelliteParameterMonitoringPlatform.ts
new file mode 100644
index 0000000..1107c3b
--- /dev/null
+++ b/src/render/bootstrapScript/BDSatelliteParameterMonitoringPlatform.ts
@@ -0,0 +1,5 @@
+import { bootstrap } from './base'
+import { App } from '@/app/BDSatelliteParameterMonitoringPlatform'
+import { setupStore } from '@/stores'
+
+bootstrap(App, [ setupStore ])
diff --git a/src/render/bootstrapScript/BDSatelliteTimeConfiguration.ts b/src/render/bootstrapScript/BDSatelliteTimeConfiguration.ts
new file mode 100644
index 0000000..fd1053b
--- /dev/null
+++ b/src/render/bootstrapScript/BDSatelliteTimeConfiguration.ts
@@ -0,0 +1,5 @@
+import { bootstrap } from './base'
+import { App } from '@/app/BDSatelliteTimeConfiguration'
+import { setupStore } from '@/stores'
+
+bootstrap(App, [ setupStore ])
diff --git a/src/render/bootstrapScript/ClockConfig.ts b/src/render/bootstrapScript/ClockConfig.ts
new file mode 100644
index 0000000..0ae006b
--- /dev/null
+++ b/src/render/bootstrapScript/ClockConfig.ts
@@ -0,0 +1,5 @@
+import { bootstrap } from './base'
+import { App } from '@/app/ClockConfig'
+import { setupStore } from '@/stores'
+
+bootstrap(App, [ setupStore ])
diff --git a/src/render/bootstrapScript/ElectronicScreenDesign.ts b/src/render/bootstrapScript/ElectronicScreenDesign.ts
new file mode 100644
index 0000000..72b8277
--- /dev/null
+++ b/src/render/bootstrapScript/ElectronicScreenDesign.ts
@@ -0,0 +1,5 @@
+import { bootstrap } from './base'
+import { App } from '@/app/ElectronicScreenDesign'
+import { setupStore } from '@/stores'
+
+bootstrap(App, [ setupStore ])
diff --git a/src/render/bootstrapScript/FontDesign.ts b/src/render/bootstrapScript/FontDesign.ts
new file mode 100644
index 0000000..7555007
--- /dev/null
+++ b/src/render/bootstrapScript/FontDesign.ts
@@ -0,0 +1,5 @@
+import { bootstrap } from './base'
+import { App } from '@/app/FontDesign'
+import { setupStore } from '@/stores'
+
+bootstrap(App, [ setupStore ])
diff --git a/src/render/bootstrapScript/GeneratingConstellationChart.ts b/src/render/bootstrapScript/GeneratingConstellationChart.ts
new file mode 100644
index 0000000..2610d1b
--- /dev/null
+++ b/src/render/bootstrapScript/GeneratingConstellationChart.ts
@@ -0,0 +1,5 @@
+import { bootstrap } from './base'
+import { App } from '@/app/GeneratingConstellationChart'
+import { setupStore } from '@/stores'
+
+bootstrap(App, [ setupStore ])
diff --git a/src/render/bootstrapScript/GestureRecognition.ts b/src/render/bootstrapScript/GestureRecognition.ts
new file mode 100644
index 0000000..819e70e
--- /dev/null
+++ b/src/render/bootstrapScript/GestureRecognition.ts
@@ -0,0 +1,5 @@
+import { bootstrap } from './base'
+import { App } from '@/app/GestureRecognition'
+import { setupStore } from '@/stores'
+
+bootstrap(App, [ setupStore ])
diff --git a/src/render/bootstrapScript/NixieTubeConfiguration.ts b/src/render/bootstrapScript/NixieTubeConfiguration.ts
new file mode 100644
index 0000000..535cf16
--- /dev/null
+++ b/src/render/bootstrapScript/NixieTubeConfiguration.ts
@@ -0,0 +1,5 @@
+import { bootstrap } from './base'
+import { App } from '@/app/NixieTubeConfiguration'
+import { setupStore } from '@/stores'
+
+bootstrap(App, [ setupStore ])
diff --git a/src/render/bootstrapScript/VoltageMonitoring.ts b/src/render/bootstrapScript/VoltageMonitoring.ts
new file mode 100644
index 0000000..33bb125
--- /dev/null
+++ b/src/render/bootstrapScript/VoltageMonitoring.ts
@@ -0,0 +1,5 @@
+import { bootstrap } from './base'
+import { App } from '@/app/VoltageMonitoring'
+import { setupStore } from '@/stores'
+
+bootstrap(App, [ setupStore ])
diff --git a/src/render/bootstrapScript/WirelessCommunicationModuleConfiguration.ts b/src/render/bootstrapScript/WirelessCommunicationModuleConfiguration.ts
new file mode 100644
index 0000000..0fe74c7
--- /dev/null
+++ b/src/render/bootstrapScript/WirelessCommunicationModuleConfiguration.ts
@@ -0,0 +1,5 @@
+import { bootstrap } from './base'
+import { App } from '@/app/WirelessCommunicationModuleConfiguration'
+import { setupStore } from '@/stores'
+
+bootstrap(App, [ setupStore ])
diff --git a/src/render/bootstrapScript/base.ts b/src/render/bootstrapScript/base.ts
new file mode 100644
index 0000000..7c88197
--- /dev/null
+++ b/src/render/bootstrapScript/base.ts
@@ -0,0 +1,10 @@
+import { createApp } from 'vue'
+import '@/common.less'
+
+export const bootstrap = (App, setupFuncs: Function[] = []) => {
+ const app = createApp(App)
+
+ setupFuncs.forEach((setupFunc) => setupFunc.call(this, app))
+
+ app.mount('#app')
+}
diff --git a/src/render/bootstrapScript/distanceCalculationTool.ts b/src/render/bootstrapScript/distanceCalculationTool.ts
new file mode 100644
index 0000000..162e726
--- /dev/null
+++ b/src/render/bootstrapScript/distanceCalculationTool.ts
@@ -0,0 +1,6 @@
+import { bootstrap } from './base'
+import { App } from '@/app/distanceCalculationTool'
+import { setupMap } from '@/components/Map'
+import { setupStore } from '@/stores'
+
+bootstrap(App, [ setupMap, setupStore ])
diff --git a/src/render/bootstrapScript/index.ts b/src/render/bootstrapScript/index.ts
new file mode 100644
index 0000000..46e4f60
--- /dev/null
+++ b/src/render/bootstrapScript/index.ts
@@ -0,0 +1,6 @@
+import { bootstrap } from './base'
+import { App } from '@/app/index'
+import { setupRouter } from '@/router/index'
+import { setupStore } from '@/stores'
+
+bootstrap(App, [ setupRouter, setupStore ])
diff --git a/src/render/common.less b/src/render/common.less
new file mode 100644
index 0000000..404edee
--- /dev/null
+++ b/src/render/common.less
@@ -0,0 +1,58 @@
+
+
+* {
+ margin: 0;
+ padding: 0;
+ box-sizing: border-box;
+}
+
+a {
+ text-decoration: none;
+}
+
+li {
+ list-style: none;
+}
+
+div::-webkit-scrollbar {
+ width: 0;
+}
+
+.w-full {
+ width: 100%;
+}
+
+.h-full {
+ height: 100%;
+}
+
+.w-h-full {
+ width: 100%;
+ height: 100%;
+}
+
+.text-center {
+ text-align: center;
+}
+
+
+.flex {
+ display: flex;
+}
+
+.flex-col {
+ flex-direction: column;
+}
+
+.flex-1 {
+ flex: 1 1 0%;
+}
+
+.mx-auto {
+ margin-left: auto;
+ margin-right: auto;
+}
+
+.text-right {
+ text-align: right;
+}
diff --git a/src/render/components/Application/index.ts b/src/render/components/Application/index.ts
new file mode 100644
index 0000000..f6fa04d
--- /dev/null
+++ b/src/render/components/Application/index.ts
@@ -0,0 +1 @@
+export { default as Application } from './index.vue'
diff --git a/src/render/components/Application/index.vue b/src/render/components/Application/index.vue
new file mode 100644
index 0000000..0fa1ab1
--- /dev/null
+++ b/src/render/components/Application/index.vue
@@ -0,0 +1,39 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/render/components/Charts/CNR/data.ts b/src/render/components/Charts/CNR/data.ts
new file mode 100644
index 0000000..2aa5806
--- /dev/null
+++ b/src/render/components/Charts/CNR/data.ts
@@ -0,0 +1,47 @@
+import { reactive } from 'vue'
+import { graphic } from 'echarts/core'
+
+const active_color = new graphic.LinearGradient(
+ 0, 1, 0, 0,
+ [
+ {offset: 0.3, color: '#83bff6'},
+ {offset: 1, color: '#188df0'}
+ ]
+)
+const unactive_color = '#9ca3af'
+
+export const option = reactive({
+ grid: {
+ containLabel: true
+ },
+ xAxis: {
+ type: 'category',
+ axisTick: { show: false },
+ axisLine: { show: false },
+ axisLabel: { color: 'black' }
+ },
+ yAxis: {
+ max: 60,
+ splitNumber: 3,
+ axisLabel: {
+ fontSize: 24
+ }
+ },
+ series: [{
+ type: 'bar',
+ barMaxWidth: '50%',
+ label: {
+ show: true,
+ position: 'top',
+ // formatter: function ({ value }) {
+ // return !value || value[1] === 0 ? '' : value[1]
+ // }
+ // formatter: '{a}-{b}-{c}'
+ },
+ itemStyle: {
+ // color: ({ value }) => {
+ // return value[1] ? active_color : unactive_color
+ // }
+ }
+ }]
+})
\ No newline at end of file
diff --git a/src/render/components/Charts/CNR/index.ts b/src/render/components/Charts/CNR/index.ts
new file mode 100644
index 0000000..dd04ab4
--- /dev/null
+++ b/src/render/components/Charts/CNR/index.ts
@@ -0,0 +1 @@
+export { default as CNR } from './index.vue';
diff --git a/src/render/components/Charts/CNR/index.vue b/src/render/components/Charts/CNR/index.vue
new file mode 100644
index 0000000..ecc44c9
--- /dev/null
+++ b/src/render/components/Charts/CNR/index.vue
@@ -0,0 +1,42 @@
+
+
+
+
+
diff --git a/src/render/components/Charts/Clock/index.ts b/src/render/components/Charts/Clock/index.ts
new file mode 100644
index 0000000..c4ff6bb
--- /dev/null
+++ b/src/render/components/Charts/Clock/index.ts
@@ -0,0 +1 @@
+export { default as Clock } from './index.vue'
diff --git a/src/render/components/Charts/Clock/index.vue b/src/render/components/Charts/Clock/index.vue
new file mode 100644
index 0000000..3b66193
--- /dev/null
+++ b/src/render/components/Charts/Clock/index.vue
@@ -0,0 +1,250 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/src/render/components/Charts/Planisphere/data.ts b/src/render/components/Charts/Planisphere/data.ts
new file mode 100644
index 0000000..d1ecfa6
--- /dev/null
+++ b/src/render/components/Charts/Planisphere/data.ts
@@ -0,0 +1,65 @@
+import { reactive } from "vue"
+
+export const active_color = '#e5323e'
+export const unactive_color = '#9ca3af'
+
+export const option = reactive({
+ polar: {
+ radius: '85%'
+ },
+ angleAxis: {
+ min: 0,
+ max: 360,
+ interval: 45,
+ axisTick: {
+ show: false
+ },
+ axisLabel: {
+ fontSize: 24,
+ formatter: function (value: number) {
+ switch (value)
+ {
+ case 0 : return '北'
+ case 90 : return '东'
+ case 180 : return '南'
+ case 270 : return '西'
+ }
+ },
+ }
+ },
+ radiusAxis: {
+ min: -90,
+ max: 0,
+ interval: 30,
+ axisLabel: {
+ rotate: -25,
+ showMinLabel: false,
+ showMaxLabel: false,
+ verticalAlign: 'bottom',
+ // formatter: function(value: number){
+ // return Math.abs(value)
+ // },
+ formatter: function(value, index){
+ if(value === 0){
+ return '';
+ }
+
+ return -value;
+ },
+ }
+ },
+ series: [{
+ coordinateSystem: 'polar',
+ type: 'scatter',
+ symbolSize: 32,
+ label: {
+ show: true,
+ formatter: '{@[2]}'
+ },
+ itemStyle: {
+ color: ({ value }) => {
+ return value[3] ? active_color : unactive_color
+ }
+ },
+ }]
+})
\ No newline at end of file
diff --git a/src/render/components/Charts/Planisphere/index.ts b/src/render/components/Charts/Planisphere/index.ts
new file mode 100644
index 0000000..07e76e8
--- /dev/null
+++ b/src/render/components/Charts/Planisphere/index.ts
@@ -0,0 +1 @@
+export { default as Planisphere } from './index.vue';
diff --git a/src/render/components/Charts/Planisphere/index.vue b/src/render/components/Charts/Planisphere/index.vue
new file mode 100644
index 0000000..4fc09d5
--- /dev/null
+++ b/src/render/components/Charts/Planisphere/index.vue
@@ -0,0 +1,34 @@
+
+
+
+
+
diff --git a/src/render/components/Charts/index.ts b/src/render/components/Charts/index.ts
new file mode 100644
index 0000000..d038c73
--- /dev/null
+++ b/src/render/components/Charts/index.ts
@@ -0,0 +1,3 @@
+import { Clock } from './Clock'
+
+export { Clock }
diff --git a/src/render/components/Map/amap/Map/data.ts b/src/render/components/Map/amap/Map/data.ts
new file mode 100644
index 0000000..1f52f96
--- /dev/null
+++ b/src/render/components/Map/amap/Map/data.ts
@@ -0,0 +1 @@
+export const zooms = [4, 20]
diff --git a/src/render/components/Map/amap/Map/index.ts b/src/render/components/Map/amap/Map/index.ts
new file mode 100644
index 0000000..c775f7f
--- /dev/null
+++ b/src/render/components/Map/amap/Map/index.ts
@@ -0,0 +1 @@
+export { default as Map } from './index.vue'
diff --git a/src/render/components/Map/amap/Map/index.vue b/src/render/components/Map/amap/Map/index.vue
new file mode 100644
index 0000000..86b1ac5
--- /dev/null
+++ b/src/render/components/Map/amap/Map/index.vue
@@ -0,0 +1,61 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/src/render/components/Map/amap/MapInfoWindow.vue b/src/render/components/Map/amap/MapInfoWindow.vue
new file mode 100644
index 0000000..9e7b89e
--- /dev/null
+++ b/src/render/components/Map/amap/MapInfoWindow.vue
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
diff --git a/src/render/components/Map/amap/MapMarker.vue b/src/render/components/Map/amap/MapMarker.vue
new file mode 100644
index 0000000..7eef123
--- /dev/null
+++ b/src/render/components/Map/amap/MapMarker.vue
@@ -0,0 +1,11 @@
+
+
+
+
+
diff --git a/src/render/components/Map/amap/MapPolyline.vue b/src/render/components/Map/amap/MapPolyline.vue
new file mode 100644
index 0000000..3e5ebf6
--- /dev/null
+++ b/src/render/components/Map/amap/MapPolyline.vue
@@ -0,0 +1,13 @@
+
+
+
+
+
diff --git a/src/render/components/Map/amap/MapText.vue b/src/render/components/Map/amap/MapText.vue
new file mode 100644
index 0000000..f0ea440
--- /dev/null
+++ b/src/render/components/Map/amap/MapText.vue
@@ -0,0 +1,10 @@
+
+
+
+
+
diff --git a/src/render/components/Map/amap/Marker.vue b/src/render/components/Map/amap/Marker.vue
new file mode 100644
index 0000000..48c1b9c
--- /dev/null
+++ b/src/render/components/Map/amap/Marker.vue
@@ -0,0 +1,9 @@
+
+
+
+
+
diff --git a/src/render/components/Map/amap/MouseTool.vue b/src/render/components/Map/amap/MouseTool.vue
new file mode 100644
index 0000000..d8ebd25
--- /dev/null
+++ b/src/render/components/Map/amap/MouseTool.vue
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
diff --git a/src/render/components/Map/amap/PolylineView/index.ts b/src/render/components/Map/amap/PolylineView/index.ts
new file mode 100644
index 0000000..5fd25eb
--- /dev/null
+++ b/src/render/components/Map/amap/PolylineView/index.ts
@@ -0,0 +1 @@
+export { default as PolylineView } from './index.vue';
diff --git a/src/render/components/Map/amap/PolylineView/index.vue b/src/render/components/Map/amap/PolylineView/index.vue
new file mode 100644
index 0000000..37fbf97
--- /dev/null
+++ b/src/render/components/Map/amap/PolylineView/index.vue
@@ -0,0 +1,9 @@
+
+
+
+
+
diff --git a/src/render/components/Map/amap/TrackLineView/data.ts b/src/render/components/Map/amap/TrackLineView/data.ts
new file mode 100644
index 0000000..0391357
--- /dev/null
+++ b/src/render/components/Map/amap/TrackLineView/data.ts
@@ -0,0 +1,2 @@
+export const timing = [[0, 0.3], [1, 0.7]]
+export const rotationSpeed = 10
diff --git a/src/render/components/Map/amap/TrackLineView/index.ts b/src/render/components/Map/amap/TrackLineView/index.ts
new file mode 100644
index 0000000..7c89908
--- /dev/null
+++ b/src/render/components/Map/amap/TrackLineView/index.ts
@@ -0,0 +1,2 @@
+export { default as TrackLineView } from './index.vue';
+export { Journey } from './type';
diff --git a/src/render/components/Map/amap/TrackLineView/index.vue b/src/render/components/Map/amap/TrackLineView/index.vue
new file mode 100644
index 0000000..60357db
--- /dev/null
+++ b/src/render/components/Map/amap/TrackLineView/index.vue
@@ -0,0 +1,66 @@
+
+
+
+
+
+
+
diff --git a/src/render/components/Map/amap/TrackLineView/type.ts b/src/render/components/Map/amap/TrackLineView/type.ts
new file mode 100644
index 0000000..03aea2b
--- /dev/null
+++ b/src/render/components/Map/amap/TrackLineView/type.ts
@@ -0,0 +1,6 @@
+export class Journey {
+ constructor(paths, durationData) {
+ this.paths = paths
+ this.durationData = durationData
+ }
+}
\ No newline at end of file
diff --git a/src/render/components/Map/amap/index.ts b/src/render/components/Map/amap/index.ts
new file mode 100644
index 0000000..5a19d0d
--- /dev/null
+++ b/src/render/components/Map/amap/index.ts
@@ -0,0 +1,28 @@
+import type { App } from 'vue'
+import VueAMap, { initAMapApiLoader, lazyAMapApiLoaderInstance } from '@vuemap/vue-amap'
+import '@vuemap/vue-amap/dist/style.css'
+import { wgs84togcj02 } from 'coordtransform'
+initAMapApiLoader({
+ key: '763566888253f0a902f73609cf45a021',
+})
+
+export const setupMap = (app: App) => {
+ app.use(VueAMap)
+
+ // 引入高德原生 SDK
+ lazyAMapApiLoaderInstance.then()
+}
+
+export const lonlat2Position = (longitude, latitude) => {
+ return wgs84togcj02(longitude, latitude)
+}
+
+export * from './Map'
+export * from './PolylineView'
+export * from './TrackLineView'
+export { default as Marker } from './Marker.vue'
+export { default as MapText } from './MapText.vue'
+export { default as MapMarker } from './MapMarker.vue'
+export { default as MapPolyline } from './MapPolyline.vue'
+export { default as MapInfoWindow } from './MapInfoWindow.vue'
+export { default as MouseTool } from './MouseTool.vue'
diff --git a/src/render/components/Map/index.ts b/src/render/components/Map/index.ts
new file mode 100644
index 0000000..cceba71
--- /dev/null
+++ b/src/render/components/Map/index.ts
@@ -0,0 +1 @@
+export * from './amap'
diff --git a/src/render/components/SerialPort/ManagementView/data.ts b/src/render/components/SerialPort/ManagementView/data.ts
new file mode 100644
index 0000000..fcc1118
--- /dev/null
+++ b/src/render/components/SerialPort/ManagementView/data.ts
@@ -0,0 +1,26 @@
+export const BAUDRATE_OPTIONS = [
+ { label: 9600 , value: 9600 },
+ { label: 38400 , value: 38400 },
+ { label: 115200, value: 115200 },
+]
+
+export const DATA_BITS_OPTIONS = [
+ { label: 8 , value: 8 },
+ { label: 7 , value: 7 },
+]
+
+export const STOPBITS_OPTIONS = [
+ { label: 1 , value: 1 },
+ { label: 2 , value: 2 },
+]
+
+export const PARITY_OPTIONS = [
+ { label: '无' , value: 'none' },
+ { label: '奇' , value: 'odd' },
+ { label: '偶' , value: 'even' },
+]
+
+export const FLOW_CONTROL_OPTIONS = [
+ { label: '无' , value: 'none' },
+ { label: '硬件', value: 'hardware' },
+]
diff --git a/src/render/components/SerialPort/ManagementView/index.ts b/src/render/components/SerialPort/ManagementView/index.ts
new file mode 100644
index 0000000..28895c9
--- /dev/null
+++ b/src/render/components/SerialPort/ManagementView/index.ts
@@ -0,0 +1 @@
+export { default as SerialPortManagementView } from './index.vue'
diff --git a/src/render/components/SerialPort/ManagementView/index.vue b/src/render/components/SerialPort/ManagementView/index.vue
new file mode 100644
index 0000000..e08c6c4
--- /dev/null
+++ b/src/render/components/SerialPort/ManagementView/index.vue
@@ -0,0 +1,74 @@
+
+
+
+
+ 选择串口
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ serialPort.isOpen ? '关闭串口' : '打开串口' }}
+
+
+
+
+
+
+
diff --git a/src/render/components/SerialPort/ReceivingMessageView/index.ts b/src/render/components/SerialPort/ReceivingMessageView/index.ts
new file mode 100644
index 0000000..1e19d95
--- /dev/null
+++ b/src/render/components/SerialPort/ReceivingMessageView/index.ts
@@ -0,0 +1 @@
+export { default as SerialPortReceivingMessageView } from './index.vue';
diff --git a/src/render/components/SerialPort/ReceivingMessageView/index.vue b/src/render/components/SerialPort/ReceivingMessageView/index.vue
new file mode 100644
index 0000000..fb3aa96
--- /dev/null
+++ b/src/render/components/SerialPort/ReceivingMessageView/index.vue
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+
+
+ 清 除
+
+
+
+ 接 收
+
+
+ 暂 停
+
+
+
+
+
+
+
+
diff --git a/src/render/components/SerialPort/SendingMessageView/index.ts b/src/render/components/SerialPort/SendingMessageView/index.ts
new file mode 100644
index 0000000..e266f07
--- /dev/null
+++ b/src/render/components/SerialPort/SendingMessageView/index.ts
@@ -0,0 +1 @@
+export { default as SerialPortSendingMessageView } from './index.vue'
diff --git a/src/render/components/SerialPort/SendingMessageView/index.vue b/src/render/components/SerialPort/SendingMessageView/index.vue
new file mode 100644
index 0000000..8b3707b
--- /dev/null
+++ b/src/render/components/SerialPort/SendingMessageView/index.vue
@@ -0,0 +1,51 @@
+
+
+
+
+
+
+
+ 发 送
+
+
+
+
+
+
+
+
+
diff --git a/src/render/components/SerialPort/index.ts b/src/render/components/SerialPort/index.ts
new file mode 100644
index 0000000..7a6fba8
--- /dev/null
+++ b/src/render/components/SerialPort/index.ts
@@ -0,0 +1,3 @@
+export * from './ManagementView'
+export * from './SendingMessageView'
+export * from './ReceivingMessageView'
diff --git a/src/render/components/SerialPortManagementDrawer/index.ts b/src/render/components/SerialPortManagementDrawer/index.ts
new file mode 100644
index 0000000..0396d70
--- /dev/null
+++ b/src/render/components/SerialPortManagementDrawer/index.ts
@@ -0,0 +1 @@
+export { default as SerialPortManagementDrawer } from './index.vue'
diff --git a/src/render/components/SerialPortManagementDrawer/index.vue b/src/render/components/SerialPortManagementDrawer/index.vue
new file mode 100644
index 0000000..4a6b184
--- /dev/null
+++ b/src/render/components/SerialPortManagementDrawer/index.vue
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/render/components/Tabs/TabPane/index.ts b/src/render/components/Tabs/TabPane/index.ts
new file mode 100644
index 0000000..0f0bd2e
--- /dev/null
+++ b/src/render/components/Tabs/TabPane/index.ts
@@ -0,0 +1 @@
+export { default as TabPane } from './index.vue'
diff --git a/src/render/components/Tabs/TabPane/index.vue b/src/render/components/Tabs/TabPane/index.vue
new file mode 100644
index 0000000..7941328
--- /dev/null
+++ b/src/render/components/Tabs/TabPane/index.vue
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/render/components/Tabs/index.ts b/src/render/components/Tabs/index.ts
new file mode 100644
index 0000000..d0cd81c
--- /dev/null
+++ b/src/render/components/Tabs/index.ts
@@ -0,0 +1,3 @@
+export { default as Tabs } from './index.vue'
+// export * from './TabPane'
+export { TabPane } from './TabPane'
diff --git a/src/render/components/Tabs/index.vue b/src/render/components/Tabs/index.vue
new file mode 100644
index 0000000..3c71643
--- /dev/null
+++ b/src/render/components/Tabs/index.vue
@@ -0,0 +1,44 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/render/layout/absolute/Default.vue b/src/render/layout/absolute/Default.vue
new file mode 100644
index 0000000..002da6a
--- /dev/null
+++ b/src/render/layout/absolute/Default.vue
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
+
diff --git a/src/render/layout/absolute/FixHeader.vue b/src/render/layout/absolute/FixHeader.vue
new file mode 100644
index 0000000..f28127c
--- /dev/null
+++ b/src/render/layout/absolute/FixHeader.vue
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/render/layout/absolute/LeftSider.vue b/src/render/layout/absolute/LeftSider.vue
new file mode 100644
index 0000000..4671d85
--- /dev/null
+++ b/src/render/layout/absolute/LeftSider.vue
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/render/layout/absolute/RightSider.vue b/src/render/layout/absolute/RightSider.vue
new file mode 100644
index 0000000..7c17595
--- /dev/null
+++ b/src/render/layout/absolute/RightSider.vue
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/render/layout/absolute/Root.vue b/src/render/layout/absolute/Root.vue
new file mode 100644
index 0000000..96b7f6d
--- /dev/null
+++ b/src/render/layout/absolute/Root.vue
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
diff --git a/src/render/layout/default/index.ts b/src/render/layout/default/index.ts
new file mode 100644
index 0000000..14b3c99
--- /dev/null
+++ b/src/render/layout/default/index.ts
@@ -0,0 +1 @@
+export { default as Layout } from './index.vue'
diff --git a/src/render/layout/default/index.vue b/src/render/layout/default/index.vue
new file mode 100644
index 0000000..6f0cc2e
--- /dev/null
+++ b/src/render/layout/default/index.vue
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/src/render/layout/fixFooter/index.ts b/src/render/layout/fixFooter/index.ts
new file mode 100644
index 0000000..c519a6d
--- /dev/null
+++ b/src/render/layout/fixFooter/index.ts
@@ -0,0 +1 @@
+export { default as FixFooterLayout } from './index.vue'
diff --git a/src/render/layout/fixFooter/index.vue b/src/render/layout/fixFooter/index.vue
new file mode 100644
index 0000000..aafa1af
--- /dev/null
+++ b/src/render/layout/fixFooter/index.vue
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/render/layout/fixHeader/index.ts b/src/render/layout/fixHeader/index.ts
new file mode 100644
index 0000000..28f185c
--- /dev/null
+++ b/src/render/layout/fixHeader/index.ts
@@ -0,0 +1 @@
+export { default as FixHeaderLayout } from './index.vue'
diff --git a/src/render/layout/fixHeader/index.vue b/src/render/layout/fixHeader/index.vue
new file mode 100644
index 0000000..79a8b18
--- /dev/null
+++ b/src/render/layout/fixHeader/index.vue
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/render/layout/leftSider/index.ts b/src/render/layout/leftSider/index.ts
new file mode 100644
index 0000000..ee284a9
--- /dev/null
+++ b/src/render/layout/leftSider/index.ts
@@ -0,0 +1 @@
+export { default as LeftSiderLayout } from './index.vue'
diff --git a/src/render/layout/leftSider/index.vue b/src/render/layout/leftSider/index.vue
new file mode 100644
index 0000000..eda0e76
--- /dev/null
+++ b/src/render/layout/leftSider/index.vue
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/render/layout/rightSider/index.ts b/src/render/layout/rightSider/index.ts
new file mode 100644
index 0000000..f27b8f0
--- /dev/null
+++ b/src/render/layout/rightSider/index.ts
@@ -0,0 +1 @@
+export { default as RightSiderLayout } from './index.vue'
diff --git a/src/render/layout/rightSider/index.vue b/src/render/layout/rightSider/index.vue
new file mode 100644
index 0000000..041365f
--- /dev/null
+++ b/src/render/layout/rightSider/index.vue
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/render/layout/static/LeftSider.vue b/src/render/layout/static/LeftSider.vue
new file mode 100644
index 0000000..f70562f
--- /dev/null
+++ b/src/render/layout/static/LeftSider.vue
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/render/layout/static/Root.vue b/src/render/layout/static/Root.vue
new file mode 100644
index 0000000..32ec910
--- /dev/null
+++ b/src/render/layout/static/Root.vue
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
diff --git a/src/render/page/BD&time.html b/src/render/page/BD&time.html
new file mode 100644
index 0000000..bff3fbb
--- /dev/null
+++ b/src/render/page/BD&time.html
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+ 北斗与时间的关系学习软件
+
+
+
+
+
+
diff --git a/src/render/page/BD-communication-assistant.html b/src/render/page/BD-communication-assistant.html
new file mode 100644
index 0000000..26d452e
--- /dev/null
+++ b/src/render/page/BD-communication-assistant.html
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+ 北斗通信助手教学软件
+
+
+
+
+
+
diff --git a/src/render/page/BD-comprehensive-experimental-platform.html b/src/render/page/BD-comprehensive-experimental-platform.html
new file mode 100644
index 0000000..2ecc5df
--- /dev/null
+++ b/src/render/page/BD-comprehensive-experimental-platform.html
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+ 北斗综合实验平台
+
+
+
+
+
+
diff --git a/src/render/page/BD-data-analysis-platform.html b/src/render/page/BD-data-analysis-platform.html
new file mode 100644
index 0000000..52b62c3
--- /dev/null
+++ b/src/render/page/BD-data-analysis-platform.html
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+ 北斗数据分析平台
+
+
+
+
+
+
diff --git a/src/render/page/BD-meteorological-data-display-platform.html b/src/render/page/BD-meteorological-data-display-platform.html
new file mode 100644
index 0000000..ad0c28e
--- /dev/null
+++ b/src/render/page/BD-meteorological-data-display-platform.html
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+ 北斗气象数据展示平台
+
+
+
+
+
+
diff --git a/src/render/page/BD-meteorological-data-protocol.html b/src/render/page/BD-meteorological-data-protocol.html
new file mode 100644
index 0000000..71c7a60
--- /dev/null
+++ b/src/render/page/BD-meteorological-data-protocol.html
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+ 北斗气象数据协议
+
+
+
+
+
+
diff --git a/src/render/page/BD-position-track-retracing.html b/src/render/page/BD-position-track-retracing.html
new file mode 100644
index 0000000..3b13b60
--- /dev/null
+++ b/src/render/page/BD-position-track-retracing.html
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+ 北斗位置轨迹回溯软件
+
+
+
+
+
+
diff --git a/src/render/page/BD-satellite-3D-posture-display.html b/src/render/page/BD-satellite-3D-posture-display.html
new file mode 100644
index 0000000..4da3252
--- /dev/null
+++ b/src/render/page/BD-satellite-3D-posture-display.html
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+ 北斗卫星3D姿态展示软件
+
+
+
+
+
+
diff --git a/src/render/page/BD-satellite-attitude-control.html b/src/render/page/BD-satellite-attitude-control.html
new file mode 100644
index 0000000..3711582
--- /dev/null
+++ b/src/render/page/BD-satellite-attitude-control.html
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+ 北斗卫星姿态控制软件
+
+
+
+
+
+
diff --git a/src/render/page/BD-satellite-parameter-monitoring-platform.html b/src/render/page/BD-satellite-parameter-monitoring-platform.html
new file mode 100644
index 0000000..615df98
--- /dev/null
+++ b/src/render/page/BD-satellite-parameter-monitoring-platform.html
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+ 北斗卫星参数监测平台
+
+
+
+
+
+
diff --git a/src/render/page/BD-satellite-time-configuration.html b/src/render/page/BD-satellite-time-configuration.html
new file mode 100644
index 0000000..cfcfed5
--- /dev/null
+++ b/src/render/page/BD-satellite-time-configuration.html
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+ 北斗卫星时间配置软件
+
+
+
+
+
+
diff --git a/src/render/page/clock-config.html b/src/render/page/clock-config.html
new file mode 100644
index 0000000..3e22117
--- /dev/null
+++ b/src/render/page/clock-config.html
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+ 时钟配置软件
+
+
+
+
+
+
diff --git a/src/render/page/distance-calculation-tool.html b/src/render/page/distance-calculation-tool.html
new file mode 100644
index 0000000..72c988c
--- /dev/null
+++ b/src/render/page/distance-calculation-tool.html
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+ 距离计算工具软件
+
+
+
+
+
+
diff --git a/src/render/page/electronic-screen-design.html b/src/render/page/electronic-screen-design.html
new file mode 100644
index 0000000..1ee81c9
--- /dev/null
+++ b/src/render/page/electronic-screen-design.html
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+ 电子屏幕设计软件
+
+
+
+
+
+
diff --git a/src/render/page/font-design.html b/src/render/page/font-design.html
new file mode 100644
index 0000000..797ba95
--- /dev/null
+++ b/src/render/page/font-design.html
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+ 字体设计软件
+
+
+
+
+
+
diff --git a/src/render/page/generating-constellation-chart.html b/src/render/page/generating-constellation-chart.html
new file mode 100644
index 0000000..2c670f1
--- /dev/null
+++ b/src/render/page/generating-constellation-chart.html
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+ 生成星座图工具软件
+
+
+
+
+
+
diff --git a/src/render/page/gesture-recognition.html b/src/render/page/gesture-recognition.html
new file mode 100644
index 0000000..daf5047
--- /dev/null
+++ b/src/render/page/gesture-recognition.html
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+ 手势识别软件
+
+
+
+
+
+
diff --git a/src/render/page/index.html b/src/render/page/index.html
new file mode 100644
index 0000000..dad3002
--- /dev/null
+++ b/src/render/page/index.html
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+ 北斗启航实验平台软件
+
+
+
+
+
+
diff --git a/src/render/page/nixie-tube-configuration.html b/src/render/page/nixie-tube-configuration.html
new file mode 100644
index 0000000..ff1d922
--- /dev/null
+++ b/src/render/page/nixie-tube-configuration.html
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+ 数码管配置软件
+
+
+
+
+
+
diff --git a/src/render/page/voltage-monitoring.html b/src/render/page/voltage-monitoring.html
new file mode 100644
index 0000000..cd5ccbe
--- /dev/null
+++ b/src/render/page/voltage-monitoring.html
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+ 模块电压监控软件
+
+
+
+
+
+
diff --git a/src/render/page/wireless-communication-module-configuration.html b/src/render/page/wireless-communication-module-configuration.html
new file mode 100644
index 0000000..94223c0
--- /dev/null
+++ b/src/render/page/wireless-communication-module-configuration.html
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+ 无线通信模块配置软件
+
+
+
+
+
+
diff --git a/src/render/router/index/index.ts b/src/render/router/index/index.ts
new file mode 100644
index 0000000..ee0a97c
--- /dev/null
+++ b/src/render/router/index/index.ts
@@ -0,0 +1,34 @@
+import { App } from 'vue'
+import { createRouter, createWebHashHistory, RouteRecordRaw } from 'vue-router'
+
+const RootRoute: RouteRecordRaw = {
+ path: '/',
+ name: 'root',
+ redirect: '/category',
+ children: [{
+ path: '/category',
+ name: 'category',
+ component: () => import('@/views/index/router-view/category/index.vue'),
+ }, {
+ path: '/class/:class_id',
+ name: 'class',
+ component: () => import('@/views/index/router-view/class/index.vue'),
+ }, {
+ path: '/course/:course_id',
+ name: 'course',
+ component: () => import('@/views/index/router-view/course/index.vue'),
+ }, ]
+}
+
+export const routes: RouteRecordRaw[] = [RootRoute]
+
+const router = createRouter({
+ history: createWebHashHistory(),
+ routes,
+})
+
+export const setupRouter = (app: App) => {
+ app.use(router)
+}
+
+export default router
diff --git a/src/render/shims-vue.d.ts b/src/render/shims-vue.d.ts
new file mode 100644
index 0000000..ac1ded7
--- /dev/null
+++ b/src/render/shims-vue.d.ts
@@ -0,0 +1,5 @@
+declare module '*.vue' {
+ import { DefineComponent } from 'vue'
+ const component: DefineComponent<{}, {}, any>
+ export default component
+}
diff --git a/src/render/stores/index.ts b/src/render/stores/index.ts
new file mode 100644
index 0000000..efaf6c9
--- /dev/null
+++ b/src/render/stores/index.ts
@@ -0,0 +1,10 @@
+import type { App } from 'vue';
+import { createPinia } from 'pinia';
+
+const store = createPinia();
+
+export function setupStore(app: App) {
+ app.use(store);
+}
+
+export { store };
diff --git a/src/render/stores/modules/network/index.ts b/src/render/stores/modules/network/index.ts
new file mode 100644
index 0000000..c10c7c7
--- /dev/null
+++ b/src/render/stores/modules/network/index.ts
@@ -0,0 +1,10 @@
+import { ref } from 'vue'
+import { defineStore } from 'pinia'
+
+export const useNetworkStore = defineStore('network', () => {
+ const isOnLine = ref(window.navigator.onLine)
+ window.addEventListener( 'online' , () => isOnLine.value = true )
+ window.addEventListener( 'offline', () => isOnLine.value = false )
+
+ return { isOnLine }
+})
diff --git a/src/render/stores/nmea.ts b/src/render/stores/nmea.ts
new file mode 100644
index 0000000..ffcf7a2
--- /dev/null
+++ b/src/render/stores/nmea.ts
@@ -0,0 +1,127 @@
+import EventEmitter from 'events'
+import { defineStore } from 'pinia'
+import { parse, Helpers } from 'nmea'
+
+export class NMEADataSource extends EventEmitter {}
+
+
+const verify = (value: String) => {
+ if (!value) {
+ return false
+ }
+
+ const dollar_index = value.indexOf('$')
+ const star_index = value.indexOf('*')
+ if (value.indexOf('$') !== 0 || star_index <= dollar_index) {
+ return false
+ }
+
+ const [sentence, checksum, ] = value.split('*')
+ return Helpers.verifyChecksum(sentence, checksum)
+}
+
+export const useNMEAStore = defineStore('nmea', {
+ state: () => ({
+ GGA: null,
+ GLL: null,
+ GSA: {},
+ GSV: {},
+ RMC: null,
+ VTG: null,
+ ZDA: null,
+ TXT: null,
+ // ANT: null,
+ // DHV: null,
+ // LPS: null,
+ // UTC: null,
+ // GST: null,
+ // INS: null,
+ // TIM: null,
+ handled: false,
+ }),
+ getters: {
+ dateTime () {
+ if (!this.RMC || !this.RMC.date || !this.RMC.timestamp) return
+
+ return Helpers.parseDateTime(this.RMC.date, this.RMC.timestamp)
+ },
+ longitude () {
+ if (!this.RMC || !this.RMC.lon || !this.RMC.lonPole) return
+
+ return Helpers.parseLongitude(this.RMC.lon, this.RMC.lonPole)
+ },
+ latitude () {
+ if (!this.RMC || !this.RMC.lat || !this.RMC.latPole) return
+
+ return Helpers.parseLatitude(this.RMC.lat, this.RMC.latPole)
+ },
+ altitude () {
+ if (!this.GGA || !this.GGA.alt || !this.GGA.altUnit) return
+
+ return Helpers.parseAltitude(this.GGA.alt, this.GGA.altUnit)
+ },
+ satellites () {
+ return (talker_id) => {
+ const gsa = this.GSA[talker_id]
+ const gsvs = this.GSV[talker_id]
+
+ if (!gsa || !gsvs ) return
+
+ const satelliteArr = []
+
+ const active_satellites = gsa.satellites
+
+ gsvs.forEach(({ satellites }) => {
+ satellites.forEach(satellite => {
+ if (active_satellites.indexOf(parseInt(satellite.id)) < 0) {
+ satellite.active = false
+ } else {
+ satellite.active = true
+ }
+
+ satelliteArr.push(satellite)
+ })
+ })
+
+ return satelliteArr
+ }
+ },
+ },
+ actions: {
+ bindDataSource(source: NMEADataSource) {
+ source.on('open', () => this.$reset())
+
+ let result;
+ source.on('data', (data: String) => {
+ if (!verify(data)) return
+
+ result = parse(data)
+ if (!result) return
+
+ // 监控第一条语句,并重置所有state
+ if (result.sentence === 'GGA') this.$reset()
+
+ switch (result.sentence) {
+ case 'GSA':
+ this.GSA[result.talker_id] = result
+ break;
+ case 'GSV':
+ if (!this.GSV[result.talker_id]) {
+ this.GSV[result.talker_id] = []
+ }
+
+ this.GSV[result.talker_id].push(result)
+ break;
+ default:
+ this.$state[result.sentence] = result
+ break;
+ }
+
+ // 监听最后一条语句,并设置handled为true
+ if (result.sentence === 'TXT') {
+ this.handled = true
+ }
+ })
+ },
+ },
+})
diff --git a/src/render/stores/serialPort/data.ts b/src/render/stores/serialPort/data.ts
new file mode 100644
index 0000000..0914d14
--- /dev/null
+++ b/src/render/stores/serialPort/data.ts
@@ -0,0 +1,7 @@
+export const filters = [
+ { usbProductId: 8963 , usbVendorId: 1659 }, // 核心处理模块(micro-usb),蓝色无线通信模块
+ { usbProductId: 29986, usbVendorId: 6790 }, // 核心处理模块(type-c),红色无线通信模块
+ { usbProductId: 29987, usbVendorId: 6790 }, // 核心处理模块(type-c)
+ { usbProductId: 2 , usbVendorId: 12346 }, // 黑色无线通信模块(typc-c,micro-usb)
+ { usbProductId: 21970, usbVendorId: 6790 }, // 星座图监控软件配套红盒子接收机
+]
diff --git a/src/render/stores/serialPort/index.ts b/src/render/stores/serialPort/index.ts
new file mode 100644
index 0000000..11cb799
--- /dev/null
+++ b/src/render/stores/serialPort/index.ts
@@ -0,0 +1,140 @@
+import { ref } from 'vue'
+import { defineStore } from 'pinia'
+import { filters } from './data'
+
+
+let keepReading = false
+let reader = ref()
+let writer = ref()
+
+const encoder = new TextEncoder()
+
+// TODO: 处理串口的连接和断开连接事件
+// navigator.serial.addEventListener("connect", (event) => {
+// // TODO: Automatically open event.target or warn user a port is available.
+// });
+
+// navigator.serial.addEventListener("disconnect", (event) => {
+// // TODO: Remove |event.target| from the UI.
+// // If the serial port was opened, a stream error would be observed as well.
+// });
+
+export const useSerialPortStore = defineStore('serialPort', {
+ state: () => ({
+ instance: null,
+ }),
+ getters: {
+ isOpen () {
+ return Boolean(this.instance && reader.value && writer.value)
+ },
+ },
+ actions: {
+ async select() {
+ if (!('serial' in navigator)) throw new Error('当前环境不支持串口功能')
+
+ this.instance = await navigator.serial.requestPort({ filters })
+ },
+
+ async open(options) {
+ if ( !options ) throw new Error('缺少串口配置参数')
+
+ if ( !this.instance ) throw new Error('未选择串口设备')
+
+ if ( this.isOpen ) throw new Error('串口已打开')
+
+ try {
+ await this.instance.open(options)
+ } catch (error) {
+ console.error(error)
+ throw new Error('串口被占用')
+ }
+
+ // Turn on Data Terminal Ready (DTR) signal.
+ await this.instance.setSignals({ dataTerminalReady: true });
+ // Turn off Request To Send (RTS) signal.
+ await this.instance.setSignals({ requestToSend: true });
+
+ writer.value = this.instance.writable.getWriter()
+ reader.value = this.instance.readable.getReader()
+
+ eventListeners[SerialPortEventType.afterOpen]?.forEach((cb: Function) => cb(this))
+
+ keepReading = true
+ // Listen to data coming from the serial device.
+ while (this.instance.readable && keepReading) {
+
+ try {
+ while (true) {
+ const { value, done } = await reader.value.read()
+
+ if (done) {
+ // reader.cancel() has been called.
+ break
+ }
+
+ if (value) {
+ // value is a Uint8Array.
+ eventListeners[SerialPortEventType.data]?.forEach((cb: Function) => cb(value))
+ }
+ }
+ } catch (error) {
+ console.error(error)
+ throw new Error('读取串口数据出错')
+ } finally {
+ // Allow the serial port to be closed later.
+ reader.value.releaseLock()
+ reader.value = null
+ }
+ }
+
+ await this.instance.close()
+ },
+
+ async close() {
+ writer.value.releaseLock()
+ writer.value = null
+
+ keepReading = false
+ reader.value.cancel()
+ },
+
+ async write ( data: Uint8Array | string ) {
+ if (!data) return
+
+ if (!writer.value) throw new Error('串口未打开')
+
+ if (typeof(data) == 'string') {
+ // TODO: 跟其他串口通信助手一起测试一下编解码的问题
+ data = encoder.encode(data)
+ }
+
+ await writer.value.write(data);
+ },
+
+ addEventListener (eventName: string, callback: Function) {
+ if (!(eventName in eventListeners)) {
+ eventListeners[eventName] = []
+ }
+
+ eventListeners[eventName].push(callback)
+ },
+
+ removeEventListener (eventName: string, callback: Function) {
+ if (!(eventName in eventListeners)) return
+
+ const index = eventListeners[eventName].indexOf(callback)
+ if (index < 0) return
+
+ eventListeners[eventName].splice(index, 1)
+ },
+ },
+})
+
+const eventListeners = {}
+export enum SerialPortEventType {
+ beforeOpen,
+ afterOpen,
+ beforeClose,
+ afterClose,
+ data
+}
\ No newline at end of file
diff --git a/src/render/types/index.d.ts b/src/render/types/index.d.ts
new file mode 100644
index 0000000..c318218
--- /dev/null
+++ b/src/render/types/index.d.ts
@@ -0,0 +1,9 @@
+import { IpcRenderer } from 'electron'
+
+export {};
+
+declare global {
+ interface Window {
+ ipcRenderer: IpcRenderer;
+ }
+}
diff --git a/src/render/utils/index.ts b/src/render/utils/index.ts
new file mode 100644
index 0000000..b757c52
--- /dev/null
+++ b/src/render/utils/index.ts
@@ -0,0 +1 @@
+export const hasIpcRenderer = () => 'ipcRenderer' in window
diff --git a/src/render/utils/parser.ts b/src/render/utils/parser.ts
new file mode 100644
index 0000000..2ae12c2
--- /dev/null
+++ b/src/render/utils/parser.ts
@@ -0,0 +1,133 @@
+const NEW_LINE = '\r\n'
+
+
+export class LineBreakParser {
+ chunks: string | undefined
+
+ constructor() {
+ // A container for holding stream data until a new line.
+ this.chunks = ''
+ }
+
+ parse(chunk) {
+ // Append new chunks to existing chunks.
+ this.chunks += chunk;
+ // For each line breaks in chunks, send the parsed lines out.
+ const lines = this.chunks?.split(NEW_LINE)
+ this.chunks = lines?.pop()
+ return lines
+ }
+
+}
+
+/*
+export class LineBreakTransformer {
+ chunks: string | undefined
+
+ constructor() {
+ // A container for holding stream data until a new line.
+ this.chunks = ''
+ }
+
+ transform(chunk, controller) {
+ // Append new chunks to existing chunks.
+ this.chunks += chunk;
+ // For each line breaks in chunks, send the parsed lines out.
+ const lines = this.chunks.split(NEW_LINE);
+ this.chunks = lines.pop();
+ lines.forEach((line) => controller.enqueue(line + '\r\n'));
+ }
+
+ flush(controller) {
+ // When the stream is closed, flush any remaining chunks out.
+ controller.enqueue(this.chunks);
+ }
+}
+
+// TODO: 修复bug
+export class InterByteTimeoutTransformer {
+ maxBufferSize: number
+ currentPacket: number[]
+ chunks: string | undefined
+ interval: number
+ intervalID: NodeJS.Timeout | undefined
+
+ constructor({ maxBufferSize = 65536, interval }) {
+ if (!interval) {
+ throw new TypeError('"interval" is required')
+ }
+
+ if (typeof interval !== 'number' || Number.isNaN(interval)) {
+ throw new TypeError('"interval" is not a number')
+ }
+
+ if (interval < 1) {
+ throw new TypeError('"interval" is not greater than 0')
+ }
+
+ if (typeof maxBufferSize !== 'number' || Number.isNaN(maxBufferSize)) {
+ throw new TypeError('"maxBufferSize" is not a number')
+ }
+
+ if (maxBufferSize < 1) {
+ throw new TypeError('"maxBufferSize" is not greater than 0')
+ }
+
+ this.maxBufferSize = maxBufferSize
+ this.currentPacket = []
+ this.interval = interval
+
+ }
+
+ transform(chunk, controller) {
+ if (this.intervalID) {
+ clearTimeout(this.intervalID)
+ }
+
+ this.pushChunk(chunk, controller)
+
+ // for (let offset = 0; offset < chunk.length; offset++) {
+ // this.currentPacket.push(chunk[offset])
+ // if (this.currentPacket.length >= this.maxBufferSize) {
+ // this.emitPacket(controller)
+ // }
+ // }
+
+ // this.intervalID = setTimeout(this.emitPacket.bind(this), this.interval)
+ this.intervalID = setTimeout(() => this.emitPacket(controller), this.interval)
+ }
+
+ pushChunk(chunk, controller) {
+ if (this.chunks?.length + chunk.length >= this.maxBufferSize) {
+ const offset = this.maxBufferSize - this.chunks?.length
+ this.chunks += chunk.substr(0, offset)
+ this.emitPacket(controller)
+
+ this.pushChunk(chunk.substr(offset), controller)
+ } else {
+ this.chunks += chunk
+ }
+ }
+
+ emitPacket(controller) {
+ if (this.intervalID) {
+ clearTimeout(this.intervalID)
+ }
+
+ if (this.chunks?.length > 0) {
+ controller.enqueue(this.chunks)
+ this.chunks = ''
+ }
+
+ // if (this.currentPacket.length > 0) {
+ // controller.enqueue(this.currentPacket.join(''))
+ // this.chunks = ''
+ // }
+ this.currentPacket = []
+ }
+
+ flush(controller) {
+ this.emitPacket(controller)
+ }
+}
+*/
diff --git a/src/render/views/BD&time/ConversionView/data.ts b/src/render/views/BD&time/ConversionView/data.ts
new file mode 100644
index 0000000..4aaf1d3
--- /dev/null
+++ b/src/render/views/BD&time/ConversionView/data.ts
@@ -0,0 +1,11 @@
+export const labelStyle = {
+ fontSize : '18px',
+ fontWeight: 'bold',
+ marginBottom: '24px',
+}
+
+export const timePickerProps = {
+ actions: null
+}
+
+export const max_timestamp = new Date().getTime()
diff --git a/src/render/views/BD&time/ConversionView/index.ts b/src/render/views/BD&time/ConversionView/index.ts
new file mode 100644
index 0000000..4b68ae6
--- /dev/null
+++ b/src/render/views/BD&time/ConversionView/index.ts
@@ -0,0 +1 @@
+export { default as ConversionView } from './index.vue'
diff --git a/src/render/views/BD&time/ConversionView/index.vue b/src/render/views/BD&time/ConversionView/index.vue
new file mode 100644
index 0000000..10f5510
--- /dev/null
+++ b/src/render/views/BD&time/ConversionView/index.vue
@@ -0,0 +1,83 @@
+
+
+
+
+ {{ zda }}
+
+
+
+
+
+
+ 刷新ZDA
+
+
+ 验 证
+
+
+
+
+
+
+
diff --git a/src/render/views/BD&time/TimingView/data.ts b/src/render/views/BD&time/TimingView/data.ts
new file mode 100644
index 0000000..b82f99d
--- /dev/null
+++ b/src/render/views/BD&time/TimingView/data.ts
@@ -0,0 +1 @@
+export const actions = ['now']
diff --git a/src/render/views/BD&time/TimingView/index.ts b/src/render/views/BD&time/TimingView/index.ts
new file mode 100644
index 0000000..038886b
--- /dev/null
+++ b/src/render/views/BD&time/TimingView/index.ts
@@ -0,0 +1 @@
+export { default as TimingView } from './index.vue'
diff --git a/src/render/views/BD&time/TimingView/index.vue b/src/render/views/BD&time/TimingView/index.vue
new file mode 100644
index 0000000..5c66757
--- /dev/null
+++ b/src/render/views/BD&time/TimingView/index.vue
@@ -0,0 +1,97 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ 授 时
+
+
+ 授 时
+
+
+
+
+
+
+
diff --git a/src/render/views/BDComprehensiveExperimentalPlatform/MapView/disasterInfoView/data.ts b/src/render/views/BDComprehensiveExperimentalPlatform/MapView/disasterInfoView/data.ts
new file mode 100644
index 0000000..601c1da
--- /dev/null
+++ b/src/render/views/BDComprehensiveExperimentalPlatform/MapView/disasterInfoView/data.ts
@@ -0,0 +1,3 @@
+export const type = 'disaster'
+// e.g.:@R,0000001,2023-03-31,9:00:00,A,40.236154,N,114.231546,E,0*
+export const regExp = /^@R,.*,.*,.*,[AV],.*,[NS]?,.*,[EW]?,[01]?\*$/
diff --git a/src/render/views/BDComprehensiveExperimentalPlatform/MapView/disasterInfoView/index.ts b/src/render/views/BDComprehensiveExperimentalPlatform/MapView/disasterInfoView/index.ts
new file mode 100644
index 0000000..ee3d059
--- /dev/null
+++ b/src/render/views/BDComprehensiveExperimentalPlatform/MapView/disasterInfoView/index.ts
@@ -0,0 +1,2 @@
+export { default as disasterInfoView } from './index.vue';
+export { regExp as disasterRegExp, type as disasterType} from './data';
diff --git a/src/render/views/BDComprehensiveExperimentalPlatform/MapView/disasterInfoView/index.vue b/src/render/views/BDComprehensiveExperimentalPlatform/MapView/disasterInfoView/index.vue
new file mode 100644
index 0000000..7ad4ed7
--- /dev/null
+++ b/src/render/views/BDComprehensiveExperimentalPlatform/MapView/disasterInfoView/index.vue
@@ -0,0 +1,68 @@
+
+
+
+ {{ longitude }}
+
+
+ {{ latitude }}
+
+
+ {{ date }}
+
+
+ {{ time }}
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/render/views/BDComprehensiveExperimentalPlatform/MapView/elevationInfoView/data.ts b/src/render/views/BDComprehensiveExperimentalPlatform/MapView/elevationInfoView/data.ts
new file mode 100644
index 0000000..6482481
--- /dev/null
+++ b/src/render/views/BDComprehensiveExperimentalPlatform/MapView/elevationInfoView/data.ts
@@ -0,0 +1,2 @@
+export const type = 'elevation'
+export const regExp = /^@O,.*,.*,.*,[AV],.*,[NS]?,.*,[EW]?,.*\*$/
diff --git a/src/render/views/BDComprehensiveExperimentalPlatform/MapView/elevationInfoView/index.ts b/src/render/views/BDComprehensiveExperimentalPlatform/MapView/elevationInfoView/index.ts
new file mode 100644
index 0000000..6d6badc
--- /dev/null
+++ b/src/render/views/BDComprehensiveExperimentalPlatform/MapView/elevationInfoView/index.ts
@@ -0,0 +1,2 @@
+export { default as elevationInfoView } from './index.vue';
+export { regExp as elevationRegExp, type as elevationType } from './data';
diff --git a/src/render/views/BDComprehensiveExperimentalPlatform/MapView/elevationInfoView/index.vue b/src/render/views/BDComprehensiveExperimentalPlatform/MapView/elevationInfoView/index.vue
new file mode 100644
index 0000000..15d8e31
--- /dev/null
+++ b/src/render/views/BDComprehensiveExperimentalPlatform/MapView/elevationInfoView/index.vue
@@ -0,0 +1,46 @@
+
+
+
+ {{ longitude }}
+
+
+ {{ latitude }}
+
+
+ {{ date }}
+
+
+ {{ time }}
+
+
+ {{ elevation }} m
+
+
+
+
+
diff --git a/src/render/views/BDComprehensiveExperimentalPlatform/MapView/index.ts b/src/render/views/BDComprehensiveExperimentalPlatform/MapView/index.ts
new file mode 100644
index 0000000..22bfefd
--- /dev/null
+++ b/src/render/views/BDComprehensiveExperimentalPlatform/MapView/index.ts
@@ -0,0 +1 @@
+export { default as MapView } from './index.vue'
diff --git a/src/render/views/BDComprehensiveExperimentalPlatform/MapView/index.vue b/src/render/views/BDComprehensiveExperimentalPlatform/MapView/index.vue
new file mode 100644
index 0000000..b6f31e4
--- /dev/null
+++ b/src/render/views/BDComprehensiveExperimentalPlatform/MapView/index.vue
@@ -0,0 +1,114 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/src/render/views/BDComprehensiveExperimentalPlatform/MapView/velocityInfoView/data.ts b/src/render/views/BDComprehensiveExperimentalPlatform/MapView/velocityInfoView/data.ts
new file mode 100644
index 0000000..b2ff658
--- /dev/null
+++ b/src/render/views/BDComprehensiveExperimentalPlatform/MapView/velocityInfoView/data.ts
@@ -0,0 +1,2 @@
+export const type = 'velocity'
+export const regExp = /^@V,.*,.*,.*,[AV],.*,[NS]?,.*,[EW]?,.*\*$/
diff --git a/src/render/views/BDComprehensiveExperimentalPlatform/MapView/velocityInfoView/index.ts b/src/render/views/BDComprehensiveExperimentalPlatform/MapView/velocityInfoView/index.ts
new file mode 100644
index 0000000..3a46710
--- /dev/null
+++ b/src/render/views/BDComprehensiveExperimentalPlatform/MapView/velocityInfoView/index.ts
@@ -0,0 +1,2 @@
+export { default as velocityInfoView } from './index.vue';
+export { regExp as velocityRegExp, type as velocityType } from './data';
diff --git a/src/render/views/BDComprehensiveExperimentalPlatform/MapView/velocityInfoView/index.vue b/src/render/views/BDComprehensiveExperimentalPlatform/MapView/velocityInfoView/index.vue
new file mode 100644
index 0000000..5e6d9c9
--- /dev/null
+++ b/src/render/views/BDComprehensiveExperimentalPlatform/MapView/velocityInfoView/index.vue
@@ -0,0 +1,46 @@
+
+
+
+ {{ longitude }}
+
+
+ {{ latitude }}
+
+
+ {{ date }}
+
+
+ {{ time }}
+
+
+ {{ velocity }} m/s
+
+
+
+
+
diff --git a/src/render/views/BDComprehensiveExperimentalPlatform/MapView/weatherInfoView/data.ts b/src/render/views/BDComprehensiveExperimentalPlatform/MapView/weatherInfoView/data.ts
new file mode 100644
index 0000000..bb7d9a7
--- /dev/null
+++ b/src/render/views/BDComprehensiveExperimentalPlatform/MapView/weatherInfoView/data.ts
@@ -0,0 +1,3 @@
+export const type = 'weather'
+// e.g.:@W,0000001,2023-03-31,9:00:00,A,40.236154,N,114.231546,E,20,68,101,39*
+export const regExp = /^@W,.*,.*,.*,[AV],.*,[NS]?,.*,[EW]?,.*,.*,.*,.*\*$/
diff --git a/src/render/views/BDComprehensiveExperimentalPlatform/MapView/weatherInfoView/index.ts b/src/render/views/BDComprehensiveExperimentalPlatform/MapView/weatherInfoView/index.ts
new file mode 100644
index 0000000..af1495d
--- /dev/null
+++ b/src/render/views/BDComprehensiveExperimentalPlatform/MapView/weatherInfoView/index.ts
@@ -0,0 +1,2 @@
+export { default as weatherInfoView } from './index.vue';
+export { regExp as weatherRegExp, type as weatherType } from './data';
diff --git a/src/render/views/BDComprehensiveExperimentalPlatform/MapView/weatherInfoView/index.vue b/src/render/views/BDComprehensiveExperimentalPlatform/MapView/weatherInfoView/index.vue
new file mode 100644
index 0000000..a3e8001
--- /dev/null
+++ b/src/render/views/BDComprehensiveExperimentalPlatform/MapView/weatherInfoView/index.vue
@@ -0,0 +1,66 @@
+
+
+
+ {{ longitude }}
+
+
+ {{ latitude }}
+
+
+ {{ date }}
+
+
+ {{ time }}
+
+
+ {{ temperature }} ℃
+
+
+ {{ humidity }} %
+
+
+ {{ pressure }} kPa
+
+
+ {{ pm25 }} μg/m³
+
+
+
+
+
diff --git a/src/render/views/BDDataAnalysisPlatform/BasicInfoView/index.ts b/src/render/views/BDDataAnalysisPlatform/BasicInfoView/index.ts
new file mode 100644
index 0000000..f06cd89
--- /dev/null
+++ b/src/render/views/BDDataAnalysisPlatform/BasicInfoView/index.ts
@@ -0,0 +1 @@
+export { default as BasicInfoView } from './index.vue';
diff --git a/src/render/views/BDDataAnalysisPlatform/BasicInfoView/index.vue b/src/render/views/BDDataAnalysisPlatform/BasicInfoView/index.vue
new file mode 100644
index 0000000..256006f
--- /dev/null
+++ b/src/render/views/BDDataAnalysisPlatform/BasicInfoView/index.vue
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+
+
+
+ {{ longitude }}
+
+
+ {{ latitude }}
+
+
+ {{ altitude }}
+
+
+
+
+
+
+
diff --git a/src/render/views/BDDataAnalysisPlatform/MapView.vue b/src/render/views/BDDataAnalysisPlatform/MapView.vue
new file mode 100644
index 0000000..7500372
--- /dev/null
+++ b/src/render/views/BDDataAnalysisPlatform/MapView.vue
@@ -0,0 +1,23 @@
+
+
+
+
+
diff --git a/src/render/views/BDDataAnalysisPlatform/PlanisphereView/data.ts b/src/render/views/BDDataAnalysisPlatform/PlanisphereView/data.ts
new file mode 100644
index 0000000..84e6fef
--- /dev/null
+++ b/src/render/views/BDDataAnalysisPlatform/PlanisphereView/data.ts
@@ -0,0 +1,58 @@
+import { reactive } from "vue"
+
+export const active_color = '#e5323e'
+export const unactive_color = '#9ca3af'
+
+export const option = reactive({
+ polar: {
+ radius: '85%'
+ },
+ angleAxis: {
+ min: 0,
+ max: 360,
+ interval: 45,
+ axisTick: {
+ show: false
+ },
+ axisLabel: {
+ fontSize: 24,
+ formatter: function (value: number) {
+ switch (value)
+ {
+ case 0 : return '北'
+ case 90 : return '东'
+ case 180 : return '南'
+ case 270 : return '西'
+ }
+ },
+ }
+ },
+ radiusAxis: {
+ min: -90,
+ max: 0,
+ interval: 30,
+ axisLabel: {
+ rotate: -25,
+ showMinLabel: false,
+ showMaxLabel: false,
+ verticalAlign: 'bottom',
+ formatter: function(value: number){
+ return Math.abs(value)
+ },
+ }
+ },
+ series: [{
+ coordinateSystem: 'polar',
+ type: 'scatter',
+ symbolSize: 32,
+ label: {
+ show: true,
+ formatter: '{@[2]}'
+ },
+ itemStyle: {
+ color: ({ value }) => {
+ return value[3] ? active_color : unactive_color
+ }
+ },
+ }]
+})
\ No newline at end of file
diff --git a/src/render/views/BDDataAnalysisPlatform/PlanisphereView/index.ts b/src/render/views/BDDataAnalysisPlatform/PlanisphereView/index.ts
new file mode 100644
index 0000000..378ab3d
--- /dev/null
+++ b/src/render/views/BDDataAnalysisPlatform/PlanisphereView/index.ts
@@ -0,0 +1 @@
+export { default as PlanisphereView } from './index.vue';
diff --git a/src/render/views/BDDataAnalysisPlatform/PlanisphereView/index.vue b/src/render/views/BDDataAnalysisPlatform/PlanisphereView/index.vue
new file mode 100644
index 0000000..97b5526
--- /dev/null
+++ b/src/render/views/BDDataAnalysisPlatform/PlanisphereView/index.vue
@@ -0,0 +1,38 @@
+
+
+
+
+
+
+
diff --git a/src/render/views/BDDataAnalysisPlatform/SNRView/data.ts b/src/render/views/BDDataAnalysisPlatform/SNRView/data.ts
new file mode 100644
index 0000000..21dbcde
--- /dev/null
+++ b/src/render/views/BDDataAnalysisPlatform/SNRView/data.ts
@@ -0,0 +1,45 @@
+import { reactive } from "vue"
+import { graphic } from "echarts/core"
+
+const active_color = new graphic.LinearGradient(
+ 0, 1, 0, 0,
+ [
+ {offset: 0.3, color: '#83bff6'},
+ {offset: 1, color: '#188df0'}
+ ]
+)
+const unactive_color = '#9ca3af'
+
+export const option = reactive({
+ grid: {
+ containLabel: true
+ },
+ xAxis: {
+ type: 'category',
+ axisTick: { show: false },
+ axisLine: { show: false },
+ axisLabel: { color: 'black' }
+ },
+ yAxis: {
+ max: 60,
+ axisLabel: {
+ fontSize: 24
+ }
+ },
+ series: [{
+ type: 'bar',
+ barMaxWidth: '50%',
+ label: {
+ show: true,
+ position: 'top',
+ formatter: function ({ value }) {
+ return !value || value[1] === 0 ? '' : value[1]
+ }
+ },
+ itemStyle: {
+ color: ({ value }) => {
+ return value[2] ? active_color : unactive_color
+ }
+ }
+ }]
+})
\ No newline at end of file
diff --git a/src/render/views/BDDataAnalysisPlatform/SNRView/index.ts b/src/render/views/BDDataAnalysisPlatform/SNRView/index.ts
new file mode 100644
index 0000000..11b2b8d
--- /dev/null
+++ b/src/render/views/BDDataAnalysisPlatform/SNRView/index.ts
@@ -0,0 +1 @@
+export { default as SNRView } from './index.vue';
diff --git a/src/render/views/BDDataAnalysisPlatform/SNRView/index.vue b/src/render/views/BDDataAnalysisPlatform/SNRView/index.vue
new file mode 100644
index 0000000..ec1be81
--- /dev/null
+++ b/src/render/views/BDDataAnalysisPlatform/SNRView/index.vue
@@ -0,0 +1,44 @@
+
+
+
+
+
+
+
diff --git a/src/render/views/BDMeteorologicalDataDisplayPlatform/MapView/MeteorologicalDataView.vue b/src/render/views/BDMeteorologicalDataDisplayPlatform/MapView/MeteorologicalDataView.vue
new file mode 100644
index 0000000..438db42
--- /dev/null
+++ b/src/render/views/BDMeteorologicalDataDisplayPlatform/MapView/MeteorologicalDataView.vue
@@ -0,0 +1,53 @@
+
+ 小小气象站
+
+
+ {{ date }}
+
+
+ {{ time }}
+
+
+ {{ temperature }} ℃
+
+
+ {{ humidity }} %
+
+
+ {{ pressure }} kPa
+
+
+ {{ pm25 }} μg/m³
+
+
+
+
+
diff --git a/src/render/views/BDMeteorologicalDataDisplayPlatform/MapView/index.ts b/src/render/views/BDMeteorologicalDataDisplayPlatform/MapView/index.ts
new file mode 100644
index 0000000..22bfefd
--- /dev/null
+++ b/src/render/views/BDMeteorologicalDataDisplayPlatform/MapView/index.ts
@@ -0,0 +1 @@
+export { default as MapView } from './index.vue'
diff --git a/src/render/views/BDMeteorologicalDataDisplayPlatform/MapView/index.vue b/src/render/views/BDMeteorologicalDataDisplayPlatform/MapView/index.vue
new file mode 100644
index 0000000..b676d02
--- /dev/null
+++ b/src/render/views/BDMeteorologicalDataDisplayPlatform/MapView/index.vue
@@ -0,0 +1,63 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/src/render/views/BDMeteorologicalDataProtocol/CorrectAnswerView.vue b/src/render/views/BDMeteorologicalDataProtocol/CorrectAnswerView.vue
new file mode 100644
index 0000000..c098ec5
--- /dev/null
+++ b/src/render/views/BDMeteorologicalDataProtocol/CorrectAnswerView.vue
@@ -0,0 +1,85 @@
+
+
+
+
+
+ {{ data.date }}
+
+
+ {{ data.time }}
+
+
+
+
+
+
+ {{ data.lon ? data.lon + '° ' + data.uLon : '' }}
+
+
+ {{ data.lat ? data.lat + '° ' + data.uLat : '' }}
+
+
+
+
+
+
+ {{ data.tem ? data.tem + ' ℃' : '' }}
+
+
+ {{ data.hum ? data.hum + ' %' : '' }}
+
+
+ {{ data.kPa ? data.kPa + ' KPa' : '' }}
+
+
+ {{ data.pm25 ? data.pm25 + ' μg/m³°' : '' }}
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/render/views/BDMeteorologicalDataProtocol/DataFormView/data.ts b/src/render/views/BDMeteorologicalDataProtocol/DataFormView/data.ts
new file mode 100644
index 0000000..b1701b8
--- /dev/null
+++ b/src/render/views/BDMeteorologicalDataProtocol/DataFormView/data.ts
@@ -0,0 +1,7 @@
+export const itemStyle = {
+ flex: '1 1 30%',
+}
+
+export const timePickerProps = {
+ actions: null
+}
diff --git a/src/render/views/BDMeteorologicalDataProtocol/DataFormView/index.ts b/src/render/views/BDMeteorologicalDataProtocol/DataFormView/index.ts
new file mode 100644
index 0000000..3044866
--- /dev/null
+++ b/src/render/views/BDMeteorologicalDataProtocol/DataFormView/index.ts
@@ -0,0 +1 @@
+export { default as DataFormView } from './index.vue'
diff --git a/src/render/views/BDMeteorologicalDataProtocol/DataFormView/index.vue b/src/render/views/BDMeteorologicalDataProtocol/DataFormView/index.vue
new file mode 100644
index 0000000..58d8995
--- /dev/null
+++ b/src/render/views/BDMeteorologicalDataProtocol/DataFormView/index.vue
@@ -0,0 +1,307 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ °
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ °
+
+
+
+
+
+
+
+
+
+
+
+ ℃
+
+
+
+
+
+
+ %
+
+
+
+
+
+
+ KPa
+
+
+
+
+
+
+ μg/m³
+
+
+
+
+
+
+
+
+ 验证结果
+
+
+
+
+
+
+
diff --git a/src/render/views/BDMeteorologicalDataProtocol/DataProtocolView.vue b/src/render/views/BDMeteorologicalDataProtocol/DataProtocolView.vue
new file mode 100644
index 0000000..3a7130e
--- /dev/null
+++ b/src/render/views/BDMeteorologicalDataProtocol/DataProtocolView.vue
@@ -0,0 +1,55 @@
+
+
+ 数据协议:
+ {{ protocol }}
+ 刷 新
+
+
+
+
+
\ No newline at end of file
diff --git a/src/render/views/BDPositionTrackRetracing/InteractionView.vue b/src/render/views/BDPositionTrackRetracing/InteractionView.vue
new file mode 100644
index 0000000..cb3baed
--- /dev/null
+++ b/src/render/views/BDPositionTrackRetracing/InteractionView.vue
@@ -0,0 +1,49 @@
+
+
+
+ 读取轨迹数据
+ 播放轨迹动画
+ 清除轨迹数据
+
+
+
+ 删除前
+
+ 个点
+ 删除
+
+
+
+
+
+
+
diff --git a/src/render/views/BDPositionTrackRetracing/MapView.vue b/src/render/views/BDPositionTrackRetracing/MapView.vue
new file mode 100644
index 0000000..27bd219
--- /dev/null
+++ b/src/render/views/BDPositionTrackRetracing/MapView.vue
@@ -0,0 +1,77 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/src/render/views/BDSatellite3DPostureControl/SatelliteModelView/index copy.vue b/src/render/views/BDSatellite3DPostureControl/SatelliteModelView/index copy.vue
new file mode 100644
index 0000000..cdb3c40
--- /dev/null
+++ b/src/render/views/BDSatellite3DPostureControl/SatelliteModelView/index copy.vue
@@ -0,0 +1,347 @@
+
+
+
+
+
+
+
diff --git a/src/render/views/BDSatellite3DPostureControl/SatelliteModelView/index.ts b/src/render/views/BDSatellite3DPostureControl/SatelliteModelView/index.ts
new file mode 100644
index 0000000..99c79b9
--- /dev/null
+++ b/src/render/views/BDSatellite3DPostureControl/SatelliteModelView/index.ts
@@ -0,0 +1 @@
+export { default as SatelliteModelView } from './index.vue';
diff --git a/src/render/views/BDSatellite3DPostureControl/SatelliteModelView/index.vue b/src/render/views/BDSatellite3DPostureControl/SatelliteModelView/index.vue
new file mode 100644
index 0000000..2482d76
--- /dev/null
+++ b/src/render/views/BDSatellite3DPostureControl/SatelliteModelView/index.vue
@@ -0,0 +1,218 @@
+
+
+
+
+
diff --git a/src/render/views/BDSatelliteAttitudeControl/RemoteControlView/index.ts b/src/render/views/BDSatelliteAttitudeControl/RemoteControlView/index.ts
new file mode 100644
index 0000000..806071d
--- /dev/null
+++ b/src/render/views/BDSatelliteAttitudeControl/RemoteControlView/index.ts
@@ -0,0 +1 @@
+export { default as RemoteControlView } from './index.vue'
diff --git a/src/render/views/BDSatelliteAttitudeControl/RemoteControlView/index.vue b/src/render/views/BDSatelliteAttitudeControl/RemoteControlView/index.vue
new file mode 100644
index 0000000..07c3ab2
--- /dev/null
+++ b/src/render/views/BDSatelliteAttitudeControl/RemoteControlView/index.vue
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
diff --git a/src/render/views/BDSatelliteAttitudeControl/components/MotorControlView/data.ts b/src/render/views/BDSatelliteAttitudeControl/components/MotorControlView/data.ts
new file mode 100644
index 0000000..db96cbe
--- /dev/null
+++ b/src/render/views/BDSatelliteAttitudeControl/components/MotorControlView/data.ts
@@ -0,0 +1,3 @@
+export const MAX = 255
+
+export const MIN = 180
diff --git a/src/render/views/BDSatelliteAttitudeControl/components/MotorControlView/index.ts b/src/render/views/BDSatelliteAttitudeControl/components/MotorControlView/index.ts
new file mode 100644
index 0000000..5e763a9
--- /dev/null
+++ b/src/render/views/BDSatelliteAttitudeControl/components/MotorControlView/index.ts
@@ -0,0 +1 @@
+export { default as MotorControlView } from './index.vue'
diff --git a/src/render/views/BDSatelliteAttitudeControl/components/MotorControlView/index.vue b/src/render/views/BDSatelliteAttitudeControl/components/MotorControlView/index.vue
new file mode 100644
index 0000000..69136c4
--- /dev/null
+++ b/src/render/views/BDSatelliteAttitudeControl/components/MotorControlView/index.vue
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+
+
+
+ 设置 {{ props.index + 1 }} 号电机速度
+
+
+
+
+
+
+
diff --git a/src/render/views/BDSatelliteParameterMonitoringPlatform/AttitudeParameterView/index.ts b/src/render/views/BDSatelliteParameterMonitoringPlatform/AttitudeParameterView/index.ts
new file mode 100644
index 0000000..07da4ab
--- /dev/null
+++ b/src/render/views/BDSatelliteParameterMonitoringPlatform/AttitudeParameterView/index.ts
@@ -0,0 +1 @@
+export { default as AttitudeParameterView } from './index.vue';
diff --git a/src/render/views/BDSatelliteParameterMonitoringPlatform/AttitudeParameterView/index.vue b/src/render/views/BDSatelliteParameterMonitoringPlatform/AttitudeParameterView/index.vue
new file mode 100644
index 0000000..4881cb1
--- /dev/null
+++ b/src/render/views/BDSatelliteParameterMonitoringPlatform/AttitudeParameterView/index.vue
@@ -0,0 +1,96 @@
+
+
+
+
+
+ {{ x_angular_acceleration }}
+
+
+
+
+ {{ y_angular_acceleration }}
+
+
+
+
+ {{ z_angular_acceleration }}
+
+
+
+
+ {{ x_axis_acceleration }}
+
+
+
+
+ {{ y_axis_acceleration }}
+
+
+
+
+ {{ z_axis_acceleration }}
+
+
+
+
+
+
+
+
+
+
diff --git a/src/render/views/BDSatelliteParameterMonitoringPlatform/ParameterMonitoringView/index.ts b/src/render/views/BDSatelliteParameterMonitoringPlatform/ParameterMonitoringView/index.ts
new file mode 100644
index 0000000..e9bcce8
--- /dev/null
+++ b/src/render/views/BDSatelliteParameterMonitoringPlatform/ParameterMonitoringView/index.ts
@@ -0,0 +1 @@
+export { default as ParameterMonitoringView } from './index.vue'
diff --git a/src/render/views/BDSatelliteParameterMonitoringPlatform/ParameterMonitoringView/index.vue b/src/render/views/BDSatelliteParameterMonitoringPlatform/ParameterMonitoringView/index.vue
new file mode 100644
index 0000000..da7c8f9
--- /dev/null
+++ b/src/render/views/BDSatelliteParameterMonitoringPlatform/ParameterMonitoringView/index.vue
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
diff --git a/src/render/views/BDSatelliteParameterMonitoringPlatform/SatelliteTimeView/index.ts b/src/render/views/BDSatelliteParameterMonitoringPlatform/SatelliteTimeView/index.ts
new file mode 100644
index 0000000..333bc2e
--- /dev/null
+++ b/src/render/views/BDSatelliteParameterMonitoringPlatform/SatelliteTimeView/index.ts
@@ -0,0 +1 @@
+export { default as SatelliteTimeView } from './index.vue';
diff --git a/src/render/views/BDSatelliteParameterMonitoringPlatform/SatelliteTimeView/index.vue b/src/render/views/BDSatelliteParameterMonitoringPlatform/SatelliteTimeView/index.vue
new file mode 100644
index 0000000..6746ded
--- /dev/null
+++ b/src/render/views/BDSatelliteParameterMonitoringPlatform/SatelliteTimeView/index.vue
@@ -0,0 +1,66 @@
+
+
+
+
+
+ {{ date }}
+
+
+
+
+ {{ time }}
+
+
+
+
+
+
+
+
+
+
diff --git a/src/render/views/BDSatelliteParameterMonitoringPlatform/StateParameterView/index.ts b/src/render/views/BDSatelliteParameterMonitoringPlatform/StateParameterView/index.ts
new file mode 100644
index 0000000..d1812c6
--- /dev/null
+++ b/src/render/views/BDSatelliteParameterMonitoringPlatform/StateParameterView/index.ts
@@ -0,0 +1 @@
+export { default as StateParameterView } from './index.vue';
diff --git a/src/render/views/BDSatelliteParameterMonitoringPlatform/StateParameterView/index.vue b/src/render/views/BDSatelliteParameterMonitoringPlatform/StateParameterView/index.vue
new file mode 100644
index 0000000..4a89e7d
--- /dev/null
+++ b/src/render/views/BDSatelliteParameterMonitoringPlatform/StateParameterView/index.vue
@@ -0,0 +1,73 @@
+
+
+
+
+
+ {{ solar_panel_one_voltage }}
+
+
+
+
+ {{ solar_panel_two_voltage }}
+
+
+
+
+ {{ temperature }}
+
+
+
+
+
+
+
+
+
+
diff --git a/src/render/views/BDSatelliteTimeConfiguration/CustomTimingView/data.ts b/src/render/views/BDSatelliteTimeConfiguration/CustomTimingView/data.ts
new file mode 100644
index 0000000..b6e5fe8
--- /dev/null
+++ b/src/render/views/BDSatelliteTimeConfiguration/CustomTimingView/data.ts
@@ -0,0 +1,5 @@
+export const actions = null
+
+export const timePickerProps = {
+ actions: null
+}
diff --git a/src/render/views/BDSatelliteTimeConfiguration/CustomTimingView/index.ts b/src/render/views/BDSatelliteTimeConfiguration/CustomTimingView/index.ts
new file mode 100644
index 0000000..30d3c17
--- /dev/null
+++ b/src/render/views/BDSatelliteTimeConfiguration/CustomTimingView/index.ts
@@ -0,0 +1 @@
+export { default as CustomTimingView } from './index.vue';
diff --git a/src/render/views/BDSatelliteTimeConfiguration/CustomTimingView/index.vue b/src/render/views/BDSatelliteTimeConfiguration/CustomTimingView/index.vue
new file mode 100644
index 0000000..808a7ff
--- /dev/null
+++ b/src/render/views/BDSatelliteTimeConfiguration/CustomTimingView/index.vue
@@ -0,0 +1,55 @@
+
+
+
+
+
+ 通过控件给卫星授时
+
+
+
+
+
+
+
diff --git a/src/render/views/BDSatelliteTimeConfiguration/SystemTimingView/data.ts b/src/render/views/BDSatelliteTimeConfiguration/SystemTimingView/data.ts
new file mode 100644
index 0000000..46e9500
--- /dev/null
+++ b/src/render/views/BDSatelliteTimeConfiguration/SystemTimingView/data.ts
@@ -0,0 +1 @@
+export const weekdays = ['星期天', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六']
diff --git a/src/render/views/BDSatelliteTimeConfiguration/SystemTimingView/index.ts b/src/render/views/BDSatelliteTimeConfiguration/SystemTimingView/index.ts
new file mode 100644
index 0000000..a4fb3a8
--- /dev/null
+++ b/src/render/views/BDSatelliteTimeConfiguration/SystemTimingView/index.ts
@@ -0,0 +1 @@
+export { default as SystemTimingView } from './index.vue';
diff --git a/src/render/views/BDSatelliteTimeConfiguration/SystemTimingView/index.vue b/src/render/views/BDSatelliteTimeConfiguration/SystemTimingView/index.vue
new file mode 100644
index 0000000..9845fc2
--- /dev/null
+++ b/src/render/views/BDSatelliteTimeConfiguration/SystemTimingView/index.vue
@@ -0,0 +1,63 @@
+
+
+
+
+
+
+
+ {{ weekday }}
+
+
+
+
+ 通过控件给卫星授时
+
+
+
+
+
+
+
diff --git a/src/render/views/ClockConfig/AnimationConfigView/data.ts b/src/render/views/ClockConfig/AnimationConfigView/data.ts
new file mode 100644
index 0000000..cfb963a
--- /dev/null
+++ b/src/render/views/ClockConfig/AnimationConfigView/data.ts
@@ -0,0 +1,13 @@
+export const animationDurationOptions = [10, 100, 1000].map(
+ (v) => ({
+ label: v,
+ value: v
+ })
+)
+
+export const dateDisplayDurationOptions = [0, 1, 3, 5].map(
+ (v) => ({
+ label: v,
+ value: v
+ })
+)
diff --git a/src/render/views/ClockConfig/AnimationConfigView/index.ts b/src/render/views/ClockConfig/AnimationConfigView/index.ts
new file mode 100644
index 0000000..f900ea1
--- /dev/null
+++ b/src/render/views/ClockConfig/AnimationConfigView/index.ts
@@ -0,0 +1 @@
+export { default as AnimationConfigView } from './index.vue'
diff --git a/src/render/views/ClockConfig/AnimationConfigView/index.vue b/src/render/views/ClockConfig/AnimationConfigView/index.vue
new file mode 100644
index 0000000..193a914
--- /dev/null
+++ b/src/render/views/ClockConfig/AnimationConfigView/index.vue
@@ -0,0 +1,81 @@
+
+
+
+
+
+
+ 单位:毫秒
+
+
+
+
+
+
+
+ 单位:秒
+
+ 选择0时,将不会自动从日期切换回时间
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/render/views/ClockConfig/GestureRecognitionConfigView/data.ts b/src/render/views/ClockConfig/GestureRecognitionConfigView/data.ts
new file mode 100644
index 0000000..30f9e6f
--- /dev/null
+++ b/src/render/views/ClockConfig/GestureRecognitionConfigView/data.ts
@@ -0,0 +1,22 @@
+export const MAX_DISTANCE = -300
+export const MIN_DISTANCE = -900
+
+export const timeOutOptions = [200, 600, 1000, 1500, 2000].map(
+ (v) => ({
+ label: v,
+ value: v
+ })
+)
+
+export const intervalOptions = [0.5, 1, 2, 3].map(
+ (v) => ({
+ label: v,
+ value: v
+ })
+)
+
+export const eventOptions = [
+ { label: '屏幕向右翻页', value: 0 },
+ { label: '屏幕向左翻页', value: 1 },
+ { label: '显示日期' , value: 2 },
+]
\ No newline at end of file
diff --git a/src/render/views/ClockConfig/GestureRecognitionConfigView/index.ts b/src/render/views/ClockConfig/GestureRecognitionConfigView/index.ts
new file mode 100644
index 0000000..add2f35
--- /dev/null
+++ b/src/render/views/ClockConfig/GestureRecognitionConfigView/index.ts
@@ -0,0 +1 @@
+export { default as GestureRecognitionConfigView } from './index.vue'
diff --git a/src/render/views/ClockConfig/GestureRecognitionConfigView/index.vue b/src/render/views/ClockConfig/GestureRecognitionConfigView/index.vue
new file mode 100644
index 0000000..308db8b
--- /dev/null
+++ b/src/render/views/ClockConfig/GestureRecognitionConfigView/index.vue
@@ -0,0 +1,115 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 单位:毫秒
+
+ 遮挡物离开第一个红外传感器和遮挡第二个红外传感器之间的时间,超过这个时间则不会触发动画效果,建议值: 200
+
+
+
+
+
+
+
+ 单位:秒
+
+ 两次动画之间的时间间隔,小于这个值不会触发动画,建议值: 1
+
+
+
+
+
+
+
+
+
+
+
+
+ 发送手势识别设置命令
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/render/views/ClockConfig/ResetButtonView.vue b/src/render/views/ClockConfig/ResetButtonView.vue
new file mode 100644
index 0000000..e364105
--- /dev/null
+++ b/src/render/views/ClockConfig/ResetButtonView.vue
@@ -0,0 +1,26 @@
+
+
+ 恢复默认设置
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/render/views/ClockConfig/ScreenConfigView/data.ts b/src/render/views/ClockConfig/ScreenConfigView/data.ts
new file mode 100644
index 0000000..0fda6ee
--- /dev/null
+++ b/src/render/views/ClockConfig/ScreenConfigView/data.ts
@@ -0,0 +1,4 @@
+export const count = 10
+
+export const MIN = 0
+export const MAX = 30
diff --git a/src/render/views/ClockConfig/ScreenConfigView/index.ts b/src/render/views/ClockConfig/ScreenConfigView/index.ts
new file mode 100644
index 0000000..cc5ba40
--- /dev/null
+++ b/src/render/views/ClockConfig/ScreenConfigView/index.ts
@@ -0,0 +1 @@
+export { default as ScreenConfigView } from './index.vue'
diff --git a/src/render/views/ClockConfig/ScreenConfigView/index.vue b/src/render/views/ClockConfig/ScreenConfigView/index.vue
new file mode 100644
index 0000000..66bd5ac
--- /dev/null
+++ b/src/render/views/ClockConfig/ScreenConfigView/index.vue
@@ -0,0 +1,87 @@
+
+
+
+ 说明:北斗小时钟可设置10种颜色,10种颜色按照顺序不断切换,按照下方调色板排列顺序,分别设置对应位置的颜色
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 发送亮度设置命令
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/render/views/ClockConfig/SoundDetectionModuleConfigView/data.ts b/src/render/views/ClockConfig/SoundDetectionModuleConfigView/data.ts
new file mode 100644
index 0000000..d20c52d
--- /dev/null
+++ b/src/render/views/ClockConfig/SoundDetectionModuleConfigView/data.ts
@@ -0,0 +1,5 @@
+export const options = [
+ { label: '屏幕向右翻页', value: 0 },
+ { label: '屏幕向左翻页', value: 1 },
+ { label: '显示日期' , value: 2 },
+]
diff --git a/src/render/views/ClockConfig/SoundDetectionModuleConfigView/index.ts b/src/render/views/ClockConfig/SoundDetectionModuleConfigView/index.ts
new file mode 100644
index 0000000..6ad8adc
--- /dev/null
+++ b/src/render/views/ClockConfig/SoundDetectionModuleConfigView/index.ts
@@ -0,0 +1 @@
+export { default as SoundDetectionModuleConfigView } from './index.vue'
diff --git a/src/render/views/ClockConfig/SoundDetectionModuleConfigView/index.vue b/src/render/views/ClockConfig/SoundDetectionModuleConfigView/index.vue
new file mode 100644
index 0000000..7f98d74
--- /dev/null
+++ b/src/render/views/ClockConfig/SoundDetectionModuleConfigView/index.vue
@@ -0,0 +1,46 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/render/views/DistanceCalculationTool/PointInfoInputFormView/data.ts b/src/render/views/DistanceCalculationTool/PointInfoInputFormView/data.ts
new file mode 100644
index 0000000..b9e6db0
--- /dev/null
+++ b/src/render/views/DistanceCalculationTool/PointInfoInputFormView/data.ts
@@ -0,0 +1,4 @@
+export const MAX_LNG = 180
+export const MIN_LNG = -180
+export const MAX_LAT = 90
+export const MIN_LAT = -90
diff --git a/src/render/views/DistanceCalculationTool/PointInfoInputFormView/index.ts b/src/render/views/DistanceCalculationTool/PointInfoInputFormView/index.ts
new file mode 100644
index 0000000..47e9399
--- /dev/null
+++ b/src/render/views/DistanceCalculationTool/PointInfoInputFormView/index.ts
@@ -0,0 +1 @@
+export { default as PointInfoInputFormView } from './index.vue'
diff --git a/src/render/views/DistanceCalculationTool/PointInfoInputFormView/index.vue b/src/render/views/DistanceCalculationTool/PointInfoInputFormView/index.vue
new file mode 100644
index 0000000..54092ed
--- /dev/null
+++ b/src/render/views/DistanceCalculationTool/PointInfoInputFormView/index.vue
@@ -0,0 +1,174 @@
+
+
+
+
+
+
+
+ °
+
+
+
+
+
+
+ °
+
+
+
+
+
+
+
+
+
+
+ °
+
+
+
+
+
+
+ °
+
+
+
+
+
+
+
+ 计算
+ 清除
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/render/views/DistanceCalculationTool/ResultView.vue b/src/render/views/DistanceCalculationTool/ResultView.vue
new file mode 100644
index 0000000..e0f6f98
--- /dev/null
+++ b/src/render/views/DistanceCalculationTool/ResultView.vue
@@ -0,0 +1,36 @@
+
+ 两点相距{{distance}}米
+
+
+
+
+
diff --git a/src/render/views/ElectronicScreenDesign/ClearButtonView.vue b/src/render/views/ElectronicScreenDesign/ClearButtonView.vue
new file mode 100644
index 0000000..db714e9
--- /dev/null
+++ b/src/render/views/ElectronicScreenDesign/ClearButtonView.vue
@@ -0,0 +1,24 @@
+
+ 清理屏幕
+
+
+
diff --git a/src/render/views/ElectronicScreenDesign/ColorPickerView.vue b/src/render/views/ElectronicScreenDesign/ColorPickerView.vue
new file mode 100644
index 0000000..a846204
--- /dev/null
+++ b/src/render/views/ElectronicScreenDesign/ColorPickerView.vue
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/render/views/ElectronicScreenDesign/LEDPanelView/components/LED.vue b/src/render/views/ElectronicScreenDesign/LEDPanelView/components/LED.vue
new file mode 100644
index 0000000..820a0e6
--- /dev/null
+++ b/src/render/views/ElectronicScreenDesign/LEDPanelView/components/LED.vue
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/render/views/ElectronicScreenDesign/LEDPanelView/data.ts b/src/render/views/ElectronicScreenDesign/LEDPanelView/data.ts
new file mode 100644
index 0000000..43cef52
--- /dev/null
+++ b/src/render/views/ElectronicScreenDesign/LEDPanelView/data.ts
@@ -0,0 +1 @@
+export const ROWS = 8, COLS = 32
diff --git a/src/render/views/ElectronicScreenDesign/LEDPanelView/index.ts b/src/render/views/ElectronicScreenDesign/LEDPanelView/index.ts
new file mode 100644
index 0000000..5be0210
--- /dev/null
+++ b/src/render/views/ElectronicScreenDesign/LEDPanelView/index.ts
@@ -0,0 +1 @@
+export { default as LEDPanelView } from './index.vue'
diff --git a/src/render/views/ElectronicScreenDesign/LEDPanelView/index.vue b/src/render/views/ElectronicScreenDesign/LEDPanelView/index.vue
new file mode 100644
index 0000000..fa958a6
--- /dev/null
+++ b/src/render/views/ElectronicScreenDesign/LEDPanelView/index.vue
@@ -0,0 +1,56 @@
+
+
+
+
+
+
+
+
+
diff --git a/src/render/views/FontDesign/DotMatrixScreenDisplayView/LEDPanelView/components/LED.vue b/src/render/views/FontDesign/DotMatrixScreenDisplayView/LEDPanelView/components/LED.vue
new file mode 100644
index 0000000..1c1bdf3
--- /dev/null
+++ b/src/render/views/FontDesign/DotMatrixScreenDisplayView/LEDPanelView/components/LED.vue
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/render/views/FontDesign/DotMatrixScreenDisplayView/LEDPanelView/data.ts b/src/render/views/FontDesign/DotMatrixScreenDisplayView/LEDPanelView/data.ts
new file mode 100644
index 0000000..43cef52
--- /dev/null
+++ b/src/render/views/FontDesign/DotMatrixScreenDisplayView/LEDPanelView/data.ts
@@ -0,0 +1 @@
+export const ROWS = 8, COLS = 32
diff --git a/src/render/views/FontDesign/DotMatrixScreenDisplayView/LEDPanelView/index.ts b/src/render/views/FontDesign/DotMatrixScreenDisplayView/LEDPanelView/index.ts
new file mode 100644
index 0000000..5be0210
--- /dev/null
+++ b/src/render/views/FontDesign/DotMatrixScreenDisplayView/LEDPanelView/index.ts
@@ -0,0 +1 @@
+export { default as LEDPanelView } from './index.vue'
diff --git a/src/render/views/FontDesign/DotMatrixScreenDisplayView/LEDPanelView/index.vue b/src/render/views/FontDesign/DotMatrixScreenDisplayView/LEDPanelView/index.vue
new file mode 100644
index 0000000..79c369c
--- /dev/null
+++ b/src/render/views/FontDesign/DotMatrixScreenDisplayView/LEDPanelView/index.vue
@@ -0,0 +1,62 @@
+
+
+
+
+
+
+
+
+
diff --git a/src/render/views/FontDesign/DotMatrixScreenDisplayView/index.ts b/src/render/views/FontDesign/DotMatrixScreenDisplayView/index.ts
new file mode 100644
index 0000000..aeb741b
--- /dev/null
+++ b/src/render/views/FontDesign/DotMatrixScreenDisplayView/index.ts
@@ -0,0 +1 @@
+export { default as DotMatrixScreenDisplayView } from './index.vue'
diff --git a/src/render/views/FontDesign/DotMatrixScreenDisplayView/index.vue b/src/render/views/FontDesign/DotMatrixScreenDisplayView/index.vue
new file mode 100644
index 0000000..28110a3
--- /dev/null
+++ b/src/render/views/FontDesign/DotMatrixScreenDisplayView/index.vue
@@ -0,0 +1,116 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 字库未创建,请先创建字库
+
+
+
+
+ {{ value }}
+
+
+
+
+
+ 清理屏幕
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/render/views/FontDesign/EditFontView/Font35View/DotMatrixScreen35View.vue b/src/render/views/FontDesign/EditFontView/Font35View/DotMatrixScreen35View.vue
new file mode 100644
index 0000000..fb1e40f
--- /dev/null
+++ b/src/render/views/FontDesign/EditFontView/Font35View/DotMatrixScreen35View.vue
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
+
diff --git a/src/render/views/FontDesign/EditFontView/Font35View/index.ts b/src/render/views/FontDesign/EditFontView/Font35View/index.ts
new file mode 100644
index 0000000..ced59a7
--- /dev/null
+++ b/src/render/views/FontDesign/EditFontView/Font35View/index.ts
@@ -0,0 +1 @@
+export { default as Font35View } from './index.vue'
diff --git a/src/render/views/FontDesign/EditFontView/Font35View/index.vue b/src/render/views/FontDesign/EditFontView/Font35View/index.vue
new file mode 100644
index 0000000..fbeaa16
--- /dev/null
+++ b/src/render/views/FontDesign/EditFontView/Font35View/index.vue
@@ -0,0 +1,42 @@
+
+
+
{{ font }}
+
+
+
+
+
+
+
+
+
diff --git a/src/render/views/FontDesign/EditFontView/Font47View/DotMatrixScreen47View.vue b/src/render/views/FontDesign/EditFontView/Font47View/DotMatrixScreen47View.vue
new file mode 100644
index 0000000..50907ff
--- /dev/null
+++ b/src/render/views/FontDesign/EditFontView/Font47View/DotMatrixScreen47View.vue
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
+
diff --git a/src/render/views/FontDesign/EditFontView/Font47View/index.ts b/src/render/views/FontDesign/EditFontView/Font47View/index.ts
new file mode 100644
index 0000000..de524ff
--- /dev/null
+++ b/src/render/views/FontDesign/EditFontView/Font47View/index.ts
@@ -0,0 +1 @@
+export { default as Font47View } from './index.vue'
diff --git a/src/render/views/FontDesign/EditFontView/Font47View/index.vue b/src/render/views/FontDesign/EditFontView/Font47View/index.vue
new file mode 100644
index 0000000..24d9ff7
--- /dev/null
+++ b/src/render/views/FontDesign/EditFontView/Font47View/index.vue
@@ -0,0 +1,41 @@
+
+
+
{{ font }}
+
+
+
+
+
+
+
+
+
diff --git a/src/render/views/FontDesign/EditFontView/index.ts b/src/render/views/FontDesign/EditFontView/index.ts
new file mode 100644
index 0000000..4af19ed
--- /dev/null
+++ b/src/render/views/FontDesign/EditFontView/index.ts
@@ -0,0 +1 @@
+export { default as EditFontView } from './index.vue'
diff --git a/src/render/views/FontDesign/EditFontView/index.vue b/src/render/views/FontDesign/EditFontView/index.vue
new file mode 100644
index 0000000..c443b03
--- /dev/null
+++ b/src/render/views/FontDesign/EditFontView/index.vue
@@ -0,0 +1,58 @@
+
+
+ 3*5矩阵显示效果设计
+
+ 4*7矩阵显示效果设计
+
+ 保存字库
+
+
+
+
diff --git a/src/render/views/FontDesign/LED.vue b/src/render/views/FontDesign/LED.vue
new file mode 100644
index 0000000..0f95da6
--- /dev/null
+++ b/src/render/views/FontDesign/LED.vue
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/render/views/GeneratingConstellationChart/ConstellationChartView.vue b/src/render/views/GeneratingConstellationChart/ConstellationChartView.vue
new file mode 100644
index 0000000..e01daf2
--- /dev/null
+++ b/src/render/views/GeneratingConstellationChart/ConstellationChartView.vue
@@ -0,0 +1,40 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/src/render/views/GeneratingConstellationChart/SatelliteDataFormView/ControlButtonGroupView.vue b/src/render/views/GeneratingConstellationChart/SatelliteDataFormView/ControlButtonGroupView.vue
new file mode 100644
index 0000000..65c929a
--- /dev/null
+++ b/src/render/views/GeneratingConstellationChart/SatelliteDataFormView/ControlButtonGroupView.vue
@@ -0,0 +1,62 @@
+
+
+ 添加
+ 提交
+ 清除
+
+
+
+
+
+
diff --git a/src/render/views/GeneratingConstellationChart/SatelliteDataFormView/DataFormView/SatelliteDataFormItem.vue b/src/render/views/GeneratingConstellationChart/SatelliteDataFormView/DataFormView/SatelliteDataFormItem.vue
new file mode 100644
index 0000000..823b4e6
--- /dev/null
+++ b/src/render/views/GeneratingConstellationChart/SatelliteDataFormView/DataFormView/SatelliteDataFormItem.vue
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/render/views/GeneratingConstellationChart/SatelliteDataFormView/DataFormView/index.ts b/src/render/views/GeneratingConstellationChart/SatelliteDataFormView/DataFormView/index.ts
new file mode 100644
index 0000000..3044866
--- /dev/null
+++ b/src/render/views/GeneratingConstellationChart/SatelliteDataFormView/DataFormView/index.ts
@@ -0,0 +1 @@
+export { default as DataFormView } from './index.vue'
diff --git a/src/render/views/GeneratingConstellationChart/SatelliteDataFormView/DataFormView/index.vue b/src/render/views/GeneratingConstellationChart/SatelliteDataFormView/DataFormView/index.vue
new file mode 100644
index 0000000..3af17ec
--- /dev/null
+++ b/src/render/views/GeneratingConstellationChart/SatelliteDataFormView/DataFormView/index.vue
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/render/views/GeneratingConstellationChart/SatelliteDataFormView/index.ts b/src/render/views/GeneratingConstellationChart/SatelliteDataFormView/index.ts
new file mode 100644
index 0000000..128f2cc
--- /dev/null
+++ b/src/render/views/GeneratingConstellationChart/SatelliteDataFormView/index.ts
@@ -0,0 +1 @@
+export { default as SatelliteDataFormView } from './index.vue'
diff --git a/src/render/views/GeneratingConstellationChart/SatelliteDataFormView/index.vue b/src/render/views/GeneratingConstellationChart/SatelliteDataFormView/index.vue
new file mode 100644
index 0000000..fb29973
--- /dev/null
+++ b/src/render/views/GeneratingConstellationChart/SatelliteDataFormView/index.vue
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/src/render/views/GestureRecognition/GestureAnimationView.vue b/src/render/views/GestureRecognition/GestureAnimationView.vue
new file mode 100644
index 0000000..71a3c28
--- /dev/null
+++ b/src/render/views/GestureRecognition/GestureAnimationView.vue
@@ -0,0 +1,54 @@
+
+
+
+
+
+
+
diff --git a/src/render/views/GestureRecognition/ParamConfigView/data.ts b/src/render/views/GestureRecognition/ParamConfigView/data.ts
new file mode 100644
index 0000000..f75f5c5
--- /dev/null
+++ b/src/render/views/GestureRecognition/ParamConfigView/data.ts
@@ -0,0 +1,16 @@
+export const MAX_DISTANCE = -300
+export const MIN_DISTANCE = -900
+
+export const timeOutOptions = [200, 600, 1000, 1500, 2000].map(
+ (v) => ({
+ label: v,
+ value: v
+ })
+)
+
+export const intervalOptions = [0.5, 1, 2, 3].map(
+ (v) => ({
+ label: v,
+ value: v
+ })
+)
\ No newline at end of file
diff --git a/src/render/views/GestureRecognition/ParamConfigView/index.ts b/src/render/views/GestureRecognition/ParamConfigView/index.ts
new file mode 100644
index 0000000..338fde4
--- /dev/null
+++ b/src/render/views/GestureRecognition/ParamConfigView/index.ts
@@ -0,0 +1 @@
+export { default as ParamConfigView } from './index.vue'
diff --git a/src/render/views/GestureRecognition/ParamConfigView/index.vue b/src/render/views/GestureRecognition/ParamConfigView/index.vue
new file mode 100644
index 0000000..2bb8ea8
--- /dev/null
+++ b/src/render/views/GestureRecognition/ParamConfigView/index.vue
@@ -0,0 +1,117 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 单位:毫秒
+
+ 遮挡物离开第一个红外传感器和遮挡第二个红外传感器之间的时间,超过这个时间则不会触发动画效果,建议值: 200
+
+
+
+
+
+
+
+ 单位:秒
+
+ 两次动画之间的时间间隔,小于这个值不会触发动画,建议值: 1
+
+
+
+
+ 发送配置指令
+
+
+
+
+
+
+
+
diff --git a/src/render/views/NixieTubeConfiguration/NixieTubeControlView/components/BlockLED.vue b/src/render/views/NixieTubeConfiguration/NixieTubeControlView/components/BlockLED.vue
new file mode 100644
index 0000000..cb214a2
--- /dev/null
+++ b/src/render/views/NixieTubeConfiguration/NixieTubeControlView/components/BlockLED.vue
@@ -0,0 +1,82 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/render/views/NixieTubeConfiguration/NixieTubeControlView/components/CutOffDot.vue b/src/render/views/NixieTubeConfiguration/NixieTubeControlView/components/CutOffDot.vue
new file mode 100644
index 0000000..a404720
--- /dev/null
+++ b/src/render/views/NixieTubeConfiguration/NixieTubeControlView/components/CutOffDot.vue
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
+
diff --git a/src/render/views/NixieTubeConfiguration/NixieTubeControlView/components/DigitalTube.vue b/src/render/views/NixieTubeConfiguration/NixieTubeControlView/components/DigitalTube.vue
new file mode 100644
index 0000000..421c878
--- /dev/null
+++ b/src/render/views/NixieTubeConfiguration/NixieTubeControlView/components/DigitalTube.vue
@@ -0,0 +1,81 @@
+
+
+
+
+
+
+
+
+
diff --git a/src/render/views/NixieTubeConfiguration/NixieTubeControlView/components/DotLED.vue b/src/render/views/NixieTubeConfiguration/NixieTubeControlView/components/DotLED.vue
new file mode 100644
index 0000000..219ffe9
--- /dev/null
+++ b/src/render/views/NixieTubeConfiguration/NixieTubeControlView/components/DotLED.vue
@@ -0,0 +1,62 @@
+
+
+
+
+
+
+
diff --git a/src/render/views/NixieTubeConfiguration/NixieTubeControlView/components/FourDigitTube.vue b/src/render/views/NixieTubeConfiguration/NixieTubeControlView/components/FourDigitTube.vue
new file mode 100644
index 0000000..59e6bfc
--- /dev/null
+++ b/src/render/views/NixieTubeConfiguration/NixieTubeControlView/components/FourDigitTube.vue
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/render/views/NixieTubeConfiguration/NixieTubeControlView/data.ts b/src/render/views/NixieTubeConfiguration/NixieTubeControlView/data.ts
new file mode 100644
index 0000000..d2225f2
--- /dev/null
+++ b/src/render/views/NixieTubeConfiguration/NixieTubeControlView/data.ts
@@ -0,0 +1,14 @@
+import { ref } from 'vue'
+
+export const FOUR_DIGIT_TUBE_NUM = 5
+export const DIGIT_TUBE_NUM_OF_FOUR_DIGIT_TUBE = 4
+export const LED_NUM_OF_DIGIT_TUBE = 8
+export const DEFAULT_SELECTED_INDEX = 0
+
+export const dataArr = ref(new Array(FOUR_DIGIT_TUBE_NUM))
+for (let i = 0; i < FOUR_DIGIT_TUBE_NUM; i++) {
+ dataArr.value[i] = new Array(DIGIT_TUBE_NUM_OF_FOUR_DIGIT_TUBE)
+ for (let j = 0; j < DIGIT_TUBE_NUM_OF_FOUR_DIGIT_TUBE; j++) {
+ dataArr.value[i][j] = new Array(LED_NUM_OF_DIGIT_TUBE).fill(0)
+ }
+}
diff --git a/src/render/views/NixieTubeConfiguration/NixieTubeControlView/index.ts b/src/render/views/NixieTubeConfiguration/NixieTubeControlView/index.ts
new file mode 100644
index 0000000..1880f25
--- /dev/null
+++ b/src/render/views/NixieTubeConfiguration/NixieTubeControlView/index.ts
@@ -0,0 +1 @@
+export { default as NixieTubeControlView } from './index.vue'
diff --git a/src/render/views/NixieTubeConfiguration/NixieTubeControlView/index.vue b/src/render/views/NixieTubeConfiguration/NixieTubeControlView/index.vue
new file mode 100644
index 0000000..3541d13
--- /dev/null
+++ b/src/render/views/NixieTubeConfiguration/NixieTubeControlView/index.vue
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/render/views/NixieTubeConfiguration/NixieTubeSelectView/data.ts b/src/render/views/NixieTubeConfiguration/NixieTubeSelectView/data.ts
new file mode 100644
index 0000000..c25f4ae
--- /dev/null
+++ b/src/render/views/NixieTubeConfiguration/NixieTubeSelectView/data.ts
@@ -0,0 +1,7 @@
+import { FOUR_DIGIT_TUBE_NUM } from '../NixieTubeControlView/data'
+
+export const options = new Array(FOUR_DIGIT_TUBE_NUM)
+
+for (let i = 0; i < FOUR_DIGIT_TUBE_NUM; i++) {
+ options[i] = { label: i + 1, value: i}
+}
diff --git a/src/render/views/NixieTubeConfiguration/NixieTubeSelectView/index.ts b/src/render/views/NixieTubeConfiguration/NixieTubeSelectView/index.ts
new file mode 100644
index 0000000..241d555
--- /dev/null
+++ b/src/render/views/NixieTubeConfiguration/NixieTubeSelectView/index.ts
@@ -0,0 +1 @@
+export { default as NixieTubeSelectView } from './index.vue'
diff --git a/src/render/views/NixieTubeConfiguration/NixieTubeSelectView/index.vue b/src/render/views/NixieTubeConfiguration/NixieTubeSelectView/index.vue
new file mode 100644
index 0000000..99df002
--- /dev/null
+++ b/src/render/views/NixieTubeConfiguration/NixieTubeSelectView/index.vue
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
+
+
diff --git a/src/render/views/NixieTubeConfiguration/SendCMDButtonView.vue b/src/render/views/NixieTubeConfiguration/SendCMDButtonView.vue
new file mode 100644
index 0000000..d6d6887
--- /dev/null
+++ b/src/render/views/NixieTubeConfiguration/SendCMDButtonView.vue
@@ -0,0 +1,40 @@
+
+ 发送配置命令
+
+
+
diff --git a/src/render/views/VoltageMonitoring/MonitorView/index.ts b/src/render/views/VoltageMonitoring/MonitorView/index.ts
new file mode 100644
index 0000000..9cc160f
--- /dev/null
+++ b/src/render/views/VoltageMonitoring/MonitorView/index.ts
@@ -0,0 +1 @@
+export { default as MonitorView } from './index.vue'
diff --git a/src/render/views/VoltageMonitoring/MonitorView/index.vue b/src/render/views/VoltageMonitoring/MonitorView/index.vue
new file mode 100644
index 0000000..dd5d545
--- /dev/null
+++ b/src/render/views/VoltageMonitoring/MonitorView/index.vue
@@ -0,0 +1,110 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/render/views/VoltageMonitoring/SelectDeviceView/data.ts b/src/render/views/VoltageMonitoring/SelectDeviceView/data.ts
new file mode 100644
index 0000000..29365f0
--- /dev/null
+++ b/src/render/views/VoltageMonitoring/SelectDeviceView/data.ts
@@ -0,0 +1,5 @@
+export const options = [
+ { label: 'PM2.5模块' , value: 'A;6', },
+ { label: '太阳能电池板', value: 'A;6,7', },
+ { label: '红外传感器' , value: 'A;4,5', },
+]
diff --git a/src/render/views/VoltageMonitoring/SelectDeviceView/index.ts b/src/render/views/VoltageMonitoring/SelectDeviceView/index.ts
new file mode 100644
index 0000000..36e1abf
--- /dev/null
+++ b/src/render/views/VoltageMonitoring/SelectDeviceView/index.ts
@@ -0,0 +1 @@
+export { default as SelectDeviceView } from './index.vue';
diff --git a/src/render/views/VoltageMonitoring/SelectDeviceView/index.vue b/src/render/views/VoltageMonitoring/SelectDeviceView/index.vue
new file mode 100644
index 0000000..f0d9015
--- /dev/null
+++ b/src/render/views/VoltageMonitoring/SelectDeviceView/index.vue
@@ -0,0 +1,68 @@
+
+
+
+
+ 监控选择的设备
+
+
+
+
+
+
+
diff --git a/src/render/views/WirelessCommunicationModuleConfiguration/ConfigurationParameterFormView/data.ts b/src/render/views/WirelessCommunicationModuleConfiguration/ConfigurationParameterFormView/data.ts
new file mode 100644
index 0000000..f2311e7
--- /dev/null
+++ b/src/render/views/WirelessCommunicationModuleConfiguration/ConfigurationParameterFormView/data.ts
@@ -0,0 +1,21 @@
+// 信道选择范围为100-125
+export const channelOptions = Array.from({ length: 26 }, (_val, index) => index + 100).map(
+ v => ({
+ label: v,
+ value: v
+ })
+)
+
+export const baudRateOptions = [
+ { label: 9600 , value: 4 },
+ { label: 38400 , value: 6 },
+ { label: 115200, value: 7 },
+]
+
+// 2.4G查询指令
+// 实例:AA 5C 00 00 00 00 00 00 00 00 00 00 00 00 00 12 00 18
+export const queryCMD = new Uint8Array([0xAA, 0x5C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0x00, 0x18])
+
+// 2.4G设置指令缓存
+// 实例:AA 5A 00 00 0A 5A 00 00 00 07 00 66 00 00 00 00 00 D5
+export const configCMD = new Uint8Array([0xAA, 0x5A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00])
diff --git a/src/render/views/WirelessCommunicationModuleConfiguration/ConfigurationParameterFormView/index.ts b/src/render/views/WirelessCommunicationModuleConfiguration/ConfigurationParameterFormView/index.ts
new file mode 100644
index 0000000..20f6f4e
--- /dev/null
+++ b/src/render/views/WirelessCommunicationModuleConfiguration/ConfigurationParameterFormView/index.ts
@@ -0,0 +1 @@
+export { default as ConfigurationParameterFormView } from './index.vue';
diff --git a/src/render/views/WirelessCommunicationModuleConfiguration/ConfigurationParameterFormView/index.vue b/src/render/views/WirelessCommunicationModuleConfiguration/ConfigurationParameterFormView/index.vue
new file mode 100644
index 0000000..dd4ffb3
--- /dev/null
+++ b/src/render/views/WirelessCommunicationModuleConfiguration/ConfigurationParameterFormView/index.vue
@@ -0,0 +1,149 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 配 置
+
+
+
+
+
+
+
+
diff --git a/src/render/views/WirelessCommunicationModuleConfiguration/SketchMapView.vue b/src/render/views/WirelessCommunicationModuleConfiguration/SketchMapView.vue
new file mode 100644
index 0000000..ebcb4fc
--- /dev/null
+++ b/src/render/views/WirelessCommunicationModuleConfiguration/SketchMapView.vue
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
diff --git a/src/render/views/index/ConnectUsModalView/index.ts b/src/render/views/index/ConnectUsModalView/index.ts
new file mode 100644
index 0000000..56749e7
--- /dev/null
+++ b/src/render/views/index/ConnectUsModalView/index.ts
@@ -0,0 +1,2 @@
+// TODO: 使用use接口导出
+export { default as ConnectUsModalView } from './index.vue'
diff --git a/src/render/views/index/ConnectUsModalView/index.vue b/src/render/views/index/ConnectUsModalView/index.vue
new file mode 100644
index 0000000..7c12cb6
--- /dev/null
+++ b/src/render/views/index/ConnectUsModalView/index.vue
@@ -0,0 +1,49 @@
+
+
+
+
+
+ 北京华云智联科技有限公司 (HwaSmart Corporation Ltd).
+ 北京市海淀区黑泉路8号1幢宝盛广场B座8013
+ 400-166-5286
+ sales@hwasmart.com
+ 版本号:{{ version }}
+
+
+
+
+
+
+
diff --git a/src/render/views/index/HeaderView/components/BatteryStatus/index.ts b/src/render/views/index/HeaderView/components/BatteryStatus/index.ts
new file mode 100644
index 0000000..e00517e
--- /dev/null
+++ b/src/render/views/index/HeaderView/components/BatteryStatus/index.ts
@@ -0,0 +1 @@
+export { default as BatteryStatus } from './index.vue'
diff --git a/src/render/views/index/HeaderView/components/BatteryStatus/index.vue b/src/render/views/index/HeaderView/components/BatteryStatus/index.vue
new file mode 100644
index 0000000..e88cd89
--- /dev/null
+++ b/src/render/views/index/HeaderView/components/BatteryStatus/index.vue
@@ -0,0 +1,78 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ Math.round(battery.level * 100)}}%
+
+
+
+
+
\ No newline at end of file
diff --git a/src/render/views/index/HeaderView/components/BatteryStatus/type.ts b/src/render/views/index/HeaderView/components/BatteryStatus/type.ts
new file mode 100644
index 0000000..f4d27c4
--- /dev/null
+++ b/src/render/views/index/HeaderView/components/BatteryStatus/type.ts
@@ -0,0 +1,10 @@
+export interface BatteryManager {
+ charging : boolean; // 当前电池是否正在充电
+ chargingTime : number; // 距离充电完毕还需多少秒,如果为 0 则充电完毕
+ dischargingTime : number; // 距离电池耗电至空且挂起需要多少秒
+ level : number; // 电量的放大等级,这个值在 0.0 至 1.0 之间
+ onchargingchange : Function | null; // 电池充电状态更新时被调用
+ onchargingtimechange : Function | null; // 电池充电时间更新时被调用
+ ondischargingtimechange : Function | null; // 电池断开充电时间更新时被调用
+ onlevelchange : Function | null; // 电池电量更新时被调用
+}
diff --git a/src/render/views/index/HeaderView/components/HomeButton.vue b/src/render/views/index/HeaderView/components/HomeButton.vue
new file mode 100644
index 0000000..b284808
--- /dev/null
+++ b/src/render/views/index/HeaderView/components/HomeButton.vue
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
diff --git a/src/render/views/index/HeaderView/components/Logo.vue b/src/render/views/index/HeaderView/components/Logo.vue
new file mode 100644
index 0000000..edb012a
--- /dev/null
+++ b/src/render/views/index/HeaderView/components/Logo.vue
@@ -0,0 +1,23 @@
+
+
+
+
+
diff --git a/src/render/views/index/HeaderView/components/NetworkStatus.vue b/src/render/views/index/HeaderView/components/NetworkStatus.vue
new file mode 100644
index 0000000..e0a0647
--- /dev/null
+++ b/src/render/views/index/HeaderView/components/NetworkStatus.vue
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/src/render/views/index/HeaderView/components/RouterBackButton.vue b/src/render/views/index/HeaderView/components/RouterBackButton.vue
new file mode 100644
index 0000000..5e53df8
--- /dev/null
+++ b/src/render/views/index/HeaderView/components/RouterBackButton.vue
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
diff --git a/src/render/views/index/HeaderView/components/SystemDateTime.vue b/src/render/views/index/HeaderView/components/SystemDateTime.vue
new file mode 100644
index 0000000..3ff96ac
--- /dev/null
+++ b/src/render/views/index/HeaderView/components/SystemDateTime.vue
@@ -0,0 +1,17 @@
+
+
+
+
+
diff --git a/src/render/views/index/HeaderView/index.ts b/src/render/views/index/HeaderView/index.ts
new file mode 100644
index 0000000..1a05d28
--- /dev/null
+++ b/src/render/views/index/HeaderView/index.ts
@@ -0,0 +1 @@
+export { default as HeaderView } from './index.vue'
diff --git a/src/render/views/index/HeaderView/index.vue b/src/render/views/index/HeaderView/index.vue
new file mode 100644
index 0000000..4723ef4
--- /dev/null
+++ b/src/render/views/index/HeaderView/index.vue
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+
diff --git a/src/render/views/index/QuickBurningModalView/index.ts b/src/render/views/index/QuickBurningModalView/index.ts
new file mode 100644
index 0000000..6c8a85e
--- /dev/null
+++ b/src/render/views/index/QuickBurningModalView/index.ts
@@ -0,0 +1,2 @@
+// TODO: 使用use接口导出
+export { default as QuickBurningModalView } from './index.vue'
diff --git a/src/render/views/index/QuickBurningModalView/index.vue b/src/render/views/index/QuickBurningModalView/index.vue
new file mode 100644
index 0000000..21aa824
--- /dev/null
+++ b/src/render/views/index/QuickBurningModalView/index.vue
@@ -0,0 +1,90 @@
+
+
+
+
+ {{ program.name }}
+
+
+
+
+
+
diff --git a/src/render/views/index/SystemSettingsModalView/CommonToolsView.vue b/src/render/views/index/SystemSettingsModalView/CommonToolsView.vue
new file mode 100644
index 0000000..961764f
--- /dev/null
+++ b/src/render/views/index/SystemSettingsModalView/CommonToolsView.vue
@@ -0,0 +1,45 @@
+
+
+ 常用工具
+
+
+ 系统修复
+ 软件升级
+ 通信模块配置
+
+
+
+
+
diff --git a/src/render/views/index/SystemSettingsModalView/ConnectNetworkView.vue b/src/render/views/index/SystemSettingsModalView/ConnectNetworkView.vue
new file mode 100644
index 0000000..778cb9b
--- /dev/null
+++ b/src/render/views/index/SystemSettingsModalView/ConnectNetworkView.vue
@@ -0,0 +1,139 @@
+
+
+ 网络配置
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/render/views/index/SystemSettingsModalView/index.ts b/src/render/views/index/SystemSettingsModalView/index.ts
new file mode 100644
index 0000000..fac41e5
--- /dev/null
+++ b/src/render/views/index/SystemSettingsModalView/index.ts
@@ -0,0 +1,2 @@
+// TODO: 使用use接口导出
+export { default as SystemSettingsModalView } from './index.vue'
diff --git a/src/render/views/index/SystemSettingsModalView/index.vue b/src/render/views/index/SystemSettingsModalView/index.vue
new file mode 100644
index 0000000..a3d0e6f
--- /dev/null
+++ b/src/render/views/index/SystemSettingsModalView/index.vue
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/render/views/index/ToolbarView/index.ts b/src/render/views/index/ToolbarView/index.ts
new file mode 100644
index 0000000..d24af55
--- /dev/null
+++ b/src/render/views/index/ToolbarView/index.ts
@@ -0,0 +1 @@
+export { default as ToolbarView } from './index.vue'
diff --git a/src/render/views/index/ToolbarView/index.vue b/src/render/views/index/ToolbarView/index.vue
new file mode 100644
index 0000000..cb94cb1
--- /dev/null
+++ b/src/render/views/index/ToolbarView/index.vue
@@ -0,0 +1,96 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 请连接网络
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/render/views/index/router-view/category/index.vue b/src/render/views/index/router-view/category/index.vue
new file mode 100644
index 0000000..22141a8
--- /dev/null
+++ b/src/render/views/index/router-view/category/index.vue
@@ -0,0 +1,119 @@
+
+
+
+
+
+
![]()
+
+
{{ category.name }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/render/views/index/router-view/class/CourseListItemView/index.ts b/src/render/views/index/router-view/class/CourseListItemView/index.ts
new file mode 100644
index 0000000..f5cdee5
--- /dev/null
+++ b/src/render/views/index/router-view/class/CourseListItemView/index.ts
@@ -0,0 +1 @@
+export { default as CourseListItemView } from './index.vue'
diff --git a/src/render/views/index/router-view/class/CourseListItemView/index.vue b/src/render/views/index/router-view/class/CourseListItemView/index.vue
new file mode 100644
index 0000000..9c4a075
--- /dev/null
+++ b/src/render/views/index/router-view/class/CourseListItemView/index.vue
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/render/views/index/router-view/class/index.vue b/src/render/views/index/router-view/class/index.vue
new file mode 100644
index 0000000..f4b9149
--- /dev/null
+++ b/src/render/views/index/router-view/class/index.vue
@@ -0,0 +1,48 @@
+
+
+ {{ clazz.name }}
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/render/views/index/router-view/course/ContentView/index.ts b/src/render/views/index/router-view/course/ContentView/index.ts
new file mode 100644
index 0000000..e0def09
--- /dev/null
+++ b/src/render/views/index/router-view/course/ContentView/index.ts
@@ -0,0 +1 @@
+export { default as ContentView } from './index.vue'
diff --git a/src/render/views/index/router-view/course/ContentView/index.vue b/src/render/views/index/router-view/course/ContentView/index.vue
new file mode 100644
index 0000000..e1fec2f
--- /dev/null
+++ b/src/render/views/index/router-view/course/ContentView/index.vue
@@ -0,0 +1,165 @@
+
+
+
{{ course.name }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
![]()
+
{{ n }}
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/render/views/index/router-view/course/ProgramBurnButtonListView/index.ts b/src/render/views/index/router-view/course/ProgramBurnButtonListView/index.ts
new file mode 100644
index 0000000..db53a54
--- /dev/null
+++ b/src/render/views/index/router-view/course/ProgramBurnButtonListView/index.ts
@@ -0,0 +1 @@
+export { default as ProgramBurnButtonListView } from './index.vue'
diff --git a/src/render/views/index/router-view/course/ProgramBurnButtonListView/index.vue b/src/render/views/index/router-view/course/ProgramBurnButtonListView/index.vue
new file mode 100644
index 0000000..dd2b628
--- /dev/null
+++ b/src/render/views/index/router-view/course/ProgramBurnButtonListView/index.vue
@@ -0,0 +1,111 @@
+
+
+ 程序烧录
+
+ {{ program.name }}
+
+
+
+
+
+
+
+
diff --git a/src/render/views/index/router-view/course/SoftwareLaunchButtonListView/index.ts b/src/render/views/index/router-view/course/SoftwareLaunchButtonListView/index.ts
new file mode 100644
index 0000000..38e8bf3
--- /dev/null
+++ b/src/render/views/index/router-view/course/SoftwareLaunchButtonListView/index.ts
@@ -0,0 +1 @@
+export { default as SoftwareLaunchButtonListView } from './index.vue';
diff --git a/src/render/views/index/router-view/course/SoftwareLaunchButtonListView/index.vue b/src/render/views/index/router-view/course/SoftwareLaunchButtonListView/index.vue
new file mode 100644
index 0000000..10605c7
--- /dev/null
+++ b/src/render/views/index/router-view/course/SoftwareLaunchButtonListView/index.vue
@@ -0,0 +1,57 @@
+
+
+ 配套软件
+
+
+ {{ software.name }}
+
+
+
+
+
+
+
+
diff --git a/src/render/views/index/router-view/course/index.vue b/src/render/views/index/router-view/course/index.vue
new file mode 100644
index 0000000..5f95bde
--- /dev/null
+++ b/src/render/views/index/router-view/course/index.vue
@@ -0,0 +1,75 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+