├── public ├── favicon.ico └── index.html ├── src ├── assets │ └── logo.png ├── shims-vue.d.ts ├── utils │ └── axios.ts ├── main.ts ├── router │ └── index.ts ├── components │ └── DialogAddFace.vue ├── views │ ├── FaceStream.vue │ ├── FaceRecognition.vue │ ├── FaceDetect.vue │ └── FaceCompare.vue └── App.vue ├── babel.config.js ├── .gitignore ├── vue.config.js ├── jsconfig.json ├── README.md ├── tsconfig.json └── package.json /public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itboyst/ArcSoftFaceDemoUI/HEAD/public/favicon.ico -------------------------------------------------------------------------------- /src/assets/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itboyst/ArcSoftFaceDemoUI/HEAD/src/assets/logo.png -------------------------------------------------------------------------------- /babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | presets: [ 3 | '@vue/cli-plugin-babel/preset' 4 | ] 5 | } 6 | -------------------------------------------------------------------------------- /src/shims-vue.d.ts: -------------------------------------------------------------------------------- 1 | /* eslint-disable */ 2 | declare module '*.vue' { 3 | import type { DefineComponent } from 'vue' 4 | const component: DefineComponent<{}, {}, any> 5 | export default component 6 | } 7 | -------------------------------------------------------------------------------- /src/utils/axios.ts: -------------------------------------------------------------------------------- 1 | import axios from 'axios' 2 | 3 | 4 | 5 | axios.interceptors.response.use(res => { 6 | // if (typeof res.data !== 'object' && typeof res.data !== '') { 7 | // console.error("请求异常") 8 | // return Promise.reject(res) 9 | // } 10 | return res.data 11 | }) 12 | 13 | export default axios -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules 3 | /dist 4 | 5 | 6 | # local env files 7 | .env.local 8 | .env.*.local 9 | 10 | # Log files 11 | npm-debug.log* 12 | yarn-debug.log* 13 | yarn-error.log* 14 | pnpm-debug.log* 15 | 16 | # Editor directories and files 17 | .idea 18 | .vscode 19 | *.suo 20 | *.ntvs* 21 | *.njsproj 22 | *.sln 23 | *.sw? 24 | -------------------------------------------------------------------------------- /vue.config.js: -------------------------------------------------------------------------------- 1 | const { defineConfig } = require('@vue/cli-service') 2 | module.exports = defineConfig({ 3 | transpileDependencies: true, 4 | lintOnSave:false, 5 | devServer: { 6 | port: 8088, 7 | proxy: { 8 | "/": { 9 | target: "http://127.0.0.1:8089", 10 | changeOrigin: true, 11 | ws: false, 12 | } 13 | }} 14 | }) 15 | -------------------------------------------------------------------------------- /jsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "es5", 4 | "module": "esnext", 5 | "baseUrl": "./", 6 | "moduleResolution": "node", 7 | "paths": { 8 | "@/*": [ 9 | "src/*" 10 | ] 11 | }, 12 | "lib": [ 13 | "esnext", 14 | "dom", 15 | "dom.iterable", 16 | "scripthost" 17 | ] 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # arcface-ui 2 | 3 | ## Project setup 4 | ``` 5 | npm install 6 | ``` 7 | 8 | ### Compiles and hot-reloads for development 9 | ``` 10 | npm run serve 11 | ``` 12 | 13 | ### Compiles and minifies for production 14 | ``` 15 | npm run build 16 | ``` 17 | 18 | ### Lints and fixes files 19 | ``` 20 | npm run lint 21 | ``` 22 | 23 | ### Customize configuration 24 | See [Configuration Reference](https://cli.vuejs.org/config/). 25 | -------------------------------------------------------------------------------- /src/main.ts: -------------------------------------------------------------------------------- 1 | import { createApp } from 'vue' 2 | import App from './App.vue' 3 | 4 | 5 | import router from './router' 6 | // import store from './store' 7 | 8 | import ElementPlus from 'element-plus' 9 | 10 | import 'element-plus/dist/index.css' 11 | 12 | 13 | const app =createApp(App) 14 | 15 | //确保 _use_ 路由实例使 16 | //整个应用支持路由。 17 | app.use(router) 18 | // app.use(store) 19 | app.use(ElementPlus); 20 | 21 | app.mount('#app') 22 | -------------------------------------------------------------------------------- /public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | <%= htmlWebpackPlugin.options.title %> 9 | 10 | 11 | 14 |
15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /src/router/index.ts: -------------------------------------------------------------------------------- 1 | import {createRouter, createWebHashHistory, RouteRecordRaw} from "vue-router"; 2 | 3 | 4 | const routes: Array = [ 5 | { 6 | path: '/', 7 | component: () => import("@/views/FaceDetect.vue") 8 | }, 9 | { 10 | path: '/faceDetect', 11 | component: () =>import("@/views/FaceDetect.vue") 12 | }, 13 | { 14 | path: '/faceCompare', 15 | component: () => import("@/views/FaceCompare.vue") 16 | }, 17 | { 18 | path: '/faceRecognition', 19 | component: () => import("@/views/FaceRecognition.vue") 20 | }, 21 | { 22 | path: '/faceStream', 23 | component: () =>import("@/views/FaceStream.vue") 24 | } 25 | ] 26 | 27 | 28 | const router = createRouter({ 29 | history: createWebHashHistory(), 30 | routes: routes 31 | }) 32 | 33 | export default router; 34 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "esnext", 4 | "module": "esnext", 5 | "strict": true, 6 | "jsx": "preserve", 7 | "moduleResolution": "node", 8 | "experimentalDecorators": true, 9 | "allowJs": true, 10 | "skipLibCheck": true, 11 | "esModuleInterop": true, 12 | "allowSyntheticDefaultImports": true, 13 | "forceConsistentCasingInFileNames": true, 14 | "useDefineForClassFields": true, 15 | "sourceMap": true, 16 | "baseUrl": ".", 17 | "types": [ 18 | "webpack-env" 19 | ], 20 | "paths": { 21 | "@/*": [ 22 | "src/*" 23 | ] 24 | }, 25 | "lib": [ 26 | "esnext", 27 | "dom", 28 | "dom.iterable", 29 | "scripthost" 30 | ] 31 | }, 32 | "include": [ 33 | "src/**/*.ts", 34 | "src/**/*.tsx", 35 | "src/**/*.vue", 36 | "tests/**/*.ts", 37 | "tests/**/*.tsx" 38 | ], 39 | "exclude": [ 40 | "node_modules" 41 | ] 42 | } 43 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "arcface-ui", 3 | "version": "0.1.0", 4 | "private": true, 5 | "scripts": { 6 | "serve": "vue-cli-service serve", 7 | "build": "vue-cli-service build", 8 | "lint": "vue-cli-service lint" 9 | }, 10 | "dependencies": { 11 | "@element-plus/icons-vue": "^1.1.4", 12 | "axios": "1.7.4", 13 | "core-js": "^3.8.3", 14 | "element-plus": "^2.1.6", 15 | "tsload": "^1.0.0", 16 | "vue": "^3.2.13", 17 | "vue-class-component": "^8.0.0-0", 18 | "vue-router": "^4.0.14", 19 | "vuex": "^4.0.2", 20 | "xgplayer": "^2.31.4", 21 | "xgplayer-flv": "^2.5.1" 22 | }, 23 | "devDependencies": { 24 | "@babel/core": "^7.12.16", 25 | "@babel/eslint-parser": "^7.12.16", 26 | "@typescript-eslint/eslint-plugin": "^5.4.0", 27 | "@typescript-eslint/parser": "^5.4.0", 28 | "@vue/cli-plugin-babel": "~5.0.0", 29 | "@vue/cli-plugin-eslint": "~5.0.0", 30 | "@vue/cli-plugin-typescript": "~5.0.0", 31 | "@vue/cli-service": "~5.0.0", 32 | "@vue/eslint-config-typescript": "^9.1.0", 33 | "eslint": "^7.32.0", 34 | "eslint-plugin-vue": "^8.0.3", 35 | "typescript": "~4.5.5" 36 | }, 37 | "eslintConfig": { 38 | "root": true, 39 | "env": { 40 | "node": true 41 | }, 42 | "extends": [ 43 | "plugin:vue/vue3-essential", 44 | "eslint:recommended", 45 | "@vue/typescript" 46 | ], 47 | "parserOptions": { 48 | "parser": "@typescript-eslint/parser" 49 | }, 50 | "rules": {} 51 | }, 52 | "browserslist": [ 53 | "> 1%", 54 | "last 2 versions", 55 | "not dead", 56 | "not ie 11" 57 | ] 58 | } 59 | -------------------------------------------------------------------------------- /src/components/DialogAddFace.vue: -------------------------------------------------------------------------------- 1 | 35 | 36 | 87 | 88 | -------------------------------------------------------------------------------- /src/views/FaceStream.vue: -------------------------------------------------------------------------------- 1 | 42 | 43 | 104 | 105 | -------------------------------------------------------------------------------- /src/views/FaceRecognition.vue: -------------------------------------------------------------------------------- 1 | 53 | 54 | 118 | 119 | -------------------------------------------------------------------------------- /src/App.vue: -------------------------------------------------------------------------------- 1 | 60 | 61 | 88 | 89 | 153 | 191 | -------------------------------------------------------------------------------- /src/views/FaceDetect.vue: -------------------------------------------------------------------------------- 1 | 54 | 55 | 142 | 143 | -------------------------------------------------------------------------------- /src/views/FaceCompare.vue: -------------------------------------------------------------------------------- 1 | 74 | 75 | 182 | 183 | --------------------------------------------------------------------------------