COLORPRO POS

{{ loginError }}

☁️ V2云端离线 — POS照常使用,数据联网后自动同步
扫码出货已开启 · 无需切页 · 仅整单实际交付后扫描 · {{ dispatchLastResult }}
仅补原记录,禁止再次付款

暂无登记;刷新不会执行退款 / Sem registos

原换货单实退 MZN登记人状态核验
{{ r.order_no }}{{ F2(r.declaration.amount_cents/100) }}{{ r.declaration.cashier }} {{ r.state==='SAVED' ? '原PAY已保存,须查审核/中央状态' : r.state==='REVIEWED' ? '核实依据已存,待补记录' : '已登记,待另一人核实' }}
Cliente/会员:
{{ m.name }} {{ m.phone }} {{ m.levelLabel }}
✓ {{ quoteState.member.name }} {{ quoteState.member.levelLabel }} 积分:{{ quoteState.member.points }} 本端积分/等级待核验 / Pontos e nível locais por reconciliar · 系统暂停兑换及手工充值/调账 / Resgate, recargas e ajustes suspensos
* Membro obrigatório / 必须输入会员号
{{ quoteState.memberError }}
{{ p.name }}
{{ p.barcode }}
{{ F(p.sellPrice) }}
Buscar produtos acima / 搜索商品

Carrinho / 购物车

{{ item.name }}
{{ F(item.sellPrice) }}/un
{{ F(item.sellPrice * item.qty) }}
Carrinho vazio / 购物车为空
Subtotal/小计: {{ F(cartTotal) }} MZN
IVA (16%): {{ F2(cartIva) }} MZN
Total/合计: {{ F2(cartGrandTotal) }} MZN
⚠️ 今日开盘未对账 / Conferência de abertura pendente
{{ openingCheckStatus.pendingCount }} 个账户待对账,对应支付方式已冻结 / {{ openingCheckStatus.pendingCount }} conta(s) pendente(s) — pagamentos bloqueados
🚫 V2 失联 — 所有支付方式已冻结 / V2 Offline — Todos os pagamentos bloqueados
无法确认今日对账状态,为安全起见暂停收款。系统每 15 秒自动重试 / Tentando reconectar a cada 15s
{{ openingCheckStatus.v2Error }}

📋 挂单 / Cotações Pendentes {{ activePending.length }}

加载中...
暂无挂单 / Nenhuma cotação pendente

{{ cashierState.quote.quoteNo }}

{{ cashierState.quote.memberName }} - {{ cashierState.quote.memberPhone }}

{{ cashierState.quote.status }}
换货 / Troca 原单 / Original: {{ exchangeInfo.origOrder }}
退回商品 / Devolvido: {{ F(exchangeInfo.returnAmt) }} MZN 新商品 / Novo: {{ F(exchangeInfo.newAmt) }} MZN
✓ 已打印 / Impresso ⚠️ 未打印小票 / Talão não impresso 建议先打印交客户核对 / Imprima antes de cobrar
Artigo/商品 Preço/单价 Qtd/数量 Subtotal/小计
{{ it.product_name }} {{ it.quantity }}
商品总额/Subtotal: {{ F2(cashierState.quote.totalAmount) }} MZN
优惠金额/Desconto: -{{ F2(cashierState.quote.totalAmount - cashierState.discountedTotal) }} MZN
IVA (16%): {{ F2(cashierIva) }} MZN (含税参考)
IVA (16%): {{ F2(cashierIva) }} MZN
Sem IVA / 不含税 (Base price)
{{ F2(cashierState.payableAmount) }} MZN
Base {{ F2(cashierNetBase) }} + IVA {{ F2(cashierIva) }} = {{ F2(cashierPayable) }} MZN
Valor a cobrar/应收金额: MZN (Desconto/折扣: {{ F(cashierState.quote.totalAmount - cashierState.discountedTotal) }} MZN)
选择收款账号 / Conta de recebimento:
{{ acct.accountNumber }}
{{ acct.holderName || acct.bankName || '' }}
{{ F(accountDailyUsage[acct.id] || 0) }}/{{ F(acct.dailyLimit) }} ⚠
★ Padrão/默认
合计/Soma: {{ F2((cashierState.combinedAmount1||0)+(cashierState.combinedAmount2||0)) }} / 应付/A pagar: {{ F2(cashierPayable) }} MZN ✓ ✗ 金额不符

Pagamento confirmado! / 收款成功! Pontos/积分: +{{ cashierState.payResult.points_earned }} Nível UP / 升级! → {{ cashierState.payResult.new_level }}

⚠️ 本单未打印小票,可从"销售记录"补打 / Talão não impresso — reimprima em "Histórico"

{{ cashierState.error }}

{{ membersState.searchError }}

{{ membersState.foundMember.name }}

{{ membersState.foundMember.levelLabel }}

跨端会员对账待核验:积分、余额、等级和累计消费暂保留本端值;资料冲突及未完成的中央登记待核验,请勿跨端兑换或手工覆盖。 / Reconciliação pendente. Valores locais; diferenças e registos novos aguardam verificação. Não resgatar entre terminais nem substituir valores manualmente. 系统已暂停积分兑换、手工充值及积分/余额/等级修改;普通销售和交易自动积分继续。 / Resgate, recargas e ajustes manuais suspensos. Vendas e pontos automáticos mantidos.

Tel: {{ membersState.foundMember.phone }}
Tipo/类型: {{ membersState.foundMember.memberType === 'company' ? 'Empresa/公司' : 'Particular/个人' }}
Cidade/城市: {{ membersState.foundMember.city || '-' }}
NUIT: {{ membersState.foundMember.nuit || '-' }}
Contacto/联系人: {{ membersState.foundMember.contact || '-' }}
Tel 2/备用号: {{ membersState.foundMember.email || '-' }}
Registado em / 注册时间: {{ membersState.foundMember.createdAt }}

逐字段核实资料。保留本地后仍须中央核验,不会修改余额、积分或等级。 / Rever dados, sem alterar saldo, pontos ou nível.

处理中 / A processar…

Editar Membro / 编辑会员 — {{ membersState.foundMember.phone }}

🔍

Busque um membro pelo número de telefone

输入手机号搜索会员

{{ auditState.date }} 加载中... {{ auditState.records.length }} 单

审计日报 / Relatório de Auditoria — {{ auditState.report.date }}

商品金额与收退款分开核算;换货仅差额进入资金汇总。Mercadorias e liquidação separadas.

收据收退款(不含还款、支出) / Recebimentos e reembolsos dos recibos
方式 / Método实收 / Recebido实退 / Reembolsado净额 / Líquido
{{ m.payMethod }}{{ reportMoney(m.received) }}{{ reportMoney(m.refunded) }}{{ reportMoney(m.net) }}
{{ auditState.report.totalQuotes }}
报价单/Cotações
{{ auditState.report.confirmedCount }}
已确认/Confirmados
{{ reportMoney(auditState.report.confirmedTotal) }} MZN
{{ auditState.report.unconfirmedCount }}
待确认/Pendentes
{{ reportMoney(auditState.report.unconfirmedTotal) }} MZN
{{ auditState.report.refundCount }}
退回商品/Devoluções
{{ reportMoney(auditState.report.refundTotal) }} MZN
{{ reportMoney(auditState.report.netAmount) }}
商品净额/Vendas líquidas
FT: {{ auditState.report.ftCount }}笔
FT发票金额
{{ reportMoney(auditState.report.ftTotal) }} MZN
{{ auditState.report.ftCount }}笔
FT税额 IVA 16%
{{ reportMoney(auditState.report.ftTaxAmount) }} MZN
非FT金额
{{ reportMoney(auditState.report.nonFtTotal) }} MZN
{{ auditState.report.nonFtCount }}笔
废弃/Anulados
{{ auditState.report.voidCount }}
退回收银/Devolvidos
{{ auditState.report.returnToCashierCount || 0 }}

商品成交归类(换入单列,非实际收款) / Mercadorias; trocas separadas

{{ m.payMethod }} FT {{ m.count }}笔 {{ F(m.total) }} MZN {{ auditState.expandedMethodFt===mi ? '▲' : '▼' }}
时间单号 金额 FT
{{ (o.time || '').slice(11,16) }} {{ o.sn }} {{ F(o.amount) }} {{ o.ft ? 'FT' : '-' }}
{{ m.payMethod }} {{ m.count }}笔 {{ F(m.total) }} MZN

赊账 / Créditos

今日赊账
{{ auditState.report.creditCount }}笔
{{ reportMoney(auditState.report.creditTotal) }} MZN
新增欠款/Novas dívidas
{{ auditState.report.todayArrearCount }}笔
{{ reportMoney(auditState.report.todayNewArrears) }} MZN
欠款回收/Recuperação
{{ auditState.report.arrearRecoveryCount }}笔
{{ reportMoney(auditState.report.arrearRecovery) }} MZN
客户单号 金额时间
{{ a.customer }} {{ a.phone }} {{ a.orderNo }} {{ F(a.amount) }} {{ (a.time || '').slice(11,16) }}
回收明细 / Recuperações
客户 金额方式时间
{{ a.customer }} {{ F(a.amount) }} {{ a.method }} {{ (a.time || '').slice(11,16) }}

支出 / Despesas — {{ auditState.report.expenseCount }}笔 {{ reportMoney(auditState.report.totalExpenses) }} MZN

用途收款人 金额资金来源操作员
{{ e.purpose }} {{ e.recipient }} {{ F(e.amount) }} {{ e.fundSource }} {{ e.createdBy }}
{{ warning }}
商品成交−退回/Vendas−Devoluções
{{ reportMoney(auditState.report.netAmount) }} MZN
扣除支出/Após despesas
{{ auditState.report.finalNet == null ? '—' : reportMoney(auditState.report.finalNet) + ' MZN' }}
销售净额(还款不重复计销售)/Receita de vendas
{{ reportMoney(auditState.report.actualRevenue) }} MZN
实收含还款 / Recebido incl. dívida: {{ reportMoney(auditState.report.cashReceived) }} MZN · 实际退款 / Reembolsos pagos: {{ reportMoney(auditState.report.cashRefunds) }} MZN

未确认订单 / Pedidos pendentes ({{ auditState.report.unconfirmed.length }})

{{ u.sn }} {{ F(u.amount) }} MZN {{ (u.time || '').slice(11,16) }}

报价转化分析 / Análise de Conversão

| ~
{{ auditState.conversion.total }}
总报价 / Total
{{ auditState.conversion.conversionRate }}%
转化率 / Taxa
{{ Number(auditState.conversion.convertedAmount).toLocaleString() }}
成交金额 / Valor
{{ Number(auditState.conversion.unconvertedAmount).toLocaleString() }}
流失金额 / Perdido
已转化 / Convertidos ({{ auditState.conversion.converted }})
{{ q.quoteNo }} {{ Number(q.finalAmount).toLocaleString() }} MT
{{ q.memberName || '散客' }} · {{ q.payMethod }} · {{ (q.paidAt||'').substring(11,16) }}
无
未转化 / Não Convertidos ({{ auditState.conversion.unconverted }})
{{ q.quoteNo }} {{ Number(q.finalAmount).toLocaleString() }} MT
{{ q.memberName || '散客' }} · {{ q.status }}
无
{{ reason }}: {{ cnt }}
暂无待审计记录 / Nenhum registo para auditar
时间 单号/N.º 客户/Cliente 金额/Valor 商品/Artigos POS付款 确认状态 确认付款 操作/Ações

退换记录 / Devoluções e trocas

单号金额 方式原因 操作员时间
{{ rf.quoteNo }} {{ rf.payMethod }} {{ rf.note }} {{ rf.createdBy }} {{ (rf.receivedAt || '').slice(11,16) }}
{{ dispatchState.date }}
📦
整单实际交货后再扫码 / Leia após entregar todos os artigos

只记录交货,不再扣库存或收款;分批提货请勿使用。以页面结果为准,扫码枪响不代表保存成功。

逐单登记中,可继续扫码 / A registar...

{{ dispatchState.scanError || '扫描记录保存异常,请暂停扫码 / Erro ao guardar' }}

{{ scan.code }} · {{ scan.message }} · {{ ({queued:'排队/Na fila',sending:'提交中/A enviar',pending:'已保存,待同步/Guardado, a sincronizar',synced:'中央已同步/Sincronizado',failed:'同步异常,勿重复交货/Erro de sincronização',uncertain:'结果未确认/A verificar',unknown:'历史或同步状态待核验/A verificar'})[scan.state] || scan.state }}
{{ scan.response.memberName }} · {{ scan.response.dispatchedBy }} · {{ scan.response.dispatchedAt }} · {{ scan.response.items.map(i=>i.sku+' × '+i.quantity).join(';') }}

今日班次 / Equipe de Hoje

{{ roleLabels[role] }}:
未设定 / Não definido {{ u.name }}

📊 仓库KPI仪表盘 / KPI do Armazém

| 至 加载中...
{{ dispatchState.kpi.summary.total }}
总出货/Total
{{ dispatchState.kpi.summary.completed }}
已完成/Concluídos
{{ dispatchState.kpi.summary.completionRate }}%
完成率/Taxa
{{ dispatchState.kpi.summary.avgTotalMin }}min
均总时/Média total
{{ dispatchState.kpi.summary.avgPickMin }}min
均取货/Média recolha
{{ dispatchState.kpi.summary.pending + dispatchState.kpi.summary.picking }}
待处理/Pendentes

🏆 员工工作量对比 / Comparação de Funcionários

# 取货员 完成 件数 金额 占比 均速 最快 最慢
{{ i===0?'\u{1F3C6}':i+1 }} {{ pk.pickerName }} {{ pk.completed }} {{ pk.totalItems }} {{ pk.totalValue.toLocaleString() }} {{ pk.workloadPct }}% {{ pk.avgPickMin }}m {{ pk.fastestMin }}m {{ pk.slowestMin }}m

工作量占比 / Distribuição

{{ pk.pickerName }}
{{ pk.workloadPct }}%

暂无已完成出货数据 / Sem dados concluídos

📈 每日趋势 / Tendência Diária

{{ d.date }}
{{ d.completed }}
{{ d.avgPickMin }}m
选择多日范围查看趋势

⏰ 时段分布 / Distribuição Horária

{{ String(h.hour).padStart(2,'0') }}:
{{ h.count }}
{{ h.avgPickMin }}m

📦 订单规模 vs 出货速度 / Tamanho do Pedido

{{ sz.label }}
{{ sz.count }} 单
{{ sz.avgMin }}min
加载中...
暂无出货记录 / Nenhuma expedição
{{ rec.quoteNo }} {{ dispatchStatusLabel(rec.status) }} / {{ dispatchStatusLabelPt(rec.status) }}
{{ rec.memberName }} {{ rec.memberPhone }}
{{ rec.itemsSummary || '-' }}
{{ F(rec.totalAmount) }} {{ F(rec.finalAmount) }} MZN {{ F(rec.finalAmount || rec.totalAmount) }} MZN {{ rec.itemCount }}项
折扣/Desconto: -{{ F(rec.discountAmount) }} MZN (授权: {{ rec.discountBy }})
取货员: {{ rec.pickerName }} (分配: {{ rec.assignedBy }})
分配: {{ (rec.assignedAt || '').slice(11,16) }}
开始: {{ (rec.pickingStartedAt || '').slice(11,16) }}
完成: {{ (rec.dispatchedAt || '').slice(11,16) }}
取货中... / Em recolha...
✓ 已完成 / Concluído

Registrar Membro / 注册会员

{{ registerError }}

⚠

Aviso de Stock Insuficiente

库存不足警告

Produto/商品: {{ stockAlert.name }}
Stock atual/当前库存: {{ stockAlert.stock }}
Qtd necessária/需求数量: {{ stockAlert.need }}

O produto foi adicionado ao carrinho. Verifique o stock real.
商品已加入购物车,请确认实际库存情况。

⚠

Alerta de Operacao Anormal

操作异常警告

Membro/会员: {{ fraudAlert.member_name }} ({{ fraudAlert.member_phone }})
Operador/报价员: {{ fraudAlert.operator }}
Data/日期: {{ fraudAlert.date }}
Cotacoes hoje/今日报价: {{ fraudAlert.count }} vezes/次

O mesmo cliente ja tem {{ fraudAlert.count }} cotacoes hoje.
同一客户今日已开出 {{ fraudAlert.count }} 张报价单,请核实!

Autorização de desconto / 优惠授权

Código de autorização / 请输入优惠授权码:

{{ discountAuthModal.error }}

Crédito / 赊账授权

原价 / Total: {{ F2(cashierState.quote ? cashierState.quote.totalAmount : 0) }} MZN
应付 / A pagar (含IVA 16%): {{ F2(creditPayablePreview) }} MZN

{{ creditDiscountError }}

Código de autorização / 请输入优惠授权码:

{{ creditError }}

{{ reportPwError }}

{{ confirmForm.exchInfo ? (confirmForm.exchInfo.diff < 0 ? '确认退款 / Confirmar Devolução' : confirmForm.exchInfo.diff === 0 ? '确认换货 / Confirmar Troca' : '确认收款 / Confirmar Recebimento') : '确认收款 / Confirmar Recebimento' }}

{{ confirmForm.orderNo }} — {{ confirmForm.memberName }} — {{ F(confirmForm.amount) }} MZN

换货 / Troca 原单: {{ confirmForm.exchInfo.origOrder }}
退回 {{ F(confirmForm.exchInfo.returnAmt) }} 新品 {{ F(confirmForm.exchInfo.newAmt) }}

付款方式、账户及组合金额只读;审核不通过请退回上一级(收银)。 / Pagamento só de leitura. Se incorreto, devolver ao caixa.

{{ acct.accountNumber }}
{{ acct.holderName || acct.bankName || '' }}
{{ F(accountDailyUsage[acct.id] || 0) }}/{{ F(acct.dailyLimit) }} !
* Padrao/默认
该类型暂无收款账户 / Nenhuma conta deste tipo

原账户缺失,请退回上一级核对 / Devolver ao caixa

{{ a.accountNumber }} {{ a.holderName || '' }}
{{ a.accountNumber }} {{ a.holderName || '' }}
合计: {{ F(confirmCombinedSum) }} / 应付: {{ F(confirmFtTotal) }} MZN OK X
含税 IVA {{ F2(confirmForm.ivaAmount) }} MZN

{{ confirmError }}

废弃订单 / Anular Pedido

{{ voidForm.orderNo }}

{{ voidError }}

修改收款 / Editar Recebimento

付款信息不能在审计改写。未确认单请退回上一级(收银);已确认单须核账更正。 / Devolver ao caixa; confirmado exige reconciliação.

{{ editForm.orderNo }} — {{ F(editForm.ivaAmount) }} MZN (含IVA 16%)

{{ acct.accountNumber }}
{{ acct.holderName || acct.bankName || '' }}
* Padrao/默认
该类型暂无收款账户

{{ editError }}

退款 / Reembolso

{{ refundForm.orderNo }}

原始金额/Valor original: {{ F(refundForm.origAmount) }} MZN
已退/Já reembolsado: -{{ F(refundForm.alreadyRefunded) }} MZN
可退余额/Reembolsável: {{ F(refundForm.refundableMax) }} MZN

{{ refundError }}

退货 / Devolução

{{ returnForm.quoteNo }} — {{ returnForm.memberName }} {{ returnForm.memberPhone }}

⚠ 已超过退货期限 / Prazo de devolução expirado ({{ returnCheck.deadline }})
选择退货商品 / Selecione artigos:
{{ item.barcode }} — {{ item.productName }}
单价: {{ F(item.unitPrice) }} | 购买: {{ item.originalQty }} | 已退: {{ item.alreadyReturned }} | 可退: {{ item.returnableQty }}
{{ F(item.unitPrice * (item._returnQty || 0)) }} MZN
退货总额 / Total devolução: {{ F(returnTotal) }} MZN (含税)
客户当前欠款 / Dívida atual: {{ F(returnCheck.arrearRemaining) }} MZN
抵扣欠款 / Abater dívida: -{{ F(returnSplit.offset) }} MZN
现金退款 / Reembolso: {{ F(returnSplit.cashBack) }} MZN
✓ 全部抵扣欠款,无需退款 / Totalmente abatido

{{ returnError }}

分配取货员 / Atribuir Funcionário

{{ assignForm.quoteNo }}

已选 {{ assignForm.pickerIds.length }} 排队自动推荐 / Fila automática

暂无仓库工人 / Sem funcionários

{{ assignError }}

设定{{ roleLabels[roleSetupForm.role] }}

暂无员工 / Sem funcionários

授权验证 / Autorização

请输入排队管理授权码

{{ queueAuthError }}

收款账户管理 / Gestão de Contas

{{ acct.accountNumber }} ★ 默认
{{ acct.holderName }} · {{ acct.bankName }} {{ acct.note }}
限额: {{ acct.dailyLimit > 0 ? F(acct.dailyLimit) : '无限' }} 余额: {{ F(acct.currentBalance) }} MZN 费率: {{ (acct.defaultFeeRate*100).toFixed(1) }}% +{{ F(acct.defaultFeeFixed) }}
暂无账户 / Nenhuma conta

{{ acctMgmtEditId ? '编辑账户 / Editar' : '新增账户 / Nova Conta' }}

网页退货收银 / Devoluções aprovadas

网页审批不入账;POS确认后,退款、抵欠款及回仓一起在中央入账。断线仅恢复原请求,不重复付款。

{{ cashierReturns.error }}

中央已确认的原收据及退货依据;不是本机收银,不计入本机营业额。新退换货仍到网页办理,禁止再次收退款。

暂无匹配的跨端历史;不代表该单未收退款。

{{ h.order_no }} · 只读 / Apenas consulta

存在待核验依据,以中央原单为准。禁止据此再次收退款。{{ h.error || '' }}

暂无退货收银任务

{{ t.return_no }} · 原单 {{ t.order_no || '待核验' }}

{{ cashierReturnLabels[t.local_state] || '状态待核验' }}

中央已入账,本机镜像待恢复;禁止再次付款。

{{ t.error }}

退货合计 {{ cashierReturnMoney(t.amount) }};实退 {{ cashierReturnMoney(t.cash_back_amount) }};抵欠款 {{ cashierReturnMoney(t.offset_amount) }} MZN

方式 {{ t.refund_method || '待核验' }} · 审批 {{ t.approved_by || '待核验' }}

{{ t.refund_detail.note }}

{{ p.method }} {{ cashierReturnMoney(p.amount) }} MZN · {{ p.note }}

{{ i.barcode }} {{ i.name }} × {{ i.return_qty }} · {{ i.restock ? '回仓' : '不回仓' }}

FT:请核对并回收原发票。

🔄 待领取换货单 ({{ exchangePending.count }} 个)

暂无待领取的换货单
换货单号 原单号 退款 新单 差额 创建时间 操作
{{ t.exchange_no }} {{ t.original_order_no || '-' }} {{ t.return_amount == null ? '—' : Number(t.return_amount).toLocaleString('en', {minimumFractionDigits:2, maximumFractionDigits:2}) }} {{ t.new_amount == null ? '—' : Number(t.new_amount).toLocaleString('en', {minimumFractionDigits:2, maximumFractionDigits:2}) }} {{ t.difference > 0 ? '+' : '' }}{{ t.difference == null ? '—' : Number(t.difference).toLocaleString('en', {minimumFractionDigits:2, maximumFractionDigits:2}) }} {{ (t.created_at || '').slice(5, 16) }}
中央已办结 / Concluídas na central ({{ exchangePending.settled_count }})
原请求与核验记录已保留;未新建收银单,无需再次收退款。仅展示最近50条。
{{ t.exchange_no }} · 原单 {{ t.original_order_no }}
退回商品 {{ Number(t.return_amount).toFixed(2) }} / 换入商品 {{ Number(t.new_amount).toFixed(2) }} MZN · 差额 {{ Number(t.difference).toFixed(2) }} MZN
已停止领取重试;勿重复收退款 / Não cobrar nem reembolsar novamente
💡 客人走到哪个收银台就在哪里点"领取到本机"。领取后换货单会出现在"待处理报价"列表里。
领取中断后请选择“恢复原领取”,不要在另一端重复建单;恢复不会自动收退款或打印。

⏰ 未领取任务可能过期;已办结记录不得再次领取。状态冲突请保留原单核查。

同步失败 / Falha de sincronização 待收款确认 / Aguardar confirmação 待同步 / Pendente ({{syncQueueRecords.length}})

原收款尚未确认。确认后自动同步,请勿重复收款。 / Confirme o recibo original; não cobre novamente.

加载中...
无记录 / Sem registos
ID 类型 单号 金额 时间 重试 错误
#{{rec.id}} {{syncActionLabels[rec.action] || rec.action}} {{rec.orderNo}} {{rec.amount ? F(rec.amount) : '-'}} {{(rec.createdAt||'').slice(5,16)}} {{rec.retries}}/10 {{rec.error || '-'}}

打印失败 / Impressão falhou ({{failedPrints.length}})

仅补打单据,不重新收退款。刷新后可恢复;可能已出纸的记录须逐项核查。/ Apenas reimprimir, sem repetir pagamentos.

无失败记录 / Sem falhas
{{ item.label }}
{{ item.time }} — {{ item.error }}
可能已出纸,请检查 / Pode já ter impresso

Impressora / 打印机设置

本机打印设置只影响当前设备 / Apenas este dispositivo

{{ devicePrint.detail }}

以下为服务器设置,会影响其他终端;请使用上方本机设置。/ Definições partilhadas do servidor.
⚡ 推荐模式!通过Electron内置打印代理直接发送到USB热敏打印机。
Modo recomendado! Imprime via agente local integrado no Electron (USB).
{{ p.is_thermal ? '🖨️' : '📄' }}
{{ p.name }}
{{ p.active ? '✓ 当前使用 / Em uso' : (p.is_thermal ? '热敏打印机 / Térmica' : '普通打印机 / Normal') }}
不可用
点击"搜索"查找可用打印机 / Clique "Buscar" para encontrar impressoras
:
需要在Windows上运行POS并连接USB打印机。Docker/NAS环境不支持本地打印。
Requer POS em Windows com impressora USB. Docker/NAS não suportado.
使用浏览器打印对话框,适用于任何环境。打印前会弹出预览窗口。
Usa diálogo de impressão do navegador. Funciona em qualquer ambiente.
{{ printerStatusText || (printerOk ? '就绪 / Pronta' : '未连接 / Desconectada') }}
🧾 小票抬头 / Cabeçalho — 本店开票信息,仅管理员可保存
POS 更新 / Atualização
本机: {{ updateShort(updateLocalCommit()) }}
GitHub: {{ updateShort(updateRemoteCommit()) }}
请求: {{ updateState.status.request.target }} → {{ updateShort(updateState.status.request.commit) }}
Cloud: {{ updateState.status.cloudStatus.status || '—' }}
NAS: {{ updateState.status.nasStatus.status || '—' }}
{{ updateState.error }}
发送建议 收件箱 {{ inboxUnread }}
暂无消息 / Sem mensagens
{{ m.fromUsername || 'Admin' }} {{ m.createdAt }}
{{ m.message }}
已读 ✓

🔐 开盘对账 / Conferência de Abertura

{{ openingCheckStatus.date }} · 未对账 {{ openingCheckStatus.pendingCount }} 个账户 / {{ openingCheckStatus.pendingCount }} conta(s) pendente(s)

请输入对账授权码(与折扣授权码不同) / Digite o código de autorização de conferência

{{ ocCodeError }}

⚠️ 系统尚未配置授权人,请联系老板在 V2 管理后台添加 / Nenhum autorizador configurado
✓ 识别到操作人: {{ ocOperator }}
👥 前台轮岗状态 / Rotação de Vendedores
每位销售员独立倒计时(最多 30 天)/ Contagem regressiva independente
销售员 {{ slot.slot }} / Vendedor {{ slot.slot }}
{{ slot.salespersonName || '— 未设置 / Não definido —' }}
{{ rotationDaysLabel(slot) }}
开始 / Início: {{ slot.startedAt }} · {{ slot.durationDays }} 天
编辑 销售员 {{ slot.slot }}
(1-30)

请对照每个账户的实际余额,填入"确认余额"。有差异时必须填原因。

Verifique o saldo real de cada conta e preencha "Saldo confirmado". Em caso de diferença, informe a razão.

{{ row.name }}
{{ row.acct_type.toUpperCase() }}
✓ 已对账 / Conferido
{{ F(row.system_balance) }}
{{ ocDiff(row) > 0 ? '+' : '' }}{{ F(ocDiff(row)) }}
原本: {{ F(row.system_balance) }}
确认: {{ F(row._actual) }}
差异: {{ ocDiff(row) > 0 ? '+' : '' }}{{ F(ocDiff(row)) }}
原因: {{ row._reason }}
🎉 全部账户已对账,可以开始营业!/ Todas as contas conferidas — pode começar!
单号 {{ dispatchNotice.code }} 已出货 / Expedido
{{ toast.msg }}