fix(payment): 修复后端返回空supported_types时支付提供商卡片消失的问题

统一处理后端返回的null类型supported_types,将其标准化为空数组,避免调用includes()时报错导致卡片无法显示,同时修复多处相关的类型判断逻辑
This commit is contained in:
SMGDev
2026-06-26 00:50:22 +08:00
parent ce6af41357
commit 65ad7df4f4
4 changed files with 83 additions and 6 deletions
@@ -658,7 +658,9 @@ function reset(defaultKey: string) {
function loadProvider(provider: ProviderInstance) {
form.name = provider.name
form.provider_key = provider.provider_key
form.supported_types = provider.supported_types
form.supported_types = Array.isArray(provider.supported_types)
? [...provider.supported_types]
: []
form.enabled = provider.enabled
// Coerce to a valid value for this provider. Guards against stale data
// (e.g. "popup" written by an older client) showing up as an unselected
@@ -104,6 +104,6 @@ const modeLabel = computed(() => {
})
function isSelected(type: string): boolean {
return props.provider.supported_types.includes(type)
return Array.isArray(props.provider.supported_types) && props.provider.supported_types.includes(type)
}
</script>