From 4435dad5cb74b7d68f57d4b62f04d3e3de4adbd9 Mon Sep 17 00:00:00 2001
From: lcy <1459594991@qq.com>
Date: 星期四, 28 五月 2026 16:28:31 +0800
Subject: [PATCH] 666 新增代金券 可根据不同渠道配置只显示哪个
---
Main/System/Tip/PayMethodConfirmWin.cs | 64 ++++++++++++++++++-------------
1 files changed, 37 insertions(+), 27 deletions(-)
diff --git a/Main/System/Tip/PayMethodConfirmWin.cs b/Main/System/Tip/PayMethodConfirmWin.cs
index b835a2f..887e1ef 100644
--- a/Main/System/Tip/PayMethodConfirmWin.cs
+++ b/Main/System/Tip/PayMethodConfirmWin.cs
@@ -1,12 +1,11 @@
using UnityEngine;
using UnityEngine.UI;
-// 鏀粯鏂瑰紡閫夋嫨纭妗嗭細鍙岃揣甯侊紙鐜伴噾绀煎埜/鐜勭帀锛変簩閫変竴
public class PayMethodConfirmWin : UIBase
{
[SerializeField] Text m_Content;
- [SerializeField] Toggle m_Toggle1; //浠i噾绀煎埜
- [SerializeField] Toggle m_Toggle2; //鐜勭帀
+ [SerializeField] Toggle m_Toggle1;
+ [SerializeField] Toggle m_Toggle2;
[SerializeField] Text m_ToggleTxt1;
[SerializeField] Text m_ToggleTxt2;
[SerializeField] Button m_ConfirmBtn;
@@ -15,6 +14,7 @@
[SerializeField] Text moneyText;
int m_SelectedMoneyType;
+ int m_SelectedNeedCount;
int m_NeedMoney1;
int m_NeedMoney2;
@@ -27,14 +27,14 @@
{
if (isOn)
{
- TrySelectMoneyType(ConfirmCancel.moneyType1, ConfirmCancel.moneyNeedCount1);
+ TrySelectMoneyType(ConfirmCancel.moneyType1, m_NeedMoney1);
}
});
m_Toggle2.onValueChanged.AddListener((bool isOn) =>
{
if (isOn)
{
- TrySelectMoneyType(ConfirmCancel.moneyType2, ConfirmCancel.moneyNeedCount2);
+ TrySelectMoneyType(ConfirmCancel.moneyType2, m_NeedMoney2);
}
});
}
@@ -44,11 +44,18 @@
m_NeedMoney1 = ConfirmCancel.moneyNeedCount1;
m_NeedMoney2 = ConfirmCancel.moneyNeedCount2;
- // 璁剧疆涓や釜 Toggle 鐨勬枃瀛�
m_ToggleTxt1.text = ConfirmCancel.toggleText1;
m_ToggleTxt2.text = ConfirmCancel.toggleText2;
- // 鍏堣浜掓枼 ToggleGroup锛岄伩鍏嶅垵濮嬪寲鏃� listener 瑙﹀彂鐘舵�侀敊涔�
+ var availableMoneyTypes = GeneralDefine.GetPayMethodAvailableMoneyTypes();
+ bool showMoney1 = availableMoneyTypes.Contains(ConfirmCancel.moneyType1);
+ bool showMoney2 = availableMoneyTypes.Contains(ConfirmCancel.moneyType2);
+ if (!showMoney1 && !showMoney2)
+ {
+ showMoney1 = true;
+ showMoney2 = true;
+ }
+
var group = gameObject.GetComponent<ToggleGroup>();
if (group == null)
{
@@ -58,32 +65,32 @@
m_Toggle1.group = group;
m_Toggle2.group = group;
- // 鍒ゆ柇鍚勮揣甯佹槸鍚﹀厖瓒�
+ int showCount = (showMoney1 ? 1 : 0) + (showMoney2 ? 1 : 0);
+ bool showToggles = showCount > 1;
+ m_Toggle1.gameObject.SetActive(showToggles && showMoney1);
+ m_Toggle2.gameObject.SetActive(showToggles && showMoney2);
+
long have1 = UIHelper.GetMoneyCnt(ConfirmCancel.moneyType1);
long have2 = UIHelper.GetMoneyCnt(ConfirmCancel.moneyType2);
- bool enough1 = have1 >= m_NeedMoney1;
- bool enough2 = have2 >= m_NeedMoney2;
+ bool enough1 = showMoney1 && have1 >= m_NeedMoney1;
+ bool enough2 = showMoney2 && have2 >= m_NeedMoney2;
- // 鐢� SetIsOnWithoutNotify 閬垮厤瑙﹀彂 listener锛岀劧鍚庢墜鍔ㄥ垵濮嬪寲
- if (enough1)
+ if (enough1 || (!enough2 && showMoney1))
{
- m_Toggle1.SetIsOnWithoutNotify(true);
+ m_Toggle1.SetIsOnWithoutNotify(showToggles);
m_Toggle2.SetIsOnWithoutNotify(false);
m_SelectedMoneyType = ConfirmCancel.moneyType1;
- }
- else if (enough2)
- {
- m_Toggle1.SetIsOnWithoutNotify(false);
- m_Toggle2.SetIsOnWithoutNotify(true);
- m_SelectedMoneyType = ConfirmCancel.moneyType2;
+ m_SelectedNeedCount = m_NeedMoney1;
}
else
{
- m_Toggle1.SetIsOnWithoutNotify(true);
- m_Toggle2.SetIsOnWithoutNotify(false);
- m_SelectedMoneyType = ConfirmCancel.moneyType1;
+ m_Toggle1.SetIsOnWithoutNotify(false);
+ m_Toggle2.SetIsOnWithoutNotify(showToggles);
+ m_SelectedMoneyType = ConfirmCancel.moneyType2;
+ m_SelectedNeedCount = m_NeedMoney2;
}
- UpdateMoneyDisplay(m_SelectedMoneyType, m_SelectedMoneyType == ConfirmCancel.moneyType1 ? m_NeedMoney1 : m_NeedMoney2);
+
+ UpdateMoneyDisplay(m_SelectedMoneyType, m_SelectedNeedCount);
}
void TrySelectMoneyType(int moneyType, int needCount)
@@ -91,10 +98,7 @@
long have = UIHelper.GetMoneyCnt(moneyType);
if (have < needCount)
{
- // 璐у竵涓嶈冻锛屽脊鍑烘彁绀哄苟鍒囧洖鍘熸潵鐨勯�変腑椤�
- string moneyName = ItemConfig.Get(UIHelper.GetItemIDWithMoneyType(moneyType))?.ItemName ?? moneyType.ToString();
SysNotifyMgr.Instance.ShowTip("LackMoney", moneyType);
- // 鎭㈠鍘熸潵鐨勯�変腑
if (m_SelectedMoneyType == ConfirmCancel.moneyType1)
{
m_Toggle1.isOn = true;
@@ -107,6 +111,7 @@
}
m_SelectedMoneyType = moneyType;
+ m_SelectedNeedCount = needCount;
UpdateMoneyDisplay(moneyType, needCount);
}
@@ -114,7 +119,6 @@
{
moneyIcon.SetIconWithMoneyType(moneyType);
moneyText.text = GetPayMethodMoneyText(moneyType, needCount);
- // 鍒囨崲閫夐」鏃跺悓姝ュ埛鏂� Recharge6 鍐呭锛堣揣甯佸浘鏍�+鍚嶇О鍙樺寲锛�
m_Content.text = Language.Get("Recharge6", UIHelper.GetIconNameWithMoneyType(moneyType), ConfirmCancel.payMethodMoney, ConfirmCancel.payMethodTitle);
}
@@ -133,6 +137,12 @@
private void OnConfirm()
{
+ if (UIHelper.GetMoneyCnt(m_SelectedMoneyType) < m_SelectedNeedCount)
+ {
+ SysNotifyMgr.Instance.ShowTip("LackMoney", m_SelectedMoneyType);
+ return;
+ }
+
CloseWindow();
ConfirmCancel.OnDualToggleConfirmEvent?.Invoke(true, m_SelectedMoneyType);
}
--
Gitblit v1.8.0