• bbs1

    bbs1 客户端

    编译源码地址:
    https://github.com/bbs1git/bbs1org_app-client

    一套 Vue 3 + uni-app 代码,编译出网页H5 / 微信小程序 / 安卓 / iOS 四个端。
    后端是站点的 app_api 插件。

    后端插件地址:
    https://bbs1.org/topic/2017


    客户端生成流程:
    第一步:在自己的bbs1论坛上,安装插件 https://bbs1.org/topic/2017
    第二步:告诉ai以下提示语:

    我的bbs1站点根地址是:https://xxx  客户端源码是:https://github.com/bbs1git/bbs1org_app-client
    请给我编译生成 网页H5 / 微信小程序 / 安卓 / iOS 四个客户端

    编译生成得到产物:
    app-client/dist/build/h5
    H5版本,直接浏览器访问,或者部署到线上访问
    app-client/dist/build/mp-weixin
    微信小程序,请用微信开发者工具导入
    app-client/dist/build/app
    安卓 + iOS,请用 HBuilderX 导入后云打包


    技术架构:
    Vue 3 + uni-app + 纯 JSON 接口 + Bearer 令牌,
    和网页端共用同一个数据库、同一套权限判定。
    四个客户端,修改一套源码,即可升级功能,无需各自维护。

    npm install
    npm run dev:h5           # 浏览器里调试,改完即时刷新
    npm run dev:mp-weixin    # 产物在 dist/dev/mp-weixin,用微信开发者工具导入
    npm run build:h5         # 产物在 dist/build/h5
    npm run build:mp-weixin
    npm run build:app        # 产物用 HBuilderX 导入后云打包
    npm run type-check       # vue-tsc --noEmit

    装依赖时注意:@dcloudio/* 全部锁在 3.0.0-5020420260813003。
    npm 上的 latest 标签指向的是 Vue 2 那条线,混进来会和 vue@3 打架。

    跑起来之前,服务端要先满足几件事

    事项在哪
    启用 app_api 插件后台插件管理。改过插件代码或表结构要「停用再启用」,光保存不会重跑安装
    关掉 CORS 限制或加白名单插件配置 cors_origins。H5 端跨域时必填;App 和小程序不受同源策略约束
    打开上传插件配置 upload_enabled,并启用 attachment_upload 插件
    微信登录(可选)插件配置里填 wechat_appid / wechat_secret;小程序还要在公众平台把接口域名配成 request 合法域名

    客户端默认连 https://bbs1.org。改地址有两个入口:

    • 运行时:我的 → 设置 → 站点地址(自建站、内网调试用这个,改完会清缓存并重启到首页)
    • 编译期:src/core/config.ts 里的 DEFAULT_BASE_URL

    目录

    src/
      core/           纯逻辑,不碰界面
        config.ts       站点地址、接口前缀、客户端版本号
        http.ts         请求层:信封归一、401 续期重试、会话失效广播
        tokens.ts       令牌与会话(单飞续期在这里)
        errors.ts       错误码与 ApiError
        storage.ts      本地存储的薄封装
        types.ts        与服务端序列化结果一一对应的类型
        icon.ts         图标:把描边 SVG 拼成 data URI
        theme.ts        主题:跟随系统 / 浅色 / 深色
        palette.ts      调色板的 JS 副本(图标颜色要由 JS 给,CSS 变量进不去 SVG)
        rich.ts         正文 HTML 的客户端加工(补绝对地址、小程序内联样式)
        color.ts        高亮色解析与对比度判断、字母头像底色
        highlight.ts    搜索关键词命中切分(不用正则,用户输入当字面量)
        format.ts       时间与数字的展示
        navigate.ts     路由表与跳转
        platform.ts     平台差异收口
        ui.ts           轻提示、确认框、加载态
        device.ts       上报给服务端的设备信息
      api/            接口函数,一文件一组
      stores/         Pinia:会话、站点、主题流、消息、界面外壳
      components/     NavBar / BottomBar / TopicCard / ForumPicker / Composer / AppIcon …
      composables/    usePageChrome:头部高度、呼吸间距、滚动状态
      pages/          9 个页面
      styles/         global.scss(全局 CSS 输出)
      uni.scss        变量与 mixin,会被注入到每个 <style lang="scss">

    最后由 bbs1 编辑于 2026-10-14 22:24
    淘帖专辑必装插件
    主楼
  • Maser

    厉害了我的老大!

    #1
  • 9

    666

    #2
  • ldsdf

    感觉这个工程量很大啊

    #3
  • bbs1

    没客户端需求就不用折腾

    #4
  • flinthub

    老大好勤奋啊💪

    #5
  • nnn

    🌹

    #6
  • Daoye

    很厉害 支持

    #7

发表回复

登录后回复