﻿========================================================
  宇珩智能 · 手机接入说明
  （电脑端怎么把系统开放给手机，手机怎么连进来）
========================================================


【一句话】
  手机连不进来，永远只缺两样东西：
    一条走得通的"路"（网络），一把能开门的"钥匙"（账号）。
  把这两样对上，剩下的都是点几下的事。

  反过来也一样：手机打不开，一定卡在这两者之一。
  先分清是"路不通"还是"钥匙不对"，能省一半排查时间。


【先建立一个前提，不然后面全是误会】
  这套系统的数据，全部存在【你双击启动的那台电脑】里，
  没有云端、没有中心服务器。

  所以"让外部手机连进来"，本质是"让别人能访问你那台电脑"。
  也因此有两件事做不到：

    · 两台电脑之间互相看不到对方的数据
      （A 项目部一台、B 项目部一台，各存各的，互不汇总）
    · 电脑关机 / 黑窗口关掉，所有手机立刻断开

  这不是缺点，是刻意设计的：工地的网不稳定，
  数据放本地最不容易丢。要汇总多项目，见第十节。


========================================================
  一、先对号：你的手机属于哪一种
========================================================

  场景                                走哪条路      对方要装什么
  --------------------------------------------------------------
  A  自己人，在工地，同一个 WiFi      ① 同一 WiFi   什么都不用装
  B  自己人，在外地，用自己的流量     ③ Tailscale   装 Tailscale
  C  工地没 WiFi，只有手机信号        ② 手机热点    什么都不用装
  D  甲方 / 监理 / 领导，偶尔看一次   ② 或 ③        看情况
  E  要长期对外、多项目共用           ④ 云服务器    需另行部署

  绝大多数情况是 A。A 走不通，九成是防火墙（见第九节）。


========================================================
  二、路① 同一个 WiFi（默认，什么都不用装）
========================================================

  这是最常用、最快的一条，现场 90% 的情况用它。

  1) 手机连上电脑所在的那个 WiFi
     （手机用流量不行，必须同一个 WiFi）

  2) 电脑上双击「① 检查并启动.cmd」，等它显示"好了，可以用了"

  3) 电脑窗口右上角点「手机接入」，屏幕出现二维码

  4) 手机打开相机或微信「扫一扫」，扫【左边 ① 直接打开网页版】
     → 弹出网址 → 点开 → 用 admin / yh123456 登录

  就完了。手机不需要装任何 App。

  ── 手机打不开？按这个顺序看 ──

   · 手机是不是连了流量没连 WiFi（看手机顶部图标）
   · 电脑上的黑窗口还在不在（关掉就等于关机）
   · 电脑的 Windows 防火墙有没有放行（第九节，最常见）
   · 路由器开了"AP 隔离 / 终端隔离"——公共 WiFi、酒店 WiFi
     常见，同一个 WiFi 下设备也互相看不见。换路由器，
     或直接走 路③
   · 电脑的网络被识别成"公用网络"，Windows 会更严格，
     同样靠第九节放行解决


========================================================
  三、路② 电脑连手机热点（工地没 WiFi 时最实用）
========================================================

  工地上经常没有 WiFi，但手机有信号。反过来用就行：
  让【电脑】去连【手机】的热点。

  1) 手机打开"个人热点"
     安卓：设置 → 网络/连接 → 个人热点
     苹果：设置 → 个人热点

  2) 电脑右下角 WiFi 图标 → 选你这个热点 → 输密码连上
     注意：电脑连了热点后，就离开了原来的局域网，
     同一网络里别的电脑这时访问不到它。用完记得切回来。

  3) 启动系统，黑窗口里会显示当前地址，一般是
       192.168.43.x    （安卓热点）
       172.20.10.x     （苹果热点）

  4) 手机上打开浏览器，输入：
       http://那个地址:8080/m

  说明：个别机型（尤其苹果）在热点下不允许设备之间互访，
  遇到这种情况别纠缠，直接用 路③，更稳。


========================================================
  四、路③ Tailscale（人在外地，用自己的流量）
========================================================

  原理：给电脑和手机拉一条专用加密隧道，
  手机拿到一个 100 开头的虚拟地址，访问它就像在同一个 WiFi 里。

  三步（每台设备只做一次）：

  1) 电脑装：https://tailscale.com/download/windows
     装完用邮箱登录，记下这个账号

  2) 手机装：应用商店搜 Tailscale
     用【同一个账号】登录，点开关变成 Connected

  3) 重启本系统（关掉黑窗口，重新双击「① 检查并启动.cmd」）
     启动信息里会多出一行：
       【手机上 - 异地 / 用流量】 Tailscale 已就绪
       http://100.x.x.x:8080/m

  然后电脑端「手机接入」里会多出第三个码「③ 异地 / 手机流量」，
  手机扫它就行；装了 App 的话，把 100 开头的地址填进去。

  免费额度：100 台设备以内不要钱，够用。
  详细图文步骤见同目录「异地访问设置说明.txt」。

  ⚠ 三点必须知道：
    · 电脑必须开机、黑窗口必须开着
    · 手机上的 Tailscale 要保持连接（加到电池白名单更稳）
    · 速度取决于【电脑那边的上行带宽】，不是手机流量


========================================================
  五、钥匙：给谁开账号、开什么角色
========================================================

  路通了只是"能到达"，还要能"登录进去"。

  ── 三个角色的权限差别 ──

  管理员 admin     全部功能 + 账号管理
  安全员 manager   项目、工人、设备、台账、推送考核、素材分析
  飞手  pilot      拍照、录像、抓拍上传、开直播
                   不能新建项目、不能推送考核、不能改台账

  默认三个账号（密码都是 yh123456，登录后请改）：
    admin     系统管理员
    anquan    安全员 · 赵有才
    feishou   飞手 · 李强

  ── 新建账号 ──
  电脑端 → 左侧「账号与接入」→ 新建
  填用户名、姓名、角色、初始密码，对方就能用自己的号登录。

  ── 为什么建议一人一号，别共用一个 ──
  台账要留痕：谁拍的、谁传的、谁推的考核，系统按账号记。
  共用 admin 的话，出了问题查不到人，台账也就失去了意义。

  ── 给外部人员（甲方、监理、领导）开号 ──
  1) 开一个 pilot 号，名字写清单位，例如 jiafang01
  2) 告诉他地址（扫码或手输）和这个号
  3) 事情结束 → 「账号与接入」里把账号【禁用】
     禁用会立刻把他踢下线，不用等密码过期

  ── 几条实际行为 ──
   · 同一个账号可以在多台手机上同时登录，互不影响
   · 登录一次管 7 天，期间不用重复输密码
   · 改了密码或被禁用，该账号所有设备立刻掉线
   · 飞手号在手机点"新建项目"会提示"当前角色无此权限"，
     这是设计如此。让安全员号建，或先在电脑上建好项目


========================================================
  六、三个入口怎么选（手机用什么方式打开）
========================================================

  ① 网页版        扫码即用，零安装
                  适合：临时看一眼、甲方、临时借来的手机

  ② 安卓 App      功能最全，能开摄像头直播
                  适合：天天用的自己人
                  装法：扫右边 ② 码，或把包里的
                  「宇珩智巡-手机安装包.apk」用微信/蓝牙/数据线发过去
                  （微信里打不开就点右上角「…」→ 在浏览器打开）

  ③ 启动页文件    「宇珩智巡-手机版.html」
                  可以先发到手机存着，现场没网也能打开，
                  进去后自动先试局域网、不通再试异地

  网页版和 App 用的是同一个账号、同一份数据，随便换。


========================================================
  七、多台手机同时用，会怎样
========================================================

  没有数量限制，一台电脑接 10 台手机也没问题，
  电脑端会实时看到所有手机传上来的内容。

  但有两个瓶颈，是物理的：

   · 【同时开直播】很吃电脑 CPU，
     3 台以上同时推流会明显卡。建议只留必要的一两路。
   · 【上行带宽】决定手机传得快不快。
     家用宽带一般上行 20~50Mbps：
       传几张 3MB 照片 —— 1 秒内
       传 10 秒短视频 —— 几秒
       1080P 长时间直播 —— 会卡，尽量只在 WiFi 下用


========================================================
  八、速查表：手机出问题先看这里
========================================================

  现象                       最可能的原因            怎么办
  -------------------------------------------------------------------------
  扫码后一直转圈 / 打不开    不在同一 WiFi           连同一个 WiFi
  同一 WiFi 也打不开         防火墙没放行            以管理员运行 ②，见第九节
  电脑上好的，手机就是不行   AP 隔离 / 公用网络      换路由器或走路③
  能开页面，登录没反应       账号密码错 / 被禁用     找管理员确认
  提示"当前角色无此权限"     角色不够（飞手）        换安全员号
  照片上传卡住               磁盘满 / 素材太大       清磁盘；视频≤80MB
  微信里点开是白页           微信内置浏览器限制      右上角改浏览器打开
  昨天能用今天不行           重启后 IP 变了          重新扫码，地址自动更新
  外地连不上                 Tailscale 没连 / 关机   检查手机端状态


========================================================
  九、给技术人员：三层排查，一次定位
========================================================

  手机打不开，按这三层往下走，一层层排除，
  不要一上来就怀疑程序。

  第 1 层　服务活着吗？（在电脑上做）
     浏览器打开  http://localhost:8080/api/health
     看到 {"ok":true} → 服务正常，问题在网络或账号
     打不开 → 服务没起，看「运行日志.txt」最后几行

  第 2 层　端口通吗？（用手机做）
     手机连同一 WiFi，浏览器打开
       http://电脑IP:8080/api/health
     通 → 网络没问题，问题在登录或页面
     不通 → 防火墙 / AP 隔离 / 不同网段

     放行端口（管理员权限的命令行）：
       netsh advfirewall firewall add rule name="YH-PowerSafety-8080"
         dir=in action=allow protocol=TCP localport=8080 profile=any
       netsh advfirewall firewall add rule name="YH-PowerSafety-8443"
         dir=in action=allow protocol=TCP localport=8443 profile=any

     程序启动时会自动尝试加这两条（规则名就以 YH-PowerSafety 开头），
     但没有管理员权限时加不了，只会提示。

  第 3 层　账号对吗？
     接口直接测：
       curl -X POST http://电脑IP:8080/api/login
         -H "Content-Type: application/json"
         -d "{\"username\":\"admin\",\"password\":\"yh123456\"}"
     返回 ok:true 说明账号没问题，往前端找。

  仍然不行：把「运行日志.txt」发过来。
  启动时识别到的所有地址（局域网、Tailscale）都记在里面，
  一眼就能看出是没识别到地址，还是识别到了但连不通。


========================================================
  十、关于"多项目汇总"，先说清楚
========================================================

  现在每个项目部的电脑各存各的数据，互相不通。
  如果以后要"总部看所有项目"，只有三条路：

   1) 各项目定期导出，人工汇总（现在就能做，零成本）
   2) 部署到一台云服务器，所有人连同一个地址（要迁移，有年费）
   3) 各项目部电脑都装 Tailscale，总部逐个连过去看
      （能看到，但不是一个统一看板，数据仍是分散的）

  这三条的取舍不一样，要动之前先聊一次，别直接买服务器。
