From a88b81d20b9a87ad7bfb03f6fd0f078dddfe94ce Mon Sep 17 00:00:00 2001 From: Pine Date: Mon, 31 Aug 2026 22:43:10 +0800 Subject: [PATCH] =?UTF-8?q?feat(mini):=20=E5=A4=A7=E5=8E=85=E4=B8=8E?= =?UTF-8?q?=E7=A4=BE=E5=8C=BA=E9=A1=B5=E9=9D=A2=EF=BC=88=E5=90=8C=E6=AD=A5?= =?UTF-8?q?=E5=A4=A7=E5=8E=85=E5=8D=87=E7=BA=A7=E4=BD=93=E7=B3=BB=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - utils/hall.js(/hall/* /community/* 请求封装)+ styles/hall.scss 共享样式 - 大厅 Hub(四宫格统计入口)、人才大厅列表/详情、岗位大厅列表/详情+投递、 服务大厅列表/详情+咨询 - 社区页(话题筛选帖子流+点赞+发帖)与发帖页;实体社区复用载体列表(parks) - task-detail/tasks 扩展 register 报名模式(报名走 /hall/tasks/{id}/register) - 首页新增「大厅」「社区」入口卡;app.config.js 注册 9 个新页面 --- miniprogram/src/app.config.js | 9 +++ .../src/pages/community-post/index.jsx | 43 +++++++++++ .../src/pages/community-post/index.scss | 1 + miniprogram/src/pages/community/index.jsx | 70 +++++++++++++++++ miniprogram/src/pages/community/index.scss | 1 + .../src/pages/hall-job-detail/index.jsx | 64 +++++++++++++++ .../src/pages/hall-job-detail/index.scss | 1 + miniprogram/src/pages/hall-jobs/index.jsx | 47 +++++++++++ miniprogram/src/pages/hall-jobs/index.scss | 1 + .../src/pages/hall-service-detail/index.jsx | 72 +++++++++++++++++ .../src/pages/hall-service-detail/index.scss | 1 + miniprogram/src/pages/hall-services/index.jsx | 37 +++++++++ .../src/pages/hall-services/index.scss | 1 + .../src/pages/hall-talent-detail/index.jsx | 54 +++++++++++++ .../src/pages/hall-talent-detail/index.scss | 1 + miniprogram/src/pages/hall-talents/index.jsx | 48 ++++++++++++ miniprogram/src/pages/hall-talents/index.scss | 1 + miniprogram/src/pages/hall/index.jsx | 35 +++++++++ miniprogram/src/pages/hall/index.scss | 1 + miniprogram/src/pages/task-detail/index.jsx | 19 +++-- miniprogram/src/pages/tasks/index.jsx | 2 +- miniprogram/src/styles/hall.scss | 77 +++++++++++++++++++ miniprogram/src/utils/hall.js | 47 +++++++++++ 23 files changed, 626 insertions(+), 7 deletions(-) create mode 100644 miniprogram/src/pages/community-post/index.jsx create mode 100644 miniprogram/src/pages/community-post/index.scss create mode 100644 miniprogram/src/pages/community/index.jsx create mode 100644 miniprogram/src/pages/community/index.scss create mode 100644 miniprogram/src/pages/hall-job-detail/index.jsx create mode 100644 miniprogram/src/pages/hall-job-detail/index.scss create mode 100644 miniprogram/src/pages/hall-jobs/index.jsx create mode 100644 miniprogram/src/pages/hall-jobs/index.scss create mode 100644 miniprogram/src/pages/hall-service-detail/index.jsx create mode 100644 miniprogram/src/pages/hall-service-detail/index.scss create mode 100644 miniprogram/src/pages/hall-services/index.jsx create mode 100644 miniprogram/src/pages/hall-services/index.scss create mode 100644 miniprogram/src/pages/hall-talent-detail/index.jsx create mode 100644 miniprogram/src/pages/hall-talent-detail/index.scss create mode 100644 miniprogram/src/pages/hall-talents/index.jsx create mode 100644 miniprogram/src/pages/hall-talents/index.scss create mode 100644 miniprogram/src/pages/hall/index.jsx create mode 100644 miniprogram/src/pages/hall/index.scss create mode 100644 miniprogram/src/styles/hall.scss create mode 100644 miniprogram/src/utils/hall.js diff --git a/miniprogram/src/app.config.js b/miniprogram/src/app.config.js index b0791e6..56f9478 100644 --- a/miniprogram/src/app.config.js +++ b/miniprogram/src/app.config.js @@ -38,6 +38,15 @@ export default { 'pages/pay-qr/index', 'pages/parks/index', 'pages/park-detail/index', + 'pages/hall/index', + 'pages/hall-talents/index', + 'pages/hall-talent-detail/index', + 'pages/hall-jobs/index', + 'pages/hall-job-detail/index', + 'pages/hall-services/index', + 'pages/hall-service-detail/index', + 'pages/community/index', + 'pages/community-post/index', 'pages/park-screens/index', 'pages/park-tasks/index', 'pages/park-screen-ctl/index', diff --git a/miniprogram/src/pages/community-post/index.jsx b/miniprogram/src/pages/community-post/index.jsx new file mode 100644 index 0000000..f941556 --- /dev/null +++ b/miniprogram/src/pages/community-post/index.jsx @@ -0,0 +1,43 @@ +import { View, Text, Input, Textarea, Button } from '@tarojs/components'; +import Taro from '@tarojs/taro'; +import { useState } from 'react'; +import { communityCreatePost } from '@/utils/hall'; +import { isAuthed } from '@/utils/auth'; +import { PageHeader } from '@/components/TopInset'; +import '@/styles/hall.scss'; + +const TOPICS = ['交流', '求助', '资源', '经验', '公告']; + +export default function CommunityPost() { + const [f, setF] = useState({ topic: '交流', title: '', content: '' }); + const [msg, setMsg] = useState(''); + const [busy, setBusy] = useState(false); + const submit = async () => { + if (!isAuthed()) { Taro.showToast({ title: '请先登录', icon: 'none' }); return; } + setBusy(true); setMsg(''); + try { + await communityCreatePost(f); + Taro.showToast({ title: '发布成功', icon: 'success' }); + setTimeout(() => Taro.navigateBack(), 800); + } catch (e) { setMsg((e && e.message) || '发布失败'); } + finally { setBusy(false); } + }; + return ( + + + + + {TOPICS.map((t) => ( + setF((s) => ({ ...s, topic: t }))}>{t} + ))} + + setF((s) => ({ ...s, title: e.detail.value }))} /> +