1. query 與 params 傳參
- query
需要和配合 path 屬性使用,攜帶參數會拼接在請求路徑后,效果同 Get 請求方式
http://localhost:8033/Permission/Role/Form?productCode=crm-operate&roleId=1&roleName=admin&roleType=-1&roleDesc=%E7%AE%A1%E7%90%86%E5%91%98
- params
需要配合 name 屬性使用,參數不會攜帶在訪問路徑后,效果同 Post 請求
http://localhost:8033/Permission/Role/Form
2. 代碼片演示
從頁面NsTableRole 跳轉NsFormRole 頁面,添加編輯或刪除動作都會攜帶參數到詳情頁面。
權限管理下角色管理路由配置route.js
// 一級菜單權限管理
const permissionRouter = {
path: '/Permission',
name: 'Permission',
component: () => import('@/views/Default'),
redirect: '/Permission/Configuration',
meta: {
title: '權限管理',
requireAuth: true
},
// 二級菜單:權限配置, 角色管理, 修改密碼
children: [{
path: '/Permission/Role',
name: 'PermissionRole',
title: '角色管理',
component: () => import('@/views/Content'),
redirect: '/Permission/Role/Index',
children: [{
path: '/Permission/Role/Index',
name: 'PermissionRoleIndex',
component: () => import('@/views/Permission/Role')
},
{
path: '/Permission/Role/Form',
name: 'PermissionRoleForm',
title: '角色維護',
component: () => import('@/views/Permission/Role/NsFormRole')
}]
}, {
path: '/Permission/ModifyPassword',
name: 'PermissionModifyPassword',
title: '修改密碼',
component: () => import('@/views/Content'),
redirect: '/Permission/ModifyPassword/Index',
children: [{
path: '/Permission/ModifyPassword/Index',
name: 'PermissionModifyPasswordIndex',
title: '修改密碼',
component: () => import('@/views/Permission/ModifyPassword')
}]
}]
}
export default permissionRouter
2.1 添加角色動作(query 傳參)
在頁面 NsTableRole 點擊添加角色,觸發添加角色方法 onAddRole() 攜帶參數訪問 path 屬性映射的路由,NsFormRole 頁面生命周期函數 created 獲取路由攜帶的參數。傳參效果如圖
NsTableRole.vue(部分)
methods: {
// 添加角色
onAddRole () {
this.$router.push({
path: '/Permission/Role/Form',
query: {
productCode: this.model.productCode
}
})
}
}
NsFormRole.vue(部分)
// 生命周期函數 created
created () {
console.log(this.$route)
this.model.productCode = this.$route.query.productCode
}
2.2 編輯角色動作(params 傳參)
在頁面 NsTableRole 點擊編輯,觸發編輯角色方法 onEditRole() 攜帶參數訪問 name 屬性映射的路由,NsFormRole 頁面生命周期函數 created 獲取路由攜帶的參數。傳參效果如圖
NsTableRole.vue(部分)
// 編輯角色
onEditRole (obj) {
this.$router.push({
name: 'PermissionRoleForm',
params: {
roleId: obj.roleId,
roleName: obj.roleName,
roleType: obj.roleType,
roleDesc: obj.roleDesc
}
})
}
NsFormRole.vue(部分)
name: 'NsFormRole',
data () {
return {
model: {
roleId: '',
roleName: '',
roleType: '',
roleDesc: '',
productCode: '',
roleMenuPermission: []
}
}
},
created () {
console.log(this.$route)
this.model.productCode = this.$route.params.productCode
this.model.roleId = this.$route.params.roleId
this.model.roleDesc = this.$route.params.roleDesc
this.model.roleType = this.$route.params.roleType
this.model.roleName = this.$route.params.roleName
},
methods () {
}
Power By niaonao, The End, Thanks