diff --git a/apps/daxpay-admin/src/api/payment/masterdata/pay-env.api.ts b/apps/daxpay-admin/src/api/payment/masterdata/pay-env.api.ts new file mode 100644 index 000000000..3c6704765 --- /dev/null +++ b/apps/daxpay-admin/src/api/payment/masterdata/pay-env.api.ts @@ -0,0 +1,15 @@ +import type { Result } from '#/types/web'; + +import { defHttp } from '#/api/request'; + +/** + * 支付环境配置 API(全局沙箱开关等) + */ +export const PayEnvApi = { + /** + * 查询沙箱环境全局开关状态 + */ + sandboxEnabled(): Promise> { + return defHttp.get({ url: '/admin/pay-env/sandbox-enabled' }); + }, +}; diff --git a/apps/daxpay-admin/src/views/payment/config/product/ProductConfig.vue b/apps/daxpay-admin/src/views/payment/config/product/ProductConfig.vue index bebc1c20e..4d09d824b 100644 --- a/apps/daxpay-admin/src/views/payment/config/product/ProductConfig.vue +++ b/apps/daxpay-admin/src/views/payment/config/product/ProductConfig.vue @@ -7,6 +7,7 @@ import { IconifyIcon } from '@vben-core/icons'; import { PayProductConfigApi, type PayProductConfigResult } from '#/api/payment/config/pay-product-config.api'; + import { PayEnvApi } from '#/api/payment/masterdata/pay-env.api'; import ChannelLogo from '#/components/channel/ChannelLogo.vue'; import { useMessage } from '#/hooks/useMessage'; @@ -18,11 +19,15 @@ const loading = ref(false); const productList = ref([]); const radioRefreshKey = ref(0); + // 全局沙箱环境开关(后端控制), 关闭时不展示沙箱相关选项 + const sandboxEnabled = ref(false); /** * 获取当前激活的环境值 */ function getActiveEnvValue(row: PayProductConfigResult): string { + // 全局沙箱关闭时强制显示生产环境 + if (!sandboxEnabled.value) return 'prod'; return row.activeEnv === 'sandbox' ? 'sandbox' : 'prod'; } @@ -90,7 +95,22 @@ }); } + /** + * 加载全局沙箱环境开关状态 + */ + function loadSandboxEnabled() { + PayEnvApi.sandboxEnabled() + .then(({ data }) => { + sandboxEnabled.value = !!data; + }) + .catch(() => { + // 查询失败按关闭处理, 仅展示生产环境 + sandboxEnabled.value = false; + }); + } + onMounted(() => { + loadSandboxEnabled(); loadProductConfig(); }); @@ -134,7 +154,7 @@ {{ $t('payment.constant.product.productConfig.prodLabel') }} - {{ + {{ $t('payment.constant.product.productConfig.sandboxLabel') }} @@ -158,7 +178,7 @@ >
@@ -170,7 +190,7 @@