Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
S
sample-form-platform
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
赵啸非
sample-form-platform
Commits
ae9bff17
Commit
ae9bff17
authored
May 07, 2025
by
“yiyousong”
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
perf: 优化跳转
parent
916bc99e
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
74 additions
and
45 deletions
+74
-45
sample-form-manager-ui/admin/src/pages/jump/jump.vue
sample-form-manager-ui/admin/src/pages/jump/jump.vue
+2
-1
sample-form-manager-ui/admin/src/pages/layouts/Layouts.vue
sample-form-manager-ui/admin/src/pages/layouts/Layouts.vue
+6
-3
sample-form-manager-ui/admin/src/pages/system/menu/components/AddMenu.vue
...ger-ui/admin/src/pages/system/menu/components/AddMenu.vue
+6
-2
sample-form-manager-ui/admin/src/pages/system/resourceManage/components/AddResource.vue
...rc/pages/system/resourceManage/components/AddResource.vue
+59
-38
sample-form-manager-ui/admin/src/router/index.js
sample-form-manager-ui/admin/src/router/index.js
+1
-1
No files found.
sample-form-manager-ui/admin/src/pages/jump/jump.vue
View file @
ae9bff17
...
@@ -5,7 +5,7 @@
...
@@ -5,7 +5,7 @@
<
script
>
<
script
>
import
local
from
"
@/utils/local
"
;
import
local
from
"
@/utils/local
"
;
import
{
mapMutations
}
from
"
vuex
"
;
import
{
mapMutations
}
from
"
vuex
"
;
import
{
calcMenu
}
from
"
@/router
"
;
import
{
calcMenu
,
menusFilter
}
from
"
@/router
"
;
import
{
generateRoutes
,
filterBtn
}
from
"
@/utils
"
;
import
{
generateRoutes
,
filterBtn
}
from
"
@/utils
"
;
import
{
getMenuTree
}
from
"
@/api/system
"
;
import
{
getMenuTree
}
from
"
@/api/system
"
;
export
default
{
export
default
{
...
@@ -55,6 +55,7 @@ export default {
...
@@ -55,6 +55,7 @@ export default {
// 过滤掉按钮
// 过滤掉按钮
let
menus
=
filterBtn
(
menuList
,
false
);
let
menus
=
filterBtn
(
menuList
,
false
);
let
routes
=
generateRoutes
(
menus
);
let
routes
=
generateRoutes
(
menus
);
routes
=
menusFilter
(
routes
);
this
.
SET_menusList
(
menus
);
this
.
SET_menusList
(
menus
);
this
.
setBtnPermissions
(
menuList
);
this
.
setBtnPermissions
(
menuList
);
calcMenu
();
calcMenu
();
...
...
sample-form-manager-ui/admin/src/pages/layouts/Layouts.vue
View file @
ae9bff17
<
template
>
<
template
>
<el-container>
<el-container
class=
"layout"
>
<el-header
height=
"64px"
>
<el-header
height=
"64px"
>
<Header></Header>
<Header></Header>
</el-header>
</el-header>
<el-container>
<el-container
class=
"layout-main"
>
<el-aside
width=
"200px"
v-if=
"layout === 'side'"
>
<el-aside
width=
"200px"
v-if=
"layout === 'side'"
>
<MenuBar></MenuBar>
<MenuBar></MenuBar>
</el-aside>
</el-aside>
...
@@ -73,7 +73,7 @@ export default {
...
@@ -73,7 +73,7 @@ export default {
</
script
>
</
script
>
<
style
lang=
"less"
scoped
>
<
style
lang=
"less"
scoped
>
.
el-container
{
.
layout
{
width: 100vw;
width: 100vw;
height: 100vh;
height: 100vh;
}
}
...
@@ -81,6 +81,9 @@ export default {
...
@@ -81,6 +81,9 @@ export default {
padding: 0px 20px;
padding: 0px 20px;
background: linear-gradient(90deg, #1845c6 0%, #2999ff 100%);
background: linear-gradient(90deg, #1845c6 0%, #2999ff 100%);
}
}
.layout-main {
height: calc(100vh - 64px);
}
.el-aside {
.el-aside {
background-color: #fff;
background-color: #fff;
}
}
...
...
sample-form-manager-ui/admin/src/pages/system/menu/components/AddMenu.vue
View file @
ae9bff17
...
@@ -217,7 +217,7 @@
...
@@ -217,7 +217,7 @@
]"
]"
>
>
<el-input
<el-input
class=
"mr-[10px]
"
style=
"margin-right: 10px
"
v-model=
"v.value"
v-model=
"v.value"
placeholder=
"请输入链接地址"
placeholder=
"请输入链接地址"
/>
/>
...
@@ -354,7 +354,11 @@ export default {
...
@@ -354,7 +354,11 @@ export default {
if
(
this
.
form
.
resourceType
===
1
)
{
if
(
this
.
form
.
resourceType
===
1
)
{
resourceUrl
=
this
.
form
.
resourceUrl
.
join
(
"
,
"
);
resourceUrl
=
this
.
form
.
resourceUrl
.
join
(
"
,
"
);
}
else
{
}
else
{
resourceUrl
=
this
.
form
.
urls
.
map
((
v
)
=>
v
.
value
).
join
(
"
,
"
);
resourceUrl
=
this
.
form
.
urls
.
map
((
v
)
=>
{
return
v
.
value
.
startsWith
(
"
/
"
)
?
v
.
value
:
"
/
"
+
v
.
value
;
})
.
join
(
"
,
"
);
}
}
this
.
$delete
(
form
,
"
resourceType
"
);
this
.
$delete
(
form
,
"
resourceType
"
);
this
.
$delete
(
form
,
"
urls
"
);
this
.
$delete
(
form
,
"
urls
"
);
...
...
sample-form-manager-ui/admin/src/pages/system/resourceManage/components/AddResource.vue
View file @
ae9bff17
...
@@ -9,7 +9,13 @@
...
@@ -9,7 +9,13 @@
:close-on-click-modal=
"false"
:close-on-click-modal=
"false"
top=
"10vh"
top=
"10vh"
>
>
<el-form
ref=
"form"
:model=
"form"
:rules=
"rules"
size=
"medium"
label-width=
"100px"
>
<el-form
ref=
"form"
:model=
"form"
:rules=
"rules"
size=
"medium"
label-width=
"100px"
>
<el-form-item
label=
"资源名称"
prop=
"name"
>
<el-form-item
label=
"资源名称"
prop=
"name"
>
<el-input
v-model=
"form.name"
placeholder=
"请输入资源名称"
></el-input>
<el-input
v-model=
"form.name"
placeholder=
"请输入资源名称"
></el-input>
</el-form-item>
</el-form-item>
...
@@ -29,14 +35,23 @@
...
@@ -29,14 +35,23 @@
v-for=
"(v, i) in form.urls"
v-for=
"(v, i) in form.urls"
:key=
"i"
:key=
"i"
:prop=
"`urls.$
{i}.value`"
:prop=
"`urls.$
{i}.value`"
:rules="[{ required: true, validator: validatorUrl, trigger: 'blur' }]"
:rules="[
{ required: true, validator: validatorUrl, trigger: 'blur' },
]"
>
>
<el-input
class=
"mr-[10px]"
v-model=
"v.value"
placeholder=
"请输入链接地址"
/>
<el-input
style=
"margin-right: 10px"
v-model=
"v.value"
placeholder=
"请输入链接地址"
/>
<div
class=
"flex"
>
<div
class=
"flex"
>
<el-button
type=
"primary"
@
click=
"changeParams(i, 'add')"
>
<el-button
type=
"primary"
@
click=
"changeParams(i, 'add')"
>
<i
class=
"el-icon-plus"
></i>
<i
class=
"el-icon-plus"
></i>
</el-button>
</el-button>
<el-button
type=
"danger"
v-if=
"i > 0"
@
click=
"changeParams(i, 'remove')"
<el-button
type=
"danger"
v-if=
"i > 0"
@
click=
"changeParams(i, 'remove')"
><i
class=
"el-icon-minus"
></i
><i
class=
"el-icon-minus"
></i
></el-button>
></el-button>
</div>
</div>
...
@@ -45,7 +60,11 @@
...
@@ -45,7 +60,11 @@
</el-form>
</el-form>
<span
slot=
"footer"
class=
"dialog-footer"
>
<span
slot=
"footer"
class=
"dialog-footer"
>
<el-button
size=
"medium"
@
click=
"handleRest"
>
重 置
</el-button>
<el-button
size=
"medium"
@
click=
"handleRest"
>
重 置
</el-button>
<el-button
size=
"medium"
type=
"primary"
@
click=
"handleOk"
:loading=
"loading"
<el-button
size=
"medium"
type=
"primary"
@
click=
"handleOk"
:loading=
"loading"
>
确 定
</el-button
>
确 定
</el-button
>
>
</span>
</span>
...
@@ -54,44 +73,46 @@
...
@@ -54,44 +73,46 @@
</
template
>
</
template
>
<
script
>
<
script
>
import
{
saveResource
}
from
'
@/api/system
'
;
import
{
saveResource
}
from
"
@/api/system
"
;
export
default
{
export
default
{
props
:
{
props
:
{
title
:
{
title
:
{
type
:
String
,
type
:
String
,
required
:
true
,
required
:
true
,
default
:
''
default
:
""
,
},
},
show
:
{
show
:
{
type
:
Boolean
,
type
:
Boolean
,
required
:
true
,
required
:
true
,
default
:
false
default
:
false
,
},
},
dict
:
{
dict
:
{
type
:
Object
,
type
:
Object
,
required
:
true
,
required
:
true
,
default
:
()
=>
{
default
:
()
=>
{
return
{};
return
{};
}
}
,
}
}
,
},
},
data
()
{
data
()
{
return
{
return
{
loading
:
false
,
loading
:
false
,
form
:
{
form
:
{
name
:
''
,
name
:
""
,
authType
:
''
,
authType
:
""
,
url
:
''
,
url
:
""
,
urls
:
[
urls
:
[
{
{
value
:
''
value
:
""
,
}
}
,
]
]
,
},
},
rules
:
{
rules
:
{
name
:
[{
required
:
true
,
message
:
'
请输入资源名称
'
,
trigger
:
'
blur
'
}],
name
:
[{
required
:
true
,
message
:
"
请输入资源名称
"
,
trigger
:
"
blur
"
}],
authType
:
[{
required
:
true
,
message
:
'
请选择权限类型
'
,
trigger
:
'
change
'
}]
authType
:
[
}
{
required
:
true
,
message
:
"
请选择权限类型
"
,
trigger
:
"
change
"
},
],
},
};
};
},
},
computed
:
{
computed
:
{
...
@@ -100,9 +121,9 @@ export default {
...
@@ -100,9 +121,9 @@ export default {
return
this
.
show
;
return
this
.
show
;
},
},
set
(
val
)
{
set
(
val
)
{
this
.
$emit
(
'
update:show
'
,
val
);
this
.
$emit
(
"
update:show
"
,
val
);
}
}
,
}
}
,
},
},
created
()
{},
created
()
{},
methods
:
{
methods
:
{
...
@@ -113,12 +134,12 @@ export default {
...
@@ -113,12 +134,12 @@ export default {
this
.
loading
=
true
;
this
.
loading
=
true
;
let
res
=
await
saveResource
({
let
res
=
await
saveResource
({
...
this
.
form
,
...
this
.
form
,
url
:
this
.
form
.
urls
.
map
((
v
)
=>
v
.
value
).
join
(
'
,
'
)
url
:
this
.
form
.
urls
.
map
((
v
)
=>
v
.
value
).
join
(
"
,
"
),
});
});
let
{
code
,
msg
}
=
res
.
data
;
let
{
code
,
msg
}
=
res
.
data
;
if
(
code
==
1
)
{
if
(
code
==
1
)
{
this
.
$message
.
success
(
msg
);
this
.
$message
.
success
(
msg
);
this
.
$emit
(
'
success
'
);
this
.
$emit
(
"
success
"
);
this
.
handleClose
();
this
.
handleClose
();
}
}
this
.
loading
=
false
;
this
.
loading
=
false
;
...
@@ -128,7 +149,7 @@ export default {
...
@@ -128,7 +149,7 @@ export default {
// 新增
// 新增
onAdd
()
{
onAdd
()
{
Object
.
assign
(
this
.
form
,
this
.
$options
.
data
().
form
);
Object
.
assign
(
this
.
form
,
this
.
$options
.
data
().
form
);
this
.
form
.
id
&&
this
.
$delete
(
this
.
form
,
'
id
'
);
this
.
form
.
id
&&
this
.
$delete
(
this
.
form
,
"
id
"
);
},
},
// 编辑
// 编辑
onEdit
(
row
)
{
onEdit
(
row
)
{
...
@@ -136,23 +157,23 @@ export default {
...
@@ -136,23 +157,23 @@ export default {
this
.
form
=
{
...
row
};
this
.
form
=
{
...
row
};
let
arr
=
[];
let
arr
=
[];
if
(
this
.
form
.
url
)
{
if
(
this
.
form
.
url
)
{
arr
=
this
.
form
.
url
.
split
(
'
,
'
).
map
((
v
)
=>
{
arr
=
this
.
form
.
url
.
split
(
"
,
"
).
map
((
v
)
=>
{
return
{
return
{
value
:
v
value
:
v
,
};
};
});
});
}
}
this
.
$set
(
this
.
form
,
'
urls
'
,
arr
);
this
.
$set
(
this
.
form
,
"
urls
"
,
arr
);
},
10
);
},
10
);
},
},
// 重置
// 重置
handleRest
()
{
handleRest
()
{
this
.
$resetForm
(
'
form
'
);
this
.
$resetForm
(
"
form
"
);
this
.
$set
(
this
.
form
,
'
urls
'
,
[{
value
:
''
}]);
this
.
$set
(
this
.
form
,
"
urls
"
,
[{
value
:
""
}]);
},
},
// 关闭
// 关闭
handleClose
()
{
handleClose
()
{
this
.
$resetForm
(
'
form
'
);
this
.
$resetForm
(
"
form
"
);
this
.
Visible
=
false
;
this
.
Visible
=
false
;
},
},
// 判断是否存在链接
// 判断是否存在链接
...
@@ -162,20 +183,20 @@ export default {
...
@@ -162,20 +183,20 @@ export default {
// 校验链接地址
// 校验链接地址
validatorUrl
(
rule
,
value
,
callback
)
{
validatorUrl
(
rule
,
value
,
callback
)
{
if
(
!
value
)
{
if
(
!
value
)
{
callback
(
new
Error
(
'
请输入链接
'
));
callback
(
new
Error
(
"
请输入链接
"
));
}
else
if
(
this
.
isRepeat
(
value
))
{
}
else
if
(
this
.
isRepeat
(
value
))
{
callback
(
new
Error
(
'
重复的链接地址
'
));
callback
(
new
Error
(
"
重复的链接地址
"
));
}
else
{
}
else
{
callback
();
callback
();
}
}
},
},
changeParams
(
index
,
type
)
{
changeParams
(
index
,
type
)
{
if
(
type
==
'
add
'
)
{
if
(
type
==
"
add
"
)
{
let
obj
=
{
let
obj
=
{
value
:
''
value
:
""
,
};
};
if
(
this
.
form
.
urls
.
some
((
v
)
=>
!
v
.
value
))
{
if
(
this
.
form
.
urls
.
some
((
v
)
=>
!
v
.
value
))
{
this
.
$message
.
warning
(
'
请先完成前面地址的填写
'
);
this
.
$message
.
warning
(
"
请先完成前面地址的填写
"
);
return
;
return
;
}
}
this
.
form
.
urls
.
splice
(
index
+
1
,
0
,
obj
);
this
.
form
.
urls
.
splice
(
index
+
1
,
0
,
obj
);
...
@@ -183,8 +204,8 @@ export default {
...
@@ -183,8 +204,8 @@ export default {
this
.
form
.
urls
.
splice
(
index
,
1
);
this
.
form
.
urls
.
splice
(
index
,
1
);
}
}
// this.$forceUpdate();
// this.$forceUpdate();
}
}
,
}
}
,
};
};
</
script
>
</
script
>
...
...
sample-form-manager-ui/admin/src/router/index.js
View file @
ae9bff17
...
@@ -173,7 +173,7 @@ router.beforeEach((to, from, next) => {
...
@@ -173,7 +173,7 @@ router.beforeEach((to, from, next) => {
});
});
// 过滤菜单
// 过滤菜单
function
menusFilter
(
arr
)
{
export
function
menusFilter
(
arr
)
{
let
router
=
arr
.
filter
((
v
)
=>
{
let
router
=
arr
.
filter
((
v
)
=>
{
if
(
!
v
.
hidden
)
{
if
(
!
v
.
hidden
)
{
if
(
v
.
children
)
{
if
(
v
.
children
)
{
...
...
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