From b4abcd4c90ea08a45e749fc170278f10feeed4a4 Mon Sep 17 00:00:00 2001 From: ibuler Date: Thu, 12 Dec 2024 19:03:03 +0800 Subject: [PATCH] perf: update draw --- .../Table/TableFormatters/DetailFormatter.vue | 29 ++- src/guards.js | 1 + .../GenericCreateUpdateForm/index.vue | 91 ++++++--- .../GenericCreateUpdatePage/index.vue | 19 +- .../components/GenericDetailPage/index.vue | 16 +- .../GenericListDrawerPage/Drawer.vue | 67 +++++++ .../GenericListDrawerPage/index.vue | 181 ++++++++++++++++++ src/store/modules/common.js | 12 +- src/views/users/User/UserCreateUpdate.vue | 8 - src/views/users/User/UserList.vue | 9 +- 10 files changed, 374 insertions(+), 59 deletions(-) create mode 100644 src/layout/components/GenericListDrawerPage/Drawer.vue create mode 100644 src/layout/components/GenericListDrawerPage/index.vue diff --git a/src/components/Table/TableFormatters/DetailFormatter.vue b/src/components/Table/TableFormatters/DetailFormatter.vue index b72c2149e..91189cbd3 100644 --- a/src/components/Table/TableFormatters/DetailFormatter.vue +++ b/src/components/Table/TableFormatters/DetailFormatter.vue @@ -6,35 +6,20 @@ :disabled="disabled" :type="col.type || 'info'" class="detail" - @click="goDetail" + @click="handleClick" > {{ iTitle }} - - - - @@ -27,4 +40,8 @@ export default { padding-bottom: 60px; } } + +.drawer ::v-deep .page-heading { + display: none; +} diff --git a/src/layout/components/GenericDetailPage/index.vue b/src/layout/components/GenericDetailPage/index.vue index d5aed82af..9951a1f1b 100644 --- a/src/layout/components/GenericDetailPage/index.vue +++ b/src/layout/components/GenericDetailPage/index.vue @@ -98,13 +98,7 @@ export default { }, data() { const vm = this - const detailApiUrl = (function() { - if (vm.url) { - return `${vm.url}/${vm.$route.params.id}/` - } else { - return getApiPath(vm) - } - }()) + const detailApiUrl = this.getDetailUrl() const defaultActions = { // Delete button canDelete: vm.$hasCurrentResAction('delete'), @@ -187,6 +181,14 @@ export default { } }, methods: { + getDetailUrl() { + const vm = this + if (vm.url) { + return `${vm.url}/${vm.$route.params.id}/` + } else { + return getApiPath(vm) + } + }, defaultDelete() { const msg = this.$t('DeleteWarningMsg') + ' ' + this.iTitle + ' ?' const title = this.$t('Info') diff --git a/src/layout/components/GenericListDrawerPage/Drawer.vue b/src/layout/components/GenericListDrawerPage/Drawer.vue new file mode 100644 index 000000000..2b2c906d3 --- /dev/null +++ b/src/layout/components/GenericListDrawerPage/Drawer.vue @@ -0,0 +1,67 @@ + + + + + diff --git a/src/layout/components/GenericListDrawerPage/index.vue b/src/layout/components/GenericListDrawerPage/index.vue new file mode 100644 index 000000000..02f6909fe --- /dev/null +++ b/src/layout/components/GenericListDrawerPage/index.vue @@ -0,0 +1,181 @@ + + + diff --git a/src/store/modules/common.js b/src/store/modules/common.js index c04e1a2ff..6aca1b1c7 100644 --- a/src/store/modules/common.js +++ b/src/store/modules/common.js @@ -7,7 +7,8 @@ const getDefaultState = () => { isRouterAlive: true, sqlQueryCounter: [], showSqlQueryCounter: true, - confirmDialogVisible: false + confirmDialogVisible: false, + drawerActionMeta: {} } } @@ -85,6 +86,15 @@ const actions = { }, showSqlQueryCounter({ commit, state }, show) { state.showSqlQueryCounter = show + }, + setDrawerActionMeta({ commit, state }, meta) { + state.drawerActionMeta = meta + }, + getDrawerActionMeta({ commit, state }) { + return state.drawerActionMeta + }, + cleanDrawerActionMeta({ commit, state }) { + state.drawerActionMeta = {} } } diff --git a/src/views/users/User/UserCreateUpdate.vue b/src/views/users/User/UserCreateUpdate.vue index 43e409c2e..29b53a85e 100644 --- a/src/views/users/User/UserCreateUpdate.vue +++ b/src/views/users/User/UserCreateUpdate.vue @@ -164,14 +164,6 @@ export default { el: {} } }, - submitMethod() { - const params = this.$route.params - if (params.id) { - return 'put' - } else { - return 'post' - } - }, afterGetFormValue(obj) { if (obj?.id) { obj.org_roles = obj.org_roles?.map(({ id }) => id) diff --git a/src/views/users/User/UserList.vue b/src/views/users/User/UserList.vue index 94145d1ba..e9d1ff01e 100644 --- a/src/views/users/User/UserList.vue +++ b/src/views/users/User/UserList.vue @@ -1,6 +1,6 @@