{{ toast.text }}
系统已更新到 v{{ verWatch.newVer }},当前页面是旧版本,为避免界面显示异常,请刷新后使用。
{{ brand.name }}

经营预警 点击可跳转到对应模块处理

近{{ dash.rank_days }}天零拜访成员 {{ alerts.inactive_members.length }} 30天未跟进客户 {{ dash.uncontacted_count }} 续期逾期保单 {{ dash.renewal_overdue }} 职级维持预警 {{ dash.sustain_danger + dash.sustain_warn }} 晋升考核达标 {{ dash.promo_ready }}
本月承保保费({{ dash.month }})
{{ fmtWan(dash.month_premium) }}
承保 {{ dash.month_cases }} 件
本月 FYC(首年佣金)
{{ fmtWan(dash.month_fyc) }}
{{ dash.goal_rate === null ? '未设月度目标' : '目标达成 ' + dash.goal_rate + '%(目标 ' + fmtWan(dash.goal_fyc) + ')' }}
续期达成率
{{ dash.renewal_rate === null ? '—' : dash.renewal_rate + '%' }}
{{ dash.renewal_rate === null ? '本月无应缴保单' : '应缴 ' + dash.renewal_due + ' 件 · 逾期 ' + dash.renewal_overdue + ' 件' }}

各团队业绩 {{ dash.month }} · 直辖团队与下级团队 · 含下属全部成员

暂无团队业绩数据
团队负责人人力实动承保保费FYC件数目标达成活动量
{{ o.name }} {{ o.manager || '—' }} {{ o.member_count }} {{ o.active_count }} {{ fmtWan(o.month_premium) }} {{ fmtWan(o.month_fyc) }} {{ o.month_cases }} 未设目标{{ o.goal_rate }}% {{ o.month_visits }}

本月业绩排行 {{ dash.month }} · 承保保费口径 · 前10名

本月暂无承保业绩
{{ r.name }}
{{ fmtWan(r.premium) }} / {{ r.cases }}件

承保战报 {{ dash.month }} · 最新 6 单

本月暂无承保
{{ t.date.slice(5) }} {{ t.product }} {{ fmtWan(t.premium) }} {{ t.owner_name }}

今日行程 全团队 {{ dash.today_schedules.length }} 项

今日暂无行程安排
{{ s.done ? '✓' : '○' }} {{ s.type }} {{ s.title }} {{ s.owner_name }}
本月活动量(拜访)
{{ dash.month_visits }}
人均 {{ dash.visit_per_capita }} 次
近30天新增客户
{{ dash.new_customers }}
当前数据范围内
30天未跟进客户
{{ dash.uncontacted_count }}
需要立即预警

客户阶段漏斗 共 {{ funnel.total }} 人 · 当前数据范围

暂无客户数据
{{ s.stage }}
{{ s.count }}

拜访量成员排行 近{{ dash.rank_days }}天 · 前10名 · 按当前数据范围

暂无拜访数据
{{ r.name }}
{{ r.count }}

顺为成交漏斗 黄金四面 · 当前数据范围

暂无漏斗数据

保险提醒 生日{{ insAlerts.birthday_days }}天内 · 缴费{{ insAlerts.payment_days }}天内

客户生日

近期无客户生日
{{ b.name }}{{ b.birthday.slice(5) || b.birthday }} {{ b.days === 0 ? '今天' : b.days + ' 天后' }} {{ b.owner_name }}

续期缴费

近期无续期缴费
{{ p.customer_name }}{{ p.product_name }} {{ p.next_payment_date }} {{ p.days === 0 ? '今天' : p.days + ' 天后' }}
在册人力
{{ dash.team_size }}
当前数据范围
本月实动人力
{{ dash.active_count }}
实动率 {{ dash.team_size ? Math.round(dash.active_count / dash.team_size * 100) : 0 }}%
本月新入司
{{ dash.new_recruits }}
签约日期在本月

团队组织架构 按层级展开 · 含人力与本月业绩

暂无组织架构数据
组织 / 负责人人力实动本月承保保费
{{ n.depth === 0 ? '' : '└ ' }}{{ n.name }} {{ n.manager }} {{ n.member_count }} {{ n.active_count }} {{ fmtWan(n.month_premium) }}

职级分布 在册 {{ dash.team_size }} 人 · 基本法职级序列

暂无成员
{{ r.name }}
{{ r.count }}
晋升考核达标
{{ dash.promo_ready }}
已满足晋升条件,可办理
职级维持预警
{{ dash.sustain_warn }}
接近维持考核底线
职级维持危险
{{ dash.sustain_danger }}
可能降级,需立即辅导

晋升路径明细 按基本法考核 · 达标优先排序 · 共 {{ dash.promo_paths.length }} 人

暂无成员考核数据
姓名所属现职级晋升目标考核项达标情况状态
{{ p.name }} {{ p.org_name }} {{ p.rank_name }} {{ p.next_rank_name || '已是最高职级' }} {{ it.label }} {{ it.ok === null ? '○' : it.ok ? '✓' : '✗' }} — 可晋升 维持危险 维持预警 进行中

客户跟踪情况表 共 {{ tracking.list.length }} 个客户 · 逾期/预警排在前面 · 建档→约访→一面→邀约→到场→成交,每月复盘

暂无客户
{{ c.name }} {{ c.status }} 约定 {{ c.next_visit_date }} 跟进,已过期 已 {{ c.days_since_visit }} 天未跟进 从未跟进 归属:{{ c.owner_name }} · {{ c.stage }} · {{ c.golden_stage }}
编号姓名性别详细地址出生年月日所购险种客户信息汇总第一次第二次第三次第四次第五次
{{ c.customer_no }} {{ c.name }} {{ c.gender || '—' }} {{ c.address || '—' }} {{ c.birthday || '—' }}
暂无已确认保单
{{ p }}
{{ t }}
{{ c.note || '' }}
来源:{{ c.source || '—' }} · 星级:{{ c.star_level > 0 ? c.star_level + ' 星' : '未评级' }} · 累计跟进 {{ c.visit_count }} 次(近30天 {{ c.visit_30d }} 次)

30天未跟进客户预警 共 {{ alerts.uncontacted_customers.length }} 个

暂无未跟进预警
客户归属最近拜访未跟进
{{ c.name }} {{ t }} {{ c.owner_name }} {{ c.last_visit_date || '从未拜访' }} {{ c.days_uncontacted }} 天

客户列表 共 {{ customers.length }} 人 · 随数据范围自动变化

姓名电话阶段标签归属操作
{{ c.name }}{{ c.phone }} {{ c.stage || '线索' }} {{ t }} {{ c.owner_name }}
暂无客户数据

保单台账 按客户聚合 · 共 {{ ledger.total }} 户 · 点击行查看家庭保单全景

暂无台账数据(仅统计已确认且挂客户的保单)
客户归属人保单数年缴保费合计(元)保额合计(元)险种最近缴费日
{{ r.name }}{{ r.owner_name }}{{ r.policy_count }} {{ r.total_premium }}{{ r.total_coverage }} {{ t }} {{ r.nearest_payment || '—' }}
应续保单
{{ renewals.summary.due_count }}
{{ renewals.month }}
已缴费
{{ renewals.summary.paid_count }}
当月
续期达成率
{{ renewals.summary.rate }}%
已缴 / 应续
失效预警
{{ renewals.summary.overdue_60d }}
超60天未缴
本月跟进
{{ renewals.summary.follow_count }}
催收跟进条数

应续清单 共 {{ renewals.total }} 件 · 缴费日落在 {{ renewals.month }} · 红色为宽限期待催缴

该月暂无应续保单
客户保单号产品年缴保费(元)缴费日状态归属人操作
{{ r.customer_name || '—' }} {{ r.policy_no || '—' }} {{ r.product_name }} {{ r.annual_premium }} {{ r.next_payment_date }} 宽限期 {{ -r.days_left }} 天 {{ r.status }}
最近跟进 {{ r.last_follow.date }} · {{ r.last_follow.result }}
{{ r.owner_name }}

转介绍 共 {{ referrals.total }} 条 · 状态随成交推进

暂无转介绍记录
介绍人客户被介绍客户日期状态归属人备注操作
{{ r.referrer_name }}{{ r.customer_name }}{{ r.date }} {{ r.status }} {{ r.owner_name }} {{ r.note || '—' }}

活动列表

暂无活动,点击「新建活动」开始
{{ ev.name }} {{ ev.event_date }} {{ ev.location }}
邀约 {{ ev.invited }} 到场 {{ ev.attended }} 签单 {{ ev.signed }}
{{ ev.note }}

嘉宾管理 {{ events.current.name }} · {{ events.current.event_date }}

请先选择左侧活动

保单体检 独立模式 · 不关联客户,适合还没建客户档案的场景

仅支持电子版 Word/PDF;AI 抽取结果需人工确认
状态保单号公司产品险种保额(元)年保费(元)缴费期保障期被保险人受益人操作
{{p.confirmed ? '已确认' : '待确认'}}已承保 {{p.policy_no || '—'}} {{p.company}}{{p.product_name}}{{p.insurance_type}} {{p.coverage_amount ?? '—'}}{{p.annual_premium ?? '—'}} {{p.payment_period}}{{p.coverage_period}} {{p.insured}}{{p.beneficiary || '—'}}
暂无保单,点击「上传保单」开始

体检报告(完备度 {{detail.report.score}} 分 / 保单 {{detail.report.policy_count}} 份 / {{detail.report.generated_at}})

险种份数总保额(元)年缴保费(元)
{{s.type}}{{s.count}}{{s.total_coverage}}{{s.total_premium}}

保障缺口

类别现状缺口金额通用标准建议
{{g.category}}{{g.current}} {{ g.gap_amount ? fmtWan(g.gap_amount) : '—' }} {{g.standard}}{{g.advice}}
核心险种配置齐全,无明显缺口
缴费压力:年缴保费合计 {{ detail.report.premium_burden.annual_premium }} 元, 占年收入 {{ (detail.report.premium_burden.ratio*100).toFixed(1) }}%({{ detail.report.premium_burden.level }}) {{ detail.report.premium_burden.note }}

风险提醒

  • {{r.detail}}
暂无风险提醒

方案PK 独立模式 · 不关联客户,适合方案初步筛选

勾选 2–5 份已确认的同险种方案
状态公司产品险种关键信息操作
{{p.confirmed ? '已确认' : '待确认'}} {{p.company}}{{p.product_name}}{{p.insurance_type}} {{Object.entries(p.fields).slice(0,3).map(([k,v]) => v).join(' / ')}}
暂无方案,点击「上传方案」开始

方案对比({{detail.pk.insurance_type}})

对比维度{{c.company}}
{{c.product_name}}
{{d.label}} {{c.cells[d.key].text || '—'}}

成员列表 共 {{ members.length }} 人

姓名角色职级所属组织客户数30天拜访操作
{{ m.name }}{{ m.role_name }} {{ m.rank_name || '—' }} {{ m.org_name }} {{ m.customer_count }}{{ m.visit_count_30d }}

成员业绩 已承保单据 · 共 {{ perf.total_count }} 件 / 年缴保费 {{ perf.total_premium }} 元

暂无出单记录,在保单列表点「承保」登记出单
排名成员承保件数年缴保费(元)
{{ (perfPage - 1) * 15 + i + 1 }}{{ r.name }}{{ r.count }}{{ r.premium }}

近7天零拜访成员 需主管关注

全员均有拜访,暂无预警
姓名所属组织
零拜访 {{ m.name }}{{ m.org_name }}

晋升考核看板 国寿收展基本法B版口径 · M值={{ perfBoard.m_value }}元 · FYC≈年缴保费×{{ perfBoard.fyc_rate }}(演示口径)

暂无数据
成员职级当月FYC / 件数责任额达成 晋升差距(近3月)维持考核操作
{{ r.name }}
{{ r.org_name }} · 签约{{ r.tenure_months }}个月
{{ r.rank_name }}
{{ r.series }}系列
{{ r.m_fyc_m }}M({{ r.m_fyc }}元)
{{ r.m_cases }} 件
责任额 {{ r.quota_m }}M
{{ r.quota_rate }}%
{{ r.promo.note || '—' }} {{ r.sustain.level==='ok' ? '维持达标' : (r.sustain.level==='warn' ? '接近降级线' : '降级预警') }}
{{ r.sustain.summary }}

委托报酬估算 基本法第六章公式 · 演示口径(FYC≈年缴保费×{{ comm.fyc_rate }},续期佣金×2%估算),非真实发佣依据

团队合计:{{ comm.team_total }} 元 {{ s.label }} {{ s.amount }}
暂无数据
成员职级当月FYC达成率报酬明细合计(元)
{{ r.name }} {{ r.rank_name }} {{ r.m_fyc_m }}M
{{ r.m_fyc }}元
{{ r.quota_rate }}%
{{ it.label }} {{ it.amount }} 元 ({{ it.note }})
本月无适用报酬项目
{{ r.total }}

目标管理 月度目标 vs 实际承保 · 冲刺/奖励门槛/保级提醒 · M值={{ goalBoard.m_value }}元(演示口径)

本月还剩 {{ goalBoard.days_left }} 天 提醒 {{ goalBoard.remind_count }} 人
暂无数据
成员职级目标 FYC / 件数实际达成提醒操作
{{ r.name }}
{{ r.org_name }}
{{ r.rank_name }} {{ r.goal_fyc }} 元 / {{ r.goal_cases }} 件 未设定
{{ r.actual_fyc }} 元({{ r.actual_fyc_m }}M)· {{ r.actual_cases }} 件
{{ r.rate }}%
{{ t.level==='danger' ? '🔴' : (t.level==='warn' ? '🟡' : (t.level==='ok' ? '🟢' : '⚪')) }} {{ t.text }}

活动量看板 {{ actBoard.week_start }} ~ {{ actBoard.week_end }} · 本周电话/面谈/陪访

{{ actBoard.week_start }}
暂无数据
成员组织电话 达成/目标面谈 达成/目标陪访 达成/目标操作
{{ r.name }}{{ r.org_name }} {{ r.calls }} / {{ r.calls_target }} {{ r.calls_rate }}% {{ r.meetings }} / {{ r.meetings_target }} {{ r.meetings_rate }}% {{ r.accompany }} / {{ r.accompany_target }} {{ r.accompany_rate }}%

早会培训 {{ trainings.month }} · 共 {{ trainings.total }} 场

该月暂无场次
日期主题类型讲师/组织者应到实到参会率操作
{{ t.date }}{{ t.title }}{{ t.type }} {{ t.organizer }}{{ t.expected }}{{ t.checked }} {{ t.rate }}%

行事历

{{ calMode==='month' ? cal.month : calMode==='week' ? calWeekLabel : cal.selected }}
筛选:{{ cal.filter_label }} {{ t }}
{{ w }}
{{ +ds.slice(8) }}日 周{{ '一二三四五六日'[(new Date(ds + 'T00:00:00').getDay() + 6) % 7] }}
全天
{{ it.title }}
{{ String(h).padStart(2, '0') }}:00
{{ it.time }} {{ it.title }}
{{ cal.month }}
{{ w }}
{{ c.day }}

{{ cal.selected || '选择日期' }} 当日 {{ calDayItems.length }} 条

当日无安排
{{ it.type }}{{ it.time }}{{ it.title }} (已完成) (已过期未完成)
{{ it.sub }}
{{ it.note }}
{{ it.grace_left > 0 ? '已过缴费日,宽限期剩 ' + it.grace_left + ' 天' + (it.grace_left <= 15 ? ',立即催缴!' : '') : '宽限期已满,保单可能失效!' }}

本月汇总 {{ cal.month }} · 共 {{ cal.items.length }} 条

{{ t }} {{ calTypeCount(t) }} 计划完成 {{ calDoneCount }}/{{ calTypeCount('计划') }}

本月未完成拜访计划 {{ calPending.length }} 条 · 点击定位到当日

本月计划全部完成,或还没有安排计划
{{ it.date }} · {{ it.title }}
{{ it.sub }}

知识库 邀约/面见/促成话术与方法论 · 全员可读

暂无知识条目
标题分类标签创建人时间操作
{{ k.title }} {{ k.category }} {{ t }} {{ k.created_by_name }} {{ fmtTime(k.created_at) }}
暂无历史对话
{{ s.title }} ✕
AI助理 基于你的客户/跟进/保单数据回答 · 数据不出系统 · 有每日用量保护
点左侧「+ 新对话」开始
可以问我:哪些客户该跟进了 / 某客户怎么推进 / 帮我写条跟进话术
承保件数
{{ rpt.totals.cases }}
{{ rpt.from }} ~ {{ rpt.to }}
年缴保费合计
{{ rpt.totals.premium }}
元 · 已承保单据
FYC 合计
{{ rpt.totals.fyc }}
元 · 演示口径

多维业绩报表 时间桶 × 分组 · 数据范围跟随角色

至
该区间暂无承保数据
分组件数年缴保费(元)FYC(元)时间桶明细
{{ r.label }}{{ r.cases }}{{ r.premium }}{{ r.fyc }} {{ k }}:{{ b.cases }}件 / FYC {{ b.fyc }}
质检报告
{{ qcSummary.total_checked }}
命中敏感词的抽检记录
违规数
{{ qcSummary.violations }}
需整改
级别分布(按命中词最高级)
高 {{ qcSummary.by_level['高'] }} / 中 {{ qcSummary.by_level['中'] }} / 低 {{ qcSummary.by_level['低'] }}
违规报告分级
近7天新增
{{ qcSummary.recent7d }}
质检报告

质检报告 拜访记录 / AI对话敏感词抽检 · 命中即记违规

暂无质检报告,点击「发起抽检」开始
时间来源被检人质检人结果命中词内容摘录
{{ fmtTime(r.created_at) }} {{ r.source_type === 'visit' ? '拜访记录' : 'AI对话' }} {{ r.target_user_name }}{{ r.inspector_name }} {{ r.result }} {{ h.word }} {{ r.content }}

敏感词库 租户级词表 · 抽检时做子串匹配

敏感词级别创建时间操作
{{ w.word }} {{ w.level }} {{ fmtTime(w.created_at) }}

佣金对账批次 保司佣金单 × 系统保单按保单号+归属人核对

暂无批次,点击「导入佣金单」上传保司 xlsx
批次期间文件名明细数已匹配异常上传人时间操作
#{{ b.id }}{{ b.period }} {{ b.filename }} {{ b.total }}{{ b.matched }} {{ b.mismatched }} {{ b.uploader_name }}{{ fmtTime(b.created_at) }}

批次明细 #{{ crItems.batch ? crItems.batch.id : '' }} · {{ crItems.batch ? crItems.batch.filename : '' }}

暂无明细
保单号业务员产品金额(元)核对状态
{{ it.policy_no }}{{ it.agent_name }} {{ it.product_name || '—' }}{{ it.amount }} {{ it.status }}

API 接入(AI agent / 第三方系统) Key 权限 = 你本人的数据范围与功能权限 · 完整凭证只在创建时显示一次

请立即复制保存(两项凑齐才能换 token,关闭后不再显示):
AppKey {{ apiKeys.created.key }}
AppSecret {{ apiKeys.created.secret }}
用途Key 前缀作用域创建时间最近使用状态操作
{{ k.name }} {{ k.prefix }}… {{ scopeText(k.scopes) }} {{ k.created_at }} {{ k.last_used_at || '从未使用' }} {{ k.revoked ? '已吊销' : '有效' }}
{{ apiKeys.list.length ? '没有有效的 Key(勾选上方"显示已吊销"查看历史)' : '还没有 API Key,生成一个即可让外部 AI 调用本系统' }}

全团队 Key 管理员可吊销任意一把 · 共 {{ allKeys.list.length }} 把

归属人用途Key 前缀作用域创建时间最近使用状态操作
{{ k.user_name }} {{ k.name }} {{ k.prefix }}… {{ scopeText(k.scopes) }} {{ k.created_at }} {{ k.last_used_at || '从未使用' }} {{ k.revoked ? '已吊销' : '有效' }}
全团队还没有 API Key

agent 调用记录 {{ (me.user && (me.user.role==='owner' || me.user.role==='manager')) ? '全团队' : '我的 Key' }} · 共 {{ agentCalls.total }} 条

时间Key身份代调方法接口结果
{{ c.created_at }} {{ c.key_name }} {{ c.user_name }} 代 {{ c.act_as_name }}— {{ c.method }} {{ c.path }} {{ c.status_code === 200 || c.status_code === 0 ? '成功' : c.status_code }}
还没有调用记录
第 {{ agentCalls.page }} / {{ Math.max(1, Math.ceil(agentCalls.total / agentCalls.size)) }} 页
调用方式一:AppKey + AppSecret 换 token(飞书式,推荐对外提供)
curl -X POST http://服务器地址:8300/api/open/token -H "Content-Type: application/json" -d '{"app_key":"你的AppKey","app_secret":"你的AppSecret"}'
拿到 access_token(2 小时有效)后:curl -H "Authorization: Bearer access_token" http://服务器地址:8300/api/team/dashboard, 过期后重新换即可。Secret 泄露可点「重置Secret」立即作废旧值。
调用方式二:X-API-Key 直连(简单场景)
curl -H "X-API-Key: 你的Key" http://服务器地址:8300/api/team/dashboard; 系统内所有 /api/* 接口两种凭证都支持,权限与网页版一致;只读凭证写操作会被拒绝(403)。
中台代调:平台级 Key 加请求头 X-Act-As: 成员手机号 即可以该成员身份调用,审计同时记录 Key 主体与代调目标。
调用方式三:远程 MCP(Kimi Code / Claude 等)
MCP 地址 http://服务器地址:8300/mcp,请求头带 X-API-Key 或 Authorization: Bearer access_token; 也可本地 stdio:python -X utf8 mcp_server.py。 共 8 个工具:whoami / get_cockpit / list_customers / get_customer_detail / list_team_members / list_today_schedules / list_renewal_alerts / add_visit(写工具需 write 作用域)。详见 docs/AGENT_ACCESS.md。

AI 大模型设置 全团队所有 AI 功能共用 · 更换立即生效

当前生效:{{ aiModel.current }}
模型列表来自你的 API Key 实际可用模型。不同模型单价不同:轻量模型更省钱,适合识图/字段抽取等简单任务;旗舰模型效果更好,适合 AI助理对话、报告生成。 更换后 AI助理、保单体检、方案PK、AI识图等全部 AI 功能统一使用新模型。

语音识别(ASR)设置 语音速记转写 · 未配置时使用演示 Mock

识别引擎
服务地址 模型
API Key 当前状态:{{ asrCfg.configured ? '已配置(真实转写)' : '未配置(演示 Mock)' }}
使用阿里百炼通义千问 Qwen3-ASR-Flash(识别快、支持中英文):到百炼控制台 bailian.console.aliyun.com 开通并创建 API-KEY 填在这里即可,保存后立即生效。 单段录音最长 5 分钟(编码后 ≤10MB),超长请分段录制。服务地址/模型留空时自动用千问默认值。 清空 API Key 并保存可回退到演示 Mock。留空 API Key 输入框表示不修改已保存的 Key。
默认使用硅基流动 SenseVoiceSmall(中文效果好、有免费额度):到 siliconflow.cn 注册拿 API Key 填在这里即可,保存后立即生效。 接口为 OpenAI 兼容的 /audio/transcriptions,OpenAI Whisper、Groq 等服务商只需改服务地址和模型名。 清空 API Key 并保存可回退到演示 Mock。留空 API Key 输入框表示不修改已保存的 Key。

AI 用量统计 按 token 记账 · 共 {{ aiUsage.total }} 条

今日:{{ aiUsage.today_tokens }} tokens
本月:{{ aiUsage.month_tokens }} tokens
按人(本月):{{ u.name }} {{ u.tokens }}—
按功能(本月):{{ aiKindLabel(k.kind) }} {{ k.tokens }}—
暂无用量记录
时间用户功能内容模型输入输出合计
{{ fmtTime(r.created_at) }} {{ r.user_name }} {{ aiKindLabel(r.kind) }} {{ r.ref || '—' }} {{ r.model }} {{ r.prompt_tokens }} {{ r.completion_tokens }} {{ r.total_tokens }}
第 {{ aiUsage.page }} / {{ Math.ceil(aiUsage.total / aiUsage.size) }} 页 · 共 {{ aiUsage.total }} 条

账号管理 团队登录账号 · 停用后无法登录

姓名手机号角色部门名下客户状态创建时间操作
{{ a.name }} {{ a.phone }} {{ a.role_name }} {{ a.org_name }} {{ a.customer_count }} {{ a.status==='active' ? '正常' : '已停用' }} {{ fmtTime(a.created_at) }} —

权限管理 角色 × 功能点矩阵 · 保存后立即生效 · 每次变更记入操作日志

数据范围不受本矩阵影响,始终按角色控制:负责人全团队 / 主管本组及下级 / 业务员仅本人。 团队负责人恒为全量权限(不可改,防止把自己锁死);勾选只控制「功能能不能用」。 当前为只读视图,仅团队负责人可修改。
分组功能点 团队负责人 主管 业务员

操作日志 最近 {{ auditLogs.length }} 条 · 按数据范围过滤

暂无操作记录
时间操作人动作对象详情
{{ fmtTime(a.created_at) }} {{ a.user_name }} {{ actionLabel(a.action) }} {{ entityLabel(a.entity) }}#{{ a.entity_id }} {{ fmtDetail(a.detail) }}

系统更新 从 Gitee 拉取最新代码并自动重启 · 更新前自动备份数据库(滚动保留 10 份)

{{ upd.result.text }}{{ upd.result.ts }} ✕
⚠ 当前分支为「{{ upd.info.branch }}」,不是 master!一键更新仅在 master 分支上使用,否则可能拉错代码。
请先在服务器上执行:git checkout master && git pull --ff-only
当前版本:v{{ sysVer.version || '—' }}
当前 commit:{{ upd.info.current_commit || '—' }}
当前分支:{{ upd.info.branch || '—' }}
检查失败:{{ upd.checkErr }}
提示:{{ upd.checkHint }}
正在重启服务,请勿关闭页面…(最长等待 4 分钟)
更新日志(update_web.log 末尾):
{{ upd.log }}