diff --git a/web/src/i18n/pages/menu/en.ts b/web/src/i18n/pages/menu/en.ts index 4ff389b..1b2da3d 100644 --- a/web/src/i18n/pages/menu/en.ts +++ b/web/src/i18n/pages/menu/en.ts @@ -163,6 +163,7 @@ export default { clearSelection: 'Clear Selection', selectedTip: '{count} selected', totalCount: '{count} items total', + selectedCount: '{count} selected', }, scan: { title: 'Auto Scan API Permissions', diff --git a/web/src/i18n/pages/menu/zh-cn.ts b/web/src/i18n/pages/menu/zh-cn.ts index f531454..36e09df 100644 --- a/web/src/i18n/pages/menu/zh-cn.ts +++ b/web/src/i18n/pages/menu/zh-cn.ts @@ -163,6 +163,7 @@ export default { clearSelection: '取消选择', selectedTip: '已选择 {count} 项', totalCount: '共 {count} 条', + selectedCount: '已选择 {count} 项', }, scan: { title: '自动扫描接口权限', diff --git a/web/src/i18n/pages/menu/zh-tw.ts b/web/src/i18n/pages/menu/zh-tw.ts index 84ad504..9e77388 100644 --- a/web/src/i18n/pages/menu/zh-tw.ts +++ b/web/src/i18n/pages/menu/zh-tw.ts @@ -163,6 +163,7 @@ export default { clearSelection: '取消選擇', selectedTip: '已選擇 {count} 項', totalCount: '共 {count} 條', + selectedCount: '已選擇 {count} 項', }, scan: { title: '自動掃描接口權限', diff --git a/web/src/views/system/menu/components/MenuButtonCom/crud.tsx b/web/src/views/system/menu/components/MenuButtonCom/crud.tsx index c34a6d7..4809c64 100644 --- a/web/src/views/system/menu/components/MenuButtonCom/crud.tsx +++ b/web/src/views/system/menu/components/MenuButtonCom/crud.tsx @@ -3,7 +3,7 @@ import { useI18n } from 'vue-i18n'; import * as api from './api'; import {auth} from '/@/utils/authFunction' import {request} from '/@/utils/service'; -import { ElMessage, ElMessageBox } from 'element-plus'; +import { ElMessage } from 'element-plus'; import { nextTick, ref } from 'vue'; import XEUtils from 'xe-utils'; //此处为crudOptions配置 @@ -98,52 +98,6 @@ export const createCrudOptions = function ({crudExpose, context}: CreateCrudOpti } }, }, - batchDelete: { - show: auth('menu:DeleteButton'), - type: 'danger', - text: t('message.pages.menu.buttons.batchDelete'), - disabled: () => selectedRows.value.length === 0, - click: async () => { - if (selectedRows.value.length === 0) { - ElMessage.warning(t('message.pages.menu.messages.selectMenu')); - return; - } - await ElMessageBox.confirm( - t('message.pages.menu.messages.batchDeleteConfirm', { count: selectedRows.value.length }), - t('message.pages.menu.buttons.confirm'), - { type: 'warning', confirmButtonText: t('message.pages.menu.buttons.confirm'), cancelButtonText: t('message.pages.menu.buttons.cancel') } - ); - const ids = XEUtils.pluck(selectedRows.value, 'id'); - // 清空表格勾选状态 - crudExpose.getBaseTableRef().clearSelection(); - // 手动清空 selectedRows(clearSelection 不保证触发 onSelectionChange) - selectedRows.value = []; - // 再调接口 + 刷新 - await api.BatchDelete(ids); - ElMessage.success(t('message.pages.menu.messages.deleteSuccess')); - crudExpose.doRefresh(); - }, - }, - selectAll: { - show: true, - text: t('message.pages.menu.buttons.selectAll'), - disabled: () => !context!.selectOptions.value.id, - click: () => { - const tableRef = crudExpose.getBaseTableRef(); - const tableData = crudExpose.getTableData(); - tableRef.toggleAllSelection(); - selectedRows.value = [...tableData]; - }, - }, - selectNone: { - show: true, - text: t('message.pages.menu.buttons.selectNone'), - disabled: () => selectedRows.value.length === 0, - click: () => { - crudExpose.getBaseTableRef().clearSelection(); - selectedRows.value = []; - }, - }, }, }, rowHandle: { diff --git a/web/src/views/system/menu/components/MenuButtonCom/index.vue b/web/src/views/system/menu/components/MenuButtonCom/index.vue index f41ce35..b5960d2 100644 --- a/web/src/views/system/menu/components/MenuButtonCom/index.vue +++ b/web/src/views/system/menu/components/MenuButtonCom/index.vue @@ -1,15 +1,35 @@ - -