请先登录管理员账号

去登录
您有 {{ pendingUsers.length }} 条待审核的注册申请,请点击左侧「注册审核」及时处理

数据概览

当前营业日:{{ stats.businessDate }} (营业月 {{ stats.businessYearMonth }},与成交 / 财务一致)

本营业日成交单数
{{ stats.businessDayOrders }}
归属日 = 订单「营业日期」
本营业日报价条数
{{ stats.businessDayQuotations }}
有日期按日期;否则按创建时刻折算营业日

基础数据(全库累计)

总用户数
{{ stats.totalUsers }}
↑ 较上月 +{{ stats.userGrowth }}%
总产品数
{{ stats.totalProducts }}
↑ 较上月 +{{ stats.productGrowth }}%
报价单总数(已落库)
{{ stats.totalQuotations }}
↑ 较上月 +{{ stats.quotationGrowth }}%
待审核用户
{{ stats.pendingUsers }}
需要处理

用户增长趋势

产品分类分布

注册审核

暂无待审核的注册申请

#{{ u.id }}
用户名
{{ u.username }}
申请时间
{{ formatDate(u.createdAt) }}
用户名 申请时间 操作
{{ u.username }} {{ formatDate(u.createdAt) }}
Broadcast

通知管理

向指定用户、岗位或当前在线技术发送站内通知;发送记录供审计与排查。权限与接口一致:notifications:broadcast 或管理员。

手动发送通知

无匹配用户
输入关键词后显示候选用户
已选择用户ID:{{ notificationForm.targetValue }}
暂无岗位可选
已勾选:{{ notificationTargetPositions.length ? notificationTargetPositions.join('、') : '无' }}
{{ notificationSendMessage }}

发送记录

时间 发送人 目标 标题 接收数
{{ formatNotificationBroadcastTime(row.createdAt) }} {{ row.senderUsername }} {{ formatNotificationBroadcastTarget(row) }} {{ row.title }} {{ row.recipientCount }}
暂无记录
第 {{ notificationBroadcastPage }} / {{ notificationBroadcastTotalPages || 1 }} 页

导入导出日志

加载中…
暂无日志记录
日志 #{{ log.id }}
{{ log.status === 'success' ? '成功' : log.status === 'failed' ? '失败' : '部分成功' }}
操作人
类型
{{ log.operationType === 'import' ? '导入' : '导出' }}
目标
记录
总 {{ log.recordCount || 0 }} / 成 {{ log.successCount || 0 }} / 败 {{ log.errorCount || 0 }}
状态
文件
时间
{{ formatDate(log.createdAt) }}
ID 操作人 操作类型 目标类型 文件名 总记录数 成功数 失败数 状态 操作时间 操作
#{{ log.id }} {{ log.username }} {{ log.operationType === 'import' ? '导入' : '导出' }} {{ log.targetType === 'products' ? '产品' : log.targetType === 'quotations' ? '报价单' : log.targetType === 'orders' ? '订单' : log.targetType === 'inventory' ? '库存' : log.targetType === 'finance' ? '财务' : log.targetType === 'users' ? '用户' : log.targetType === 'logs' ? '日志' : log.targetType }} {{ log.fileName || '-' }} {{ log.recordCount || 0 }} {{ log.successCount || 0 }} {{ log.errorCount || 0 }} {{ log.status === 'success' ? '成功' : log.status === 'failed' ? '失败' : '部分成功' }} {{ formatDate(log.createdAt) }}
加载中…
暂无日志记录

登录审计

ID 时间 用户名 用户ID 结果 说明 IP UA
#{{ row.id }} {{ formatDate(row.createdAt) }} {{ row.username }} {{ row.userId != null ? row.userId : '—' }} 登录成功 登出 失败 {{ loginAuditDetailLabel(row.detail) }} {{ row.ip || '—' }} {{ row.userAgent || '—' }}
加载中…
暂无记录

权限变更审计

ID 时间 操作者 授权类型 授权主键 变更前(摘要) 变更后(摘要) IP
#{{ row.id }} {{ formatDate(row.createdAt) }} {{ row.actorUsername }} #{{ row.actorUserId }} {{ row.granteeType }} {{ row.granteeKey }} {{ formatPermissionCodesBrief(row.codesBefore) }} {{ formatPermissionCodesBrief(row.codesAfter) }} {{ row.ip || '—' }}
加载中…
暂无记录
📁

归档导出

选择归档年月并勾选需要导出的模块,系统会按顺序依次下载对应的 Excel 文件到本地。

归档月份

建议在每月月结完成后执行,如当月最后一天或下月月初。

选择要导出的模块
可按需勾选模块;未勾选的模块本次不会导出。
业务数据
库存与财务
系统日志
导出的 Excel 文件会在浏览器中依次下载。推荐放到 备份/年/月 目录,便于长期归档与查找。
System Configuration

后台修改

统一管理各系统的默认数值、报价文案、下拉选项与岗位字典。配置保存后会立即影响对应业务系统。

自动保存 失焦即生效
Step 1

默认参数与报价视觉

这些配置会影响报价单展示、订单默认费用和业务日归属。

报价报价系统

报价表默认文案与样式(某行可单独设颜色与字号,留空为默认/用全局)

报价表行背景(用于区分各行,提升可读性;留空则使用系统默认样式)

文案 内容 颜色 字号
质保说明
平台信息技术费一行
发货/发票默认(诚信行)
系统/调试默认(经营行)
总价行备注默认

成交成交系统

请输入有效时间,格式为 HH:mm(例如 17:30、18:00、19:00)
该时间用于业务日分界:达到该时间后新转成交订单归属次日,同时影响订单页“今日统计/本月统计”口径;仅影响新建成交订单,不回溯历史订单。
有 SN 台账的产品:报价转成交、新建成交单时不强制选满 SN;配货出库时在订单中补绑。配置键 order.defer_stock_fulfillment。关闭时若存在在库 SN,创建订单将要求 SN 与扣库数量一致。
该策略用于「技术姓名为空」售后提醒,保存后立即生效。
用于「加急发且未分配技术」订单提醒,保存后立即生效。
Step 2

业务下拉选项与岗位字典

这些选项会出现在成交、售后、人员岗位等业务表单中。

选项成交系统 · 下拉选项

{{ opt.name }}

售后售后系统

{{ opt.name }}

岗位岗位与人员类选项(字典)

此处仅维护人员相关下拉选项;账号新增、编辑与删除请到左侧「用户与人员管理」。

{{ opt.name }}

密保忘记密码 · 密保题库

员工在个人中心绑定其中 3 题并填写答案;忘记密码时答对 2 题即可重置。已被用户选用的题目不可删除,可改为停用。

文案 排序 启用 操作
{{ row.text }} {{ row.sortOrder }} {{ row.enabled ? '是' : '否' }}

暂无题目,请先添加。

用户与人员管理

岗位与列表中的「角色(展示)」:店长、副店长、财务、客服主管、技术主管与岗位同名;客服、技术为普通用户。实际权限仍以编辑时的「角色」下拉及服务器校验为准。

暂无用户记录
{{ u.username }}
{{ getAccountRoleLabel(u) }} 管理员(无需审核) {{ u.status === 'approved' ? '已通过' : '待审核' }}
#{{ u.id }}
岗位
{{ u.position || '-' }}
创建时间
{{ formatDate(u.createdAt) }}
查看主页 无权按岗位层级操作
ID 用户名 岗位 角色(展示) 状态 创建时间 操作
{{ u.id }} {{ u.username }} {{ u.position }} - {{ getAccountRoleLabel(u) }} 管理员(无需审核) {{ u.status === 'approved' ? '已通过' : '待审核' }} {{ formatDate(u.createdAt) }}
无权按岗位层级操作
暂无人员记录
{{ p.name }}
#{{ p.id }}
类别
{{ p.category }}
电话
备注
{{ p.notes || '-' }}
类别 姓名 电话 备注 操作
{{ p.category }} {{ p.name }} {{ p.phone || '-' }} {{ p.notes || '-' }}
暂无人员记录

权限管理

为角色 / 岗位 / 指定账号勾选接口权限码;保存后写入 permission_grants,与现有角色规则取并集。

当前为店长代管:仅可为副店长、财务、客服主管、技术主管、客服、技术 等岗位配置权限;不可操作系统角色与指定账号;系统级与后台管理类权限由管理员维护。

以下权限码已由管理员配置并保留,您无法取消:{{ permissionPreservedForbiddenCodes.join('、') }}

筛选与授权对象

暂无岗位字典,请在「后台编辑 → 用户岗位」维护

用户列表为空,请先在用户管理中创建账号

权限码列表

已选 {{ permissionSelectedCodes.length }} / {{ permissionDefinitions.length }} 项

当前列表显示 {{ permissionFilteredDefCount }} 项(总数 {{ permissionDefinitions.length }})

{{ grp.label }}

暂无权限定义,请执行 npm run seed:permissions

当前筛选下无权限项,请更换「业务系统」

无匹配项,请调整搜索关键词或取消「仅看已勾选」

{{ toastMessage }}