+
{{ row.mobile }}
+
+
+
+ {{ row.active ? 'فعال' : 'غیرفعال' }}
+
+
+ {{ row.trade_active === 1 ? 'سفارش مجاز' : 'سفارش ممنوع' }}
+
+
+
+
-
-
- شارژ کیف پول
-
- تایید کاربر
-
-
- مشخصات کامل
-
-
- ویرایش
-
-
- بایگانی
-
-
- {{ row.active ? 'غیرفعال کردن' : 'فعال کردن' }}
-
-
- {{ row.trade_active === 1 ? 'ممنوعیت سفارش' : 'مجاز کردن سفارش' }}
+ شارژ / دشارژ کیف پول
+
+
+
+ مشخصات
+
+
+ ویرایش
+
+
+ بایگانی
+
+
+ تایید
+
+
+ {{ row.active ? 'غیرفعال' : 'فعال' }}
+
+
+ {{ row.trade_active === 1 ? 'ممنوعیت' : 'مجاز سفارش' }}
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
- {{ row.active ? 'فعال' : 'غیرفعال' }}
-
-
- {{ row.trade_active === 1 ? 'مجاز' : 'غیر مجاز' }}
-
-
-
-
-
-
-
+
+
diff --git a/src/pages/menuPages/customers/base/components/WalletChargeForm.vue b/src/pages/menuPages/customers/base/components/WalletChargeForm.vue
index f25fc71..0aec76d 100644
--- a/src/pages/menuPages/customers/base/components/WalletChargeForm.vue
+++ b/src/pages/menuPages/customers/base/components/WalletChargeForm.vue
@@ -138,12 +138,27 @@ defineExpose({
margin-bottom: 0.65rem;
}
+.wallet-charge-form :deep(.ant-form-item-label > label) {
+ color: var(--admin-text, rgba(0, 0, 0, 0.88));
+}
+
.wallet-charge-form__direction :deep(.ant-radio-button-wrapper) {
width: 50%;
text-align: center;
height: 2.35rem;
line-height: 2.25rem;
font-weight: 700;
+ background: var(--admin-bg-muted, #fafafa) !important;
+ border-color: var(--admin-border-strong, #d9d9d9) !important;
+ color: var(--admin-text, rgba(0, 0, 0, 0.88)) !important;
+}
+
+.wallet-charge-form__direction :deep(.ant-radio-button-wrapper:not(:first-child)::before) {
+ background-color: var(--admin-border-strong, #d9d9d9) !important;
+}
+
+.wallet-charge-form__direction :deep(.ant-radio-button-wrapper:hover) {
+ color: var(--admin-text, rgba(0, 0, 0, 0.88)) !important;
}
.wallet-charge-form__radio-icon {
@@ -180,29 +195,29 @@ defineExpose({
.wallet-charge-form__preview--charge {
background: rgba(34, 197, 94, 0.12);
border-color: rgba(34, 197, 94, 0.35);
- color: #86efac;
+ color: #15803d;
}
.wallet-charge-form__preview--charge .wallet-charge-form__preview-sign {
background: rgba(34, 197, 94, 0.2);
- color: #4ade80;
+ color: #16a34a;
}
.wallet-charge-form__preview--discharge {
background: rgba(239, 68, 68, 0.12);
border-color: rgba(239, 68, 68, 0.35);
- color: #fca5a5;
+ color: #b91c1c;
}
.wallet-charge-form__preview--discharge .wallet-charge-form__preview-sign {
background: rgba(239, 68, 68, 0.2);
- color: #f87171;
+ color: #dc2626;
}
.wallet-charge-form__hint {
margin-top: 0.35rem;
font-size: 0.75rem;
- opacity: 0.75;
+ color: var(--admin-text-secondary, rgba(0, 0, 0, 0.45));
}
.wallet-charge-form__direction :deep(.ant-radio-button-wrapper-checked.wallet-charge-form__radio--charge) {
@@ -211,9 +226,59 @@ defineExpose({
color: #fff !important;
}
+.wallet-charge-form__direction :deep(.ant-radio-button-wrapper-checked.wallet-charge-form__radio--charge::before) {
+ background-color: #15803d !important;
+}
+
.wallet-charge-form__direction :deep(.ant-radio-button-wrapper-checked.wallet-charge-form__radio--discharge) {
background: #b91c1c !important;
border-color: #b91c1c !important;
color: #fff !important;
}
+
+.wallet-charge-form__direction :deep(.ant-radio-button-wrapper-checked.wallet-charge-form__radio--discharge::before) {
+ background-color: #b91c1c !important;
+}
+
+:global(html.is-dark) .wallet-charge-form__preview--charge {
+ background: rgba(34, 197, 94, 0.14);
+ border-color: rgba(34, 197, 94, 0.32);
+ color: #86efac;
+}
+
+:global(html.is-dark) .wallet-charge-form__preview--charge .wallet-charge-form__preview-sign {
+ background: rgba(34, 197, 94, 0.22);
+ color: #4ade80;
+}
+
+:global(html.is-dark) .wallet-charge-form__preview--discharge {
+ background: rgba(239, 68, 68, 0.14);
+ border-color: rgba(239, 68, 68, 0.32);
+ color: #fca5a5;
+}
+
+:global(html.is-dark) .wallet-charge-form__preview--discharge .wallet-charge-form__preview-sign {
+ background: rgba(239, 68, 68, 0.22);
+ color: #f87171;
+}
+
+:global(html.is-dark) .wallet-charge-form__direction :deep(.ant-radio-button-wrapper-checked.wallet-charge-form__radio--charge) {
+ background: #16a34a !important;
+ border-color: #16a34a !important;
+ color: #fff !important;
+}
+
+:global(html.is-dark) .wallet-charge-form__direction :deep(.ant-radio-button-wrapper-checked.wallet-charge-form__radio--charge::before) {
+ background-color: #16a34a !important;
+}
+
+:global(html.is-dark) .wallet-charge-form__direction :deep(.ant-radio-button-wrapper-checked.wallet-charge-form__radio--discharge) {
+ background: #dc2626 !important;
+ border-color: #dc2626 !important;
+ color: #fff !important;
+}
+
+:global(html.is-dark) .wallet-charge-form__direction :deep(.ant-radio-button-wrapper-checked.wallet-charge-form__radio--discharge::before) {
+ background-color: #dc2626 !important;
+}
diff --git a/src/pages/menuPages/customers/base/components/WalletChargeModalBody.vue b/src/pages/menuPages/customers/base/components/WalletChargeModalBody.vue
index 393a321..05cc77b 100644
--- a/src/pages/menuPages/customers/base/components/WalletChargeModalBody.vue
+++ b/src/pages/menuPages/customers/base/components/WalletChargeModalBody.vue
@@ -15,14 +15,15 @@
/>
-
@@ -151,6 +152,13 @@ defineExpose({
padding: 0 0.75rem 0.25rem;
}
+.wallet-charge-modal-body__assets {
+ margin-bottom: 0.75rem;
+ width: 100%;
+ min-width: 0;
+ max-width: 100%;
+}
+
.wallet-charge-modal-body__section {
display: flex;
flex-direction: column;
diff --git a/src/pages/menuPages/customers/base/index.vue b/src/pages/menuPages/customers/base/index.vue
index edf8ba2..1ef4f8a 100644
--- a/src/pages/menuPages/customers/base/index.vue
+++ b/src/pages/menuPages/customers/base/index.vue
@@ -132,10 +132,12 @@
:showButton="false"
@close="userInfoVisible = false"
>
-
اطلاعات کاربر
-
+
+
{{ userInfo.name }}
@@ -172,7 +174,7 @@
-
+
+
@@ -283,6 +304,8 @@ import Icon from '@core/components/BaseIcon/src/Icon.vue'
import { isMobile } from '@core/utils/is'
import WalletChargeModal from './components/WalletChargeModal.vue'
import CustomerWalletBalancePanel from '@/components/customer/CustomerWalletBalancePanel.vue'
+import { getChargeTargets } from '@/api/wallet'
+import type { ChargeTarget } from '@/model/wallet'
import { metalLabel } from '@/utils/adminMetalLabels'
import type { DashboardHelp } from '@/pages/dashboard/dashboardSectionCopy'
import DashboardLabelWithHelp from '@/pages/dashboard/components/DashboardLabelWithHelp.vue'
@@ -482,6 +505,7 @@ async function info(val: Customer) {
activeKey.value = 'اطلاعات جامع'
userInfo.value = cloneDeep(val)
userInfoVisible.value = true
+ void loadInfoChargeTargets()
await nextTick(() => {
loading.value = true
refreshFundTable()
@@ -551,6 +575,17 @@ onMounted(async () => {
//add project modal
const addUserVisible = ref(false)
const userInfoVisible = ref(false)
+const infoChargeTargets = ref([])
+
+async function loadInfoChargeTargets() {
+ if (!isMobile.value) return
+ try {
+ const res = await getChargeTargets()
+ infoChargeTargets.value = res?.targets ?? []
+ } catch {
+ infoChargeTargets.value = []
+ }
+}
const userInfo = ref()
//submit user