須要和配合 path 屬性使用,攜帶參數會拼接在請求路徑後,效果同 Get 請求方式vue
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
須要配合 name 屬性使用,參數不會攜帶在訪問路徑後,效果同 Post 請求java
http://localhost:8033/Permission/Role/Form
從頁面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
在頁面 NsTableRole 點擊添加角色,觸發添加角色方法 onAddRole() 攜帶參數訪問 path 屬性映射的路由,NsFormRole 頁面生命週期函數 created 獲取路由攜帶的參數。傳參效果如圖
NsTableRole.vue(部分)ui
methods: { // 添加角色 onAddRole () { this.$router.push({ path: '/Permission/Role/Form', query: { productCode: this.model.productCode } }) } }
NsFormRole.vue(部分)this
// 生命週期函數 created created () { console.log(this.$route) this.model.productCode = this.$route.query.productCode }
在頁面 NsTableRole 點擊編輯,觸發編輯角色方法 onEditRole() 攜帶參數訪問 name 屬性映射的路由,NsFormRole 頁面生命週期函數 created 獲取路由攜帶的參數。傳參效果如圖
NsTableRole.vue(部分)spa
// 編輯角色 onEditRole (obj) { this.$router.push({ name: 'PermissionRoleForm', params: { roleId: obj.roleId, roleName: obj.roleName, roleType: obj.roleType, roleDesc: obj.roleDesc } }) }
NsFormRole.vue(部分)3d
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