优化
This commit is contained in:
@@ -3,6 +3,8 @@ import { resolve } from 'node:path'
|
||||
import { describe, expect, it } from 'vitest'
|
||||
|
||||
const settlement = readFileSync(resolve(process.cwd(), 'src/modules/finance/pages/FinanceFormalSettlementPage.vue'), 'utf8')
|
||||
const density = readFileSync(resolve(process.cwd(), 'src/styles/adminDensity.css'), 'utf8')
|
||||
const financeDensity = readFileSync(resolve(process.cwd(), 'src/modules/finance/financeDensity.css'), 'utf8')
|
||||
const financeRoutes = readFileSync(resolve(process.cwd(), 'src/modules/finance/routes.ts'), 'utf8')
|
||||
const accounts = readFileSync(resolve(process.cwd(), 'src/modules/finance/pages/FinanceCustomerAccountsView.vue'), 'utf8')
|
||||
const statements = readFileSync(resolve(process.cwd(), 'src/modules/finance/pages/FinanceCustomerStatementsView.vue'), 'utf8')
|
||||
@@ -22,7 +24,7 @@ describe('finance presentation governance', () => {
|
||||
expect(financeRoutes).toContain("finance/receivable-statistics")
|
||||
expect(financeRoutes).toContain("platform:finance:receivable-statistics:list")
|
||||
expect(financeRoutes).toContain('showPageHeading: false')
|
||||
expect(settlement).toContain('class="settlement-detail-page surface-panel"')
|
||||
expect(settlement).toContain('class="settlement-detail-page surface-panel finance-density-detail"')
|
||||
expect(settlement).toContain('返回列表')
|
||||
expect(settlement).not.toContain('AppDrawer')
|
||||
expect(settlement).toContain('登记后剩余余额')
|
||||
@@ -30,32 +32,27 @@ describe('finance presentation governance', () => {
|
||||
expect(settlement).toContain('remainingAfter(paymentForm.amount)')
|
||||
})
|
||||
|
||||
it('uses one continuous desktop detail surface with balanced summary and scroll-safe tables', () => {
|
||||
expect(settlement).toContain('<DetailPageLayout v-else-if="detailMode" class="settlement-detail-page surface-panel"')
|
||||
it('uses one continuous desktop detail surface with shared summaries and scroll-safe tables', () => {
|
||||
expect(settlement).toContain('class="settlement-detail-page surface-panel finance-density-detail"')
|
||||
expect(settlement).toContain('class="settlement-detail-content"')
|
||||
expect(settlement).toContain('.settlement-detail-header { display: flex; min-height: 68px;')
|
||||
expect(settlement).toContain('align-items: center;')
|
||||
expect(settlement).toContain('justify-content: space-between')
|
||||
expect(settlement).toContain('<el-descriptions :column="4" class="settlement-detail-info">')
|
||||
for (const title of ['基本信息', '费用明细', '修订记录']) expect(settlement).toContain(`title="${title}"`)
|
||||
expect(settlement).toContain('class="settlement-detail-info density-descriptions"')
|
||||
for (const title of ['基本信息', '费用明细', '修订记录']) expect(settlement).toContain('title="' + title + '"')
|
||||
expect(settlement).toContain(':title="kind === \'receivable\' ? \'收款记录\' : \'付款记录\'"')
|
||||
expect(settlement.match(/class="detail-table-scroll"/g)).toHaveLength(3)
|
||||
expect(settlement).toContain('grid-template-columns: repeat(4, minmax(0, 1fr))')
|
||||
expect(settlement).toContain(':deep(.detail-table-scroll .el-table) { min-width: 920px; }')
|
||||
expect(settlement).not.toContain('class="detail-section surface-panel"')
|
||||
expect(settlement.match(/width="min\(760px, 94vw\)"/g)).toHaveLength(2)
|
||||
expect(settlement.match(/class="settlement-operation-form"/g)).toHaveLength(2)
|
||||
expect(settlement).toContain('grid-template-columns: repeat(5, minmax(0, 1fr))')
|
||||
expect(settlement.match(/class="settlement-operation-form density-form"/g)).toHaveLength(2)
|
||||
expect(settlement).toContain('grid-template-columns: repeat(2, minmax(0, 1fr));')
|
||||
expect(settlement).toContain('column-gap: 14px;')
|
||||
expect(settlement).toContain('column-gap: var(--admin-space-5);')
|
||||
})
|
||||
|
||||
it('keeps settlement totals and list actions in the table toolbar', () => {
|
||||
expect(settlement).toContain('<template #toolbar-start>')
|
||||
expect(settlement).toContain('class="settlement-summary" aria-label="结算汇总"')
|
||||
expect(settlement).toContain('class="density-detail-overview settlement-summary" aria-label="结算汇总"')
|
||||
expect(settlement).toContain('<template #toolbar-actions>')
|
||||
expect(settlement).toContain('class="settlement-list-actions"')
|
||||
expect(settlement).toContain('.settlement-summary .summary-item + .summary-item')
|
||||
expect(financeDensity).toContain('.settlement-summary.density-detail-overview { padding: 0; border: 0; }')
|
||||
expect(settlement).not.toContain('class="settlement-list-toolbar"')
|
||||
})
|
||||
|
||||
@@ -110,8 +107,8 @@ describe('finance presentation governance', () => {
|
||||
|
||||
it('translates source codes and provides reason placeholders', () => {
|
||||
expect(arap).toContain('sourceTypeDisplay(detail.sourceType)')
|
||||
expect(arap).toContain('financeOperationActionLabel(log.action)')
|
||||
expect(arap).toContain('financeOperationResultLabel(log.result)')
|
||||
expect(arap).toContain('financeOperationActionLabel(row.action)')
|
||||
expect(arap).toContain('financeOperationResultLabel(row.result)')
|
||||
expect(arap).toContain('financeDirectionLabel(row.direction)')
|
||||
expect(arap).toContain('financeDirectionLabel(detail.direction)')
|
||||
expect(arap).not.toContain("detail.direction === 'RECEIVABLE' ? '应收' : '应付'")
|
||||
@@ -138,10 +135,10 @@ describe('finance presentation governance', () => {
|
||||
})
|
||||
|
||||
it('opens statement details on a compact dedicated route instead of below the list', () => {
|
||||
expect(statements).toContain('v-else-if="isDetailRoute" class="surface-panel statement-detail-page"')
|
||||
expect(statements).toContain('v-else-if="isDetailRoute" class="surface-panel statement-detail-page finance-density-detail"')
|
||||
expect(statements).toContain('@row-click="openDetail"')
|
||||
expect(statements).toContain("name: 'finance-customer-statement-detail'")
|
||||
expect(statements).toContain('.statement-detail-page :deep(.detail-page-layout) { gap: 0; }')
|
||||
expect(financeDensity).toContain('.detail-page-layout.finance-density-detail { gap: 0; }')
|
||||
expect(statements).toContain('返回客户对账单')
|
||||
expect(statements).not.toContain('aria-label="所选对账单联动明细"')
|
||||
expect(statements).not.toContain('核对账期、金额和结清状态后查看下方业务明细。')
|
||||
@@ -149,13 +146,10 @@ describe('finance presentation governance', () => {
|
||||
expect(statements).not.toContain('只读展示当前对账单关联的有效收款记录。')
|
||||
})
|
||||
|
||||
it('uses a compact financial summary row for customer accounts', () => {
|
||||
expect(accounts).toContain('.finance-account-detail__layout :deep(.detail-page-layout)')
|
||||
expect(accounts).toContain('gap: 0;')
|
||||
expect(accounts).toContain('.account-metric + .account-metric')
|
||||
expect(accounts).toContain('border-left: 1px solid')
|
||||
expect(accounts).toContain('.account-metric::before')
|
||||
expect(accounts).toContain('display: none;')
|
||||
it('uses a shared compact financial summary row for customer accounts', () => {
|
||||
expect(accounts).toContain('class="density-detail-overview account-metrics"')
|
||||
expect(financeDensity).toContain('.detail-page-layout.finance-density-detail { gap: 0; }')
|
||||
expect(density).toContain('.density-detail-overview')
|
||||
expect(accounts).toContain(':deep(.ledger-query.query-toolbar)')
|
||||
expect(accounts).toContain('padding: 0;')
|
||||
expect(accounts).toContain('border: 0;')
|
||||
@@ -165,15 +159,12 @@ describe('finance presentation governance', () => {
|
||||
})
|
||||
|
||||
it('keeps fee-source details continuous without nested metric and section cards', () => {
|
||||
expect(arap).toContain('.finance-arap-detail__layout :deep(.detail-page-layout)')
|
||||
expect(arap).toContain('.arap-metric + .arap-metric')
|
||||
expect(arap).toContain('border-left: 1px solid')
|
||||
expect(arap).toContain('.arap-settlement {')
|
||||
expect(arap).toContain('padding-left: 16px;')
|
||||
expect(arap).toContain('class="density-detail-overview arap-metrics"')
|
||||
expect(arap).toContain('class="arap-information density-form-section"')
|
||||
expect(arap).toContain('class="arap-settlement density-form-section"')
|
||||
expect(arap).toContain('padding-left: var(--admin-space-6);')
|
||||
expect(arap).toContain('border-left: 1px solid')
|
||||
expect(arap).not.toContain('.arap-metric.is-amount { border-color:')
|
||||
expect(arap).not.toContain('description="费用来源与关联业务摘要"')
|
||||
expect(arap).not.toContain('description="当前审核和出账状态"')
|
||||
expect(arap).not.toContain('description="按时间查看审核与结算调整记录"')
|
||||
for (const description of ['费用来源与关联业务摘要', '当前审核和出账状态', '按时间查看审核与结算调整记录']) expect(arap).not.toContain('description="' + description + '"')
|
||||
})
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user