feat(web-admin): split recharge summary by fuel/ETC and fix pnpm workspace
Show fuel-only cards on fuel routes and ETC-only cards on ETC routes with a 5-column layout, and declare packages in pnpm-workspace.yaml so pnpm 9+ can build. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
1 parent
7ebbaa2784
commit
a4d213231c
7 files changed
+132
-26
No files matched your search
@@ -3,7 +3,10 @@ import { describe, it } from 'node:test'
|
||||
import {
|
||||
rechargeComparison,
|
||||
rechargeSummaryQuery,
|
||||
isRechargeSummaryRoute
|
||||
isRechargeSummaryRoute,
|
||||
isFuelRechargeSummaryRoute,
|
||||
isEtcRechargeSummaryRoute,
|
||||
rechargeSummaryModeFromPath
|
||||
} from './pl-recharge-summary'
|
||||
|
||||
describe('充值统计卡片', () => {
|
||||
@@ -30,32 +33,60 @@ describe('充值统计卡片', () => {
|
||||
})
|
||||
})
|
||||
|
||||
it('只对油卡充值业务子页显示,ETC 与其它车辆页不显示', () => {
|
||||
it('油卡分组子页识别为 fuel 模式', () => {
|
||||
assert.equal(
|
||||
isRechargeSummaryRoute('/vehicle-mgmt/fuel-recharge/vehicle-recharge-apply'),
|
||||
isFuelRechargeSummaryRoute('/vehicle-mgmt/fuel-recharge/vehicle-recharge-apply'),
|
||||
true
|
||||
)
|
||||
assert.equal(
|
||||
isRechargeSummaryRoute('/vehicle-mgmt/fuel-recharge/vehicle-recharge-record'),
|
||||
isFuelRechargeSummaryRoute('/vehicle-mgmt/fuel-recharge/vehicle-recharge-record'),
|
||||
true
|
||||
)
|
||||
assert.equal(
|
||||
isRechargeSummaryRoute('/vehicle-mgmt/fuel-recharge/vehicle-recharge-approval'),
|
||||
isFuelRechargeSummaryRoute('/vehicle-mgmt/fuel-recharge/vehicle-recharge-approval'),
|
||||
true
|
||||
)
|
||||
assert.equal(
|
||||
isRechargeSummaryRoute('/vehicle-mgmt/fuel-recharge/vehicle-recharge-workflow'),
|
||||
isFuelRechargeSummaryRoute('/vehicle-mgmt/fuel-recharge/vehicle-recharge-workflow'),
|
||||
true
|
||||
)
|
||||
assert.equal(rechargeSummaryModeFromPath('/vehicle-mgmt/fuel-recharge/vehicle-recharge-apply'), 'fuel')
|
||||
})
|
||||
|
||||
it('ETC 分组子页识别为 etc 模式并展示顶部统计', () => {
|
||||
assert.equal(
|
||||
isEtcRechargeSummaryRoute('/vehicle-mgmt/etc-recharge/etc-vehicle-recharge-apply'),
|
||||
true
|
||||
)
|
||||
assert.equal(
|
||||
isEtcRechargeSummaryRoute('/vehicle-mgmt/etc-recharge/etc-vehicle-recharge-approval'),
|
||||
true
|
||||
)
|
||||
assert.equal(
|
||||
isEtcRechargeSummaryRoute('/vehicle-mgmt/etc-recharge/etc-vehicle-recharge-record'),
|
||||
true
|
||||
)
|
||||
assert.equal(
|
||||
isEtcRechargeSummaryRoute('/vehicle-mgmt/etc-recharge/etc-vehicle-recharge-workflow'),
|
||||
true
|
||||
)
|
||||
assert.equal(
|
||||
isRechargeSummaryRoute('/vehicle-mgmt/etc-recharge/etc-vehicle-recharge-apply'),
|
||||
false
|
||||
true
|
||||
)
|
||||
assert.equal(
|
||||
rechargeSummaryModeFromPath('/vehicle-mgmt/etc-recharge/etc-vehicle-recharge-apply'),
|
||||
'etc'
|
||||
)
|
||||
})
|
||||
|
||||
it('旧路径与其它车辆页不显示充值统计', () => {
|
||||
assert.equal(
|
||||
isRechargeSummaryRoute('/vehicle-mgmt/etc-recharge/vehicle-recharge-apply'),
|
||||
false
|
||||
)
|
||||
assert.equal(isRechargeSummaryRoute('/vehicle-mgmt/vehicle-fuel-card'), false)
|
||||
assert.equal(isRechargeSummaryRoute('/vehicle-mgmt/vehicle'), false)
|
||||
assert.equal(rechargeSummaryModeFromPath('/vehicle-mgmt/vehicle'), null)
|
||||
})
|
||||
})
|
||||
@@ -13,12 +13,30 @@ export function rechargeComparison(
|
||||
}
|
||||
}
|
||||
|
||||
export type RechargeSummaryMode = 'fuel' | 'etc'
|
||||
|
||||
export function rechargeSummaryQuery(plate: string, kind: 'etc' | 'fuel') {
|
||||
return { rechargePlate: plate, rechargeKind: kind }
|
||||
}
|
||||
|
||||
/** 油卡充值分组下的申请/审批/发放/审批人设置 */
|
||||
export function isFuelRechargeSummaryRoute(path: string) {
|
||||
return /\/fuel-recharge\/vehicle-recharge-(apply|approval|record|workflow)\/?$/.test(path)
|
||||
}
|
||||
|
||||
/** ETC 充值分组下的申请/审批/发放/审批人设置 */
|
||||
export function isEtcRechargeSummaryRoute(path: string) {
|
||||
return /\/etc-recharge\/etc-vehicle-recharge-(apply|approval|record|workflow)\/?$/.test(path)
|
||||
}
|
||||
|
||||
/** 是否展示顶部充值统计(油卡或 ETC 业务子页) */
|
||||
export function isRechargeSummaryRoute(path: string) {
|
||||
return /\/fuel-recharge\/vehicle-recharge-(apply|approval|record|workflow)\/?$/.test(
|
||||
path
|
||||
)
|
||||
return isFuelRechargeSummaryRoute(path) || isEtcRechargeSummaryRoute(path)
|
||||
}
|
||||
|
||||
/** 当前路由对应的统计模式;非充值业务页返回 null */
|
||||
export function rechargeSummaryModeFromPath(path: string): RechargeSummaryMode | null {
|
||||
if (isEtcRechargeSummaryRoute(path)) return 'etc'
|
||||
if (isFuelRechargeSummaryRoute(path)) return 'fuel'
|
||||
return null
|
||||
}
|
||||
Reference in new issue
Block a user