feat(mini): 移除载体页面+tab区全tab固定不被下拉

1. 所有tab页加 disableScroll:true,禁止页面级下拉,ScrollView内部独立滚动,tab区无论选中哪个都固定不被下拉
2. 移除大厅社区tab底部两个按钮(发帖+实体社区载体),发帖已由右上角+发布承担
3. 移除独立社区页底部的载体按钮
4. 移除首页入驻按钮
5. 我的页面:移除我的园区/园区端/创业载体等载体入口,OPC认证独立保留
6. app.config.js 移除载体相关页面注册:
   pages-extra: park-apply/park-transfer/my-park/parks/park-detail
   pages-op: park-companies/park-transfers/park-screens/park-tasks/park-screen-ctl/park-users
This commit is contained in:
Pine
2026-09-01 23:11:18 +08:00
parent 4dd9da6ca7
commit 29902bed56
9 changed files with 22 additions and 114 deletions
+6 -7
View File
@@ -11,24 +11,23 @@ export default {
root: 'pages-extra',
pages: [
'test/index', 'policy/index', 'plan/index', 'survey/index',
'event-detail/index', 'scan/index', 'park-apply/index', 'cert-apply/index',
'park-transfer/index', 'content-detail/index', 'tasks/index', 'task-detail/index',
'scan-login/index', 'my-bookings/index', 'my-tasks/index', 'my-park/index',
'event-detail/index', 'scan/index', 'cert-apply/index',
'content-detail/index', 'tasks/index', 'task-detail/index',
'scan-login/index', 'my-bookings/index', 'my-tasks/index',
'my-cert/index', 'compute/index', 'pay/index', 'pay-qr/index',
'event-edit/index', 'my-events/index', 'hall-talents/index', 'hall-talent-detail/index',
'hall-jobs/index', 'hall-job-detail/index', 'hall-services/index', 'hall-service-detail/index',
'community/index', 'community-post/index', 'community-post-detail/index',
'hall-task-publish/index', 'hall-service-publish/index', 'hall-job-publish/index',
'talent-edit/index', 'parks/index', 'park-detail/index'
'talent-edit/index'
]
},
{
root: 'pages-op',
pages: [
'ops-dashboard/index', 'ops-parks/index', 'ops-content/index', 'ops-tasks/index',
'ops-users/index', 'ops-companies/index', 'park-companies/index', 'park-transfers/index',
'ent-company/index', 'ent-members/index', 'park-screens/index', 'park-tasks/index',
'park-screen-ctl/index', 'park-users/index'
'ops-users/index', 'ops-companies/index',
'ent-company/index', 'ent-members/index'
]
}
],
@@ -60,11 +60,6 @@ export default function Community() {
</View>
</View>
))}
<View style={{ display: 'flex', gap: 18, margin: '10rpx 24rpx 30rpx' }}>
<Button className="hl-btn ghost" onClick={() => Taro.navigateTo({ url: '/pages-extra/community-post/index' })}>发帖</Button>
<Button className="hl-btn ghost" onClick={() => Taro.navigateTo({ url: '/pages-extra/parks/index' })}>实体社区 · 创业载体</Button>
</View>
</View>
);
}
@@ -1 +1 @@
export default { navigationBarTitleText: '活动', navigationStyle: 'custom' };
export default { navigationBarTitleText: '活动', navigationStyle: 'custom', disableScroll: true };
@@ -1 +1 @@
export default { navigationBarTitleText: '资讯中心', navigationStyle: 'custom' };
export default { navigationBarTitleText: '资讯中心', navigationStyle: 'custom', disableScroll: true };
+1 -1
View File
@@ -1 +1 @@
export default { navigationBarTitleText: '大厅', navigationStyle: 'custom' };
export default { navigationBarTitleText: '大厅', navigationStyle: 'custom', disableScroll: true };
-4
View File
@@ -257,10 +257,6 @@ function CommunityPane({ topic, onTopic }) {
<View className="hl-pfoot"><Text> {p.likeCount || 0}</Text><Text>评论 {p.commentCount || 0}</Text></View>
</View>
))}
<View style={{ display: 'flex', gap: 18, margin: '10rpx 24rpx 30rpx' }}>
<Button className="hl-btn ghost" onClick={() => Taro.navigateTo({ url: '/pages-extra/community-post/index' })}>发帖</Button>
<Button className="hl-btn ghost" onClick={() => Taro.navigateTo({ url: '/pages-extra/parks/index' })}>实体社区 · 载体</Button>
</View>
</>
);
}
-1
View File
@@ -30,7 +30,6 @@ export default function Index() {
<View className="mk-cta">
<Button className="mk-cta-btn" onClick={goTab(MK_HERO.ctaPrimary.tab)}>{MK_HERO.ctaPrimary.label}</Button>
<Button className="mk-cta-btn" onClick={goTab(MK_HERO.ctaSecondary.tab)}>{MK_HERO.ctaSecondary.label}</Button>
<Button className="mk-cta-btn" onClick={() => Taro.navigateTo({ url: '/pages-extra/park-apply/index' })}>入驻</Button>
</View>
</View>
+1 -1
View File
@@ -1 +1 @@
export default { navigationBarTitleText: '我的', navigationStyle: 'custom' };
export default { navigationBarTitleText: '我的', navigationStyle: 'custom', disableScroll: true };
+12 -93
View File
@@ -4,7 +4,6 @@ import { useState, useEffect } from 'react';
import { useTabIndex } from '@/utils/tab';
import { isAuthed, getUser, logout, wxLogin, phoneLogin, bindPhone, sendCode, wxPhoneBind, updateProfile, getMe } from '@/utils/auth';
import { getMyBookings, parseIso } from '@/utils/booking';
import { getMyAdmission } from '@/utils/parks';
import { API_BASE } from '@/utils/api';
import { ensureUploadSize } from '@/utils/upload';
import CountdownBox from '@/components/CountdownBox';
@@ -25,7 +24,6 @@ export default function Mine() {
useTabIndex(4);
const [user, setUser] = useState(getUser());
const [bookings, setBookings] = useState([]);
const [admission, setAdmission] = useState([]); // 我的园区入驻记录
const [loaded, setLoaded] = useState(false);
const [busy, setBusy] = useState(false);
const [err, setErr] = useState('');
@@ -57,10 +55,6 @@ export default function Mine() {
const d = await getMyBookings();
setBookings((d && d.list) || []);
} catch { /* 保留上次列表,避免重进闪空 */ }
try {
const a = await getMyAdmission();
setAdmission(Array.isArray(a) ? a : []);
} catch { /* 保留上次 */ }
finally { setLoaded(true); }
};
Taro.useDidShow(() => { refresh(); });
@@ -393,62 +387,18 @@ export default function Mine() {
<Text className="mine-entry-arrow"></Text>
</View>
{/* 我的园区:未入驻 → 申请入驻 + OPC认证;已入驻 → 园区信息 + OPC认证 + 转园 */}
{/* OPC 认证 */}
<View className="mine-section-head">
<Text className="mine-no">PARK</Text>
<Text className="mine-subtitle">我的园区</Text>
<Text className="mine-no">CERT</Text>
<Text className="mine-subtitle">OPC 认证</Text>
</View>
<View className="card mine-entry" onClick={() => Taro.navigateTo({ url: '/pages-extra/cert-apply/index' })}>
<View className="mine-entry-body">
<Text className="mine-entry-title">认证申请</Text>
<Text className="mine-entry-sub">提交或查看 OPC 超级个体认证材料</Text>
</View>
<Text className="mine-entry-arrow"></Text>
</View>
{(() => {
const ad = admission[0] || {};
const st = String(ad.status || ad.audit_status || '').toLowerCase();
const admitted = ['approved', 'verified', 'admitted'].includes(st) || ['已入驻', '通过', 'approved'].includes(ad.status);
if (!admitted) {
return (
<>
<View className="card mine-entry" onClick={() => Taro.navigateTo({ url: '/pages-extra/park-apply/index' })}>
<View className="mine-entry-body">
<Text className="mine-entry-title">申请入驻</Text>
<Text className="mine-entry-sub">暂未入驻园区提交入驻申请</Text>
</View>
<Text className="mine-entry-arrow"></Text>
</View>
<View className="card mine-entry" onClick={() => Taro.navigateTo({ url: '/pages-extra/cert-apply/index' })}>
<View className="mine-entry-body">
<Text className="mine-entry-title">OPC 认证</Text>
<Text className="mine-entry-sub">提交或查看 OPC 超级个体认证材料</Text>
</View>
<Text className="mine-entry-arrow"></Text>
</View>
</>
);
}
const name = ad.tenant_name || ad.park_name || ad.company_name || ad.company || '已入驻园区';
return (
<>
<View className="card mine-entry" onClick={() => Taro.navigateTo({ url: '/pages-extra/my-park/index' })}>
<View className="mine-entry-body">
<Text className="mine-entry-title">{name}</Text>
<Text className="mine-entry-sub">{ad.region ? `区域:${ad.region} · ` : ''}查看入驻状态与园区信息</Text>
</View>
<Text className="mine-entry-arrow"></Text>
</View>
<View className="card mine-entry" onClick={() => Taro.navigateTo({ url: '/pages-extra/cert-apply/index' })}>
<View className="mine-entry-body">
<Text className="mine-entry-title">OPC 认证</Text>
<Text className="mine-entry-sub">提交或查看 OPC 超级个体认证材料</Text>
</View>
<Text className="mine-entry-arrow"></Text>
</View>
<View className="card mine-entry" onClick={() => Taro.navigateTo({ url: '/pages-extra/park-transfer/index' })}>
<View className="mine-entry-body">
<Text className="mine-entry-title">转园申请</Text>
<Text className="mine-entry-sub">申请转入其他创业园区</Text>
</View>
<Text className="mine-entry-arrow"></Text>
</View>
</>
);
})()}
{/* 运营端菜单:账号类型 operator(叠加制,OPC 基础身份之上) */}
{(user.capabilities || []).includes('operator') && (
@@ -480,47 +430,16 @@ export default function Mine() {
</>
)}
{/* 园区端菜单:账号类型 carrier(载体方 / 园区运营) */}
{(user.capabilities || []).includes('carrier') && (
<>
<View className="mine-section-head">
<Text className="mine-no">PARK-OPS</Text>
<Text className="mine-subtitle">园区端</Text>
</View>
{[
{ t: '屏幕绑定', s: '绑定园区大屏设备到本园区', url: '/pages-op/park-screens/index' },
{ t: '任务查询', s: '查询本园区相关任务进度', url: '/pages-op/park-tasks/index' },
{ t: '屏幕控制', s: '大屏内容轮播与远程控制', url: '/pages-op/park-screen-ctl/index' },
{ t: '企业管理', s: '本园区入驻企业查看与编辑', url: '/pages-op/park-companies/index' },
{ t: '用户管理', s: '本园区成员与入驻企业管理', url: '/pages-op/park-users/index' },
{ t: '转园审核', s: '转出/转入两级审核', url: '/pages-op/park-transfers/index' }
].map((m) => (
<View
key={m.t}
className="card mine-entry"
onClick={() => Taro.navigateTo({ url: m.url })}
>
<View className="mine-entry-body">
<Text className="mine-entry-title">{m.t}</Text>
<Text className="mine-entry-sub">{m.s}</Text>
</View>
<Text className="mine-entry-arrow"></Text>
</View>
))}
</>
)}
{/* 通用:活动发布(所有登录账号可发布,提交后审核) */}
{user && (
<>
<View className="mine-section-head">
<Text className="mine-no">EVENT</Text>
<Text className="mine-subtitle">活动与载体</Text>
<Text className="mine-subtitle">活动</Text>
</View>
{[
{ t: '发布活动', s: '发布新活动,提交后进入审核', url: '/pages-extra/event-edit/index' },
{ t: '我的活动', s: '我的活动与审核状态', url: '/pages-extra/my-events/index' },
{ t: '创业载体', s: '全省园区载体列表与园区详情', url: '/pages-extra/parks/index' }
{ t: '我的活动', s: '我的活动与审核状态', url: '/pages-extra/my-events/index' }
].map((m) => (
<View key={m.t} className="card mine-entry" onClick={() => Taro.navigateTo({ url: m.url })}>
<View className="mine-entry-body">