diff --git a/src/components/BasicActionSheet.vue b/src/components/BasicActionSheet.vue index f8c5a00..6f11b79 100644 --- a/src/components/BasicActionSheet.vue +++ b/src/components/BasicActionSheet.vue @@ -51,9 +51,9 @@ :destroy-on-close="true" :height="drawerHeight" :z-index="ACTION_SHEET_Z_INDEX" - class="basic-action-sheet" + :class="['basic-action-sheet', { 'basic-action-sheet--compact': compact }]" > -
+
@@ -105,6 +105,7 @@ interface Props { modalWidth?: string loading?: boolean drawerHeight?: string + compact?: boolean cancelText?: string showButton?: boolean showCancel?: boolean @@ -118,6 +119,7 @@ const props = withDefaults(defineProps(), { modalWidth: '36rem', loading: false, drawerHeight: ACTION_SHEET_HEIGHT, + compact: false, cancelText: 'بازگشت', showButton: false, showCancel: true, @@ -177,6 +179,29 @@ function handleCancel() { padding: 0 16px 12px; } +.basic-action-sheet--compact { + .ant-drawer-content-wrapper { + height: auto !important; + max-height: 88vh; + } + + .ant-drawer-content { + height: auto !important; + max-height: 88vh; + } +} + +.basic-action-sheet__container--compact { + height: auto; + min-height: 0; + max-height: 88vh; +} + +.basic-action-sheet__container--compact .basic-action-sheet__content { + flex: 0 1 auto; + max-height: calc(88vh - 40px); +} + .basic-action-sheet__footer { position: sticky; bottom: 0; diff --git a/src/components/mobile/MobileDetailSheet.vue b/src/components/mobile/MobileDetailSheet.vue index acb78d9..4a0f8a5 100644 --- a/src/components/mobile/MobileDetailSheet.vue +++ b/src/components/mobile/MobileDetailSheet.vue @@ -1,8 +1,9 @@ @@ -40,7 +41,7 @@ import { useMobileTableList } from '@/components/mobile/composables/useMobileTab import CustomerMobileListItem from './CustomerMobileListItem.vue' import CustomerMobileDetailSheet from './CustomerMobileDetailSheet.vue' -defineEmits<{ +const emit = defineEmits<{ (e: 'info', item: Customer): void (e: 'edit', item: Customer): void (e: 'archive', item: Customer): void @@ -53,6 +54,25 @@ defineEmits<{ const { sheetVisible, selectedItem, openSheet, syncSelectedItem } = useMobileDetailSheet() +type SheetAction = + | 'info' + | 'edit' + | 'archive' + | 'toggleActive' + | 'chargeMoney' + | 'chargeGold' + | 'toggleTrade' + | 'confirmUser' + +function forward(action: SheetAction, item: Customer) { + emit(action, item) +} + +function forwardAndClose(action: SheetAction, item: Customer) { + sheetVisible.value = false + emit(action, item) +} + const { loading, search, items, hasMore, reload, loadMore, fetch } = useMobileTableList({ fetchApi: getCustomerTable, onFetched: (rows) => syncSelectedItem(rows) diff --git a/src/pages/menuPages/customers/base/components/CustomerMobileDetailSheet.vue b/src/pages/menuPages/customers/base/components/CustomerMobileDetailSheet.vue index a5de9e1..5702bc4 100644 --- a/src/pages/menuPages/customers/base/components/CustomerMobileDetailSheet.vue +++ b/src/pages/menuPages/customers/base/components/CustomerMobileDetailSheet.vue @@ -1,36 +1,54 @@