diff --git a/src/components/AutoDataTable/index.vue b/src/components/AutoDataTable/index.vue
index 60d91690e..d19895812 100644
--- a/src/components/AutoDataTable/index.vue
+++ b/src/components/AutoDataTable/index.vue
@@ -59,7 +59,8 @@ export default {
label: this.$tc('Actions'),
align: 'center',
formatter: ActionsFormatter,
- width: '150px'
+ width: '150px',
+ actions: this.config.actions || {}
}
break
case 'is_valid':
diff --git a/src/i18n/langs/cn.js b/src/i18n/langs/cn.js
index 437ada97d..598060505 100644
--- a/src/i18n/langs/cn.js
+++ b/src/i18n/langs/cn.js
@@ -104,7 +104,8 @@ const cn = {
'PasswordChangeLog': '改密日志',
'Settings': '系统设置',
'UserCreate': '创建用户',
- 'UserGroupCreate': '创建用户组'
+ 'UserGroupCreate': '创建用户组',
+ 'UserUpdate': '更新用户'
},
// 用户模块翻译
users: {
diff --git a/src/layout/components/GenericCreateUpdatePage/index.vue b/src/layout/components/GenericCreateUpdatePage/index.vue
index a00bba07c..07ba0bc1a 100644
--- a/src/layout/components/GenericCreateUpdatePage/index.vue
+++ b/src/layout/components/GenericCreateUpdatePage/index.vue
@@ -1,7 +1,7 @@
-
+
@@ -18,10 +18,6 @@ export default {
type: String,
required: true
},
- method: {
- type: String,
- default: 'post'
- },
fields: {
type: Array,
default: () => {
@@ -35,6 +31,28 @@ export default {
onSubmit: {
type: Function,
default: null
+ },
+ getMethod: {
+ type: Function,
+ default: function() {
+ const params = this.$route.params
+ if (params.id) {
+ return 'put'
+ } else {
+ return 'post'
+ }
+ }
+ },
+ getUrl: {
+ type: Function,
+ default: function() {
+ const params = this.$route.params
+ let url = this.url
+ if (params.id) {
+ url = `${url}/${params.id}/`
+ }
+ return url
+ }
}
},
data() {
@@ -42,14 +60,14 @@ export default {
}
},
computed: {
+ method() {
+ return this.getMethod()
+ },
+ totalUrl() {
+ return this.getUrl()
+ }
},
methods: {
- getFormRef(comp) {
- if (comp.$refs.form) {
- return this.getFormRef(comp.$refs.form)
- }
- return comp
- },
handleSubmit(values, form) {
let handler = this.onSubmit || this.defaultOnSubmit
handler = handler.bind(this)
@@ -58,8 +76,11 @@ export default {
console.log('form.fields', fields)
return handler(values, form)
},
+ defaultPerformSubmit(validValues) {
+ return this.$axios[this.method](this.totalUrl, validValues)
+ },
defaultOnSubmit(validValues, form) {
- this.$axios.post(this.url, validValues).then(() => {
+ this.defaultPerformSubmit(validValues).then(() => {
const msg = this.$tc('Create success')
this.$message.success(msg)
this.$router.push({ name: 'UserList' })
diff --git a/src/layout/components/BaseDetailPage/index.vue b/src/layout/components/GenericDetailPage/index.vue
similarity index 98%
rename from src/layout/components/BaseDetailPage/index.vue
rename to src/layout/components/GenericDetailPage/index.vue
index f47f12c5d..58d61f83f 100644
--- a/src/layout/components/BaseDetailPage/index.vue
+++ b/src/layout/components/GenericDetailPage/index.vue
@@ -25,7 +25,7 @@
import Page from '../Page/'
import ActionsGroup from '@/components/ActionsGroup'
export default {
- name: 'BaseDetailPage',
+ name: 'GenericDetailPage',
components: {
Page,
ActionsGroup
diff --git a/src/layout/components/index.js b/src/layout/components/index.js
index 62c228747..3d96c0b63 100644
--- a/src/layout/components/index.js
+++ b/src/layout/components/index.js
@@ -3,7 +3,7 @@ export { default as NavHeader } from './NavHeader'
export { default as AppMain } from './AppMain'
export { default as Page } from './Page'
export { default as TagsView } from './TagsView'
-export { default as BaseDetailPage } from './BaseDetailPage'
+export { default as GenericDetailPage } from './GenericDetailPage'
export { default as SubMenuPage } from './SubMenuPage'
export { default as Footer } from './Footer'
export { default as IBox } from './IBox'
diff --git a/src/router/index.js b/src/router/index.js
index f2d37a8be..c25be6536 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -73,11 +73,11 @@ export const constantRoutes = [
meta: { title: 'UserCreate', activeMenu: '/users/users' }
},
{
- path: 'users/update/:id',
+ path: 'users/:id/update',
component: () => import('@/views/users/UserCreateUpdate.vue'), // Parent router-view
- name: 'UserEdit',
+ name: 'UserUpdate',
hidden: true,
- meta: { title: 'UserEdit' }
+ meta: { title: 'UserUpdate' }
},
{
path: 'users/detail/:id',
diff --git a/src/views/users/UserGroupDetail/index.vue b/src/views/users/UserGroupDetail/index.vue
index 8dfa51667..da789c9eb 100644
--- a/src/views/users/UserGroupDetail/index.vue
+++ b/src/views/users/UserGroupDetail/index.vue
@@ -1,5 +1,5 @@
-
+
@@ -18,18 +18,18 @@
-
+