Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
FLIPPED-AURORA
gin-vue-admin
提交
d70599f6
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,发现更多精彩内容 >>
提交
d70599f6
编写于
6月 26, 2020
作者:
Mr.奇淼(
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
验证码配置参数修改进配置文件,前端角色id不再允许输入英文字符
上级
0dcb0267
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
131 addition
and
118 deletion
+131
-118
server/api/v1/sys_captcha.go
server/api/v1/sys_captcha.go
+2
-1
server/config.yaml
server/config.yaml
+3
-3
web/src/view/superAdmin/authority/authority.vue
web/src/view/superAdmin/authority/authority.vue
+126
-114
未找到文件。
server/api/v1/sys_captcha.go
浏览文件 @
d70599f6
...
...
@@ -2,6 +2,7 @@ package v1
import
(
"fmt"
"gin-vue-admin/global"
"gin-vue-admin/global/response"
resp
"gin-vue-admin/model/response"
"github.com/gin-gonic/gin"
...
...
@@ -20,7 +21,7 @@ var store = base64Captcha.DefaultMemStore
func
Captcha
(
c
*
gin
.
Context
)
{
//字符,公式,验证码配置
// 生成默认数字的driver
driver
:=
base64Captcha
.
NewDriverDigit
(
80
,
240
,
5
,
0.7
,
80
)
driver
:=
base64Captcha
.
NewDriverDigit
(
global
.
GVA_CONFIG
.
Captcha
.
ImgHeight
,
global
.
GVA_CONFIG
.
Captcha
.
ImgWidth
,
global
.
GVA_CONFIG
.
Captcha
.
KeyLong
,
0.7
,
80
)
cp
:=
base64Captcha
.
NewCaptcha
(
driver
,
store
)
id
,
b64s
,
err
:=
cp
.
Generate
()
if
err
!=
nil
{
...
...
server/config.yaml
浏览文件 @
d70599f6
...
...
@@ -46,9 +46,9 @@ system:
# captcha configuration
captcha
:
key-long
:
4
img-width
:
12
0
img-height
:
4
0
key-long
:
6
img-width
:
24
0
img-height
:
8
0
# logger configuration
log
:
...
...
web/src/view/superAdmin/authority/authority.vue
浏览文件 @
d70599f6
...
...
@@ -57,7 +57,13 @@
></el-cascader>
</el-form-item>
<el-form-item
label=
"角色ID"
prop=
"authorityId"
>
<el-input
:disabled=
"dialogType=='edit'"
autocomplete=
"off"
v-model=
"form.authorityId"
></el-input>
<el-input-number
:disabled=
"dialogType=='edit'"
step-strictly
:step=
"1"
autocomplete=
"off"
v-model=
"form.authorityId"
></el-input-number>
</el-form-item>
<el-form-item
label=
"角色姓名"
prop=
"authorityName"
>
<el-input
autocomplete=
"off"
v-model=
"form.authorityName"
></el-input>
...
...
@@ -94,50 +100,50 @@ import {
createAuthority
,
updateAuthority
,
copyAuthority
}
from
'
@/api/authority
'
}
from
"
@/api/authority
"
;
import
Menus
from
'
@/view/superAdmin/authority/components/menus
'
import
Apis
from
'
@/view/superAdmin/authority/components/apis
'
import
Datas
from
'
@/view/superAdmin/authority/components/datas
'
import
Menus
from
"
@/view/superAdmin/authority/components/menus
"
;
import
Apis
from
"
@/view/superAdmin/authority/components/apis
"
;
import
Datas
from
"
@/view/superAdmin/authority/components/datas
"
;
import
infoList
from
'
@/components/mixins/infoList
'
import
infoList
from
"
@/components/mixins/infoList
"
;
export
default
{
name
:
'
Authority
'
,
name
:
"
Authority
"
,
mixins
:
[
infoList
],
data
()
{
return
{
AuthorityOption
:
[
{
authorityId
:
'
0
'
,
authorityName
:
'
根角色
'
authorityId
:
"
0
"
,
authorityName
:
"
根角色
"
}
],
listApi
:
getAuthorityList
,
drawer
:
false
,
dialogType
:
'
add
'
,
dialogType
:
"
add
"
,
activeRow
:
{},
activeUserId
:
0
,
dialogTitle
:
'
新增角色
'
,
dialogTitle
:
"
新增角色
"
,
dialogFormVisible
:
false
,
apiDialogFlag
:
false
,
copyForm
:
{},
form
:
{
authorityId
:
''
,
authorityName
:
''
,
parentId
:
'
0
'
authorityId
:
""
,
authorityName
:
""
,
parentId
:
"
0
"
},
rules
:
{
authorityId
:
[
{
required
:
true
,
message
:
'
请输入角色ID
'
,
trigger
:
'
blur
'
}
{
required
:
true
,
message
:
"
请输入角色ID
"
,
trigger
:
"
blur
"
}
],
authorityName
:
[
{
required
:
true
,
message
:
'
请输入角色名
'
,
trigger
:
'
blur
'
}
{
required
:
true
,
message
:
"
请输入角色名
"
,
trigger
:
"
blur
"
}
],
parentId
:
[
{
required
:
true
,
message
:
'
请选择请求方式
'
,
trigger
:
'
blur
'
}
{
required
:
true
,
message
:
"
请选择请求方式
"
,
trigger
:
"
blur
"
}
]
}
}
}
;
},
components
:
{
Menus
,
...
...
@@ -146,148 +152,148 @@ export default {
},
methods
:
{
autoEnter
(
activeName
,
oldActiveName
)
{
const
paneArr
=
[
'
menus
'
,
'
apis
'
,
'
datas
'
]
const
paneArr
=
[
"
menus
"
,
"
apis
"
,
"
datas
"
];
if
(
oldActiveName
)
{
if
(
this
.
$refs
[
paneArr
[
oldActiveName
]].
needConfirm
)
{
this
.
$refs
[
paneArr
[
oldActiveName
]].
enterAndNext
()
this
.
$refs
[
paneArr
[
oldActiveName
]].
needConfirm
=
false
this
.
$refs
[
paneArr
[
oldActiveName
]].
enterAndNext
()
;
this
.
$refs
[
paneArr
[
oldActiveName
]].
needConfirm
=
false
;
}
}
},
// 拷贝角色
copyAuthority
(
row
)
{
this
.
setOptions
()
this
.
dialogTitle
=
'
拷贝角色
'
this
.
dialogType
=
'
copy
'
this
.
setOptions
()
;
this
.
dialogTitle
=
"
拷贝角色
"
;
this
.
dialogType
=
"
copy
"
;
for
(
let
k
in
this
.
form
)
{
this
.
form
[
k
]
=
row
[
k
]
this
.
form
[
k
]
=
row
[
k
]
;
}
this
.
copyForm
=
row
this
.
dialogFormVisible
=
true
this
.
copyForm
=
row
;
this
.
dialogFormVisible
=
true
;
},
opdendrawer
(
row
)
{
this
.
drawer
=
true
this
.
activeRow
=
row
this
.
drawer
=
true
;
this
.
activeRow
=
row
;
},
// 删除角色
deleteAuth
(
row
)
{
this
.
$confirm
(
'
此操作将永久删除该角色, 是否继续?
'
,
'
提示
'
,
{
confirmButtonText
:
'
确定
'
,
cancelButtonText
:
'
取消
'
,
type
:
'
warning
'
this
.
$confirm
(
"
此操作将永久删除该角色, 是否继续?
"
,
"
提示
"
,
{
confirmButtonText
:
"
确定
"
,
cancelButtonText
:
"
取消
"
,
type
:
"
warning
"
})
.
then
(
async
()
=>
{
const
res
=
await
deleteAuthority
({
authorityId
:
row
.
authorityId
})
const
res
=
await
deleteAuthority
({
authorityId
:
row
.
authorityId
})
;
if
(
res
.
code
==
0
)
{
this
.
$message
({
type
:
'
success
'
,
message
:
'
删除成功!
'
})
this
.
getTableData
()
type
:
"
success
"
,
message
:
"
删除成功!
"
})
;
this
.
getTableData
()
;
}
})
.
catch
(()
=>
{
this
.
$message
({
type
:
'
info
'
,
message
:
'
已取消删除
'
})
})
type
:
"
info
"
,
message
:
"
已取消删除
"
})
;
})
;
},
// 初始化表单
initForm
()
{
if
(
this
.
$refs
.
authorityForm
)
{
this
.
$refs
.
authorityForm
.
resetFields
()
this
.
$refs
.
authorityForm
.
resetFields
()
;
}
this
.
form
=
{
authorityId
:
''
,
authorityName
:
''
,
parentId
:
'
0
'
}
authorityId
:
""
,
authorityName
:
""
,
parentId
:
"
0
"
}
;
},
// 关闭窗口
closeDialog
()
{
this
.
initForm
()
this
.
dialogFormVisible
=
false
this
.
apiDialogFlag
=
false
this
.
initForm
()
;
this
.
dialogFormVisible
=
false
;
this
.
apiDialogFlag
=
false
;
},
// 确定弹窗
async
enterDialog
()
{
if
(
this
.
form
.
authorityId
==
'
0
'
)
{
if
(
this
.
form
.
authorityId
==
"
0
"
)
{
this
.
$message
({
type
:
'
error
'
,
message
:
'
角色id不能为0
'
})
return
false
type
:
"
error
"
,
message
:
"
角色id不能为0
"
})
;
return
false
;
}
this
.
$refs
.
authorityForm
.
validate
(
async
valid
=>
{
if
(
valid
)
{
switch
(
this
.
dialogType
)
{
case
'
add
'
:
case
"
add
"
:
{
const
res
=
await
createAuthority
(
this
.
form
)
const
res
=
await
createAuthority
(
this
.
form
)
;
if
(
res
.
code
==
0
)
{
this
.
$message
({
type
:
'
success
'
,
message
:
'
添加成功!
'
})
this
.
getTableData
()
this
.
closeDialog
()
type
:
"
success
"
,
message
:
"
添加成功!
"
})
;
this
.
getTableData
()
;
this
.
closeDialog
()
;
}
}
break
case
'
edit
'
:
break
;
case
"
edit
"
:
{
const
res
=
await
updateAuthority
(
this
.
form
)
const
res
=
await
updateAuthority
(
this
.
form
)
;
if
(
res
.
code
==
0
)
{
this
.
$message
({
type
:
'
success
'
,
message
:
'
添加成功!
'
})
this
.
getTableData
()
this
.
closeDialog
()
type
:
"
success
"
,
message
:
"
添加成功!
"
})
;
this
.
getTableData
()
;
this
.
closeDialog
()
;
}
}
break
case
'
copy
'
:
{
break
;
case
"
copy
"
:
{
const
data
=
{
authority
:
{
authorityId
:
'
string
'
,
authorityName
:
'
string
'
,
authorityId
:
"
string
"
,
authorityName
:
"
string
"
,
datauthorityId
:
[],
parentId
:
'
string
'
parentId
:
"
string
"
},
oldAuthorityId
:
0
}
data
.
authority
.
authorityId
=
this
.
form
.
authorityId
data
.
authority
.
authorityName
=
this
.
form
.
authorityName
data
.
authority
.
parentId
=
this
.
form
.
parentId
data
.
authority
.
dataAuthorityId
=
this
.
copyForm
.
dataAuthorityId
data
.
oldAuthorityId
=
this
.
copyForm
.
authorityId
const
res
=
await
copyAuthority
(
data
)
}
;
data
.
authority
.
authorityId
=
this
.
form
.
authorityId
;
data
.
authority
.
authorityName
=
this
.
form
.
authorityName
;
data
.
authority
.
parentId
=
this
.
form
.
parentId
;
data
.
authority
.
dataAuthorityId
=
this
.
copyForm
.
dataAuthorityId
;
data
.
oldAuthorityId
=
this
.
copyForm
.
authorityId
;
const
res
=
await
copyAuthority
(
data
)
;
if
(
res
.
code
==
0
)
{
this
.
$message
({
type
:
'
success
'
,
message
:
'
复制成功!
'
})
this
.
getTableData
()
type
:
"
success
"
,
message
:
"
复制成功!
"
})
;
this
.
getTableData
()
;
}
}
}
this
.
initForm
()
this
.
dialogFormVisible
=
false
this
.
initForm
()
;
this
.
dialogFormVisible
=
false
;
}
})
})
;
},
setOptions
()
{
this
.
AuthorityOption
=
[
{
authorityId
:
'
0
'
,
authorityName
:
'
根角色
'
authorityId
:
"
0
"
,
authorityName
:
"
根角色
"
}
]
this
.
setAuthorityOptions
(
this
.
tableData
,
this
.
AuthorityOption
,
false
)
]
;
this
.
setAuthorityOptions
(
this
.
tableData
,
this
.
AuthorityOption
,
false
)
;
},
setAuthorityOptions
(
AuthorityData
,
optionsData
,
disabled
)
{
AuthorityData
&&
...
...
@@ -298,52 +304,58 @@ export default {
authorityName
:
item
.
authorityName
,
disabled
:
disabled
||
item
.
authorityId
==
this
.
form
.
authorityId
,
children
:
[]
}
}
;
this
.
setAuthorityOptions
(
item
.
children
,
option
.
children
,
disabled
||
item
.
authorityId
==
this
.
form
.
authorityId
)
optionsData
.
push
(
option
)
)
;
optionsData
.
push
(
option
)
;
}
else
{
const
option
=
{
authorityId
:
item
.
authorityId
,
authorityName
:
item
.
authorityName
,
disabled
:
disabled
||
item
.
authorityId
==
this
.
form
.
authorityId
}
optionsData
.
push
(
option
)
}
;
optionsData
.
push
(
option
)
;
}
})
})
;
},
// 增加角色
addAuthority
(
parentId
)
{
this
.
initForm
()
this
.
dialogTitle
=
'
新增角色
'
this
.
dialogType
=
'
add
'
this
.
form
.
parentId
=
parentId
this
.
setOptions
()
this
.
dialogFormVisible
=
true
this
.
initForm
()
;
this
.
dialogTitle
=
"
新增角色
"
;
this
.
dialogType
=
"
add
"
;
this
.
form
.
parentId
=
parentId
;
this
.
setOptions
()
;
this
.
dialogFormVisible
=
true
;
},
// 编辑角色
editAuthority
(
row
)
{
this
.
setOptions
()
this
.
dialogTitle
=
'
编辑角色
'
this
.
dialogType
=
'
edit
'
this
.
setOptions
()
;
this
.
dialogTitle
=
"
编辑角色
"
;
this
.
dialogType
=
"
edit
"
;
for
(
let
key
in
this
.
form
)
{
this
.
form
[
key
]
=
row
[
key
]
this
.
form
[
key
]
=
row
[
key
]
;
}
this
.
setOptions
()
this
.
dialogFormVisible
=
true
this
.
setOptions
()
;
this
.
dialogFormVisible
=
true
;
}
},
async
created
()
{
this
.
pageSize
=
999
await
this
.
getTableData
()
this
.
pageSize
=
999
;
await
this
.
getTableData
()
;
}
}
}
;
</
script
>
<
style
lang=
"scss"
>
.authority
{
.el-input-number
{
margin-left
:
15px
;
span
{
display
:
none
;
}
}
.button-box
{
padding
:
10px
20px
;
.el-button
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录