Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
FLIPPED-AURORA
gin-vue-admin
提交
0e174786
G
gin-vue-admin
项目概览
FLIPPED-AURORA
/
gin-vue-admin
大约 1 年 前同步成功
通知
333
Star
18155
Fork
5506
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
G
gin-vue-admin
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
0e174786
编写于
11月 24, 2021
作者:
B
bypanghu
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fixed: web全端添加gva 权重
上级
a9b9f5d9
变更
7
隐藏空白更改
内联
并排
Showing
7 changed file
with
201 addition
and
94 deletion
+201
-94
web/index.html
web/index.html
+8
-5
web/package.json
web/package.json
+2
-0
web/src/core/config.js
web/src/core/config.js
+44
-3
web/src/core/gin-vue-admin.js
web/src/core/gin-vue-admin.js
+18
-8
web/src/view/login/index.vue
web/src/view/login/index.vue
+41
-12
web/vite.config.js
web/vite.config.js
+75
-66
web/yarn.lock
web/yarn.lock
+13
-0
未找到文件。
web/index.html
浏览文件 @
0e174786
<!DOCTYPE html>
<!DOCTYPE html>
<html
lang=
"en"
>
<html
lang=
"en"
>
<head>
<head>
<meta
charset=
"utf-8"
>
<meta
charset=
"utf-8"
>
<meta
http-equiv=
"X-UA-Compatible"
content=
"IE=edge"
>
<meta
http-equiv=
"X-UA-Compatible"
content=
"IE=edge"
>
<meta
name=
"viewport"
content=
"width=device-width,initial-scale=1.0"
>
<meta
name=
"viewport"
content=
"width=device-width,initial-scale=1.0"
>
<meta
content=
"Gin,Vue,Admin.Gin-Vue-Admin,GVA,gin-vue-admin,后台管理框架,vue后台管理框架,gin-vue-admin文档,gin-vue-admin首页,gin-vue-admin"
name=
"keywords"
/>
<link
rel=
"icon"
href=
"favicon.ico"
>
<link
rel=
"icon"
href=
"favicon.ico"
>
<title></title>
<title></title>
</head>
</head>
<body>
<body>
<div
id=
"app"
></div>
<div
id=
"app"
></div>
<script
type=
"module"
src=
"./src/main.js"
></script>
<script
type=
"module"
src=
"./src/main.js"
></script>
</body>
</body>
</html>
</html>
\ No newline at end of file
web/package.json
浏览文件 @
0e174786
...
@@ -38,12 +38,14 @@
...
@@ -38,12 +38,14 @@
"@vue/compiler-sfc"
:
"^3.1.5"
,
"@vue/compiler-sfc"
:
"^3.1.5"
,
"babel-eslint"
:
"^10.1.0"
,
"babel-eslint"
:
"^10.1.0"
,
"babel-plugin-import"
:
"^1.13.3"
,
"babel-plugin-import"
:
"^1.13.3"
,
"chalk"
:
"^4.1.2"
,
"dotenv"
:
"^10.0.0"
,
"dotenv"
:
"^10.0.0"
,
"eslint"
:
"^6.7.2"
,
"eslint"
:
"^6.7.2"
,
"eslint-plugin-vue"
:
"^7.0.0"
,
"eslint-plugin-vue"
:
"^7.0.0"
,
"sass"
:
"^1.26.5"
,
"sass"
:
"^1.26.5"
,
"sass-loader"
:
"^8.0.2"
,
"sass-loader"
:
"^8.0.2"
,
"vite"
:
"2"
,
"vite"
:
"2"
,
"vite-plugin-banner"
:
"^0.1.3"
,
"vite-plugin-importer"
:
"^0.2.5"
"vite-plugin-importer"
:
"^0.2.5"
}
}
}
}
web/src/core/config.js
浏览文件 @
0e174786
...
@@ -3,8 +3,49 @@
...
@@ -3,8 +3,49 @@
*/
*/
const
config
=
{
const
config
=
{
appName
:
'
Gin-Vue-Admin
'
,
appName
:
'
Gin-Vue-Admin
'
,
appLogo
:
'
https://www.gin-vue-admin.com/img/logo.png
'
appLogo
:
'
https://www.gin-vue-admin.com/img/logo.png
'
,
showViteLogo
:
true
}
}
export
default
config
export
const
viteLogo
=
(
env
)
=>
{
if
(
config
.
showViteLogo
)
{
const
chalk
=
require
(
'
chalk
'
)
console
.
log
(
chalk
.
green
(
`> 欢迎使用Gin-Vue-Admin,开源地址:https://github.com/flipped-aurora/gin-vue-admin`
)
)
console
.
log
(
chalk
.
green
(
`> 当前版本:V2.4.6 Apache`
)
)
console
.
log
(
chalk
.
green
(
`> 加群方式:微信:shouzi_1994 QQ群:622360840`
)
)
console
.
log
(
chalk
.
green
(
`> 默认自动化文档地址:http://127.0.0.1:
${
env
.
VITE_SERVER_PORT
}
/swagger/index.html`
)
)
console
.
log
(
chalk
.
green
(
`> 默认自动化文档地址:http://127.0.0.1:
${
env
.
VITE_SERVER_PORT
}
/swagger/index.html`
)
)
console
.
log
(
chalk
.
green
(
`> 默认前端文件运行地址:http://127.0.0.1:
${
env
.
VITE_CLI_PORT
}
`
)
)
console
.
log
(
'
\n
'
)
}
}
export
default
config
\ No newline at end of file
web/src/core/gin-vue-admin.js
浏览文件 @
0e174786
...
@@ -7,12 +7,22 @@ import { register } from './global'
...
@@ -7,12 +7,22 @@ import { register } from './global'
export
const
run
=
function
(
app
)
{
export
const
run
=
function
(
app
)
{
register
(
app
)
register
(
app
)
console
.
log
(
`
console
.
log
(
欢迎使用 Gin-Vue-Admin
`%c gva启动完成 %c 当前版本V2.4.6 Apache%c`
,
当前版本:V2.4.5 beta
'
background:#35495e ; padding: 1px; border-radius: 3px 0 0 3px; color: #fff
'
,
加群方式:微信:shouzi_1994 QQ群:622360840
'
background:#007aff ;padding: 1px 5px; border-radius: 0 3px 3px 0; color: #fff; font-weight: bold;
'
,
默认自动化文档地址:http://127.0.0.1:
${
import
.
meta
.
env
.
VITE_SERVER_PORT
}
/swagger/index.html
'
background:transparent
'
默认前端文件运行地址:http://127.0.0.1:
${
import
.
meta
.
env
.
VITE_CLI_PORT
}
)
如果项目让您获得了收益,希望您能请团队喝杯可乐:https://www.gin-vue-admin.com/docs/coffee
console
.
log
(
`欢迎使用 %c Gin-Vue-Admin %c
`
)
%c 微信 %c shouzi_1994 %c
%c QQ群 %c 622360840 %c
`
,
'
background:#007aff ;padding: 1px 5px; border-radius: 3px; color: #fff; font-weight: bold;margin-bottom:4px;
'
,
'
background:transparent
'
,
'
background:#35495e ; padding: 1px; border-radius: 3px 0 0 3px; color: #fff
'
,
'
background:#007aff ;padding: 1px 5px; border-radius: 0 3px 3px 0; color: #fff; font-weight: bold;;margin-bottom:4px;
'
,
'
background:transparent
'
,
'
background:#35495e ; padding: 1px; border-radius: 3px 0 0 3px; color: #fff
'
,
'
background:#007aff ;padding: 1px 5px; border-radius: 0 3px 3px 0; color: #fff; font-weight: bold;;margin-bottom:4px;
'
,
'
background:transparent
'
)
}
}
\ No newline at end of file
web/src/view/login/index.vue
浏览文件 @
0e174786
...
@@ -3,10 +3,19 @@
...
@@ -3,10 +3,19 @@
<div
class=
"login_panle"
>
<div
class=
"login_panle"
>
<div
class=
"login_panle_form"
>
<div
class=
"login_panle_form"
>
<div
class=
"login_panle_form_title"
>
<div
class=
"login_panle_form_title"
>
<img
class=
"login_panle_form_title_logo"
:src=
"$GIN_VUE_ADMIN.appLogo"
alt
>
<img
class=
"login_panle_form_title_logo"
:src=
"$GIN_VUE_ADMIN.appLogo"
alt
>
<p
class=
"login_panle_form_title_p"
>
{{
$GIN_VUE_ADMIN
.
appName
}}
</p>
<p
class=
"login_panle_form_title_p"
>
{{
$GIN_VUE_ADMIN
.
appName
}}
</p>
</div>
</div>
<el-form
ref=
"loginForm"
:model=
"loginForm"
:rules=
"rules"
@
keyup.enter=
"submitForm"
>
<el-form
ref=
"loginForm"
:model=
"loginForm"
:rules=
"rules"
@
keyup.enter=
"submitForm"
>
<el-form-item
prop=
"username"
>
<el-form-item
prop=
"username"
>
<el-input
v-model=
"loginForm.username"
placeholder=
"请输入用户名"
>
<el-input
v-model=
"loginForm.username"
placeholder=
"请输入用户名"
>
<template
#suffix
>
<template
#suffix
>
...
@@ -21,7 +30,10 @@
...
@@ -21,7 +30,10 @@
placeholder=
"请输入密码"
placeholder=
"请输入密码"
>
>
<
template
#suffix
>
<
template
#suffix
>
<i
:class=
"'el-input__icon el-icon-' + lock"
@
click=
"changeLock"
/>
<i
:class=
"'el-input__icon el-icon-' + lock"
@
click=
"changeLock"
/>
</
template
>
</
template
>
</el-input>
</el-input>
</el-form-item>
</el-form-item>
...
@@ -33,12 +45,25 @@
...
@@ -33,12 +45,25 @@
style=
"width: 60%"
style=
"width: 60%"
/>
/>
<div
class=
"vPic"
>
<div
class=
"vPic"
>
<img
v-if=
"picPath"
:src=
"picPath"
alt=
"请输入验证码"
@
click=
"loginVerify()"
>
<img
v-if=
"picPath"
:src=
"picPath"
alt=
"请输入验证码"
@
click=
"loginVerify()"
>
</div>
</div>
</el-form-item>
</el-form-item>
<el-form-item>
<el-form-item>
<el-button
type=
"primary"
style=
"width: 46%"
@
click=
"checkInit"
>
前往初始化
</el-button>
<el-button
<el-button
type=
"primary"
style=
"width: 46%;margin-left:8%"
@
click=
"submitForm"
>
登 录
</el-button>
type=
"primary"
style=
"width: 46%"
@
click=
"checkInit"
>
前往初始化
</el-button>
<el-button
type=
"primary"
style=
"width: 46%; margin-left: 8%"
@
click=
"submitForm"
>
登 录
</el-button>
</el-form-item>
</el-form-item>
</el-form>
</el-form>
</div>
</div>
...
@@ -58,16 +83,18 @@
...
@@ -58,16 +83,18 @@
<img
src=
"@/assets/video.png"
class=
"link-icon"
>
<img
src=
"@/assets/video.png"
class=
"link-icon"
>
</a>
</a>
</div>
</div>
<div
class=
"copyright"
>
Copyright
©
{{ curYear }} 💖 flipped-aurora
</div>
<div
class=
"copyright"
>
<bootomInfo
/>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</template>
</template>
<
script
>
<
script
>
import
{
mapActions
}
from
'
vuex
'
import
{
mapActions
}
from
'
vuex
'
import
{
captcha
}
from
'
@/api/user
'
import
{
captcha
}
from
'
@/api/user
'
import
{
checkDB
}
from
'
@/api/initdb
'
import
{
checkDB
}
from
'
@/api/initdb
'
import
bootomInfo
from
'
@/view/layout/bottomInfo/bottomInfo.vue
'
export
default
{
export
default
{
name
:
'
Login
'
,
name
:
'
Login
'
,
data
()
{
data
()
{
...
@@ -86,7 +113,6 @@ export default {
...
@@ -86,7 +113,6 @@ export default {
}
}
}
}
return
{
return
{
curYear
:
0
,
lock
:
'
lock
'
,
lock
:
'
lock
'
,
loginForm
:
{
loginForm
:
{
username
:
'
admin
'
,
username
:
'
admin
'
,
...
@@ -99,8 +125,6 @@ export default {
...
@@ -99,8 +125,6 @@ export default {
password
:
[{
validator
:
checkPassword
,
trigger
:
'
blur
'
}],
password
:
[{
validator
:
checkPassword
,
trigger
:
'
blur
'
}],
captcha
:
[{
required
:
true
,
message
:
'
请输入验证码
'
,
trigger
:
'
blur
'
},
captcha
:
[{
required
:
true
,
message
:
'
请输入验证码
'
,
trigger
:
'
blur
'
},
{
{
min
:
5
,
max
:
6
,
message
:
'
验证码格式不正确
'
,
message
:
'
验证码格式不正确
'
,
trigger
:
'
blur
'
,
trigger
:
'
blur
'
,
}]
}]
...
@@ -109,9 +133,11 @@ export default {
...
@@ -109,9 +133,11 @@ export default {
picPath
:
''
picPath
:
''
}
}
},
},
components
:{
bootomInfo
},
created
()
{
created
()
{
this
.
loginVerify
()
this
.
loginVerify
()
this
.
curYear
=
new
Date
().
getFullYear
()
},
},
methods
:
{
methods
:
{
...
mapActions
(
'
user
'
,
[
'
LoginIn
'
]),
...
mapActions
(
'
user
'
,
[
'
LoginIn
'
]),
...
@@ -155,12 +181,15 @@ export default {
...
@@ -155,12 +181,15 @@ export default {
},
},
loginVerify
()
{
loginVerify
()
{
captcha
({}).
then
((
ele
)
=>
{
captcha
({}).
then
((
ele
)
=>
{
this
.
rules
.
captcha
[
1
].
max
=
ele
.
data
.
captchaLength
this
.
rules
.
captcha
[
1
].
min
=
ele
.
data
.
captchaLength
this
.
picPath
=
ele
.
data
.
picPath
this
.
picPath
=
ele
.
data
.
picPath
this
.
loginForm
.
captchaId
=
ele
.
data
.
captchaId
this
.
loginForm
.
captchaId
=
ele
.
data
.
captchaId
})
})
}
}
}
}
}
}
</
script
>
</
script
>
<
style
lang=
"scss"
scoped
>
<
style
lang=
"scss"
scoped
>
...
...
web/vite.config.js
浏览文件 @
0e174786
/* eslint-disable */
import
legacyPlugin
from
'
@vitejs/plugin-legacy
'
;
import
legacyPlugin
from
'
@vitejs/plugin-legacy
'
;
// import usePluginImport from 'vite-plugin-importer';
// import usePluginImport from 'vite-plugin-importer';
import
{
viteLogo
}
from
'
./src/core/config
'
import
Banner
from
'
vite-plugin-banner
'
import
*
as
path
from
'
path
'
;
import
*
as
path
from
'
path
'
;
import
*
as
dotenv
from
'
dotenv
'
;
import
*
as
dotenv
from
'
dotenv
'
;
import
*
as
fs
from
'
fs
'
;
import
*
as
fs
from
'
fs
'
;
import
vuePlugin
from
'
@vitejs/plugin-vue
'
;
import
vuePlugin
from
'
@vitejs/plugin-vue
'
;
// @see https://cn.vitejs.dev/config/
// @see https://cn.vitejs.dev/config/
export
default
({
export
default
({
command
,
command
,
mode
mode
})
=>
{
})
=>
{
let
NODE_ENV
=
process
.
env
.
NODE_ENV
||
'
development
'
let
NODE_ENV
=
process
.
env
.
NODE_ENV
||
'
development
'
let
envFiles
=
[
let
envFiles
=
[
`.env.
${
NODE_ENV
}
`
`.env.
${
NODE_ENV
}
`
]
]
for
(
const
file
of
envFiles
)
{
for
(
const
file
of
envFiles
)
{
const
envConfig
=
dotenv
.
parse
(
fs
.
readFileSync
(
file
))
const
envConfig
=
dotenv
.
parse
(
fs
.
readFileSync
(
file
))
for
(
const
k
in
envConfig
)
{
for
(
const
k
in
envConfig
)
{
process
.
env
[
k
]
=
envConfig
[
k
]
process
.
env
[
k
]
=
envConfig
[
k
]
}
}
}
}
let
rollupOptions
=
{};
viteLogo
(
process
.
env
)
let
timestamp
=
Date
.
parse
(
new
Date
())
let
optimizeDeps
=
{};
let
rollupOptions
=
{
output
:
{
entryFileNames
:
`gva/gin-vue-admin-[name].
${
timestamp
}
.js`
,
chunkFileNames
:
`js/gin-vue-admin-[name].
${
timestamp
}
.js`
,
assetFileNames
:
`assets/gin-vue-admin-[name].
${
timestamp
}
.[ext]`
}
};
let
optimizeDeps
=
{};
let
alias
=
{
let
alias
=
{
'
@
'
:
path
.
resolve
(
__dirname
,
'
./src
'
),
'
@
'
:
path
.
resolve
(
__dirname
,
'
./src
'
),
'
vue$
'
:
'
vue/dist/vue.runtime.esm-bundler.js
'
,
'
vue$
'
:
'
vue/dist/vue.runtime.esm-bundler.js
'
,
}
}
let
esbuild
=
{}
let
esbuild
=
{}
return
{
return
{
base
:
'
./
'
,
// index.html文件所在位置
base
:
'
./
'
,
// index.html文件所在位置
root
:
'
./
'
,
// js导入的资源路径,src
root
:
'
./
'
,
// js导入的资源路径,src
resolve
:
{
resolve
:
{
alias
,
alias
,
},
},
define
:
{
define
:
{
'
process.env
'
:
{}
'
process.env
'
:
{}
},
},
server
:
{
server
:
{
open
:
true
,
open
:
true
,
port
:
process
.
env
.
VITE_CLI_PORT
,
port
:
process
.
env
.
VITE_CLI_PORT
,
proxy
:
{
proxy
:
{
// 把key的路径代理到target位置
// 把key的路径代理到target位置
// detail: https://cli.vuejs.org/config/#devserver-proxy
// detail: https://cli.vuejs.org/config/#devserver-proxy
[
process
.
env
.
VITE_BASE_API
]:
{
// 需要代理的路径 例如 '/api'
[
process
.
env
.
VITE_BASE_API
]:
{
// 需要代理的路径 例如 '/api'
target
:
`
${
process
.
env
.
VITE_BASE_PATH
}
:
${
process
.
env
.
VITE_SERVER_PORT
}
/`
,
// 代理到 目标路径
target
:
`
${
process
.
env
.
VITE_BASE_PATH
}
:
${
process
.
env
.
VITE_SERVER_PORT
}
/`
,
// 代理到 目标路径
changeOrigin
:
true
,
changeOrigin
:
true
,
rewrite
:
path
=>
path
.
replace
(
new
RegExp
(
'
^
'
+
process
.
env
.
VITE_BASE_API
),
''
),
rewrite
:
path
=>
path
.
replace
(
new
RegExp
(
'
^
'
+
process
.
env
.
VITE_BASE_API
),
''
),
}
}
},
},
},
},
build
:
{
build
:
{
target
:
'
es2015
'
,
target
:
'
es2015
'
,
minify
:
'
terser
'
,
// 是否进行压缩,boolean | 'terser' | 'esbuild',默认使用terser
minify
:
'
terser
'
,
// 是否进行压缩,boolean | 'terser' | 'esbuild',默认使用terser
manifest
:
false
,
// 是否产出maifest.json
manifest
:
false
,
// 是否产出maifest.json
sourcemap
:
false
,
// 是否产出soucemap.json
sourcemap
:
false
,
// 是否产出soucemap.json
outDir
:
'
dist
'
,
// 产出目录
outDir
:
'
dist
'
,
// 产出目录
rollupOptions
,
rollupOptions
,
},
},
esbuild
,
esbuild
,
optimizeDeps
,
optimizeDeps
,
plugins
:
[
plugins
:
[
legacyPlugin
({
legacyPlugin
({
targets
:
[
'
Android > 39
'
,
'
Chrome >= 60
'
,
'
Safari >= 10.1
'
,
'
iOS >= 10.3
'
,
'
Firefox >= 54
'
,
'
Edge >= 15
'
],
targets
:
[
'
Android > 39
'
,
'
Chrome >= 60
'
,
'
Safari >= 10.1
'
,
'
iOS >= 10.3
'
,
'
Firefox >= 54
'
,
'
Edge >= 15
'
],
}),
vuePlugin
(),
}),
vuePlugin
(),
[
Banner
(
`\n Build based on gin-vue-admin \n Time :
${
timestamp
}
`
)]
],
],
css
:
{
css
:
{
preprocessorOptions
:
{
preprocessorOptions
:
{
less
:
{
less
:
{
// 支持内联 JavaScript
// 支持内联 JavaScript
javascriptEnabled
:
true
,
javascriptEnabled
:
true
,
}
}
}
}
},
},
}
}
}
}
\ No newline at end of file
web/yarn.lock
浏览文件 @
0e174786
...
@@ -2648,6 +2648,14 @@ chalk@^4.0.0, chalk@^4.1.0:
...
@@ -2648,6 +2648,14 @@ chalk@^4.0.0, chalk@^4.1.0:
ansi-styles "^4.1.0"
ansi-styles "^4.1.0"
supports-color "^7.1.0"
supports-color "^7.1.0"
chalk@^4.1.2:
version "4.1.2"
resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01"
integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==
dependencies:
ansi-styles "^4.1.0"
supports-color "^7.1.0"
chardet@^0.7.0:
chardet@^0.7.0:
version "0.7.0"
version "0.7.0"
resolved "https://registry.nlark.com/chardet/download/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e"
resolved "https://registry.nlark.com/chardet/download/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e"
...
@@ -8775,6 +8783,11 @@ verror@1.10.0:
...
@@ -8775,6 +8783,11 @@ verror@1.10.0:
core-util-is "1.0.2"
core-util-is "1.0.2"
extsprintf "^1.2.0"
extsprintf "^1.2.0"
vite-plugin-banner@^0.1.3:
version "0.1.3"
resolved "https://registry.yarnpkg.com/vite-plugin-banner/-/vite-plugin-banner-0.1.3.tgz#d3d4e8e284added35feaa54ab8ca273a9d3349e0"
integrity sha512-Kbv4KzvhffQwbp3Sr2FA51hFaiEgACGNExYK07hj0m53At2FTnPver2TfGCulDpv4G9B8/flbEOdso3JWWpIEQ==
vite-plugin-importer@^0.2.5:
vite-plugin-importer@^0.2.5:
version "0.2.5"
version "0.2.5"
resolved "https://registry.nlark.com/vite-plugin-importer/download/vite-plugin-importer-0.2.5.tgz#2363dc0d97d4ecec530ee40171310a17c2db077e"
resolved "https://registry.nlark.com/vite-plugin-importer/download/vite-plugin-importer-0.2.5.tgz#2363dc0d97d4ecec530ee40171310a17c2db077e"
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录