扫码填写
把模块表单做成一个二维码,村民手机一扫就能填,干部不用再带着本子挨家挨户抄。
什么时候用扫码填写
入户走访最怕两件事: 一是本子带少了写不下, 二是回到办公室还要把纸上的内容一条条录进系统。扫码填写就是为了把这两步合成一步。
常见场景:
- 新增村民花名册: 在村小卖部、村委会大门口贴一张二维码, 新迁入的村民自己扫码填。
- 低保户年度复核: 把链接发到低保户家属的微信群, 让户主自己确认家庭收入。
- 党员信息更新: 流动党员人不在村里, 把链接发过去, 他自己更新工作单位和联系电话。
- 临时摸排: 比如疫情期间统计返乡人员, 把二维码贴在村口卡点, 扫一下填一下就走。
核心好处: 数据一次录入, 直接进系统, 不用回办公室再录一遍, 也不会因为字迹潦草认错。
工作原理
原理一句话: 系统给这个模块生成一段带 token 的链接, 再把这段链接画成二维码。村民扫码打开的就是这段链接, token 决定了他能填哪个模块、当前能不能填。
整条链路是这样的:
- 干部生成链接在模块里点"扫码填写", 系统第一次点开时在后台造一段 token 写进数据库(以后再点看到的都是同一条,除非手动"重新生成")。
- 显示二维码系统把这段带 token 的地址画成二维码。
- 村民扫码手机相机或微信扫一扫, 跳到一个简化版表单页, 显示这个模块的全部字段。
- 提交村民填完点提交, 数据经过和后台录入完全一样的校验规则后写进对应模块。
整个过程村民不需要账号, 也不需要装任何 App, token 本身就是"能不能填"的凭证。
生成扫码链接
生成入口在每个模块的数据页里, 也就是左侧菜单点进任何一个模块(比如"村民花名册")之后的那个页面。
- 打开模块左侧菜单点进要采集数据的模块, 比如"村民花名册"。
- 找到扫码填写工具栏最右边有个"更多"下拉按钮, 点开里面有"扫码填写"这一项(和"打印""生成报表""回收站"在同一个下拉菜单里)。
- 看二维码弹窗打开就自动生成并显示二维码和对应网址, 顶部一个开关显示"正在收集"或"已停止"。
- 分发弹窗里没有"下载二维码""打印"这类按钮, 需要截图这个弹窗, 或者把二维码下方显示的网址文字选中复制, 再自己发到微信群或打印出来。
- 停止收集不想再收数据时, 把顶部开关拨到"已停止", 二维码立刻失效; 或者点"重新生成二维码"按钮换一条新 token, 旧二维码同时作废。
需要注意: 权限里"扫码填写"是一个独立的模块动作,和"新增""编辑"是分开勾选的。在"角色权限"里,只有对这个模块单独勾了"扫码填写"这个动作的角色,登录后才能在工具栏"更多"菜单里看到这一项;只勾了"新增"不勾"扫码填写"是看不到的。
把二维码截图打印贴在村委会公告栏, 比建一百个微信群都管用。村民来办事的时候顺手就扫了。
如果村委会的电脑不止连了一个网
如果这台电脑同时连了好几个网络(比如有线 + WiFi), 弹窗里会多出一个"网络地址"下拉框, 列出所有能用的地址, 需要手动选一个手机所在 WiFi 对应的网段(一般是 192.168 开头的那个), 二维码会跟着换成选中地址生成的那个。只有一个地址时不会出现这个下拉框, 直接用。
村民扫码后看到的页面
村民扫开看到的不是后台那个复杂的表格, 而是一个手机友好的简化表单, 一屏一个问题, 大字、绿色提交按钮。
具体表现:
- 顶部一行字显示这是哪个模块的登记, 就是模块的名字, 比如"村民花名册登记"。
- 必填字段标红星, 每个控件(下拉、日期、开关等)跟后台录入时长得一样, 不是专门改成的大按钮。
- 身份证号字段没有实时校验, 提交后由系统统一检查格式(18 位, 前 17 位数字, 末位数字或 X), 格式不对会弹出"身份证号格式不对"的提示, 不检查最后一位的校验码。
- 派生字段(比如"年龄")仍然会占一行, 但显示成灰色不可编辑的框, 提示"该字段类型不支持在此录入"; 村民填不了也不用管, 系统按身份证号或日期字段自动算, 提交时会直接忽略这一栏。
表单显示这个模块的全部字段(除了派生字段外), 没有单独勾选"只对外开放哪几个字段"的设置; 如果有字段不想让村民自己填, 目前只能靠干部事后在系统里手工补。
断网重试与重复提交
系统在这几件事上做了兜底, 保证村民在弱网环境下也能顺利提交、且不会重复登记:
- 自动重试点提交后网络不稳, 系统会自动重试最多 3 次, 页面上会显示"网络不稳定, 正在第 N 次重试…"。
- 幂等键防重复每次打开表单系统会在手机本地生成一个随机的提交标识, 重试用的是同一个标识, 后端认出这是同一份提交就直接算成功, 不会因为重试而多存一条。
- 草稿暂存填到一半不小心退出或刷新页面, 已填的内容会自动存在手机本地, 重新打开同一个链接会自动带出来, 不用重填; 提交成功后草稿才清空。
- 限流同一个二维码 5 秒内最多接受 10 次提交请求, 超过会提示"提交过于频繁, 请稍后再试", 防止有人拿着链接写脚本疯狂灌数据。
提交成功后页面显示"提交成功"和一个"再填一份"按钮, 适合贴在公告栏、多个人排队用同一台手机/平板轮流填的场景——点一下清空表单, 生成新的提交标识, 接着填下一个人的。
提交后数据进入哪里
村民填完直接写进对应模块的记录列表, 跟干部手工录入的记录混在一起, 系统没有单独的"来源"标记字段, 记录详情里看不到"来源: 扫码"这样的标签。唯一能大致区分的办法: 扫码提交的记录因为没有登录账号, "创建人"这一栏会是空的; 干部手工录入的记录创建人栏会显示对应账号名字。系统也不会把每一条扫码提交单独写进 操作日志, 更不会记录提交时的 IP。
不需要登录、不需要下载 App
这是扫码填写最大的卖点。村民这一侧:
- 不需要注册账号。
- 不需要装任何 App。
- 不需要关注公众号。
- 只要手机能上网, 用相机、微信、支付宝任意一个扫一扫都能打开。
这一点对老年人特别重要——很多老人连微信都用不熟, 但扫一下二维码他们都会。打开就是一个填表页面, 跟填快递地址一个感觉。
上传照片 / 附件
如果模块里有"附件"类型的字段, 比如"身份证正面照"、"户口本首页", 村民可以直接用手机拍照或选相册图片上传。
- 点"上传附件"按钮手机会弹出系统自带的选择框, 问是用相机现拍还是从相册选, 支持一次选多张。
- 预览选完会显示缩略图和文件名、大小, 每个文件旁边有单独的"删除"图标, 点了就从列表里去掉。
- 大小限制系统没有自动压缩图片这回事, 原图多大就传多大; 但有硬性上限: 单个文件不能超过 5MB, 这个字段所有文件加起来不能超过 20MB, 最多 20 个文件, 超了会被直接跳过并提示。
- 类型限制只接受图片(PNG/JPG/GIF/WEBP/BMP)、PDF、Word(doc/docx)、Excel(xls/xlsx), 其他类型选了也传不上去。
上传的文件内容存进本机的系统数据库里, 不经过任何外部服务器或云盘, 不收费, 也没人能从外网偷看。
因为系统装在村委会的电脑上, 村民的手机必须能连上村委会的 WiFi 或者跟村委会同一个局域网才能提交。在野外没信号的地方扫不开。
隐私与安全
核心一句话: 链接即权限, token 即凭证。谁拿到链接谁就能填, 所以分发链接要当心。
系统做了这几件事来兜底:
- token 是 32 个字符的随机十六进制串, 猜不出来。
- 链接只允许"写入"指定模块, 不能读取已有数据, 村民扫码看不到别人填了什么。
- 提交成功后不会回显刚填的内容, 页面只显示"提交成功"四个字, 不用担心贴公告栏时后一个人看到前一个人填的信息——这是默认行为, 没有单独的开关要勾。
- 提交接口有限流(见上一节), 防止被脚本刷。
- 主机电脑关机的时候链接自然就打不开了, 数据也不会泄露。
二维码一旦扩散就很难收回, 转发几次就可能被外村人填脏数据。如果发现链接已外泄, 在弹窗里点"重新生成二维码", 旧二维码立刻作废, 再把新二维码发给需要的人。
停止收集 / 更换二维码
临时不想再收数据了, 或者怀疑链接被外传, 有两种处理方式:
- 停止收集把弹窗顶部开关拨到"已停止", 二维码立刻失效, 村民再扫会提示"收集已停止,请联系村委会工作人员"。随时可以再拨回"正在收集"恢复。
- 重新生成二维码点弹窗里的"重新生成二维码"按钮, 确认后系统换一条新 token, 旧二维码彻底作废, 适合链接已外泄的情况。
两种方式都不影响已经收回的数据, 数据还在模块里。
怎么看收了多少份
扫码填写弹窗本身不显示已收回的份数, 系统目前没有这个专门的计数功能。想知道收了多少份, 直接回到模块的记录列表看总条数变化, 或者对照"创建人为空"这个特征(见上文"提交后数据进入哪里")大致数一下有多少是村民自己填的。
常见问题
扫了之后链接打不开
几种原因, 按顺序排查:
- 手机没连村委会的网扫码填写走的是局域网, 必须跟主机电脑同一个网。让村民连上村委会 WiFi 再扫。
- 主机电脑关机了下班后电脑关了, 链接自然打不开, 页面会提示"网络连接失败,请确认手机已连接村委会的 WiFi"。第二天开机就好。如果要让村民晚上也能填, 把主机电脑常开即可。
- 收集已停止或模块被停用页面会显示"收集已停止,请联系村委会工作人员", 干部把开关拨回"正在收集"就好。
- 链接不存在页面显示"链接不存在或已失效", 一般是 token 被重新生成过, 用的还是旧链接, 找干部要最新的二维码。
填完点不了提交
大概率是必填项没填。点提交后系统会弹出一条提示告诉你具体是哪个字段, 比如"请填写「姓名」"——但只提示第一个没填的, 不会一次性把所有问题都标出来; 填上提示的这项再点提交, 如果还漏了别的, 会接着提示下一个。
如果提示的是"身份证号格式不对", 检查是不是填成了 17 位或者混进了字母、空格, 系统只查长度和末位是不是数字/X, 不查最后一位的官方校验码。
同一个人不小心填了两份
如果这个模块的身份证号(或其他)字段设了"唯一", 第二次提交时系统会拦住, 提示"提交的信息与已有记录重复(如身份证号已登记过),请核对"。没设"唯一"的话, 两份都会进系统, 干部在列表里手工合并或删一条, 删错了去 全局回收站, 7 天内还能还原。
需要注意: 单纯的网络卡顿重复点提交不会造成这个问题, 系统自己识别得出"这是同一份表单在重试", 只有真的另外填了一遍(比如扫了两次码、或点了"再填一份")才会撞上"唯一"字段的限制。
能让村民改自己已经填过的内容吗
不能。token 只给写入权限, 不给修改权限。如果村民填错了, 让他重新扫码再填一份, 干部再去模块里删掉旧的那条。这是为了防止 token 被泄露后有人恶意篡改已有数据。