| | |
| | | import { ref } from 'vue' |
| | | import { ElMessage, ElMessageBox } from 'element-plus' |
| | | import { $t } from '@/locales' |
| | | |
| | | export function useCrudPage({ |
| | | createEmptyModel, |
| | |
| | | try { |
| | | if (dialogType.value === 'edit') { |
| | | await updateRequest(payload) |
| | | ElMessage.success('修改成功') |
| | | ElMessage.success($t('crud.messages.updateSuccess')) |
| | | closeDialog() |
| | | await refreshUpdate?.() |
| | | return |
| | | } |
| | | |
| | | await saveRequest(payload) |
| | | ElMessage.success('新增成功') |
| | | ElMessage.success($t('crud.messages.createSuccess')) |
| | | closeDialog() |
| | | await refreshCreate?.() |
| | | } catch (error) { |
| | | ElMessage.error(error?.message || '提交失败') |
| | | ElMessage.error(error?.message || $t('crud.messages.submitFailed')) |
| | | } |
| | | } |
| | | |
| | | const handleDelete = async (record) => { |
| | | try { |
| | | const recordLabel = resolveRecordLabel?.(record) || record?.id |
| | | await ElMessageBox.confirm(`确定要删除${entityName}「${recordLabel}」吗?`, '删除确认', { |
| | | confirmButtonText: '确定', |
| | | cancelButtonText: '取消', |
| | | await ElMessageBox.confirm($t('crud.confirm.deleteMessage', { entity: entityName, label: recordLabel }), $t('crud.confirm.deleteTitle'), { |
| | | confirmButtonText: $t('common.confirm'), |
| | | cancelButtonText: $t('common.cancel'), |
| | | type: 'warning' |
| | | }) |
| | | await deleteRequest(record.id) |
| | | ElMessage.success('删除成功') |
| | | ElMessage.success($t('crud.messages.deleteSuccess')) |
| | | await refreshRemove?.() |
| | | } catch (error) { |
| | | if (error !== 'cancel') { |
| | | ElMessage.error(error?.message || '删除失败') |
| | | ElMessage.error(error?.message || $t('crud.messages.deleteFailed')) |
| | | } |
| | | } |
| | | } |
| | |
| | | if (!ids.length) return |
| | | |
| | | try { |
| | | await ElMessageBox.confirm(`确定要批量删除选中的 ${ids.length} 个${entityName}吗?`, '批量删除确认', { |
| | | confirmButtonText: '确定', |
| | | cancelButtonText: '取消', |
| | | await ElMessageBox.confirm($t('crud.confirm.batchDeleteMessage', { count: ids.length, entity: entityName }), $t('crud.confirm.batchDeleteTitle'), { |
| | | confirmButtonText: $t('common.confirm'), |
| | | cancelButtonText: $t('common.cancel'), |
| | | type: 'warning' |
| | | }) |
| | | await deleteRequest(ids.join(',')) |
| | | ElMessage.success('批量删除成功') |
| | | ElMessage.success($t('crud.messages.batchDeleteSuccess')) |
| | | selectedRows.value = [] |
| | | await refreshRemove?.() |
| | | } catch (error) { |
| | | if (error !== 'cancel') { |
| | | ElMessage.error(error?.message || '批量删除失败') |
| | | ElMessage.error(error?.message || $t('crud.messages.batchDeleteFailed')) |
| | | } |
| | | } |
| | | } |