diff --git a/h5/app-invite/index.html b/h5/app-invite/index.html
index 6694a49..ec427ed 100644
--- a/h5/app-invite/index.html
+++ b/h5/app-invite/index.html
@@ -34,6 +34,9 @@
--countdown-card-bg: url("./assets/djs.png");
--button-active-bg: url("./assets/btnselect.png");
--button-inactive-bg: url("./assets/btnunselect.png");
+ --gift-cta-side: 12px;
+ --gift-cta-height: min(68px, 18.235vw);
+ --gift-cta-bottom: calc(env(safe-area-inset-bottom) + 10px);
}
* {
@@ -763,7 +766,10 @@
.gift-overlay {
position: relative;
z-index: 1;
- padding: calc(env(safe-area-inset-top) + 18px) 14px calc(env(safe-area-inset-bottom) + 26px);
+ padding:
+ calc(env(safe-area-inset-top) + 18px)
+ 14px
+ calc(var(--gift-cta-height) + var(--gift-cta-bottom) + 22px);
background: linear-gradient(180deg, rgba(11, 48, 8, 0.08), rgba(11, 48, 8, 0.2));
}
@@ -835,12 +841,20 @@
}
.cta-button {
- width: 100%;
+ position: fixed;
+ left: 50%;
+ bottom: var(--gift-cta-bottom);
+ z-index: 30;
+ width: min(
+ calc(100vw - var(--gift-cta-side) - var(--gift-cta-side)),
+ calc(var(--page-width) - var(--gift-cta-side) - var(--gift-cta-side))
+ );
height: auto;
- margin-top: 18px;
+ margin: 0;
padding: 0;
border: 0;
background: transparent;
+ transform: translateX(-50%);
}
.toast {
diff --git a/h5/app-invite/landing.html b/h5/app-invite/landing.html
index 11360b9..5326e82 100644
--- a/h5/app-invite/landing.html
+++ b/h5/app-invite/landing.html
@@ -15,6 +15,9 @@
--panel-top: url("./assets/panel-top.png");
--panel-middle: url("./assets/panel-middle.png");
--panel-bottom: url("./assets/panel-bottom.png");
+ --fixed-cta-side: 14px;
+ --fixed-cta-height: min(64px, 15.238vw);
+ --fixed-cta-bottom: calc(env(safe-area-inset-bottom) + 10px);
}
* {
@@ -76,7 +79,10 @@
position: relative;
z-index: 1;
min-height: max(100vh, min(990px, 235.714vw));
- padding: calc(env(safe-area-inset-top) + 45px) 14px calc(env(safe-area-inset-bottom) + 16px);
+ padding:
+ calc(env(safe-area-inset-top) + 45px)
+ 14px
+ calc(var(--fixed-cta-height) + var(--fixed-cta-bottom) + 18px);
background:
linear-gradient(180deg, rgba(1, 12, 8, 0.02) 0%, rgba(1, 16, 9, 0.12) 38%, rgba(1, 18, 9, 0.34) 100%);
}
@@ -265,18 +271,21 @@
.download-button {
position: fixed;
- /* top: min(865px, 205.952vw); */
- left: 14px;
- right: 14px;
+ left: 50%;
+ right: auto;
z-index: 4;
display: flex;
align-items: center;
justify-content: center;
- height: min(64px, 15.238vw);
- width: auto;
+ width: min(
+ calc(100vw - var(--fixed-cta-side) - var(--fixed-cta-side)),
+ calc(var(--page-width) - var(--fixed-cta-side) - var(--fixed-cta-side))
+ );
+ height: var(--fixed-cta-height);
margin: 0;
background: center / 100% 100% no-repeat url("./assets/btn-bg.png");
- bottom: 40px;
+ bottom: var(--fixed-cta-bottom);
+ transform: translateX(-50%);
}
.download-button span {
diff --git a/h5/hyapp/manager-center/locales/ar.json b/h5/hyapp/manager-center/locales/ar.json
index c26534d..5a5cb82 100644
--- a/h5/hyapp/manager-center/locales/ar.json
+++ b/h5/hyapp/manager-center/locales/ar.json
@@ -17,9 +17,11 @@
"refreshing": "جار التحديث...",
"no_bd_leaders": "لا يوجد قادة BD بعد",
"add_bd_leader": "إضافة قائد BD",
+ "add_bd_leader_disabled": "إضافة قائد BD معطلة",
"adding_bd_leader": "جار الإضافة...",
"add_bd_leader_success": "تمت إضافة قائد BD",
"gift_props": "إرسال العناصر",
+ "gift_props_disabled": "إرسال العناصر معطل",
"gift_type": "نوع الهدية",
"prop_type_ride": "مركبة",
"prop_type_noble_vip": "VIP نبيل",
@@ -32,11 +34,13 @@
"sending": "جار الإرسال...",
"send_success": "تم الإرسال بنجاح",
"ban_user": "حظر المستخدم",
+ "ban_user_disabled": "حظر المستخدم معطل",
"ban_reason": "سبب الحظر",
"ban": "حظر",
"submitting": "جار الإرسال...",
"ban_success": "تم حظر المستخدم",
"unban_user": "إلغاء حظر المستخدم",
+ "unban_user_disabled": "إلغاء حظر المستخدم معطل",
"unban_reason": "سبب إلغاء الحظر",
"unban": "إلغاء الحظر",
"unban_success": "تم إلغاء حظر المستخدم",
@@ -63,6 +67,7 @@
"user_already_bound_bd_leader": "هذا المستخدم مرتبط بالفعل بقائد BD",
"prop_not_giftable": "هذا العنصر غير متاح كهديّة من المدير",
"vip_not_giftable": "لا يمكن إهداء عنصر VIP هذا",
+ "manager_feature_disabled": "تم تعطيل هذه الميزة من الإدارة",
"request_failed": "فشل الطلب",
"enter_user": "أدخل معرّف المستخدم أو الحساب"
}
diff --git a/h5/hyapp/manager-center/locales/en.json b/h5/hyapp/manager-center/locales/en.json
index 2e751cc..d4ba138 100644
--- a/h5/hyapp/manager-center/locales/en.json
+++ b/h5/hyapp/manager-center/locales/en.json
@@ -17,9 +17,11 @@
"refreshing": "Refreshing...",
"no_bd_leaders": "No BD Leaders yet",
"add_bd_leader": "Add BD Leader",
+ "add_bd_leader_disabled": "Add BD Leader disabled",
"adding_bd_leader": "Adding...",
"add_bd_leader_success": "BD Leader added",
"gift_props": "Gift Props",
+ "gift_props_disabled": "Gift Props disabled",
"gift_type": "Gift Type",
"prop_type_ride": "Ride",
"prop_type_noble_vip": "Noble VIP",
@@ -32,11 +34,13 @@
"sending": "Sending...",
"send_success": "Sent successfully",
"ban_user": "Ban User",
+ "ban_user_disabled": "Ban User disabled",
"ban_reason": "Ban reason",
"ban": "Ban",
"submitting": "Submitting...",
"ban_success": "User banned",
"unban_user": "Unban User",
+ "unban_user_disabled": "Unban User disabled",
"unban_reason": "Unban reason",
"unban": "Unban",
"unban_success": "User unbanned",
@@ -63,6 +67,7 @@
"user_already_bound_bd_leader": "This user is already bound to a BD Leader",
"prop_not_giftable": "This prop is not available for manager gifting",
"vip_not_giftable": "This noble prop cannot be gifted",
+ "manager_feature_disabled": "This feature is disabled by admin",
"request_failed": "Request failed",
"enter_user": "Enter user ID or account"
}
diff --git a/h5/hyapp/manager-center/locales/id.json b/h5/hyapp/manager-center/locales/id.json
index 3a158c8..b170e32 100644
--- a/h5/hyapp/manager-center/locales/id.json
+++ b/h5/hyapp/manager-center/locales/id.json
@@ -17,9 +17,11 @@
"refreshing": "Menyegarkan...",
"no_bd_leaders": "Belum ada BD Leader",
"add_bd_leader": "Tambah BD Leader",
+ "add_bd_leader_disabled": "Tambah BD Leader dinonaktifkan",
"adding_bd_leader": "Menambahkan...",
"add_bd_leader_success": "BD Leader ditambahkan",
"gift_props": "Kirim Properti",
+ "gift_props_disabled": "Kirim properti dinonaktifkan",
"gift_type": "Jenis Hadiah",
"prop_type_ride": "Kendaraan",
"prop_type_noble_vip": "Noble VIP",
@@ -32,11 +34,13 @@
"sending": "Mengirim...",
"send_success": "Berhasil dikirim",
"ban_user": "Blokir Pengguna",
+ "ban_user_disabled": "Blokir pengguna dinonaktifkan",
"ban_reason": "Alasan blokir",
"ban": "Blokir",
"submitting": "Mengirim...",
"ban_success": "Pengguna diblokir",
"unban_user": "Buka Blokir Pengguna",
+ "unban_user_disabled": "Buka blokir pengguna dinonaktifkan",
"unban_reason": "Alasan buka blokir",
"unban": "Buka blokir",
"unban_success": "Blokir pengguna dibuka",
@@ -63,6 +67,7 @@
"user_already_bound_bd_leader": "Pengguna ini sudah terhubung ke BD Leader",
"prop_not_giftable": "Properti ini tidak tersedia untuk hadiah manajer",
"vip_not_giftable": "Properti noble ini tidak dapat dikirim",
+ "manager_feature_disabled": "Fitur ini dinonaktifkan oleh admin",
"request_failed": "Permintaan gagal",
"enter_user": "Masukkan ID pengguna atau akun"
}
diff --git a/h5/hyapp/manager-center/locales/tr.json b/h5/hyapp/manager-center/locales/tr.json
index dcc7b1f..b923f5e 100644
--- a/h5/hyapp/manager-center/locales/tr.json
+++ b/h5/hyapp/manager-center/locales/tr.json
@@ -17,9 +17,11 @@
"refreshing": "Yenileniyor...",
"no_bd_leaders": "Henüz BD lideri yok",
"add_bd_leader": "BD Lideri Ekle",
+ "add_bd_leader_disabled": "BD lideri ekleme kapalı",
"adding_bd_leader": "Ekleniyor...",
"add_bd_leader_success": "BD lideri eklendi",
"gift_props": "Eşya Gönder",
+ "gift_props_disabled": "Eşya gönderme kapalı",
"gift_type": "Hediye Türü",
"prop_type_ride": "Araç",
"prop_type_noble_vip": "Noble VIP",
@@ -32,11 +34,13 @@
"sending": "Gönderiliyor...",
"send_success": "Başarıyla gönderildi",
"ban_user": "Kullanıcıyı Yasakla",
+ "ban_user_disabled": "Kullanıcı yasaklama kapalı",
"ban_reason": "Yasaklama nedeni",
"ban": "Yasakla",
"submitting": "Gönderiliyor...",
"ban_success": "Kullanıcı yasaklandı",
"unban_user": "Yasağı Kaldır",
+ "unban_user_disabled": "Yasak kaldırma kapalı",
"unban_reason": "Yasağı kaldırma nedeni",
"unban": "Yasağı kaldır",
"unban_success": "Kullanıcının yasağı kaldırıldı",
@@ -63,6 +67,7 @@
"user_already_bound_bd_leader": "Bu kullanıcı zaten bir BD liderine bağlı",
"prop_not_giftable": "Bu eşya yönetici hediyesi için açık değil",
"vip_not_giftable": "Bu noble eşyası gönderilemez",
+ "manager_feature_disabled": "Bu özellik admin tarafından kapatıldı",
"request_failed": "İstek başarısız",
"enter_user": "Kullanıcı ID veya hesap gir"
}
diff --git a/h5/hyapp/manager-center/script.js b/h5/hyapp/manager-center/script.js
index a5c44c1..3162ff3 100644
--- a/h5/hyapp/manager-center/script.js
+++ b/h5/hyapp/manager-center/script.js
@@ -31,9 +31,11 @@
refreshing: "Refreshing...",
no_bd_leaders: "No BD Leaders yet",
add_bd_leader: "Add BD Leader",
+ add_bd_leader_disabled: "Add BD Leader disabled",
adding_bd_leader: "Adding...",
add_bd_leader_success: "BD Leader added",
gift_props: "Gift Props",
+ gift_props_disabled: "Gift Props disabled",
gift_type: "Gift Type",
prop_type_ride: "Ride",
prop_type_noble_vip: "Noble VIP",
@@ -46,11 +48,13 @@
sending: "Sending...",
send_success: "Sent successfully",
ban_user: "Ban User",
+ ban_user_disabled: "Ban User disabled",
ban_reason: "Ban reason",
ban: "Ban",
submitting: "Submitting...",
ban_success: "User banned",
unban_user: "Unban User",
+ unban_user_disabled: "Unban User disabled",
unban_reason: "Unban reason",
unban: "Unban",
unban_success: "User unbanned",
@@ -77,6 +81,7 @@
user_already_bound_bd_leader: "This user is already bound to a BD Leader",
prop_not_giftable: "This prop is not available for manager gifting",
vip_not_giftable: "This noble prop cannot be gifted",
+ manager_feature_disabled: "This feature is disabled by admin",
request_failed: "Request failed",
enter_user: "Enter user ID or account"
},
@@ -99,9 +104,11 @@
refreshing: "جار التحديث...",
no_bd_leaders: "لا يوجد قادة BD بعد",
add_bd_leader: "إضافة قائد BD",
+ add_bd_leader_disabled: "إضافة قائد BD معطلة",
adding_bd_leader: "جار الإضافة...",
add_bd_leader_success: "تمت إضافة قائد BD",
gift_props: "إرسال العناصر",
+ gift_props_disabled: "إرسال العناصر معطل",
gift_type: "نوع الهدية",
prop_type_ride: "مركبة",
prop_type_noble_vip: "VIP نبيل",
@@ -114,11 +121,13 @@
sending: "جار الإرسال...",
send_success: "تم الإرسال بنجاح",
ban_user: "حظر المستخدم",
+ ban_user_disabled: "حظر المستخدم معطل",
ban_reason: "سبب الحظر",
ban: "حظر",
submitting: "جار الإرسال...",
ban_success: "تم حظر المستخدم",
unban_user: "إلغاء حظر المستخدم",
+ unban_user_disabled: "إلغاء حظر المستخدم معطل",
unban_reason: "سبب إلغاء الحظر",
unban: "إلغاء الحظر",
unban_success: "تم إلغاء حظر المستخدم",
@@ -145,6 +154,7 @@
user_already_bound_bd_leader: "هذا المستخدم مرتبط بالفعل بقائد BD",
prop_not_giftable: "هذا العنصر غير متاح كهديّة من المدير",
vip_not_giftable: "لا يمكن إهداء عنصر VIP هذا",
+ manager_feature_disabled: "تم تعطيل هذه الميزة من الإدارة",
request_failed: "فشل الطلب",
enter_user: "أدخل معرّف المستخدم أو الحساب"
},
@@ -167,9 +177,11 @@
refreshing: "Yenileniyor...",
no_bd_leaders: "Henüz BD lideri yok",
add_bd_leader: "BD Lideri Ekle",
+ add_bd_leader_disabled: "BD lideri ekleme kapalı",
adding_bd_leader: "Ekleniyor...",
add_bd_leader_success: "BD lideri eklendi",
gift_props: "Eşya Gönder",
+ gift_props_disabled: "Eşya gönderme kapalı",
gift_type: "Hediye Türü",
prop_type_ride: "Araç",
prop_type_noble_vip: "Noble VIP",
@@ -182,11 +194,13 @@
sending: "Gönderiliyor...",
send_success: "Başarıyla gönderildi",
ban_user: "Kullanıcıyı Yasakla",
+ ban_user_disabled: "Kullanıcı yasaklama kapalı",
ban_reason: "Yasaklama nedeni",
ban: "Yasakla",
submitting: "Gönderiliyor...",
ban_success: "Kullanıcı yasaklandı",
unban_user: "Yasağı Kaldır",
+ unban_user_disabled: "Yasak kaldırma kapalı",
unban_reason: "Yasağı kaldırma nedeni",
unban: "Yasağı kaldır",
unban_success: "Kullanıcının yasağı kaldırıldı",
@@ -213,6 +227,7 @@
user_already_bound_bd_leader: "Bu kullanıcı zaten bir BD liderine bağlı",
prop_not_giftable: "Bu eşya yönetici hediyesi için açık değil",
vip_not_giftable: "Bu noble eşyası gönderilemez",
+ manager_feature_disabled: "Bu özellik admin tarafından kapatıldı",
request_failed: "İstek başarısız",
enter_user: "Kullanıcı ID veya hesap gir"
},
@@ -235,9 +250,11 @@
refreshing: "Menyegarkan...",
no_bd_leaders: "Belum ada BD Leader",
add_bd_leader: "Tambah BD Leader",
+ add_bd_leader_disabled: "Tambah BD Leader dinonaktifkan",
adding_bd_leader: "Menambahkan...",
add_bd_leader_success: "BD Leader ditambahkan",
gift_props: "Kirim Properti",
+ gift_props_disabled: "Kirim properti dinonaktifkan",
gift_type: "Jenis Hadiah",
prop_type_ride: "Kendaraan",
prop_type_noble_vip: "Noble VIP",
@@ -250,11 +267,13 @@
sending: "Mengirim...",
send_success: "Berhasil dikirim",
ban_user: "Blokir Pengguna",
+ ban_user_disabled: "Blokir pengguna dinonaktifkan",
ban_reason: "Alasan blokir",
ban: "Blokir",
submitting: "Mengirim...",
ban_success: "Pengguna diblokir",
unban_user: "Buka Blokir Pengguna",
+ unban_user_disabled: "Buka blokir pengguna dinonaktifkan",
unban_reason: "Alasan buka blokir",
unban: "Buka blokir",
unban_success: "Blokir pengguna dibuka",
@@ -281,6 +300,7 @@
user_already_bound_bd_leader: "Pengguna ini sudah terhubung ke BD Leader",
prop_not_giftable: "Properti ini tidak tersedia untuk hadiah manajer",
vip_not_giftable: "Properti noble ini tidak dapat dikirim",
+ manager_feature_disabled: "Fitur ini dinonaktifkan oleh admin",
request_failed: "Permintaan gagal",
enter_user: "Masukkan ID pengguna atau akun"
}
@@ -289,6 +309,7 @@
const state = {
manager: null,
target: null,
+ features: defaultFeatures(),
propsType: defaultPropsType,
props: [],
selectedPropsId: "",
@@ -461,6 +482,7 @@
renderTarget();
renderProps();
renderBDLeaders();
+ updateActionState();
}
function $(selector) {
@@ -623,6 +645,10 @@
}
function openGiftModal() {
+ if (!featureEnabled("giftProps")) {
+ showToast(message("gift_props_disabled"));
+ return;
+ }
if (!state.target) {
showToast(message("enter_user"));
return;
@@ -632,6 +658,10 @@
}
function openBanModal() {
+ if (!featureEnabled("banUser")) {
+ showToast(message("ban_user_disabled"));
+ return;
+ }
if (!state.target) {
showToast(message("enter_user"));
return;
@@ -642,6 +672,10 @@
}
function openUnbanModal() {
+ if (!featureEnabled("unbanUser")) {
+ showToast(message("unban_user_disabled"));
+ return;
+ }
if (!state.target) {
showToast(message("enter_user"));
return;
@@ -710,6 +744,28 @@
return Boolean(target) && target.canBan !== false && !target.hasRecharge && !canUnbanTarget(target);
}
+ function defaultFeatures() {
+ return {
+ addBdLeader: true,
+ giftProps: true,
+ banUser: true,
+ unbanUser: true
+ };
+ }
+
+ function normalizeFeatures(features) {
+ return {
+ addBdLeader: features?.addBdLeader !== false,
+ giftProps: features?.giftProps !== false,
+ banUser: features?.banUser !== false,
+ unbanUser: features?.unbanUser !== false
+ };
+ }
+
+ function featureEnabled(key) {
+ return state.features?.[key] !== false;
+ }
+
function canUnbanTarget(target) {
const status = String(target?.accountStatus || "").trim().toUpperCase();
return Boolean(target) && (status === "FREEZE" || status === "ARCHIVE" || status === "ARCHIVE_DEVICE");
@@ -930,29 +986,59 @@
const banButton = $("#banButton");
const unbanButton = $("#unbanButton");
if (addBDLeaderButton) {
- addBDLeaderButton.disabled = !state.target || state.addingBDLeader || isTargetBDLeader();
+ const disabledByFeature = !featureEnabled("addBdLeader");
+ addBDLeaderButton.disabled = disabledByFeature || !state.target || state.addingBDLeader || isTargetBDLeader();
+ addBDLeaderButton.classList.toggle("is-feature-disabled", disabledByFeature);
const title = addBDLeaderButton.querySelector(".action-item-title");
- if (title) title.textContent = state.addingBDLeader ? message("adding_bd_leader") : message("add_bd_leader");
+ if (title) {
+ title.textContent = disabledByFeature
+ ? message("add_bd_leader_disabled")
+ : state.addingBDLeader ? message("adding_bd_leader") : message("add_bd_leader");
+ }
+ }
+ if (giftEntryButton) {
+ const disabledByFeature = !featureEnabled("giftProps");
+ giftEntryButton.disabled = disabledByFeature || !state.target;
+ giftEntryButton.classList.toggle("is-feature-disabled", disabledByFeature);
+ const title = giftEntryButton.querySelector(".action-item-title");
+ if (title) title.textContent = disabledByFeature ? message("gift_props_disabled") : message("gift_props");
+ }
+ if (banEntryButton) {
+ const disabledByFeature = !featureEnabled("banUser");
+ banEntryButton.disabled = disabledByFeature || !state.target;
+ banEntryButton.classList.toggle("is-feature-disabled", disabledByFeature);
+ const title = banEntryButton.querySelector(".action-item-title");
+ if (title) title.textContent = disabledByFeature ? message("ban_user_disabled") : message("ban_user");
+ }
+ if (unbanEntryButton) {
+ const disabledByFeature = !featureEnabled("unbanUser");
+ unbanEntryButton.disabled = disabledByFeature || !state.target;
+ unbanEntryButton.classList.toggle("is-feature-disabled", disabledByFeature);
+ const title = unbanEntryButton.querySelector(".action-item-title");
+ if (title) title.textContent = disabledByFeature ? message("unban_user_disabled") : message("unban_user");
}
- if (giftEntryButton) giftEntryButton.disabled = !state.target;
- if (banEntryButton) banEntryButton.disabled = !state.target;
- if (unbanEntryButton) unbanEntryButton.disabled = !state.target;
if (refreshBDLeaderButton) refreshBDLeaderButton.disabled = state.bdLeadersLoading;
- if (sendButton) sendButton.disabled = !state.target || !state.selectedPropsId;
- if (banButton) banButton.disabled = !canBanTarget(state.target);
- if (unbanButton) unbanButton.disabled = !canUnbanTarget(state.target);
+ if (sendButton) sendButton.disabled = !featureEnabled("giftProps") || !state.target || !state.selectedPropsId;
+ if (banButton) banButton.disabled = !featureEnabled("banUser") || !canBanTarget(state.target);
+ if (unbanButton) unbanButton.disabled = !featureEnabled("unbanUser") || !canUnbanTarget(state.target);
}
async function loadProfile() {
const body = await requestGoJSON(endpointProfile());
state.manager = body?.manager || body || {};
+ state.features = normalizeFeatures(body?.features);
renderManager(state.manager);
+ updateActionState();
}
async function loadProps() {
state.props = [];
state.selectedPropsId = "";
renderProps();
+ if (!featureEnabled("giftProps")) {
+ setStatus($("#propsStatus"), message("gift_props_disabled"));
+ return;
+ }
setStatus($("#propsStatus"), message("loading"));
const body = await requestGoJSON(endpointProps(state.propsType));
@@ -1004,6 +1090,10 @@
}
async function addBDLeader() {
+ if (!featureEnabled("addBdLeader")) {
+ showToast(message("add_bd_leader_disabled"));
+ return;
+ }
if (!state.target || state.addingBDLeader) return;
if (isTargetBDLeader()) {
showToast(message("user_already_bd_leader"));
@@ -1030,6 +1120,10 @@
}
async function sendProps() {
+ if (!featureEnabled("giftProps")) {
+ showToast(message("gift_props_disabled"));
+ return;
+ }
if (!state.target || !state.selectedPropsId) return;
const button = $("#sendPropsButton");
@@ -1052,6 +1146,10 @@
}
async function banUser() {
+ if (!featureEnabled("banUser")) {
+ setStatus($("#banStatus"), message("ban_user_disabled"), "error");
+ return;
+ }
if (!canBanTarget(state.target)) return;
const button = $("#banButton");
@@ -1078,6 +1176,10 @@
}
async function unbanUser() {
+ if (!featureEnabled("unbanUser")) {
+ setStatus($("#unbanStatus"), message("unban_user_disabled"), "error");
+ return;
+ }
if (!canUnbanTarget(state.target)) return;
const button = $("#unbanButton");
@@ -1118,6 +1220,7 @@
if (code === "user_already_bound_bd_leader") return message("user_already_bound_bd_leader");
if (code === "prop_not_giftable") return message("prop_not_giftable");
if (code === "vip_not_giftable") return message("vip_not_giftable");
+ if (code === "manager_feature_disabled") return message("manager_feature_disabled");
return error?.message || message("request_failed");
}
@@ -1189,7 +1292,8 @@
}
try {
- await Promise.all([loadProfile(), loadProps(), loadBDLeaders()]);
+ await loadProfile();
+ await Promise.all([loadProps(), loadBDLeaders()]);
} catch (error) {
showToast(friendlyError(error));
} finally {
diff --git a/h5/hyapp/manager-center/style.css b/h5/hyapp/manager-center/style.css
index a5f7351..1425ee2 100644
--- a/h5/hyapp/manager-center/style.css
+++ b/h5/hyapp/manager-center/style.css
@@ -300,6 +300,15 @@ button:disabled {
background: #f4f7f8;
}
+.action-item:disabled {
+ color: #9aa4af;
+ cursor: not-allowed;
+}
+
+.action-item.is-feature-disabled {
+ background: #f7f8fa;
+}
+
.action-item-icon {
display: inline-flex;
align-items: center;