Skip to content

๐Ÿ”„ Barter Zone โ€” ไปฅ็‰ฉๆข็‰ฉๅนณๅฐ โ€‹

CNB

ๅŸบไบŽ OpenClaw Agent ็š„ๆ™บ่ƒฝไปฅ็‰ฉๆข็‰ฉ็คพๅŒบใ€‚ๅ‘ๅธƒ้—ฒ็ฝฎ็‰ฉๅ“๏ผŒAI ่‡ชๅŠจๅˆ†ๆž็‰นๅพใ€ๅŒน้…ไบคๆข้œ€ๆฑ‚ใ€ๆ’ฎๅˆไบคๆ˜“ใ€‚

๐Ÿ“ ๆžถๆž„ๆฆ‚่งˆ โ€‹

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                        EdgeOne Pages                            โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”    โ”‚
โ”‚  โ”‚  client/ (็”จๆˆท็ซฏ H5)  โ”‚  โ”‚  admin/ (็ฎก็†ๅŽๅฐ SPA)        โ”‚    โ”‚
โ”‚  โ”‚  React 18 + Vite     โ”‚  โ”‚  React 18 + Vite             โ”‚    โ”‚
โ”‚  โ”‚  Ant Design Mobile   โ”‚  โ”‚  Ant Design Pro              โ”‚    โ”‚
โ”‚  โ”‚  base: /             โ”‚  โ”‚  base: /admin/               โ”‚    โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜    โ”‚
โ”‚             โ”‚                             โ”‚                     โ”‚
โ”‚             โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜                     โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                         โ”‚  /api/*
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                  CloudBase ไบ‘ๅ‡ฝๆ•ฐ                                โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”‚
โ”‚  โ”‚  server/functions/                                        โ”‚  โ”‚
โ”‚  โ”‚  โ”œโ”€โ”€ items/    ็‰ฉๅ“ CRUD                                   โ”‚  โ”‚
โ”‚  โ”‚  โ”œโ”€โ”€ swaps/    ไบคๆข็ฎก็†                                    โ”‚  โ”‚
โ”‚  โ”‚  โ”œโ”€โ”€ auth/     ๅพฎไฟก็™ปๅฝ•                                    โ”‚  โ”‚
โ”‚  โ”‚  โ”œโ”€โ”€ users/    ็”จๆˆท็ฎก็†                                    โ”‚  โ”‚
โ”‚  โ”‚  โ”œโ”€โ”€ reviews/  ่ฏ„ไปท็ณป็ปŸ                                    โ”‚  โ”‚
โ”‚  โ”‚  โ””โ”€โ”€ agent/    AI Agent (ๅ›พๅƒๅˆ†ๆž/ๆ™บ่ƒฝๅŒน้…)                 โ”‚  โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ”‚
โ”‚             โ”‚          CloudBase NoSQL                          โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚
โ”‚  โ”‚  items โ”‚ swaps โ”‚ users โ”‚ reviews โ”‚ matches โ”‚ notificationsโ”‚ โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                         โ”‚
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚             OpenClaw Agent API                                  โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”‚
โ”‚  โ”‚  ๅ›พๅƒ่ฏ†ๅˆซ โ”‚ ่ฏญไน‰ๅŒน้… โ”‚ ๅคš่ทณไบคๆข้“พ โ”‚ ๆ™บ่ƒฝไผฐๅ€ผ โ”‚ ๅฎ‰ๅ…จ้ฃŽๆŽง     โ”‚  โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

๐Ÿ›  ๆŠ€ๆœฏๆ ˆ โ€‹

ๅฑ‚็บงๆŠ€ๆœฏ
็”จๆˆท็ซฏReact 18 + TypeScript + Vite + Ant Design Mobile 5 + Zustand + TanStack Query
็ฎก็†ๅŽๅฐReact 18 + TypeScript + Vite + Ant Design 5 + Pro Components + Recharts
ๅŽ็ซฏCloudBase ไบ‘ๅ‡ฝๆ•ฐ (Node.js 18) + @cloudbase/node-sdk
ๆ•ฐๆฎๅบ“CloudBase NoSQL
AIOpenClaw Agent API (ๅ›พๅƒ่ฏ†ๅˆซ / ่ฏญไน‰ๅŒน้… / ๅคš่ทณๆŽจ่)
้ƒจ็ฝฒEdgeOne Pages (ๅ‰็ซฏ) + CloudBase (ๅŽ็ซฏ)

๐Ÿš€ ๅฟซ้€Ÿๅผ€ๅง‹ โ€‹

็Žฏๅขƒ่ฆๆฑ‚ โ€‹

  • Node.js >= 18
  • npm >= 9

ๅฎ‰่ฃ…ไพ่ต– โ€‹

bash
# ็”จๆˆท็ซฏ
cd client && npm install

# ็ฎก็†ๅŽๅฐ
cd admin && npm install

# ๅŽ็ซฏ๏ผˆไบ‘ๅ‡ฝๆ•ฐ๏ผ‰
cd server && npm install

ๆœฌๅœฐๅผ€ๅ‘ โ€‹

bash
# ็”จๆˆท็ซฏ (็ซฏๅฃ 3000)
cd client && npm run dev

# ็ฎก็†ๅŽๅฐ (็ซฏๅฃ 3001)
cd admin && npm run dev

ๅŽ็ซฏไบ‘ๅ‡ฝๆ•ฐ้œ€่ฆ้ƒจ็ฝฒๅˆฐ CloudBase ็Žฏๅขƒ๏ผŒๆœฌๅœฐๅผ€ๅ‘ๆ—ถ client/admin ็š„ API ๅฑ‚ไผš่‡ชๅŠจ fallback ๅˆฐ mock ๆ•ฐๆฎใ€‚

ๆž„ๅปบ โ€‹

bash
# ๅˆ†ๅˆซๆž„ๅปบไธ‰ไธชๅญ้กน็›ฎ
cd client && npm run build
cd admin && npm run build
cd server && npm run lint   # server ๆ—  build๏ผŒไป… lint

๐Ÿ“ ้กน็›ฎ็ป“ๆž„ โ€‹

barter-zone/
โ”œโ”€โ”€ client/                 # ็”จๆˆท็ซฏ H5 ๅบ”็”จ
โ”‚   โ”œโ”€โ”€ src/
โ”‚   โ”‚   โ”œโ”€โ”€ components/     # ้€š็”จ็ป„ไปถ
โ”‚   โ”‚   โ”œโ”€โ”€ pages/          # ้กต้ข็ป„ไปถ
โ”‚   โ”‚   โ”œโ”€โ”€ services/       # API ๅฑ‚ + Mock ๆ•ฐๆฎ
โ”‚   โ”‚   โ”œโ”€โ”€ hooks/          # ่‡ชๅฎšไน‰ Hooks
โ”‚   โ”‚   โ”œโ”€โ”€ store/          # Zustand ็Šถๆ€็ฎก็†
โ”‚   โ”‚   โ”œโ”€โ”€ types/          # TypeScript ็ฑปๅž‹ๅฎšไน‰
โ”‚   โ”‚   โ””โ”€โ”€ utils/          # ๅทฅๅ…ทๅ‡ฝๆ•ฐ
โ”‚   โ”œโ”€โ”€ public/
โ”‚   โ”‚   โ””โ”€โ”€ _routes.json    # SPA fallback ้…็ฝฎ (EdgeOne Pages)
โ”‚   โ””โ”€โ”€ vite.config.ts
โ”‚
โ”œโ”€โ”€ admin/                  # ็ฎก็†ๅŽๅฐ SPA
โ”‚   โ”œโ”€โ”€ src/
โ”‚   โ”‚   โ”œโ”€โ”€ pages/          # ็œ‹ๆฟ/ๅฎกๆ ธ/็”จๆˆท/ไปฒ่ฃ/่ฎพ็ฝฎ
โ”‚   โ”‚   โ”œโ”€โ”€ services/       # Admin API ๅฑ‚ + Mock ๆ•ฐๆฎ
โ”‚   โ”‚   โ””โ”€โ”€ types/          # TypeScript ็ฑปๅž‹ๅฎšไน‰
โ”‚   โ”œโ”€โ”€ public/
โ”‚   โ”‚   โ””โ”€โ”€ _routes.json    # SPA fallback ้…็ฝฎ
โ”‚   โ””โ”€โ”€ vite.config.ts      # base: /admin/
โ”‚
โ”œโ”€โ”€ server/                 # CloudBase ไบ‘ๅ‡ฝๆ•ฐ
โ”‚   โ”œโ”€โ”€ functions/
โ”‚   โ”‚   โ”œโ”€โ”€ _shared/router.js   # ็ปŸไธ€่ทฏ็”ฑไธญ้—ดไปถ
โ”‚   โ”‚   โ”œโ”€โ”€ items/               # ็‰ฉๅ“ CRUD
โ”‚   โ”‚   โ”œโ”€โ”€ swaps/               # ไบคๆข็ฎก็†
โ”‚   โ”‚   โ”œโ”€โ”€ auth/                # ๅพฎไฟก็™ปๅฝ•
โ”‚   โ”‚   โ”œโ”€โ”€ users/               # ็”จๆˆท็ฎก็†
โ”‚   โ”‚   โ”œโ”€โ”€ reviews/             # ่ฏ„ไปท็ณป็ปŸ
โ”‚   โ”‚   โ””โ”€โ”€ agent/               # AI Agent ่ฝฌๅ‘
โ”‚   โ”œโ”€โ”€ cloudbaserc.json         # CloudBase ้ƒจ็ฝฒ้…็ฝฎ
โ”‚   โ””โ”€โ”€ package.json
โ”‚
โ”œโ”€โ”€ cloudbaserc.json        # ๆ น็บง CloudBase ้…็ฝฎ๏ผˆๅˆๅนถ server/ ้…็ฝฎ๏ผ‰
โ”œโ”€โ”€ .cnb.yml                # CNB ๆตๆฐด็บฟ้…็ฝฎ
โ”œโ”€โ”€ PRD.md                  # ไบงๅ“้œ€ๆฑ‚ๆ–‡ๆกฃ
โ””โ”€โ”€ docs/                   # ่ฎพ่ฎกๆ–‡ๆกฃ
    โ”œโ”€โ”€ agent-protocol.md   # Agent ไบคไบ’ๅ่ฎฎ
    โ””โ”€โ”€ ui-requirements.md  # UI ่ฎพ่ฎก้œ€ๆฑ‚

๐ŸŒ ้ƒจ็ฝฒ โ€‹

้กน็›ฎๅนณๅฐ่ทฏๅพ„
็”จๆˆท็ซฏEdgeOne Pages/
็ฎก็†ๅŽๅฐEdgeOne Pages/admin/
ไบ‘ๅ‡ฝๆ•ฐCloudBase/api/*

่ฏฆ่ง PRD.md ไบ†่งฃๅฎŒๆ•ดไบงๅ“่ง„ๅˆ’ใ€‚

๐Ÿ“„ License โ€‹

MIT

็”ฑไบ‘้”ฆ้ธฟ็ปดๆŠค