diff --git a/miniprogram/src/pages/mine/index.jsx b/miniprogram/src/pages/mine/index.jsx
index 752ade3..e56032b 100644
--- a/miniprogram/src/pages/mine/index.jsx
+++ b/miniprogram/src/pages/mine/index.jsx
@@ -4,6 +4,7 @@ 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, checkIn, parseIso, BK_STATUS_OPTIONS, BK_TOPIC_OPTIONS, BK_SOURCE_OPTIONS } from '@/utils/booking';
+import { getMyAdmission } from '@/utils/parks';
import Skeleton from '@/components/skeleton';
import CountdownBox from '@/components/CountdownBox';
import './index.scss';
@@ -41,20 +42,12 @@ const fmtTime = (iso) => {
return `${d.getFullYear()}-${p(d.getMonth() + 1)}-${p(d.getDate())} ${p(d.getHours())}:${p(d.getMinutes())} 周${week}`;
};
-/** 我的服务宫格项:label → 子页 */
-const SVC = [
- ['报名', '/pages/my-bookings/index'],
- ['任务', '/pages/my-tasks/index'],
- ['园区', '/pages/my-park/index'],
- ['认证', '/pages/my-cert/index'],
-];
-const maskPhone = (p) => (/^1\d{10}$/.test(p || '') ? p.replace(/(\d{3})\d{4}(\d{4})/, '$1****$2') : (p || ''));
-
export default function Mine() {
useTabIndex(4);
const [user, setUser] = useState(getUser());
const [bookings, setBookings] = useState([]);
const [phase, setPhase] = useState('all'); // 报名状态筛选
+ const [admission, setAdmission] = useState([]); // 我的园区入驻记录
const [loaded, setLoaded] = useState(false);
const [busy, setBusy] = useState(false);
const [err, setErr] = useState('');
@@ -83,6 +76,10 @@ 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(); });
@@ -397,44 +394,6 @@ export default function Mine() {
)}
- {/* 任务广场入口:浏览待接单任务 */}
- Taro.navigateTo({ url: '/pages/tasks/index' })}>
- 任
-
- 任务广场
- 浏览平台待接单任务,点击抢单 / 报名
-
- ›
-
-
- {/* 扫码接单入口:扫描大屏任务二维码领取任务 */}
- Taro.navigateTo({ url: '/pages/scan/index' })}>
- QR
-
- 扫码接单
- 扫描大屏任务码领取任务,做任务赚预算
-
- ›
-
-
- {/* 申请/认证入口:入驻 / OPC认证 / 转园 */}
-
- APPLY
- 申请与认证
-
- Taro.navigateTo({ url: '/pages/park-apply/index' })}>
- 园区入驻申请填写入园申请表,入驻创业园
- ›
-
- Taro.navigateTo({ url: '/pages/cert-apply/index' })}>
- OPC 认证提交认证资料,认证 OPC 超级个体
- ›
-
- Taro.navigateTo({ url: '/pages/park-transfer/index' })}>
- 转园申请园区 OPC 申请转入其它园区
- ›
-
-
{/* 我的报名 */}
BOOK
@@ -484,6 +443,50 @@ export default function Mine() {
);
})()}
+
+ {/* 我的接单:扫码接单;任务广场移到 Web / 桌面端 */}
+
+ ACCEPT
+ 我的接单
+
+
+
+ 任务广场请到 Web 端或桌面端查看
+
+
+ {/* 我的园区:未入驻 → 申请入驻 + OPC认证;已入驻 → 园区信息 + OPC认证 + 转园 */}
+
+ PARK
+ 我的园区
+
+ {(() => {
+ 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 (
+
+ 暂未入驻园区,可申请入驻并完成 OPC 认证。
+
+
+
+
+
+ );
+ }
+ const name = ad.tenant_name || ad.park_name || ad.company_name || ad.company || '已入驻园区';
+ return (
+
+ {name}
+ {ad.region ? 区域:{ad.region} : null}
+
+
+
+
+
+ );
+ })()}
+
{err && {err}}
云南省首个由政府主办的免费大学生创业服务平台
diff --git a/miniprogram/src/pages/mine/index.scss b/miniprogram/src/pages/mine/index.scss
index a785218..ec21a8f 100644
--- a/miniprogram/src/pages/mine/index.scss
+++ b/miniprogram/src/pages/mine/index.scss
@@ -393,3 +393,13 @@
.bind-key { font-size:26rpx; color:#6a6a73; }
.bind-val { font-size:26rpx; color:#98a0ab; }
.bind-val.on { color:#00a06e; font-weight:600; }
+
+/* ---- 四部分:我的接单 / 我的园区 ---- */
+.mk-act { padding: 24rpx; }
+.mk-actions { padding: 22rpx 24rpx; }
+.mk-park { padding: 22rpx 24rpx; }
+.mk-park-name { font-size: 30rpx; font-weight: 700; color: #0d2f4e; display: block; margin-bottom: 6rpx; }
+.mk-btn-sm { font-size: 24rpx; padding: 0 26rpx; line-height: 2.2; margin: 0; }
+.mk-btnrow { display: flex; gap: 16rpx; margin-top: 18rpx; flex-wrap: wrap; }
+.mk-hint { margin-top: 12rpx; font-size: 24rpx; color: #8a8a93; display: block; line-height: 1.5; }
+.mk-hint:first-child { margin-top: 0; }