merge: 合并 main 并保留寄卖内部匹配与客户退款

This commit is contained in:
2026-11-05 18:02:47 +08:00
105 changed files with 7248 additions and 665 deletions
@@ -0,0 +1,20 @@
import assert from 'node:assert/strict'
import test from 'node:test'
import {
formatCreditQuantity,
formatCreditUnitPriceLabel,
formatCreditUnitPriceYuan,
} from '../src/utils/credit-unit-price.ts'
test('积分换算率统一按元展示,不再使用“分”', () => {
assert.equal(formatCreditUnitPriceYuan(1), '0.01元')
assert.equal(formatCreditUnitPriceYuan(100), '1.00元')
assert.equal(formatCreditUnitPriceLabel(125), '1积分=1.25元')
})
test('人工履约配置量支持小数并去掉无意义尾零', () => {
assert.equal(formatCreditQuantity(1.5), '1.5')
assert.equal(formatCreditQuantity('2.2500'), '2.25')
assert.equal(formatCreditQuantity(0), '0')
})
@@ -0,0 +1,17 @@
import assert from 'node:assert/strict'
import { readFile } from 'node:fs/promises'
import test from 'node:test'
test('接单工单提供客户退款入口和确认弹窗', async () => {
const [panel, service] = await Promise.all([
readFile(new URL('../src/pages/admin/panels/WorkOrdersPanel.tsx', import.meta.url), 'utf8'),
readFile(new URL('../src/services/admin/worker-platform.ts', import.meta.url), 'utf8'),
])
assert.ok(panel.includes('客户退款'))
assert.ok(panel.includes('同意退款并关闭订单'))
assert.ok(panel.includes('worker_order.customer_refund'))
assert.ok(panel.includes('previewAdminCustomerRefund'))
assert.ok(panel.includes('executeAdminCustomerRefund'))
assert.ok(service.includes('/customer-refund/preview'))
assert.ok(service.includes('/customer-refund'))
})
@@ -0,0 +1,13 @@
import assert from 'node:assert/strict'
import { readFile } from 'node:fs/promises'
import test from 'node:test'
test('客服我的钱包展示统一结算虚拟账单入口', async () => {
const source = await readFile(
new URL('../src/pages/admin/fund/FundSupportView.tsx', import.meta.url),
'utf8',
)
assert.ok(source.includes('统一结算'), '钱包页必须展示统一结算卡片')
assert.ok(source.includes('生成虚拟账单,不扣积分或备用金'))
assert.ok(source.includes('support-wallet-grid'))
})