添加审核不展示二维码的功能

This commit is contained in:
张成
2026-02-13 10:29:18 +08:00
parent b6801cdde2
commit 3571740280
2 changed files with 23 additions and 12 deletions

View File

@@ -67,6 +67,8 @@ const ListPageContent: React.FC<ListPageContentProps> = ({
} = store;
const supportedCitiesList = useDictionaryStore((s) => s.getDictionaryValue('supported_cities', ['上海市'])) || [];
// 首页是否展示二维码,由 getDictionaryManyKey 的 show_home_qrcode 控制,默认 true 保持原样
const showHomeQrcode = useDictionaryStore((s) => s.getDictionaryValue('show_home_qrcode', true));
const {
isShowFilterPopup,
@@ -227,18 +229,16 @@ const ListPageContent: React.FC<ListPageContentProps> = ({
useEffect(() => {
// 分批异步执行初始化操作,避免阻塞首屏渲染
// 1. 立即执行:获取城市、二维码和行政区列表(轻量操作)
getCities();
getCityQrCode();
getDistricts(); // 新增:获取行政区列表
// 只有当页面激活时才加载位置和列表数据
if (showHomeQrcode) getCityQrCode();
getDistricts();
if (isActive) {
getLocation().catch((error) => {
console.error('获取位置信息失败:', error);
});
}
}, [isActive]);
}, [isActive, showHomeQrcode]);
// 记录上一次的城市,用于检测城市变化
const prevAreaRef = useRef<[string, string] | null>(null);
@@ -537,7 +537,13 @@ const ListPageContent: React.FC<ListPageContentProps> = ({
return (
<>
{shouldShowNoGames ? (
renderCityQrcode()
showHomeQrcode ? (
renderCityQrcode()
) : (
<View className={styles.cqContainer}>
<Text></Text>
</View>
)
) : (
<View ref={scrollContextRef}>
<View className={styles.listPage} style={{ paddingTop: totalHeight }}>

View File

@@ -35,17 +35,22 @@ export const useDictionaryStore = create<DictionaryState>()((set, get) => ({
set({ isLoading: true, error: null })
try {
const keys = 'publishing_requirements,court_type,court_surface,supplementary_information,game_play,fabu_tip,supported_cities,bannerListImage,bannerDetailImage,bannerListIndex';
const keys = 'publishing_requirements,court_type,court_surface,supplementary_information,game_play,fabu_tip,supported_cities,show_home_qrcode,bannerListImage,bannerDetailImage,bannerListIndex';
const response = await commonApi.getDictionaryManyKey(keys)
if (response.code === 0 && response.data) {
const dictionaryData = {};
const dictionaryData: DictionaryData = {};
keys.split(',').forEach(key => {
const list = response.data[key];
const raw = response.data[key];
// 单值配置首页是否展示二维码1/0 或 true/false
if (key === 'show_home_qrcode') {
dictionaryData[key] = raw === '1' || raw === 1 || raw === true;
return;
}
// supported_cities 格式如 "上海市||北京市",用 || 分割
const listData = key === 'supported_cities'
? (list ? String(list).split('||').map((s) => s.trim()).filter(Boolean) : [])
: (list ? list.split('|') : []);
? (raw ? String(raw).split('||').map((s) => s.trim()).filter(Boolean) : [])
: (raw ? String(raw).split('|') : []);
dictionaryData[key] = listData;
})
set({