feat: Library 批量注册 + PeopleView 修复 + 国际化
Library: - 添加 checkbox 和鼠标框选功能 - Unregistered 卡片添加快速注册按钮 - 状态标签移至左下方,人脸图标移至左侧中间 - Deep Scan 改为 unregister -> register -> process - 完整国际化(日语、繁体中文、英语) PeopleView: - 修复卡片不显示问题(使用 get_file_traces API) - 移除对 identity_id 字段的依赖 其他: - 添加日语语言包 - 添加 useDragSelect composable - 新增文档:Face Bbox Null Bug Report
This commit is contained in:
@@ -1,9 +1,55 @@
|
||||
<template>
|
||||
<div class="build-version">{{ version }}</div>
|
||||
<div v-if="isAdvanced" class="build-version" @click="copyInfo" :title="tooltip">{{ displayText }}</div>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
const version = __BUILD_VERSION__
|
||||
import { computed } from 'vue'
|
||||
import { useRouter } from 'vue-router'
|
||||
import { useAdvancedMode } from '@/stores/advancedMode'
|
||||
import pkg from '../../package.json'
|
||||
|
||||
const router = useRouter()
|
||||
const { isAdvanced } = useAdvancedMode()
|
||||
const build = __BUILD_VERSION__
|
||||
const shortDate = build.slice(0, 8)
|
||||
const appVersion = pkg.version
|
||||
|
||||
const pageName = computed(() => {
|
||||
const name = router.currentRoute.value.name
|
||||
return typeof name === 'string' ? name : router.currentRoute.value.path
|
||||
})
|
||||
|
||||
const displayText = computed(() => `v${appVersion}-${shortDate} | ${pageName.value}`)
|
||||
|
||||
const tooltip = computed(() =>
|
||||
`App: ${appVersion}\nBuild: ${build}\nPage: ${pageName.value}`
|
||||
)
|
||||
|
||||
function copyInfo() {
|
||||
const lines = [
|
||||
'=== MOMENTRY STUDIO ===',
|
||||
`App Version: ${appVersion}`,
|
||||
`Build: ${build}`,
|
||||
`Page: ${pageName.value}`,
|
||||
`Route: ${router.currentRoute.value.path}`,
|
||||
`Timestamp: ${new Date().toISOString()}`
|
||||
]
|
||||
const text = lines.join('\n')
|
||||
const ta = document.createElement('textarea')
|
||||
ta.value = text
|
||||
ta.style.position = 'fixed'
|
||||
ta.style.left = '0'
|
||||
ta.style.top = '0'
|
||||
ta.style.width = '0'
|
||||
ta.style.height = '0'
|
||||
ta.style.opacity = '0'
|
||||
document.body.appendChild(ta)
|
||||
ta.focus()
|
||||
ta.setSelectionRange(0, text.length)
|
||||
const ok = document.execCommand('copy')
|
||||
document.body.removeChild(ta)
|
||||
if (!ok) window.prompt('Copy (Ctrl+C, Enter):', text)
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
@@ -14,9 +60,11 @@ const version = __BUILD_VERSION__
|
||||
font-size: 10px;
|
||||
color: var(--text-secondary, #9aa0a6);
|
||||
background: var(--bg-secondary, rgba(0,0,0,0.1));
|
||||
padding: 2px 6px;
|
||||
padding: 2px 8px;
|
||||
border-radius: 3px;
|
||||
z-index: 9999;
|
||||
font-family: monospace;
|
||||
cursor: pointer;
|
||||
white-space: nowrap;
|
||||
}
|
||||
</style>
|
||||
Reference in New Issue
Block a user