From d944d9fb7b9997cae1bc93e6363a6c13fbb0fef6 Mon Sep 17 00:00:00 2001 From: DaxPay Dev Date: Sun, 14 Jun 2026 09:38:12 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E7=A7=BB=E9=99=A4=E7=B2=BE?= =?UTF-8?q?=E7=BB=86=E6=A8=A1=E5=BC=8F(advanced)=E5=8F=8A=E8=B7=AF?= =?UTF-8?q?=E7=94=B1=E6=A8=A1=E6=8B=9F=E9=9D=A2=E6=9D=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - PayRouteMode 类型改为 'basic' | 'scene' - 删除 modeDisplayName 中 advanced 分支 - 删除 PayRouteModeToolbar 中 advanced radio 按钮 - 删除 PayRouteConfig 中 simulate Tab 及相关引用 - 删除 PayRouteSimulatePanel.vue - 删除 payRoute.api.ts 中 simulate API 及对应接口类型 - 清理 i18n 中 advanced/simulate 相关条目 --- .../src/api/payment/payRoute.api.ts | 26 +--- .../langs/en-US/payment/merchant/route.json | 4 - .../langs/zh-CN/payment/merchant/route.json | 4 - .../payment/merchant/route/PayRouteConfig.vue | 7 -- .../route/components/PayRouteModeToolbar.vue | 11 +- .../route/shared/payRoute.constants.ts | 4 +- .../merchant/route/shared/payRoute.labels.ts | 8 +- .../route/simulate/PayRouteSimulatePanel.vue | 113 ------------------ 8 files changed, 4 insertions(+), 173 deletions(-) delete mode 100644 apps/daxpay-admin/src/views/payment/merchant/route/simulate/PayRouteSimulatePanel.vue diff --git a/apps/daxpay-admin/src/api/payment/payRoute.api.ts b/apps/daxpay-admin/src/api/payment/payRoute.api.ts index 79133343e..59c5b0eba 100644 --- a/apps/daxpay-admin/src/api/payment/payRoute.api.ts +++ b/apps/daxpay-admin/src/api/payment/payRoute.api.ts @@ -3,7 +3,7 @@ import type { BaseEntity, Result } from '#/types/web'; import { defHttp } from '#/api/request'; -// 通道路由 API(管理端):策略、基础/场景配置、试算及已启用目录;精细模式规则接口已移除,advanced 仅前端占位 +// 通道路由 API(管理端):策略、基础/场景配置及已启用目录 export const PayRouteApi = { /** 已启用渠道+方式扁平目录(`PayProviderMethodService`,权限归属通道路由菜单) */ listMethodDirectoryFlat(): Promise> { @@ -76,9 +76,6 @@ export const PayRouteApi = { return defHttp.post({ url: '/admin/merchant/pay-route/basic-config/save-batch', data }); }, - simulate(data: PayRouteSimulateParam): Promise> { - return defHttp.post({ url: '/admin/merchant/pay-route/simulate', data }); - }, }; export interface LabelValue { @@ -152,18 +149,6 @@ export interface PayRouteSceneCapabilityBatchItem { product: string; } -export interface PayRouteSimulateParam { - appId: string; - mchNo: string; - /** 支付渠道(基础/场景模式模拟时必填) */ - provider?: string; - /** 支付方式(场景模式试算时必填) */ - method?: string; - amount?: number; - /** 模拟使用的路由模式(不传则按策略生效模式) */ - mode?: string; -} - /** 基础模式配置(含可选产品列表) */ export interface PayRouteBasicConfigResult extends BaseEntity { provider?: string; @@ -181,12 +166,3 @@ export interface PayRouteBasicConfigBatchParam { appId: string; items: PayRouteBasicConfigItem[]; } - -export interface PayRouteResolveResult { - channel?: string; - method?: string; - product?: string; - hitRuleId?: string; - hitConfigId?: string; - mode?: string; -} diff --git a/apps/daxpay-admin/src/locales/langs/en-US/payment/merchant/route.json b/apps/daxpay-admin/src/locales/langs/en-US/payment/merchant/route.json index 526fe524c..64796c275 100644 --- a/apps/daxpay-admin/src/locales/langs/en-US/payment/merchant/route.json +++ b/apps/daxpay-admin/src/locales/langs/en-US/payment/merchant/route.json @@ -6,10 +6,8 @@ "setActiveModeConfirm": "This app's payment channel routing will be set to \"{mode}\". New orders will resolve routes using this mode. Continue?", "alreadyActiveMode": "Already the active mode", "activeModeTag": "Active", - "simulateUsesEditMode": "Trial resolve using configured mode \"{mode}\" (does not affect live payments)", "modeBasic": "Basic", "modeScene": "Scene", - "modeAdvanced": "Advanced", "basicProduct": "Payment product", "payCapability": "Payment capability", "payCapabilityPlaceholder": "Select a capability", @@ -24,9 +22,7 @@ "configTab": "Routing", "channel": "Channel", "method": "Pay Method", - "simulate": "Simulate", "missingAppContext": "Open channel routing from App Management", - "simulateProvider": "Payment provider", "providers": { "aggregate_pay": "Aggregate Pay", "wechat": "WeChat Pay", diff --git a/apps/daxpay-admin/src/locales/langs/zh-CN/payment/merchant/route.json b/apps/daxpay-admin/src/locales/langs/zh-CN/payment/merchant/route.json index a3cef3175..370cdc22c 100644 --- a/apps/daxpay-admin/src/locales/langs/zh-CN/payment/merchant/route.json +++ b/apps/daxpay-admin/src/locales/langs/zh-CN/payment/merchant/route.json @@ -6,10 +6,8 @@ "setActiveModeConfirm": "将把本应用的支付通道路由设为「{mode}」,之后下单按该模式解析。是否继续?", "alreadyActiveMode": "已是当前生效模式", "activeModeTag": "生效中", - "simulateUsesEditMode": "按当前配置模式「{mode}」试算(不影响支付生效)", "modeBasic": "基础模式", "modeScene": "场景模式", - "modeAdvanced": "精细模式", "basicProduct": "支付产品", "payCapability": "支付能力", "payCapabilityPlaceholder": "请选择支付能力", @@ -24,9 +22,7 @@ "configTab": "路由配置", "channel": "支付通道", "method": "支付方式", - "simulate": "模拟路由", "missingAppContext": "请从应用管理进入通道路由配置", - "simulateProvider": "支付渠道", "providers": { "aggregate_pay": "聚合支付", "wechat": "微信支付", diff --git a/apps/daxpay-admin/src/views/payment/merchant/route/PayRouteConfig.vue b/apps/daxpay-admin/src/views/payment/merchant/route/PayRouteConfig.vue index 9b380d9e7..50d2abcd4 100644 --- a/apps/daxpay-admin/src/views/payment/merchant/route/PayRouteConfig.vue +++ b/apps/daxpay-admin/src/views/payment/merchant/route/PayRouteConfig.vue @@ -21,7 +21,6 @@ import PayRouteModeToolbar from './components/PayRouteModeToolbar.vue'; import PayRouteScenePanel from './scene/PayRouteScenePanel.vue'; import { modeDisplayName, normalizePayRouteMode } from './shared/payRoute.labels'; - import PayRouteSimulatePanel from './simulate/PayRouteSimulatePanel.vue'; defineOptions({ name: 'PayRouteConfig' }); @@ -55,7 +54,6 @@ const basicPanelRef = ref | null>(null); const scenePanelRef = ref | null>(null); - const simulatePanelRef = ref | null>(null); // 策略库中当前生效的路由模式 const effectiveMode = computed(() => normalizePayRouteMode(strategy.value.mode)); @@ -145,7 +143,6 @@ await loadProductNameMap(); await nextTick(); await loadStrategy(); - simulatePanelRef.value?.syncContextIds(); editMode.value = effectiveMode.value; }); @@ -200,10 +197,6 @@ :product-name-map="productNameMap" /> - - - - diff --git a/apps/daxpay-admin/src/views/payment/merchant/route/components/PayRouteModeToolbar.vue b/apps/daxpay-admin/src/views/payment/merchant/route/components/PayRouteModeToolbar.vue index 093d89a74..dbe014462 100644 --- a/apps/daxpay-admin/src/views/payment/merchant/route/components/PayRouteModeToolbar.vue +++ b/apps/daxpay-admin/src/views/payment/merchant/route/components/PayRouteModeToolbar.vue @@ -20,7 +20,7 @@ applyActiveMode: []; }>(); - // 当前编辑的配置模式(基础/场景可切换;精细模式仅展示) + // 当前编辑的配置模式(基础/场景可切换) const editMode = defineModel('editMode', { required: true }); const { hasPermission } = usePermission(); @@ -46,15 +46,6 @@ - - - - {{ $t('payment.merchant.route.route.modeAdvanced') }} - - {{ $t('payment.merchant.route.route.activeModeTag') }} - - - - import { computed, ref, watch } from 'vue'; - - import { $t } from '@vben/locales'; - - import { PayRouteApi, type PayRouteSimulateParam } from '#/api/payment/payRoute.api'; - - import { usePayProviderMethodDirectory } from '#/views/payment/shared/usePayProviderMethodDirectory'; - import { ROUTE_PAY_PROVIDERS, type PayRouteMode } from '../shared/payRoute.constants'; - import { modeDisplayName, providerLabel } from '../shared/payRoute.labels'; - - defineOptions({ name: 'PayRouteSimulatePanel' }); - - const props = defineProps<{ - appId: string; - // 当前配置模式,作为试算 mode 传给后端(advanced 会返回暂未开放) - editMode: PayRouteMode; - mchNo: string; - }>(); - - const { loadDirectory, methodsForProvider } = usePayProviderMethodDirectory(); - - const simulateParam = ref({ - appId: '', - mchNo: '', - provider: 'wechat', - method: 'wechat_jsapi', - amount: 0.01, - }); - const simulateResult = ref(''); - - const methodOptions = computed(() => { - if (!simulateParam.value.provider) { - return []; - } - return methodsForProvider(simulateParam.value.provider).map((item) => ({ - label: item.methodLabel || item.method, - value: item.method, - })); - }); - - function syncContextIds() { - simulateParam.value.appId = props.appId; - simulateParam.value.mchNo = props.mchNo; - } - - /** 按 editMode 试算路由解析结果(不写真实订单) */ - async function runSimulate() { - syncContextIds(); - simulateParam.value.mode = props.editMode; - const { data } = await PayRouteApi.simulate(simulateParam.value); - simulateResult.value = JSON.stringify(data, null, 2); - } - - watch( - () => simulateParam.value.provider, - async (provider) => { - await loadDirectory(); - const methods = methodsForProvider(provider || ''); - if (methods.length && !methods.some((m) => m.method === simulateParam.value.method)) { - simulateParam.value.method = methods[0]!.method; - } - }, - ); - - watch( - () => [props.appId, props.mchNo] as const, - async () => { - syncContextIds(); - await loadDirectory(); - }, - { immediate: true }, - ); - - defineExpose({ - syncContextIds, - }); - - -