Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
F
front-backend
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
framework
front-backend
Commits
a3d7193e
Commit
a3d7193e
authored
Dec 22, 2019
by
Elune
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
优化代码生成器,优化角色级别配置
parent
aeebe25c
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
89 additions
and
33 deletions
+89
-33
src/api/system/role.js
+1
-1
src/views/components/Editor.vue
+1
-1
src/views/generator/config.vue
+46
-15
src/views/generator/index.vue
+14
-11
src/views/system/role/index.vue
+27
-5
No files found.
src/api/system/role.js
View file @
a3d7193e
...
...
@@ -54,4 +54,4 @@ export function editMenu(data) {
})
}
export
default
{
add
,
edit
,
del
,
get
,
editMenu
}
export
default
{
add
,
edit
,
del
,
get
,
editMenu
,
getLevel
}
src/views/components/Editor.vue
View file @
a3d7193e
<
template
>
<div
class=
"app-container"
>
<p
class=
"warn-content"
>
Markdown
基于
富文本
基于
<el-link
type=
"primary"
href=
"https://www.kancloud.cn/wangfupeng/wangeditor3/332599"
target=
"_blank"
>
wangEditor
</el-link>
,图片上传使用
<el-link
type=
"primary"
href=
"https://sm.ms/"
target=
"_blank"
>
SM.MS
</el-link>
</p>
...
...
src/views/generator/config.vue
View file @
a3d7193e
...
...
@@ -6,21 +6,31 @@
<div
slot=
"header"
class=
"clearfix"
>
<span
class=
"role-span"
>
字段配置:
{{
tableName
}}
</span>
<el-button
:loading=
"genLoading"
icon=
"el-icon-s-promotion"
size=
"mini"
style=
"float: right; padding: 6px 9px;"
type=
"success"
@
click=
"toGen"
>
保存
&
生成
</el-button>
<el-button
:loading=
"columnLoading"
icon=
"el-icon-check"
size=
"mini"
style=
"float: right; padding: 6px 9px;"
style=
"float: right; padding: 6px 9px;
margin-right: 9px
"
type=
"primary"
@
click=
"saveColumnConfig"
>
保存
</el-button>
<el-button
:loading=
"syncLoading"
icon=
"el-icon-refresh"
size=
"mini"
style=
"float: right; padding: 6px 9px;margin-right: 10px"
type=
"success"
@
click=
"sync"
>
同步
</el-button>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"数据库中表字段变动时使用该功能"
placement=
"top-start"
>
<el-button
:loading=
"syncLoading"
icon=
"el-icon-refresh"
size=
"mini"
style=
"float: right; padding: 6px 9px;"
type=
"info"
@
click=
"sync"
>
同步
</el-button>
</el-tooltip>
</div>
<el-form
size=
"small"
label-width=
"90px"
>
<el-table
v-loading=
"loading"
:data=
"data"
:max-height=
"tableHeight"
size=
"small"
style=
"width: 100%;margin-bottom: 15px"
>
...
...
@@ -96,6 +106,10 @@
value=
"Like"
/>
<el-option
label=
"NotNull"
value=
"NotNull"
/>
<el-option
label=
"BetWeen"
value=
"BetWeen"
/>
...
...
@@ -161,14 +175,14 @@
<el-input
v-model=
"form.path"
style=
"width: 40%"
/>
<span
style=
"color: #C0C0C0;margin-left: 10px;"
>
输入views文件夹下的目录,不存在即创建
</span>
</el-form-item>
<!-- <el-form-item label="接口目录">-->
<!-- <el-input v-model="form.apiPath" style="width: 40%" />-->
<!-- <span style="color: #C0C0C0;margin-left: 10px;">Api存放路径[src/api],为空则自动生成路径</span>-->
<!-- </el-form-item>-->
<el-form-item
label=
"去表前缀"
prop=
"prefix"
>
<el-input
v-model=
"form.prefix"
placeholder=
"默认不去除表前缀"
style=
"width: 40%"
/>
<span
style=
"color: #C0C0C0;margin-left: 10px;"
>
默认不去除表前缀,可自定义
</span>
</el-form-item>
<!-- <el-form-item label="Api路径">-->
<!-- <el-input v-model="form.apiPath"/>-->
<!-- <span style="color: #C0C0C0;margin-left: 10px;">Sender mailbox</span>-->
<!-- </el-form-item>-->
<el-form-item
label=
"是否覆盖"
prop=
"cover"
>
<el-radio-group
v-model=
"form.cover"
size=
"mini"
style=
"width: 40%"
>
<el-radio-button
label=
"true"
>
是
</el-radio-button>
...
...
@@ -186,7 +200,7 @@
<
script
>
import
crud
from
'@/mixins/crud'
import
{
update
,
get
}
from
'@/api/generator/genConfig'
import
{
save
,
sync
}
from
'@/api/generator/generator'
import
{
save
,
sync
,
generator
}
from
'@/api/generator/generator'
import
{
getDicts
}
from
'@/api/system/dict'
export
default
{
name
:
'GeneratorConfig'
,
...
...
@@ -194,7 +208,7 @@ export default {
mixins
:
[
crud
],
data
()
{
return
{
activeName
:
'first'
,
tableName
:
''
,
tableHeight
:
550
,
columnLoading
:
false
,
configLoading
:
false
,
dicts
:
[],
syncLoading
:
false
,
activeName
:
'first'
,
tableName
:
''
,
tableHeight
:
550
,
columnLoading
:
false
,
configLoading
:
false
,
dicts
:
[],
syncLoading
:
false
,
genLoading
:
false
,
form
:
{
id
:
null
,
tableName
:
''
,
author
:
''
,
pack
:
''
,
path
:
''
,
moduleName
:
''
,
cover
:
'false'
,
apiPath
:
''
,
prefix
:
''
,
apiAlias
:
null
},
rules
:
{
author
:
[
...
...
@@ -274,6 +288,23 @@ export default {
}).
then
(()
=>
{
this
.
syncLoading
=
false
})
},
toGen
()
{
this
.
genLoading
=
true
save
(
this
.
data
).
then
(
res
=>
{
this
.
notify
(
'保存成功'
,
'success'
)
// 生成代码
generator
(
this
.
tableName
,
0
).
then
(
data
=>
{
this
.
genLoading
=
false
this
.
notify
(
'生成成功'
,
'success'
)
}).
catch
(
err
=>
{
this
.
genLoading
=
false
console
.
log
(
err
.
response
.
data
.
message
)
})
}).
catch
(
err
=>
{
this
.
genLoading
=
false
console
.
log
(
err
.
response
.
data
.
message
)
})
}
}
}
...
...
src/views/generator/index.vue
View file @
a3d7193e
...
...
@@ -7,16 +7,17 @@
<rrOperation
:crud=
"crud"
/>
</div>
<crudOperation>
<el-button
slot=
"left"
class=
"filter-item"
size=
"mini"
type=
"success"
icon=
"el-icon-refresh"
:loading=
"syncLoading"
:disabled=
"crud.selections.length === 0"
@
click=
"sync"
>
同步
</el-button>
<el-tooltip
slot=
"right"
class=
"item"
effect=
"dark"
content=
"数据库中表字段变动时使用该功能"
placement=
"top-start"
>
<el-button
class=
"filter-item"
size=
"mini"
type=
"success"
icon=
"el-icon-refresh"
:loading=
"syncLoading"
:disabled=
"crud.selections.length === 0"
@
click=
"sync"
>
同步
</el-button>
</el-tooltip>
</crudOperation>
</div>
<!--表格渲染-->
...
...
@@ -54,7 +55,9 @@
</template>
<
script
>
import
{
generator
,
sync
}
from
'@/api/generator/generator'
import
{
downloadFile
}
from
'@/utils/index'
import
CRUD
,
{
presenter
,
header
}
from
'@crud/crud'
import
rrOperation
from
'@crud/RR.operation'
import
crudOperation
from
'@crud/CRUD.operation'
...
...
@@ -88,7 +91,7 @@ export default {
toDownload
(
tableName
)
{
// 打包下载
generator
(
tableName
,
2
).
then
(
data
=>
{
this
.
downloadFile
(
data
,
tableName
,
'zip'
)
downloadFile
(
data
,
tableName
,
'zip'
)
})
},
sync
()
{
...
...
src/views/system/role/index.vue
View file @
a3d7193e
...
...
@@ -62,7 +62,7 @@
<span
class=
"role-span"
>
角色列表
</span>
</div>
<el-table
ref=
"table"
v-loading=
"crud.loading"
highlight-current-row
style=
"width: 100%;"
:data=
"crud.data"
@
selection-change=
"crud.selectionChangeHandler"
@
current-change=
"handleCurrentChange"
>
<el-table-column
type=
"selection"
width=
"55"
/>
<el-table-column
:selectable=
"checkboxT"
type=
"selection"
width=
"55"
/>
<el-table-column
v-if=
"columns.visible('name')"
prop=
"name"
label=
"名称"
/>
<el-table-column
v-if=
"columns.visible('dataScope')"
prop=
"dataScope"
label=
"数据权限"
/>
<el-table-column
v-if=
"columns.visible('permission')"
prop=
"permission"
label=
"角色权限"
/>
...
...
@@ -76,6 +76,7 @@
<el-table-column
v-permission=
"['admin','roles:edit','roles:del']"
label=
"操作"
width=
"130px"
align=
"center"
fixed=
"right"
>
<
template
slot-scope=
"scope"
>
<udOperation
v-if=
"scope.row.level >= level"
:data=
"scope.row"
:permission=
"permission"
/>
...
...
@@ -142,7 +143,7 @@ export default {
data
()
{
return
{
defaultProps
:
{
children
:
'children'
,
label
:
'label'
},
dateScopes
:
[
'全部'
,
'本级'
,
'自定义'
],
dateScopes
:
[
'全部'
,
'本级'
,
'自定义'
],
level
:
3
,
currentId
:
0
,
menuLoading
:
false
,
showButton
:
false
,
menus
:
[],
menuIds
:
[],
depts
:
[],
permission
:
{
...
...
@@ -162,6 +163,10 @@ export default {
},
created
()
{
this
.
getMenus
()
crudRoles
.
getLevel
().
then
(
data
=>
{
this
.
level
=
data
.
level
console
.
log
(
this
.
level
)
})
this
.
$nextTick
(()
=>
{
this
.
crud
.
toQuery
()
})
...
...
@@ -189,16 +194,31 @@ export default {
type
:
'warning'
})
return
false
}
else
{
}
else
if
(
crud
.
form
.
dataScope
===
'自定义'
)
{
const
depts
=
[]
crud
.
form
.
depts
.
forEach
(
function
(
data
,
index
)
{
const
dept
=
{
id
:
data
}
depts
.
push
(
dept
)
})
crud
.
form
.
depts
=
depts
}
else
{
crud
.
form
.
depts
=
[]
}
return
true
},
[
CRUD
.
HOOK
.
afterAddError
](
crud
)
{
this
.
afterErrorMethod
(
crud
)
},
[
CRUD
.
HOOK
.
afterEditError
](
crud
)
{
this
.
afterErrorMethod
(
crud
)
},
afterErrorMethod
(
crud
)
{
const
depts
=
[]
crud
.
form
.
depts
.
forEach
(
function
(
dept
,
index
)
{
depts
.
push
(
dept
.
id
)
})
crud
.
form
.
depts
=
depts
},
// 获取所有菜单
getMenus
()
{
getMenusTree
().
then
(
res
=>
{
...
...
@@ -213,8 +233,7 @@ export default {
this
.
$refs
.
menu
.
setCheckedKeys
([])
// 保存当前的角色id
this
.
currentId
=
val
.
id
// 点击后显示按钮
this
.
showButton
=
true
this
.
showButton
=
this
.
level
<=
val
.
level
// 初始化
this
.
menuIds
=
[]
// 菜单数据需要特殊处理
...
...
@@ -269,6 +288,9 @@ export default {
if
(
this
.
form
.
dataScope
===
'自定义'
)
{
this
.
getDepts
()
}
},
checkboxT
(
row
,
rowIndex
)
{
return
row
.
level
>=
this
.
level
}
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment