情况汇报
当前身份:{{ user.role === 'admin' ? '主管理员' : (user.org_type === 'train' ? '培训单位 · ' : '单位账号 · ') + user.org_name }}
{{ todayText }}
当前系统共录入{{ fmt(stats.units) }}家单位、{{ fmt(stats.students) }}名学员,累计 {{ fmt(stats.eduTotal) }} 人次继续教育报名;
其中最近 3 个月内有{{ (stats.expiring || []).length }}名学员证书即将到期,请及时安排复审 / 换证,暂无到期风险。
本单位共有{{ fmt(stats.students) }}名学员,累计 {{ fmt(stats.eduTotal) }} 人次继续教育报名;
最近 3 个月内有{{ (stats.expiring || []).length }}名学员证书即将到期,请及时安排复审 / 换证,暂无到期风险。
单位总数
{{ fmt(stats.units) }}家
学员总数(按身份证去重)
{{ fmt(stats.students) }}名
累计报名 {{ fmt(stats.eduTotal) }} 人次
近 3 个月到期证书
{{ (stats.expiring || []).length }}本
累计查询
{{ fmt(stats.total) }}次
成功 {{ stats.success }} · 失败 {{ stats.fail }} · 今日 {{ stats.today }}
证书到期预警(近 3 个月)
{{ expiringView.length ? (expIndex + 1) : 0 }} / {{ expiringView.length }}
后台核验中 {{ avStatus.progress.processed }}/{{ avStatus.progress.total }}
自动核验任务
{{ expView === 'card' ? '切换列表模式' : '切换卡片模式' }}
共 {{ expStats.total }} 条
未查询 {{ expStats.unq }}
近 {{ expRecentDays }} 天已查 {{ expStats.recent }}
隐藏近
天内已查询
未查询/久未查询优先靠前,避免重复查询
{{ curExp.name || '—' }}
{{ (typeMeta[curExp.query_type]||{}).short || curExp.type_label || '其他' }}
{{ expStatusTag(curExp).short }}
{{ curExp.days_left }}剩余天数
{{ maskIdcard(curExp.idcard) }}
—
{{ maskPhone(curExp.person_phone) }}
—
{{ curExp.cert_code || '—' }}
{{ curExp.job_name || '—' }}
{{ curExp.expire_date }}
{{ curExp.org_name || '—' }}
{{ curExp.train_org_name || '—' }}
{{ String(curExp.last_query_at).slice(0, 16) }}
未查询
核验证书(政务网实时查询)
取消到期不通知
标记到期不通知
已标记「到期不通知」——后续无需再核验,也不会发到期提醒短信。
{{ curExp.verify.text }}(核验于 {{ curExp.verify.at }})
批量核验中 {{ expVerifyProgress }}
停止
核验选中证书({{ expSelected.length }})
批量到期不通知({{ expSelected.length }})
勾选名单后可批量核验或批量标记「到期不通知」(标记后不再核验、不发提醒)
expSelected = s">
{{ row.name }}
{{ maskIdcard(row.idcard) }}
—
{{ maskPhone(row.person_phone) }}
—
{{ (typeMeta[row.query_type]||{}).short || row.type_label || '其他' }}
{{ row.cert_code || '—' }}
{{ row.job_name || '—' }}
{{ row.days_left }} 天
{{ row.org_name || '—' }}
{{ row.train_org_name || '—' }}
{{ String(row.last_query_at).slice(0, 16) }}
未查询
{{ expStatusTag(row).short }}
未核验
查看
取消不通知
到期不通知
二级建造师概况
进入台账 →
共{{ fmt(eduSummary.students) }}名学员持证({{ fmt(eduSummary.total) }} 人次报名)
有效{{ fmt(eduSummary.valid) }}
已过期{{ fmt(eduSummary.expired) }}
无效{{ fmt(eduSummary.invalid) }}
未查询{{ fmt(eduSummary.unqueried) }}
{{ p.name }} {{ fmt(p.count) }}人
近 3 个月到期 {{ fmt(eduSummary.expiringCount) }} 人
江苏政务网
{{ typeMeta[t.key].short }}
{{ typeMeta[t.key].source }}
{{ (stats.byType[t.key] || {}).count || 0 }}
查询记录
综合查询
{{ typeMeta[t.key].short }}
{{ typeMeta[t.key].source }}
{{ (stats.byType[t.key] || {}).count || 0 }}
查询记录
证书查询
{{ typeMeta[curType].source }}
江苏省[极速]
特种设备[官方]
查 询
清空
{{ r.ok ? '查询成功' : '查询失败' }}
{{ r.typeLabel }}
已录入台账 #{{ r.ledgerId }}
{{ r.showRaw ? '收起' : '原始JSON' }}
{{ r.msg }}
{{ pretty(r.raw) }}
{{ typeMeta[curType].short }} · 学员台账
{{ fmt(eduTotal) }} 条报名记录
含职称 / 八大员等其他工种
共{{ fmt(eduSummary.students) }}名学员持证
有效{{ fmt(eduSummary.valid) }}
已过期{{ fmt(eduSummary.expired) }}
无效{{ fmt(eduSummary.invalid) }}
未查询{{ fmt(eduSummary.unqueried) }}
{{ p.name }} {{ fmt(p.count) }}人
近 3 个月到期 {{ fmt(eduSummary.expiringCount) }} 人
selectedEdu = s">
{{ row.person_name }}
{{ tg.tag }}
{{ maskIdcard(row.id_card) }}
{{ maskPhone(row.person_phone) }}
—
{{ row.train_org_name || '—' }}
{{ row.signup_psn || '—' }}
{{ maskPhone(row.signup_phone) }}
—
{{ row.register_no || '—' }}
{{ row.profession || '—' }}
{{ row.cert_status }}
未查询
到期不通知
即将到期
{{ cert.item || '未注明作业项目' }}
{{ cert.status }}
{{ cert.validTo || '—' }}
{{ row.valid_until || '—' }}
{{ row.remark }}
—
{{ row.last_query_at || '—' }}
查询
编辑
备注
详情
取消不通知
到期不通知
建档后状态为「未查询」,可在列表勾选后批量查询,自动补全证书信息。
取消
保存
保存并查询
下载导入模板.xlsx
按模板填好再上传
选择文件
{{ impDlg.fileName || '未选择' }}
· 表格至少包含 姓名 和 身份证号 两列(自动识别表头;也可第1列姓名、第2列身份证)
· 可选列:手机号、所属企业、培训单位
· 重复(同分类已存在)和身份证非法的行会自动跳过
· 导入后状态为「未查询」,再勾选批量查询即可补全证书信息
关闭
开始导入
取消
保存(记录变更日志)
取消
保存(记录变更日志)
{{ eduDetail.row.person_name }}
{{ maskIdcard(eduDetail.row.id_card) }}
{{ maskPhone(eduDetail.row.person_phone) }}
—(可用于到期短信提醒)
编辑
{{ eduDetail.row.ent_name || '—' }}
{{ eduDetail.row.register_no || '—' }}
{{ eduDetail.row.train_org_name || '—' }}
{{ eduDetail.row.signup_psn || '—' }} /
{{ maskPhone(eduDetail.row.signup_phone) }}
—
{{ eduDetail.row.profession || '—' }}
{{ eduDetail.row.cert_status }}
未查询
即将到期
{{ eduDetail.row.valid_until || '—' }}
{{ eduDetail.row.last_query_at || '—' }}
{{ eduDetail.row.remark }}
—
编辑备注
变更日志
{{ eduDetail.changes.length }} 条
暂无变更记录
{{ eduFieldLabel(c.field) }}:
{{ c.old_value || '(空)' }}
→
{{ c.new_value || '(空)' }}
{{ typeMeta[curType].short }} · 分类台账
批量再查中 {{ batchProgress }}
停止
{{ typeMeta[t.key].short }}
短信任务
发送中 {{ smsInfo.task.processed }}/{{ smsInfo.task.total }} {{ smsInfo.task.current }}
待发送 {{ smsInfo.pending }} 条
天
天
可用占位符:{sign} 签名 · {name} 姓名 · {cert} 证书类别 · {certno} 证书编号 · {date} 到期日期 · {days} 剩余天数
保存设置
停止发送
立即执行发送({{ smsInfo ? smsInfo.pending : 0 }} 条)
测试单发
模拟通道只记录不真发,便于先验证名单;接入真实服务商后切换通道即可
企业短信配置
开启短信开关的单位,其学员到期前才会收到提醒
{{ row.org_kind === 'train' ? '培训单位' : '所属企业' }}
{{ fmt(row.students) }}
toggleOrgSms(row, v)">
提前 {{ row.remind_rules.join(' / ') }} 天
—
未配置
{{ row.channel_state }}
—
{{ row.config ? ({ person: '学员本人', contact: '单位联系人', both: '本人+联系人' })[row.config.send_to] : '—' }}
{{ maskPhone(row.config.contact_phone) }}
—
通道配置
短信模板
编辑
删除
短信发送记录
刷新
{{ maskPhone(row.phone) }}
{{ row.status }}
{{ row.content }}
开启前需配置好下方通道,否则无法保存
可设置多个阶段,如 90 / 30 / 7:到期前 90 天提醒一次,30 天再提醒,7 天最后提醒(同一证书每阶段只发一次)
学员本人
单位联系人
本人 + 联系人
跟随全局通道
企业独立通道
取消
保存
所属企业
培训单位
新增后该单位即出现在列表中,可再为其开启短信提醒并配置通道。
取消
确定新增
所属企业
培训单位
改名将同步到学员、证书台账与短信档案;改类型影响企业管理与短信归类。
取消
保存
同步阿里云模板
{{ curTpl.content }}
该模板无变量,直接发送即可
取消
确认发送
短信模板配置(按科目)
← 返回企业管理
同步该单位模板
选择单位:
为所选单位按科目配置批量到期提醒所用的阿里云短信模板(模板从该单位阿里云账号同步而来)
请先在上方选择一个单位。
暂无模板,请先点右上角「同步该单位模板」拉取阿里云模板。
默认模板(所有科目缺省使用)
模板内容:{{ tplContentOf(expiryEdit.default.templateCode) }}
按科目覆盖(可选,仅个别科目模板不同才加)
添加科目覆盖
暂无覆盖。所有科目都用上面的默认模板;如某科目要用不同模板,点右上「添加科目覆盖」。
删除此覆盖
模板内容:{{ tplContentOf(o.templateCode) }}
变量绑定可用占位符:{name} 姓名 · {cert} 科目/工种 · {certno} 证书编号 · {date} 到期日期 · {days} 剩余天数 · {org} 单位名;也可直接填固定文字(如咨询电话 0510-xxxxxxx)。每个模板变量都必须填,否则阿里云会拒发。
保存短信模板配置
返回
{{ row.role === 'admin' ? '主管理员' : (row.org_type === 'train' ? '培训单位' : '单位账号') }}
{{ row.org_name || '—' }}
全部
{{ row.perms.split(',').length }} / {{ Object.keys(typeMeta).length }} 项
不限
{{ row.points || 0 }}
{{ row.last_login_at }}
IP {{ row.last_login_ip || '—' }}
未登录
编辑
重置密码
删除
查看登录日志
筛 选
{{ row.role === 'admin' ? '主管理员' : '单位账号' }}
单位账号
主管理员
所属企业
培训单位
共 {{ fmt(orgsTotal) }} 家培训单位 · 该账号可查看所选培训单位名下全部学员及其所属企业的数据
共 {{ fmt(orgsTotal) }} 家单位 · 该账号登录后仅能查看所选企业的数据,且不显示培训单位信息
{{ m.short }}
勾选的分类才允许查询并查看对应台账,未勾选的分类菜单不显示
点
+100
+500
+1000
每次成功调用证书查询接口扣 1 点,点数为 0 时无法查询
取消
{{ editingId ? '保存' : '创建' }}
取消
确定
建档查证
姓名+身份证 → 一键建档并查询全部工种证书(安管/注册/特种/应急)
建档并查询全部证书
查询中…(依次查 4 个工种接口,请稍候)
查证结果 · {{ onboard.resultName }}
{{ row.status }}
{{ studentDlg.basic.name || '—' }}
身份证 {{ maskIdcard(studentDlg.basic.idcard) }}
持证 {{ studentDlg.certs.length }} · 证件资料 {{ studentDlg.docs.length }}
{{ tg.tag }}
基本信息
{{ studentDlg.basic.name || '—' }}
{{ maskIdcard(studentDlg.basic.idcard) }}
—
{{ (studentDlg.basic.phones || []).join('、') || '—' }}
变更记录({{ studentDlg.basic.phoneLog.length }})
保存
取消
{{ (studentDlg.basic.ents || []).join('、') || '—' }}
{{ studentDlg.basic.trains.join('、') }}
标签:
{{ tg.tag }}
暂无标签
+{{ p.tag }}
添加
证件与档案资料
每类资料单独上传 · 支持图片/PDF(单个≤15MB)
{{ t }}
({{ (studentDocsByType[t]||[]).length }})
上传
暂无{{ t }}资料
{{ d.file_name }}
{{ String(d.uploaded_at).slice(5, 16) }}
一键查询(调用全部接口)
查询中 {{ studentDlg.qAllProgress }}
依次调用安管/注册/特种/应急/四库/全国特种等接口,把各平台最新证书查回并入库
{{ (typeMeta[row.cert_type]||{}).short || row.cert_type || '其他' }}
{{ row.profession }}
{{ row.register_no || '—' }}
{{ row.cert_status }}
未查询
不通知
{{ row.valid_until || '—' }}
—
{{ row.days_left }}天
{{ String(row.last_query_at).slice(0, 16) }}
从未查询
查询最新
取消不通知
到期不通知
{{ (typeMeta[row.query_type]||{}).short || row.type_label || row.query_type }}
{{ row.success ? '成功' : '失败' }} · {{ row.summary || '—' }}
{{ row.valid_until || '—' }}
{{ maskPhone(row.phone) }}
{{ row.status }}
{{ changeSourceLabel(row.source) }}
{{ eduFieldLabel(row.field) }}
{{ row.old_value || '空' }}
{{ row.new_value || '空' }}
{{ row.phone || '空' }}
{{ phoneSourceLabel(row.source) }}
来源说明:人工编辑(页面手动改)· 人员导入(批量导入)· API接口(接口同步)