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 @@ + + + + + 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 @@ - - - - - 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 @@ + + + + + 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 @@ + + + + + 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 @@ + + + + + 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>, } }