diff --git a/internal/web/ui.go b/internal/web/ui.go index b508adb..7d9a3b1 100644 --- a/internal/web/ui.go +++ b/internal/web/ui.go @@ -119,6 +119,8 @@ type PageData struct { ConsoleUnassignedUnits []service.RecognitionUnitAsset FaceGalleryPersons []storage.PersonRecord FaceGalleryQuality map[string]string + DeviceModelStatuses []service.InstalledModelStatus + DeviceResourceStatuses []service.InstalledResourceStatus Templates []service.Template Template *service.Template AssetTab string @@ -1721,6 +1723,28 @@ func (u *UI) deviceDetailPageData(dev *models.Device) PageData { data.SelectedProfile = assignment.ProfileName } } + // Load device model and resource status vs management standards. + if dev.Online && u.agent != nil { + if items, err := service.FetchInstalledModelStatuses(u.agent, dev); err == nil { + data.DeviceModelStatuses = items + } + if items, err := service.FetchInstalledResourceStatuses(u.agent, dev); err == nil { + data.DeviceResourceStatuses = items + } + } + if strings.TrimSpace(u.dbPath) != "" { + if store, err := storage.OpenSQLite(u.dbPath); err == nil { + modelsRepo := storage.NewModelsRepo(store.DB()) + if items, err := modelsRepo.List(); err == nil { + data.StandardModels = items + } + resourcesRepo := storage.NewResourcesRepo(store.DB()) + if items, err := resourcesRepo.List(); err == nil { + data.StandardResources = items + } + store.Close() + } + } return data } diff --git a/internal/web/ui/templates/device.html b/internal/web/ui/templates/device.html index e873573..01c3bff 100644 --- a/internal/web/ui/templates/device.html +++ b/internal/web/ui/templates/device.html @@ -166,12 +166,37 @@

{{icon "assets"}}模型与资源

- 进入模型管理 + 模型管理 + + {{if .StandardModels}} +
+ {{range $m := .StandardModels}} + {{$status := "missing"}} + {{range $d := $.DeviceModelStatuses}}{{if eq $d.Name $m.Name}}{{if eq $d.SHA256 $m.SHA256}}{{$status = "ok"}}{{else}}{{$status = "mismatch"}}{{end}}{{end}}{{end}} +
{{$m.Name}} + {{if eq $status "ok"}}一致{{else if eq $status "mismatch"}}不一致{{else}}缺失{{end}}
+ {{end}} +
+ {{end}} + + {{if .StandardResources}} +
+ {{range $r := .StandardResources}} + {{$status := "missing"}} + {{range $d := $.DeviceResourceStatuses}}{{if eq $d.Name $r.Name}}{{if eq $d.SHA256 $r.SHA256}}{{$status = "ok"}}{{else}}{{$status = "mismatch"}}{{end}}{{end}}{{end}} +
{{$r.Name}} ({{resourceTypeLabel $r.ResourceType}}) + {{if eq $status "ok"}}一致{{else if eq $status "mismatch"}}不一致{{else}}缺失{{end}}
+ {{end}} +
+ {{end}} + + {{if not (or .StandardModels .StandardResources)}}
模型入口通过模型管理页上传到设备
人脸库通过资源管理与基础配置维护
+ {{end}}
diff --git a/resources/standard_resources/face_gallery/face_gallery.db b/resources/standard_resources/face_gallery/face_gallery.db new file mode 100644 index 0000000..2c198a9 Binary files /dev/null and b/resources/standard_resources/face_gallery/face_gallery.db differ diff --git a/tools/gallery_builder/__pycache__/__init__.cpython-311.pyc b/tools/gallery_builder/__pycache__/__init__.cpython-311.pyc index 25057fa..57c37cc 100644 Binary files a/tools/gallery_builder/__pycache__/__init__.cpython-311.pyc and b/tools/gallery_builder/__pycache__/__init__.cpython-311.pyc differ diff --git a/tools/gallery_builder/__pycache__/aggregate.cpython-311.pyc b/tools/gallery_builder/__pycache__/aggregate.cpython-311.pyc index 015de85..55e65bb 100644 Binary files a/tools/gallery_builder/__pycache__/aggregate.cpython-311.pyc and b/tools/gallery_builder/__pycache__/aggregate.cpython-311.pyc differ diff --git a/tools/gallery_builder/__pycache__/align.cpython-311.pyc b/tools/gallery_builder/__pycache__/align.cpython-311.pyc index 4b6a802..f3e1dfd 100644 Binary files a/tools/gallery_builder/__pycache__/align.cpython-311.pyc and b/tools/gallery_builder/__pycache__/align.cpython-311.pyc differ diff --git a/tools/gallery_builder/__pycache__/dataset.cpython-311.pyc b/tools/gallery_builder/__pycache__/dataset.cpython-311.pyc index 94000c2..6a0f27a 100644 Binary files a/tools/gallery_builder/__pycache__/dataset.cpython-311.pyc and b/tools/gallery_builder/__pycache__/dataset.cpython-311.pyc differ diff --git a/tools/gallery_builder/__pycache__/db.cpython-311.pyc b/tools/gallery_builder/__pycache__/db.cpython-311.pyc index e82b442..0354b98 100644 Binary files a/tools/gallery_builder/__pycache__/db.cpython-311.pyc and b/tools/gallery_builder/__pycache__/db.cpython-311.pyc differ diff --git a/tools/gallery_builder/__pycache__/detector.cpython-311.pyc b/tools/gallery_builder/__pycache__/detector.cpython-311.pyc index 054c776..599b8cb 100644 Binary files a/tools/gallery_builder/__pycache__/detector.cpython-311.pyc and b/tools/gallery_builder/__pycache__/detector.cpython-311.pyc differ diff --git a/tools/gallery_builder/__pycache__/recognizer.cpython-311.pyc b/tools/gallery_builder/__pycache__/recognizer.cpython-311.pyc index 6bcd533..0be0698 100644 Binary files a/tools/gallery_builder/__pycache__/recognizer.cpython-311.pyc and b/tools/gallery_builder/__pycache__/recognizer.cpython-311.pyc differ diff --git a/tools/gallery_builder/__pycache__/report.cpython-311.pyc b/tools/gallery_builder/__pycache__/report.cpython-311.pyc index 041bd8b..d5bea37 100644 Binary files a/tools/gallery_builder/__pycache__/report.cpython-311.pyc and b/tools/gallery_builder/__pycache__/report.cpython-311.pyc differ diff --git a/tools/gallery_builder/__pycache__/types.cpython-311.pyc b/tools/gallery_builder/__pycache__/types.cpython-311.pyc index f21968c..a47f7ea 100644 Binary files a/tools/gallery_builder/__pycache__/types.cpython-311.pyc and b/tools/gallery_builder/__pycache__/types.cpython-311.pyc differ