终端走访 · 送货管理系统
连接你的服务器
首次使用填写后端地址与连接密钥,一台手机可切换多套后台。
服务器地址
连接密钥
测试连接
提示:服务器地址不要带结尾斜杠;安卓端如用 http 明文地址,APK 需开启 cleartext。
终端走访 · 送货管理系统
登录
账号
密码
进入系统
切换服务器
今日概览
—
订单
更换店招
移除
🔔
改
0
/
26
当前出勤 / 应出勤
0
本月达成 / 指标
0
店均销售额
0
今日开单金额 ›
0
应收合计(元) ›
0
逾期门店 ›
0
负责门店 ›
0
待拜访(超周期) ›
快捷操作
开单
拜访
登记回款
数据看板
今日
昨日
‹
今日
›
拜访记录
‹
—
›
今天
预警提醒
暂无预警
客户档案
—
新增客户
导入
地图
新增客户
已收起 · 填过的内容都保留,点「展开」继续
收起
客户名称
线路
地址
经度 lng
纬度 lat
📍 地图选点(点击地图自动填经纬度)
搜索
在地图上任意位置点一下,坐标自动填入表单
联系人
电话
负责人
门头照片
📷 拍门头 / 选图
移除
备注
首次铺货额度
账期(天)
拜访周期(天)
客户标签
① 客户等级(A=重点客户 · B=普通客户 · C=潜力客户,可后调)
② 区域(长春区县)
③ 售卖产品类型(主账号可配置,最多 100 种)
④ 经营特色标签
⑤ 产品优先店(勾选候选产品,标记这家店主要卖它、需要定期补货;候选由主账号添加 / 改名 ✎ / 删除 ✕,或从产品库导入)
⑥ 自定义标签(主账号可配置,最多 10 种)
保存客户
取消
正在准备定位…进来会自动获取位置,显示每家超市离你多远
定位算距离
⟳
客户详情
—
返回
加载中…
批量导入门店
按区县检索超市·便利店
返回
库里现在有多少门店
读取中…
刷新
高德「Web服务」Key
未配置
申请:高德控制台 → 应用管理 → 我的应用 → 同一个应用点「添加」→ 服务平台选「
Web服务
」→ 提交。 注意「Web端(JS API)」那个 Key 不能用来检索,服务平台创建后也不能改,所以是再加一个。
保存到服务器
测一下能不能用
复制
① 选择区域(吉林省)
全选 / 取消全部
已选 0 个区县
② 搜索关键词(可多选)
③ 每个区县最多导入
50 家(先拿一个区试)
100 家
200 家
500 家
只补差额:系统里已导入的不重复加,已导满的区县整个跳过
每页 25 条,一次请求算 1 次配额。个人开发者每日配额有限,建议先选 1~2 个区、50 家试跑,看数据质量再扩大。
开始检索导入
停止
导入结果
关闭
去看门店列表
客户地图 · 实时距离
未定位
返回
开始实时定位
驾车
骑行
步行
算实际距离
排序路线
配置Key
点「开始实时定位」,自动算你到最近门店的实际道路距离
拜访
按距离先去最近的店
返回
📍 去拜访 · 按距离由近到远
正在读门店…
刷新
全部客户(按距离看)
地图模式
+ 记录一次拜访
选门店 · 拍照签到 ▾
选择门店
拜访情况
完成拜访
去开单(回来补拍)
记录并开单
拜访记录
产品与库存
—
返回
商品库
新增商品
进货入库
库存流水
长按商品可多选
批量管理
已选 0 项
点卡片勾选,再点取消
全选
删除
取消
商品图片(列表卡片左上角显示库存数)
未上传
选择/拍照
移除
建议正方形,白底或实拍图,上传自动压缩
商品分类
标题(展示名)
商品名称
型号
条码
规格
单价(元)
单位
箱规(每箱)
初始库存
库存预警线
保存商品
清空
删除此商品
保存后再点商品卡可修改资料、看价盘;不要的商品可整条删除(历史订单不受影响)
进货产品
进货数量
进货单价(成本)
供应商
确认入库
入库后库存自动增加,并写入库存流水。
导出流水 CSV
导出 Excel
作废、删除产生的红冲记录用灰色卡片标出,方便和正常出库分开核对。
商品详情
—
返回
商品分类管理
名称全部自定义,加一个分类就多一个按钮。可以只做一级分类,也可以在一级分类下面再建二级分类(最多两级)。删除分类时,其下商品自动移到「未分类」。
新增分类
添加分类
关闭
修改分类
可以改名,也可以调整层级:设为一级分类,或挂到某个一级分类下面变成二级分类。
分类名称
上级分类
保存修改
取消
添加商品到分类
勾选要加入本分类的商品,确认后立即归类。
—
全选 / 取消
确认加入
关闭
商品明细
—
按商品汇总
按订单明细
导出 CSV
导出 Excel
关闭
赊销订单
—
关闭
作废订单(红冲)
作废不是删除:库存与欠款自动冲回,单据永久保留可查。
—
作废原因(必选)
补充说明(选填)
确认作废
取消
筛选客户
两列可以同时选:左边挑「多久没拜访」,右边挑「多久没开单」,确认后取同时满足的客户。
确认
清除筛选
关闭
按客户标签筛选
按类型分组勾选:同一类里勾多个=满足任一即可;不同类之间要同时满足(例:区域·朝阳区 + 产品类型·饮料)。
确认
清除标签
关闭
已选商品
核对一下数量和售 / 赠:改完点「继续添加」接着挑货;没问题就「开单」,当场收了钱就点「开单核销」。
合计金额
¥0.00
开单
开单核销
继续添加
清空已选
✓
开单成功
订单号 —
—
¥0.00
今日合计
继续开单
完成
打印设置
小票 · 进货单
返回
打印方式
系统打印
:调手机/电脑自带的打印对话框,A4 送货单、小票都能打(系统里选好纸型即可)。
蓝牙小票机
:手机和便携蓝牙小票机直连,点「小票」蓝牙直接出纸,不依赖网络和服务器位置。
网络打印
:服务器把 ESC/POS 指令直接发到局域网热敏打印机,点「小票」立即出纸,手机不用装驱动。
系统打印
蓝牙小票机
网络打印机
未连接打印机
尚未配对蓝牙小票机
连接
打印测试页
断开
打印机 IP
端口
测试连接
打印测试页
当前走系统打印:点「小票 / 进货单」会弹出系统打印窗口,在本机选好打印机和纸张即可。
纸张与份数
纸宽
58mm · 便携小票机
打印份数
1 份
2 份
3 份
打完自动切纸
打印时弹钱箱
纸宽固定 58mm(比 80mm 窄的便携机);切纸、弹钱箱只对网络打印生效。
小票内容
打哪些栏目
关掉的栏目不会出现在小票上,系统打印和网络打印都生效。
全部显示
极简
预览小票
票面文字
小票抬头(留空用 App 名称)
小票页脚
进货单标题
保存到服务器
送货单(A4)
送货单走系统打印,不受上面打印方式影响;这里改单面内容和一次连打几联。
送货单标题(默认「送货单」)
单面页脚(备注下方一行,可留空)
一次连打
1 联
一式两联
一式三联
签字栏
送货人/收货人签字
连打几联=同一张送货单在纸上连排几份,A4 每联一页;补打标记不受影响。
怎么接打印机
蓝牙小票机
:58mm 便携机开机后,选「蓝牙小票机」→ 点「连接」,在弹出的系统蓝牙列表里选中你的打印机;
连接状态在「我的 → 打印设置」里常显,开着App重进会自动重连;
⚠ 蓝牙直连需要手机 Chrome/Edge 浏览器 + HTTPS 访问(或 localhost);App 壳 / HTTP 环境不支持时会提示,改用系统打印即可。
网络打印机
:热敏小票机带网口(或接打印服务器/云盒),路由器里固定内网 IP(如 192.168.10.201,端口 9100),
打印机和服务器电脑同一局域网,「测试连接」通了就能打;
兜底方案
:任何情况都可以选「系统打印」,在系统打印窗口里选蓝牙打印机打印。
小票预览
按当前「小票内容」设置排版,58mm 纸宽约 32 个字符一行。
关闭
开单
新建订单
返回
📍 就近客户
按距离由近到远
今日已开单
门店
结算方式
现结
普通赊销
首次铺货
选择产品与数量
合计 0.00 元
点商品图片 → 选「售 / 赠 / 退 / 换」和数量 → 加入开单
订单备注
订单照片
+ 拍照/选图
开单
只落单,核销状态:未核销
开单核销
落单同时标记已核销
开单后到「今日已开单」或订单列表里点「已核销」也可以补核销。
放弃修改
0
订单查询
筛选 · 打印 · 导出
返回
开始日期
结束日期
门店
全部门店
状态
全部
正常单
开单未核销
已核销
已作废
查询
导出CSV
导出Excel
商品明细CSV
结果
欠款台账
—
返回
登记回款
回款金额
备注
登记回款并核销
主账号手动调账
调整金额(负数=减免)
原因(必填)
执行调账
导出Excel
汇总CSV
流水CSV
商品明细
业绩统计
开单 / 回款 / 赊销
返回
开始日期
结束日期
统计维度
按业务员
按线路
按日期
统计
导出Excel
商品明细CSV
0
开单金额
0
回款金额
0
赊销金额
商品销售
利润统计
销售额 · 进货成本 · 毛利
返回
🔒
利润数据已加密
只有主账号能查看,请输入利润密码
保存利润密码
解锁查看
开始日期
结束日期
今天
近7天
本月
上月
今年
统计维度
按商品
按业务员
按门店
按线路
按日期
首铺压货计入总毛利
关闭后首铺单独核算,不混进总成本
统计
导出CSV
重新上锁
0
销售额
0
进货成本
0
毛利
首铺压货(单独核算)
0
首铺销售额
0
首铺成本
0
首铺利润
进货价设置
录入后即可算毛利
这里的价格只有主账号能看到和使用,分账号、客户端完全看不到。
保存进货价
重置
修改利润密码
忘记原密码时,可用
主账号登录密码
重置
原利润密码
主账号登录密码(忘记原密码时填)
新利润密码
保存
取消
清空测试数据
上线前把试用期间的营业数据清零。
基础资料(账号、门店、商品、分类、标签、配置)全部保留
。清空前服务器会自动快照一份,随时可回滚。
订单、欠款台账、核销流水
拜访记录(含签到照片引用)
库存流水、门店库存台账
商品库存清零(重新盘点录入)
另会:清理不再使用的上传照片、所有人退出登录重新登录。
确认清空
取消
我的
—
返回
订单查询
业绩统计
利润统计
产品库存
拜访记录
权限开关
控制其他账号能对主账号数据做什么
利润密码
禁止他人修改 / 作废 / 删除主账号的订单
允许他人核销主账号的订单
保护主账号的拜访记录
门店 / 商品档案也只允许创建人改
团队数据看板(首页看全队业绩 / 产品销量)
「禁止修改」关掉后,其他账号可以编辑主账号的订单(作废、删除也一样放开); 「档案锁」打开后,别人不能改主账号建的门店和商品(价格、库存调整会受影响,谨慎开启); 「团队看板」关掉后,首页数据看板只显示主账号自己的数据。员工账号始终只能看自己的。
账号管理
主账号创建分账号、勾选门店授权
进入
服务器连接
—
当前:
—
服务器地址
服务器检测到的内网地址(手机用这个):
连接密钥
保存并重连
刷新服务器信息
—
修改服务器连接密钥(主账号)
保存到服务器
改完旧密钥暂时仍可用,方便其他手机过渡;下次修改后旧密钥自动失效。
欠款预警
开单允许拍照
送货单打印
首页显示应收金额
门店列表显示「快速拜访」按钮
商品详情显示价盘(历史开单价格)
开单页显示小推车(已选清单)
拜访超期天数
未开单超期天数
高德地图配置
未配置 Key
配置 Key
保存设置
打印设置
小票 / 进货单 · 系统打印
进入
打印机状态
—
连接
小票内容
客户 / 单号 / 单价 / 签字 … 选打哪些栏目
设置
打包成手机 App
生成 Capacitor 配置与步骤,装到安卓机后可用原生 GPS(±5~20 米)
进入
数据备份
主账号可导出/导入全量数据(门店、产品、订单、欠款、拜访、库存)。
📊 下载 Excel 表格备份(推荐)
一共六张表:门店档案、商品目录、订单、订单明细、客户欠款、拜访记录。手机 WPS 或电脑 Excel 打开就能看、能打印、能发给会计。
⬇ 下载系统备份文件(JSON,仅用于恢复)
这个文件打开是一堆代码,正常——它是给系统「导入备份」时用的,恢复数据靠它,不用打开看。
下载后在手机「文件管理 → 下载 / Download」;电脑在「下载」文件夹。点了没反应就点「复制下载链接」,粘到 Chrome 地址栏回车。
复制下载链接
导入备份
查看历史快照
🛡 账套保护:服务器每天自动快照一次(保留 30 天);导入备份、回滚快照前也会自动快照,随时可以退回来。
清空测试数据
退出登录
切换服务器
终端走访送货系统 v1.0
打包成 App
—
返回
⬇ 下载安卓安装包
已打好签名 APK(v1.0.0)。装上后:图标直达系统、GPS 原生定位(±5~20 米)、下载文件直接进手机「下载」目录、不受浏览器拦截。
下载 APK 安装包
安装提示:下载后点开通知安装;若提示「未知来源」,在系统设置里允许该浏览器/文件管理器安装即可。用本 App 下载的文件在「文件管理 → 下载」里。
应用信息
这几项会直接写进打包配置。改完点保存,再下载下面的文件,不用改任何代码。
App 名称
包名(Android 唯一标识)
格式 com.公司.应用。已经装到手机上之后别再改,改了会变成两个 App,老版本也不会自动更新。
版本号
默认服务器
服务器那一项会自动填本机内网地址,App 首次启动读它,司机不用手输。
把连接密钥写进配置
写入后司机装完即用;缺点是拿到这个文件的人都能连服务器。
保存到服务器
重新生成配置
打包前检查
代码层面已经按 App 环境改好的部分,和还需要你手动确认的事项。
要放进工程的 4 个文件
下载后放壳工程根目录;
app-default.json 要放进 www 目录里
,否则 App 首次打开读不到服务器地址。
从零到装上手机
以后改了网页内容,只需要重新把
D:\visit-app\www
复制进工程,执行
npx cap copy android
,再出一次 APK 就行,不用重建工程。
账号管理
—
返回
到店拜访范围
允许范围(米)
超出范围时
只提示,司机确认后可提交
禁止提交(更严)
保存
拍拜访签到照时会记下当时的坐标,和门店坐标比对,超出范围的记录在拜访列表标红。门店没标坐标的无法核对。
新建分账号
创建账号
首页
门店
开单
欠款
我的
高德地图配置
Key 存在服务器上,改一次所有手机/电脑自动生效,不用每台重配。
Web端(JS API) Key *
安全密钥 securityJsCode
在哪找:
① 打开
高德控制台 · 应用管理 · 我的应用
② 「创建新应用」填个名称(类型随选,如「出行」)→ 点「添加」
③ 服务平台必须选「
Web端(JS API)
」→ 勾选协议 → 提交
④ 列表里那串就是 Key,复制到上面第一个框;点该 Key 的「设置」,页面上「
安全密钥
」复制到第二个框
保存并验证
取消
从服务器重新读取