diff --git a/src/api/card.ts b/src/api/card.ts index 677f66d..5927b3f 100644 --- a/src/api/card.ts +++ b/src/api/card.ts @@ -8,3 +8,6 @@ export const changeAccountSts = async (obj: cardSts) => export const getAccountTable = async (params: TableInput) => await useAxios.post>('/admin/account/table', params) + +export const deleteAccount = async (id: number) => + await useAxios.delete(`/admin/account/${id}`) diff --git a/src/model/order.ts b/src/model/order.ts index 8426b18..eccc2bb 100644 --- a/src/model/order.ts +++ b/src/model/order.ts @@ -78,6 +78,10 @@ export interface Order { service_charge_price?: number | string /** درصد کارمزد اعمال‌شده */ service_charge_percentage?: number | string + /** + * سمت کسر کارمزد: gold = از کیف فلز/مقداری، rial = از ریال + */ + fee_asset?: 'gold' | 'rial' | string | null /** مبلغ نقدی جابه‌جاشده: خرید = پرداختی مشتری، فروش = دریافتی مشتری */ payment_amount?: number } diff --git a/src/pages/dashboard/index.vue b/src/pages/dashboard/index.vue index aab72ef..c12634c 100644 --- a/src/pages/dashboard/index.vue +++ b/src/pages/dashboard/index.vue @@ -10,16 +10,18 @@
- /گرم + /{{ quoteUnitLabel }} {{ usePrice(master?.price ?? 0, true, 'ریال') }} - · - مثقال - {{ usePrice(master?.pricem ?? 0, true, 'ریال') }} +

{{ toJalali(master.update_date) }} @@ -344,7 +346,7 @@ قیمت مشتری سود اختلاف قیمت/گرم سود کل اختلاف قیمت - کارمزد (ریال) + کارمزد وضعیت تاریخ @@ -372,7 +374,15 @@ {{ usePrice(order.total_fee ?? 0, true, 'ریال') }} - {{ usePrice(order.service_charge_price ?? 0, true, 'ریال') }} +

+
{{ orderServiceFee(order).value }}
+
+ {{ orderServiceFee(order).source }} +
+
@@ -465,6 +475,9 @@ import { DASHBOARD_RIAL_UNIT, formatDashboardAmount } from '@/pages/dashboard/da import { useDashboardPage } from '@/pages/dashboard/composables/useDashboardPage' import { useDashboardQuickActions } from '@/pages/dashboard/composables/useDashboardQuickActions' import { metalBalanceTitle, metalLabel } from '@/utils/adminMetalLabels' +import { formatOrderServiceFee } from '@/utils/orderServiceFee' +import { getMainMetal } from '@/utils/metalLabels' +import { TRADE_WEIGHT_UNIT_GRAM, TRADE_WEIGHT_UNIT_KILOGRAM } from '@/utils/weightUnit' const copy = { hero: dashboardHero, @@ -523,6 +536,22 @@ const { customerStats, } = useDashboardPage() +const orderServiceFee = formatOrderServiceFee + +const isCopperMainMetal = computed(() => getMainMetal().trim() === 'مس') +const quoteUnitLabel = computed(() => + isCopperMainMetal.value ? TRADE_WEIGHT_UNIT_KILOGRAM : TRADE_WEIGHT_UNIT_GRAM +) +const showMesghalQuote = computed(() => !isCopperMainMetal.value) +const heroHelp = computed(() => + isCopperMainMetal.value + ? { + description: 'آخرین قیمت پایه هر کیلوگرم مس در سیستم.', + formula: 'مظنه بر حسب کیلوگرم نمایش داده می‌شود؛ مثقال برای مس کاربرد ندارد.', + } + : copy.hero +) + const tradingProfitTotal = computed(() => { const priceDiff = Number(finance.value?.fullPriceSood ?? 0) const commission = Number(finance.value?.fullPriceKarmozd ?? finance.value?.fullPriceKaermozd ?? 0) diff --git a/src/pages/menuPages/cards/components/AccountMobileCardList.vue b/src/pages/menuPages/cards/components/AccountMobileCardList.vue index 93a3d66..8a63b12 100644 --- a/src/pages/menuPages/cards/components/AccountMobileCardList.vue +++ b/src/pages/menuPages/cards/components/AccountMobileCardList.vue @@ -17,6 +17,7 @@ :item="item" @open="openSheet" @toggle-sts="confirmToggleSts" + @delete="confirmDelete" /> @@ -37,6 +38,7 @@ type AccountRow = Card & { sts_str?: string; created_at?: string; customer_id?: const emit = defineEmits<{ (e: 'toggleSts', item: AccountRow): void + (e: 'delete', id: number): void }>() const { sheetVisible, selectedItem, openSheet, syncSelectedItem } = useMobileDetailSheet() @@ -55,6 +57,11 @@ function confirmToggleSts(item: AccountRow) { }) } +function confirmDelete(item: AccountRow) { + if (item.id == null) return + emit('delete', item.id) +} + const { loading, search, items, hasMore, reload, loadMore, fetch } = useMobileTableList({ fetchApi: getAccountTable, onFetched: (rows) => syncSelectedItem(rows) diff --git a/src/pages/menuPages/cards/components/AccountMobileListItem.vue b/src/pages/menuPages/cards/components/AccountMobileListItem.vue index 5564471..2754667 100644 --- a/src/pages/menuPages/cards/components/AccountMobileListItem.vue +++ b/src/pages/menuPages/cards/components/AccountMobileListItem.vue @@ -20,6 +20,12 @@ :size="20" @click="$emit('toggleSts', item)" /> + @@ -38,6 +44,7 @@ const props = defineProps<{ defineEmits<{ (e: 'open', item: AccountRow): void (e: 'toggleSts', item: AccountRow): void + (e: 'delete', item: AccountRow): void }>() const customerName = computed(() => props.item.customer?.name || '-') diff --git a/src/pages/menuPages/cards/components/table.vue b/src/pages/menuPages/cards/components/table.vue index eb4073c..257e927 100644 --- a/src/pages/menuPages/cards/components/table.vue +++ b/src/pages/menuPages/cards/components/table.vue @@ -10,7 +10,7 @@ --> @@ -34,6 +40,7 @@ ref="mobileListRef" class="min-h-0 flex-1" @toggle-sts="changeAccountStsFunction" + @delete="(id) => emits('delete', id)" /> diff --git a/src/pages/menuPages/cards/index.vue b/src/pages/menuPages/cards/index.vue index f4fafa7..46b8b97 100644 --- a/src/pages/menuPages/cards/index.vue +++ b/src/pages/menuPages/cards/index.vue @@ -2,220 +2,21 @@
- - - - +
-
diff --git a/src/pages/menuPages/orders/components/OrderDetailModal.vue b/src/pages/menuPages/orders/components/OrderDetailModal.vue index caf899e..41cb7be 100644 --- a/src/pages/menuPages/orders/components/OrderDetailModal.vue +++ b/src/pages/menuPages/orders/components/OrderDetailModal.vue @@ -31,10 +31,6 @@ محصول {{ productTitle || '—' }} {{ order.order_metal_label || '—' }} - قیمت اپ - - {{ feeSourceLabel }} -

@@ -53,13 +49,17 @@ جمع سود {{ formatOrderRial(grandTotal) }} ریال + اختلاف قیمت + کارمزد
-

حساب سود

+

سود اختلاف قیمت

{{ equationHint }}

+

+ منبع اختلاف: {{ feeSourceLabel }} +

@@ -69,7 +69,7 @@
بدون سود

- {{ formatOrderRial(order.price_original ?? 0) }} ریال / گرم × {{ amountLabel }} + {{ formatOrderRial(order.price_original ?? 0) }} {{ perUnitLabel }} × {{ amountLabel }}

@@ -79,16 +79,16 @@
-