first commit

main
GoblinsWang 2023-03-23 11:32:38 +08:00
commit 229fd4d64f
299 changed files with 37225 additions and 0 deletions

2
.env.development Normal file
View File

@ -0,0 +1,2 @@
NODE_ENV=development
VUE_APP_NODE_ENV=dev

2
.env.production Normal file
View File

@ -0,0 +1,2 @@
NODE_ENV=production
VUE_APP_NODE_ENV=prod

2
.env.production.sit Normal file
View File

@ -0,0 +1,2 @@
NODE_ENV=production
VUE_APP_NODE_ENV=prod:sit

2
.env.production.uat Normal file
View File

@ -0,0 +1,2 @@
NODE_ENV=production
VUE_APP_NODE_ENV=prod:uat

1
.eslintignore Normal file
View File

@ -0,0 +1 @@
/src/icons/iconfont.js

21
.gitignore vendored Normal file
View File

@ -0,0 +1,21 @@
.DS_Store
node_modules
/dist
# local env files
.env.local
.env.*.local
# Log files
npm-debug.log*
yarn-debug.log*
yarn-error.log*
# Editor directories and files
.idea
.vscode
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw*

21
README.md Normal file
View File

@ -0,0 +1,21 @@
# face-monitoring
## Project setup
```
npm install
```
### Compiles and hot-reloads for development
```
npm run serve
```
### Compiles and minifies for production
```
npm run build
```
### Lints and fixes files
```
npm run lint
```

5
babel.config.js Normal file
View File

@ -0,0 +1,5 @@
module.exports = {
presets: [
'@vue/app'
]
}

105
gulpfile.js Normal file
View File

@ -0,0 +1,105 @@
var gulp = require('gulp')
var $ = require('gulp-load-plugins')()
var fs = require('fs')
var path = require('path')
var del = require('del')
//var colors = require('colors')
var child_process = require('child_process')
var theme = {}
var themeList = require('./src/element-ui/config.js').filter(item => !item.hasBuild)
var styleFileDir = './src/assets/scss'
var styleFileDirTemp = `${styleFileDir}-temp`
var themeFileDir = './public/element-theme'
var et = require('element-theme')
var etOptions = require('./package.json')['element-theme']
var themeFileName = etOptions.config.replace(/.*\/(.+\.scss)/, '$1')
/**
* 构建生成主题
*/
gulp.task('themes', () => {
if (themeList.length <= 0) { return del(styleFileDirTemp) }
// 删除临时文件,保证本次操作正常执行
//del(styleFileDirTemp)
console.log('del(styleFileDirTemp)');
// 拷贝一份scss样式文件夹作为构建的临时处理文件夹
//child_process.spawnSync('cp', ['-r', styleFileDir, styleFileDirTemp])
console.log('copy styleFileDirTemp');
// 拷贝element组件scss变量样式文件至临时处理文件夹中并修改相应配置信息
//child_process.spawnSync('cp', ['-r', etOptions.config, styleFileDirTemp])
etOptions.config = `${styleFileDirTemp}/${themeFileName}`
// 开始构建生成
fnCreate(themeList)
function fnCreate (themeList) {
if (themeList.length >= 1) {
// 保存当前构建生成的主题对象
theme = themeList[0]
console.log('\n')
console.log('-------------------- 待构建,主题 -------------------------')
console.log(themeList)
console.log('\n')
console.log('-------------------- 构建中,主题 -------------------------')
console.log(theme)
console.log('\n')
// 修改.scss临时文件中的$--color-primary主题变量值
var data = fs.readFileSync(etOptions.config, 'utf8')
var result = data.replace(/\$--color-primary:(.*) !default;/, `$--color-primary:${theme.color} !default;`)
fs.writeFileSync(path.resolve(etOptions.config), result)
// 修改aui.scss临时文件中引入element组件主题变量文件路径
var data = fs.readFileSync(`${styleFileDirTemp}/aui.scss`, 'utf8')
var result = data.replace(new RegExp(`(@import \")(.*\/)(${themeFileName}\";)`), '$1./$3')
fs.writeFileSync(path.resolve(`${styleFileDirTemp}/aui.scss`), result)
// 调用element-theme插件生成element组件主题
etOptions.out = `${themeFileDir}/${theme.name}`
et.run(etOptions, () => {
// 生成后构建同主题色aui.css项目主题
gulp.start(['styles'], () => {
// 递归下一步
themeList.splice(0, 1)
fnCreate(themeList)
})
})
} else {
// 删除临时文件
del(styleFileDirTemp)
console.log('\n')
console.log('-------------------- 构建完毕,删除临时文件 -------------------------')
console.log(styleFileDirTemp)
console.log('\n')
// 删除主题不需要的部分文件
var files = [
`${themeFileDir}/**/*.css`,
`!${themeFileDir}/**/index.css`,
`!${themeFileDir}/**/aui.css`,
`!${themeFileDir}/**/fonts`
]
del(files)
console.log('-------------------- 构建完毕,删除主题独立组件文件 -------------------------')
console.log(files)
console.log('\n')
}
}
})
gulp.task('styles', () => {
return gulp.src([`${styleFileDirTemp}/aui.scss`])
.pipe($.sass().on('error', $.sass.logError))
.pipe($.autoprefixer({
browsers: etOptions.browsers,
cascade: false
}))
.pipe($.cleanCss())
.pipe($.rename('aui.css'))
.pipe(gulp.dest(`${themeFileDir}/${theme.name}`))
})

18981
package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

95
package.json Normal file
View File

@ -0,0 +1,95 @@
{
"name": "security-enterprise-admin",
"version": "2.4.0",
"private": true,
"scripts": {
"serve": "vue-cli-service serve",
"build": "vue-cli-service build",
"build:sit": "vue-cli-service build --mode production.sit",
"build:uat": "vue-cli-service build --mode production.uat",
"build:prod": "vue-cli-service build --mode production",
"lint": "vue-cli-service lint",
"et": "node_modules/.bin/et",
"et:init": "node_modules/.bin/et -i",
"et:list": "gulp themes"
},
"dependencies": {
"axios": "^0.19.0",
"babel-eslint": "^8.0.1",
"babel-plugin-component": "^1.1.1",
"echarts": "^4.4.0",
"element-theme": "^2.0.1",
"element-ui": "^2.11.1",
"gulp-autoprefixer": "^6.1.0",
"gulp-clean-css": "^4.2.0",
"gulp-load-plugins": "^2.0.0",
"gulp-rename": "^1.4.0",
"gulp-sass": "^4.0.2",
"html2canvas": "^1.0.0-rc.5",
"js-cookie": "^2.2.0",
"jspdf": "^1.5.3",
"lodash": "^4.17.15",
"node-sass": "^4.12.0",
"qs": "^6.7.0",
"quill": "^1.3.7",
"sass-loader": "^7.1.0",
"screenfull": "^4.2.1",
"svg-sprite-loader": "^4.1.6",
"videojs-flash": "^2.2.1",
"vue": "^2.6.10",
"vue-amap": "^0.5.10",
"vue-baidu-map": "^0.21.22",
"vue-cropperjs": "^3.0.0",
"vue-i18n": "^8.12.0",
"vue-router": "^3.0.7",
"vue-video-player": "^5.0.2",
"vuex": "^3.1.1"
},
"devDependencies": {
"@vue/cli-plugin-babel": "^3.10.0",
"@vue/cli-plugin-eslint": "^3.10.0",
"@vue/cli-service": "^3.10.0",
"@vue/eslint-config-standard": "^4.0.0",
"element-theme-chalk": "^2.11.1",
"natives": "^1.1.6",
"vue-template-compiler": "^2.6.10"
},
"eslintConfig": {
"root": true,
"env": {
"node": true
},
"extends": [
"plugin:vue/essential",
"@vue/standard"
],
"rules": {},
"parserOptions": {
"parser": "babel-eslint"
}
},
"postcss": {
"plugins": {
"autoprefixer": {}
}
},
"engines": {
"node": ">= 8.11.1",
"npm": ">= 5.6.0"
},
"browserslist": [
"> 1%",
"last 2 versions",
"not ie <= 10"
],
"element-theme": {
"config": "./src/element-ui/theme-variables.scss",
"out": "./src/element-ui/theme",
"minimize": true,
"browsers": [
"> 1%",
"last 2 versions",
"not ie <= 10"
]
}
}

5
public/config.js Normal file
View File

@ -0,0 +1,5 @@
window.GLOBAL_CONFIG = {
apiURL: "http://192.168.62.213:8889/face",
IMG_SERVER_URL: "http://192.168.1.127:9000",
SOCKET_URL: "ws://192.168.1.161:1993/task/webSocket",
}

File diff suppressed because one or more lines are too long

Binary file not shown.

Binary file not shown.

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Binary file not shown.

Binary file not shown.

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Binary file not shown.

Binary file not shown.

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Binary file not shown.

Binary file not shown.

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Binary file not shown.

Binary file not shown.

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Binary file not shown.

Binary file not shown.

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Binary file not shown.

Binary file not shown.

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Binary file not shown.

Binary file not shown.

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Binary file not shown.

Binary file not shown.

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Binary file not shown.

Binary file not shown.

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Binary file not shown.

Binary file not shown.

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Binary file not shown.

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Binary file not shown.

Binary file not shown.

File diff suppressed because one or more lines are too long

BIN
public/favicon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

60
public/index.html Normal file
View File

@ -0,0 +1,60 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<link rel="shortcut icon" href="<%= BASE_URL %>favicon.ico">
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Noto+Sans+SC:100,300,400,500,700,900">
<!-- 全局配置文件 -->
<script src="./config.js"></script>
<!-- 站点配置 -->
<script>
window.SITE_CONFIG = {};
window.SITE_CONFIG['version'] = 'v2.4.0';
window.SITE_CONFIG['nodeEnv'] = '<%= process.env.VUE_APP_NODE_ENV %>';
window.SITE_CONFIG['apiURL'] = ''; // api请求地址
window.SITE_CONFIG['storeState'] = {}; // vuex本地储存初始化状态用于不刷新页面的情况下也能重置初始化项目中所有状态
window.SITE_CONFIG['contentTabDefault'] = { // 内容标签页默认属性对象
'name': '', // 名称, 由 this.$route.name 自动赋值(默认,名称 === 路由名称 === 路由路径)
'params': {}, // 参数, 由 this.$route.params 自动赋值
'query': {}, // 查询参数, 由 this.$route.query 自动赋值
'menuId': '', // 菜单id用于选中侧边栏菜单与this.$store.state.sidebarMenuActiveName进行匹配
'title': '', // 标题
'isTab': true, // 是否通过tab展示内容?
'iframeURL': '' // 是否通过iframe嵌套展示内容? (以http[s]://开头, 自动匹配)
};
window.SITE_CONFIG['menuList'] = []; // 左侧菜单列表(后台返回,未做处理)
window.SITE_CONFIG['permissions'] = []; // 页面按钮操作权限(后台返回,未做处理)
window.SITE_CONFIG['dynamicRoutes'] = []; // 动态路由列表
window.SITE_CONFIG['dynamicMenuRoutes'] = []; // 动态(菜单)路由列表
window.SITE_CONFIG['dynamicMenuRoutesHasAdded'] = false; // 动态(菜单)路由是否已经添加的状态标示(用于判断是否需要重新拉取数据并进行动态添加操作)
</script>
<!-- 开发环境 -->
<% if (process.env.VUE_APP_NODE_ENV === 'dev') { %>
<script>
window.SITE_CONFIG['apiURL'] = window.GLOBAL_CONFIG.apiURL;
</script>
<% } %>
<!-- 集成测试环境 -->
<% if (process.env.VUE_APP_NODE_ENV === 'prod:sit') { %>
<script>
window.SITE_CONFIG['apiURL'] = window.GLOBAL_CONFIG.apiURL;
</script>
<% } %>
<!-- 验收测试环境 -->
<% if (process.env.VUE_APP_NODE_ENV === 'prod:uat') { %>
<script>
window.SITE_CONFIG['apiURL'] = window.GLOBAL_CONFIG.apiURL;
</script>
<% } %>
<!-- 生产环境 -->
<% if (process.env.VUE_APP_NODE_ENV === 'prod') { %>
<script>
window.SITE_CONFIG['apiURL'] = window.GLOBAL_CONFIG.apiURL;
</script>
<% } %>
</head>
<body>
<div id="app"></div>
</body>
</html>

98
src/App.vue Normal file
View File

@ -0,0 +1,98 @@
<template>
<transition name="el-fade-in-linear">
<router-view />
</transition>
</template>
<script>
import Cookies from 'js-cookie'
import { messages } from '@/i18n'
export default {
watch: {
'$i18n.locale': 'i18nHandle'
},
created () {
this.i18nHandle(this.$i18n.locale)
},
methods: {
i18nHandle (val, oldVal) {
Cookies.set('language', val)
document.querySelector('html').setAttribute('lang', val)
document.title = messages[val].brand.lg
//
if (this.$route.name !== 'login' && oldVal) {
window.location.reload()
}
}
}
}
</script>
<style>
.amap-marker-label{
border: "0px" !important;
background-color: "0.000000000001" !important;
background-color: "#9DB7F2" !important;
font-size: "12px"!important;
height: "20px"!important;
border:"1px solid black"!important;
}
.amap-logo {
display: none !important;
}
.trackquery .amap-copyright{
display: none !important;
}
.el-drawer__open .el-drawer.rtl{
height: 900px;
overflow: auto;
}
.el-tabs__nav-scroll{
background-color: white !important
}
.el-tabs--top .el-tabs__item.is-top:nth-child(2){
padding-left: 20px !important;
}
/* .imgs .el-upload--picture-card{
width: 380px !important;
height: 200px !important;
} */
.home .el-header{
height: 400px !important;
}
.aui-page__login .login-body{
width: 1200px !important;
}
#group .el-upload--picture-card{
margin-top: 20px !important;
margin-left: 20px !important;
}
/* 布控 */
.surveillance_addimg .el-dialog__title{
font-weight: bold !important;
font-size: 14px !important;
font-style: normal;
font-family: "Noto Sans SC";
}
/* 检索 */
.retrieval .avatar-uploader-icon{
border: 1px dashed #d9d9d9 !important;
border-radius: 6px;
}
.retrievals .avatar-uploader-icon{
border: 1px dashed #d9d9d9 !important;
border-radius: 6px;
}
.retrieval .avatar-uploader-icon:hover {
border-color: #409EFF !important;
}
.retrievals .avatar-uploader-icon:hover {
border-color: #409EFF !important;
}
.el-pagination {
text-align: center !important;
}
.retrievals .aui-wrapper .el-card+.el-card{
margin-bottom: 0px !important;
}
</style>

BIN
src/assets/img/123_06.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 176 KiB

BIN
src/assets/img/123_08.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 103 KiB

BIN
src/assets/img/123_10.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 178 KiB

BIN
src/assets/img/123_12.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 133 KiB

BIN
src/assets/img/avatar.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 90 KiB

BIN
src/assets/img/go.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 104 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 166 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 97 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 250 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 528 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 286 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 262 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 629 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 585 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 293 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 373 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 304 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 344 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 274 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 354 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 208 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 167 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 240 KiB

BIN
src/assets/img/login_bg.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 135 KiB

BIN
src/assets/img/login_bg.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB

BIN
src/assets/img/login_p.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 266 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 258 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 225 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 147 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 196 B

BIN
src/assets/img/video.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Some files were not shown because too many files have changed in this diff Show More