diff --git a/index.html b/index.html
index 4bbef6c..b732f05 100644
--- a/index.html
+++ b/index.html
@@ -1,5 +1,5 @@
-
+
diff --git a/package.json b/package.json
index 3ca1325..a32fbb5 100644
--- a/package.json
+++ b/package.json
@@ -19,8 +19,7 @@
},
"dependencies": {
"@element-plus/icons-vue": "^2.3.1",
- "@labelbee/lb-annotation": "^1.27.0",
- "@labelbee/lb-utils": "^1.19.0",
+ "@gradio/client": "^2.2.0",
"@vueuse/core": "^13.6.0",
"element-plus": "^2.10.5",
"vue": "^3.5.18",
diff --git a/src/components.d.ts b/src/components.d.ts
index 95abf16..4ebbd6b 100644
--- a/src/components.d.ts
+++ b/src/components.d.ts
@@ -17,11 +17,18 @@ declare module 'vue' {
ElBreadcrumbItem: typeof import('element-plus/es')['ElBreadcrumbItem']
ElButton: typeof import('element-plus/es')['ElButton']
ElCard: typeof import('element-plus/es')['ElCard']
+ ElCheckbox: typeof import('element-plus/es')['ElCheckbox']
+ ElCheckboxGroup: typeof import('element-plus/es')['ElCheckboxGroup']
ElCol: typeof import('element-plus/es')['ElCol']
ElConfigProvider: typeof import('element-plus/es')['ElConfigProvider']
ElContainer: typeof import('element-plus/es')['ElContainer']
ElDatePicker: typeof import('element-plus/es')['ElDatePicker']
+ ElDescriptions: typeof import('element-plus/es')['ElDescriptions']
+ ElDescriptionsItem: typeof import('element-plus/es')['ElDescriptionsItem']
+ ElFooter: typeof import('element-plus/es')['ElFooter']
ElForItem: typeof import('element-plus/es')['ElForItem']
+ ElForm: typeof import('element-plus/es')['ElForm']
+ ElFormItem: typeof import('element-plus/es')['ElFormItem']
ElHeader: typeof import('element-plus/es')['ElHeader']
ElIcon: typeof import('element-plus/es')['ElIcon']
ElInput: typeof import('element-plus/es')['ElInput']
@@ -29,15 +36,25 @@ declare module 'vue' {
ElMenu: typeof import('element-plus/es')['ElMenu']
ElMenuItem: typeof import('element-plus/es')['ElMenuItem']
ElMenuItemGroup: typeof import('element-plus/es')['ElMenuItemGroup']
+ ElOption: typeof import('element-plus/es')['ElOption']
+ ElRadio: typeof import('element-plus/es')['ElRadio']
+ ElRadioGroup: typeof import('element-plus/es')['ElRadioGroup']
ElRow: typeof import('element-plus/es')['ElRow']
+ ElSegmented: typeof import('element-plus/es')['ElSegmented']
+ ElSelect: typeof import('element-plus/es')['ElSelect']
+ ElSelectV2: typeof import('element-plus/es')['ElSelectV2']
ElSubMenu: typeof import('element-plus/es')['ElSubMenu']
ElSwitch: typeof import('element-plus/es')['ElSwitch']
ElTag: typeof import('element-plus/es')['ElTag']
+ ElText: typeof import('element-plus/es')['ElText']
+ ElTimePicker: typeof import('element-plus/es')['ElTimePicker']
HelloWorld: typeof import('./components/HelloWorld.vue')['default']
+ ItemList: typeof import('./components/hazard_inspect/ItemList.vue')['default']
Left_bar: typeof import('./components/hazard_inspect/left_bar.vue')['default']
Logos: typeof import('./components/Logos.vue')['default']
MessageBoxDemo: typeof import('./components/MessageBoxDemo.vue')['default']
RouterLink: typeof import('vue-router')['RouterLink']
RouterView: typeof import('vue-router')['RouterView']
+ Timeline: typeof import('./components/hazard_inspect/timeline.vue')['default']
}
}
diff --git a/src/components/hazard_inspect/ItemList.vue b/src/components/hazard_inspect/ItemList.vue
new file mode 100644
index 0000000..7169cc0
--- /dev/null
+++ b/src/components/hazard_inspect/ItemList.vue
@@ -0,0 +1,76 @@
+
+
+
+
+
+
+
+ {{ props.title }}
+
+
+
+
+
+
+
+
+
+ {{ index + 1 }}
+
+
+
+ {{ item }}
+
+
+
+
+
+
+
+
+
diff --git a/src/components/hazard_inspect/left_bar.vue b/src/components/hazard_inspect/left_bar.vue
deleted file mode 100644
index e69de29..0000000
diff --git a/src/components/hazard_inspect/timeline.vue b/src/components/hazard_inspect/timeline.vue
new file mode 100644
index 0000000..485952f
--- /dev/null
+++ b/src/components/hazard_inspect/timeline.vue
@@ -0,0 +1,211 @@
+
+
+
+
+
+
+
diff --git a/src/composables/api.ts b/src/composables/api.ts
new file mode 100644
index 0000000..7771674
--- /dev/null
+++ b/src/composables/api.ts
@@ -0,0 +1,22 @@
+import { Client } from '@gradio/client'
+
+export async function runApi(funcName: string, params: Record) {
+ // 声明 client 变量,用于后续释放连接
+ try {
+ // 1. 连接客户端(修复:function 是关键字,不能做变量名)
+ const client = await Client.connect('http://127.0.0.1:7860')
+
+ // 2. 调用预测接口,传入方法名和参数
+ const result = await client.predict(funcName, params)
+
+ // 3. 打印返回结果
+ // console.log('接口调用成功,返回数据:', result.data)
+
+ return result.data
+ }
+ catch (error) {
+ // 捕获异常,打印错误信息
+ console.error('接口调用失败:', error)
+ throw error
+ }
+}
diff --git a/src/pages/index.vue b/src/pages/index.vue
index 115316b..9da7706 100644
--- a/src/pages/index.vue
+++ b/src/pages/index.vue
@@ -6,9 +6,15 @@
安责险隐患检查
-
+
隐患检查
+
+ 物体跟踪 demo
+
+
+ 物体跟踪 demo2
+
diff --git a/src/pages/nav/1_隐患检查.vue b/src/pages/nav/1_隐患检查.vue
deleted file mode 100644
index 2841378..0000000
--- a/src/pages/nav/1_隐患检查.vue
+++ /dev/null
@@ -1,78 +0,0 @@
-
-
-
-
-
-
-
-
- 主页
-
- 隐患检查
-
-
-
-
-
-
-
-
- 隐患列表
-
-
-
-
- {{ item }}
-
-
-
-
- 物体列表
-
-
-
- {{ item }}
-
-
-
-
-
-
- 视频区
-
-
- 轨道
-
-
-
-
-
-
- 隐患描述
-
-
- 依据
-
-
- 整改建议
-
-
-
-
-
- 查看报告
-
-
-
-
-
-
-
-
diff --git a/src/pages/nav/VideoTrackDemo.vue b/src/pages/nav/VideoTrackDemo.vue
new file mode 100644
index 0000000..a619896
--- /dev/null
+++ b/src/pages/nav/VideoTrackDemo.vue
@@ -0,0 +1,156 @@
+
+
+
+
+
+
+
+
+
+ 当前时间:{{ currentTime.toFixed(2) }}s
+
+
+ 已选中 ID:{{ selectedBox.id }} | 标签:{{ selectedBox.label }}
+
+
+
+
+
+
+
diff --git a/src/pages/nav/edit2.html b/src/pages/nav/edit2.html
new file mode 100644
index 0000000..7e81aa8
--- /dev/null
+++ b/src/pages/nav/edit2.html
@@ -0,0 +1,864 @@
+
+
+
+
+
+ ProVision - 智能视频标注编辑器
+
+
+
+
+
+
+
+
+
+
+ ProVision
+ | 视频标注编辑器
+
+
+
+
+
+ 系统就绪
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 00:00 /
+ 00:10
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/pages/nav/hazardCheck/1_隐患检查 copy.vue b/src/pages/nav/hazardCheck/1_隐患检查 copy.vue
new file mode 100644
index 0000000..eb52be0
--- /dev/null
+++ b/src/pages/nav/hazardCheck/1_隐患检查 copy.vue
@@ -0,0 +1,241 @@
+
+
+
+
+
+
+
+
+ 主页
+
+ 隐患检查
+
+
+
+
+
+
+
+
+ 隐患列表
+
+
+
+
+ {{ item }}
+
+
+
+
+ 物体列表
+
+
+
+ {{ item }}
+
+
+
+
+
+
+
+ 轨道
+
+
+
+
+
+
+ 隐患描述
+
+
+ 依据
+
+
+ 整改建议
+
+
+
+
+
+ 查看报告
+
+
+
+
+
+
+
+
diff --git a/src/pages/nav/hazardCheck/HazardCheckResult.vue b/src/pages/nav/hazardCheck/HazardCheckResult.vue
new file mode 100644
index 0000000..7cc4872
--- /dev/null
+++ b/src/pages/nav/hazardCheck/HazardCheckResult.vue
@@ -0,0 +1,450 @@
+
+
+
+
+
+
+
+
+ 主页
+
+
+ 隐患检查
+
+ 隐患检查结果
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ field.label }}
+
+
+
+
+ {{ getFieldValue(field) }}
+
+
+
+
+
+
+
+
+ 跳转到隐患时间点
+
+
+
+
+
+ 无选中隐患
+
+
+
+
+
+
+
+
+
+
diff --git a/src/pages/nav/hazardCheck/index.vue b/src/pages/nav/hazardCheck/index.vue
new file mode 100644
index 0000000..2c5afd0
--- /dev/null
+++ b/src/pages/nav/hazardCheck/index.vue
@@ -0,0 +1,161 @@
+
+
+
+
+
+
+
+
+ 主页
+
+ 隐患检查
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 物体识别
+
+
+ 隐患检查
+
+
+ 生成报告
+
+
+ 音频识别
+
+
+
+
+
+ 重置表单
+
+
+ 查看结果
+
+
+ 运行检查
+
+
+
+
+
+
+
+
diff --git a/src/styles/element/index.scss b/src/styles/element/index.scss
index 9f949fd..69e874f 100644
--- a/src/styles/element/index.scss
+++ b/src/styles/element/index.scss
@@ -3,19 +3,19 @@ $--colors: (
'base': #409eff,
),
'success': (
- 'base': #21ba45,
+ 'base': #67c23a,
),
'warning': (
- 'base': #f2711c,
+ 'base': #e6a23c,
),
'danger': (
- 'base': #db2828,
+ 'base': #f56c6c,
),
'error': (
'base': #db2828,
),
'info': (
- 'base': #42b8dd,
+ 'base': #909399,
),
);
diff --git a/src/typed-router.d.ts b/src/typed-router.d.ts
index 26613cf..ce0c0fe 100644
--- a/src/typed-router.d.ts
+++ b/src/typed-router.d.ts
@@ -19,6 +19,9 @@ declare module 'vue-router/auto-routes' {
*/
export interface RouteNamedMap {
'/': RouteRecordInfo<'/', '/', Record, Record>,
- '/nav/1_隐患检查': RouteRecordInfo<'/nav/1_隐患检查', '/nav/1_隐患检查', Record, Record>,
+ '/nav/hazardCheck/': RouteRecordInfo<'/nav/hazardCheck/', '/nav/hazardCheck', Record, Record>,
+ '/nav/hazardCheck/1_隐患检查 copy': RouteRecordInfo<'/nav/hazardCheck/1_隐患检查 copy', '/nav/hazardCheck/1_隐患检查 copy', Record, Record>,
+ '/nav/hazardCheck/HazardCheckResult': RouteRecordInfo<'/nav/hazardCheck/HazardCheckResult', '/nav/hazardCheck/HazardCheckResult', Record, Record>,
+ '/nav/VideoTrackDemo': RouteRecordInfo<'/nav/VideoTrackDemo', '/nav/VideoTrackDemo', Record, Record>,
}
}