优化
This commit is contained in:
@@ -217,6 +217,40 @@ const cssRoot = (css: string) => {
|
||||
}
|
||||
|
||||
describe('approved Admin density ownership', () => {
|
||||
it('separates shared list filters with the same 5px radius across density themes', () => {
|
||||
const declarations = (source: string, selector: string) => {
|
||||
const values: Record<string, string> = {}
|
||||
cssRoot(source).walkRules(rule => {
|
||||
if (rule.selector === selector) rule.walkDecls(decl => { values[decl.prop] = decl.value })
|
||||
})
|
||||
return values
|
||||
}
|
||||
const foundation = declarations(read('styles/foundation.css'), ':root')
|
||||
expect(foundation['--cc-list-query-radius']).toBe('5px')
|
||||
expect(foundation['--cc-list-query-gap']).toBe('16px')
|
||||
expect(foundation['--cc-list-table-header-bg']).toBe('#edf4ff')
|
||||
expect(foundation['--cc-list-table-header-text']).toBe('#284b78')
|
||||
expect(declarations(shared, ':is(.admin-density, .admin-density-dialog, .admin-density-drawer) .el-table th.el-table__cell')).toEqual({
|
||||
background: 'var(--cc-list-table-header-bg)',
|
||||
color: 'var(--cc-list-table-header-text)',
|
||||
})
|
||||
const table = parse(read('shared/components/DataTable.vue')).descriptor.styles.map(style => style.content).join('\n')
|
||||
expect(declarations(table, '.data-table > .data-table__filters')).toMatchObject({
|
||||
'margin-bottom': 'var(--cc-list-query-gap, 16px)',
|
||||
'border-radius': 'var(--cc-list-query-radius, 5px)',
|
||||
border: '1px solid var(--list-card-border, var(--cc-border))',
|
||||
})
|
||||
const headerSelector = '.data-table > .data-table__toolbar:has(+ .data-table__filters)'
|
||||
expect(declarations(table, headerSelector)['border-bottom']).toBe('0')
|
||||
const fixture = document.createElement('div')
|
||||
fixture.innerHTML = '<div class="data-table"><div id="with-filters" class="data-table__toolbar"></div><div class="data-table__filters"></div></div><div class="data-table"><div id="without-filters" class="data-table__toolbar"></div><div class="el-table"></div></div>'
|
||||
expect(fixture.querySelector('#with-filters')!.matches(headerSelector)).toBe(true)
|
||||
expect(fixture.querySelector('#without-filters')!.matches(headerSelector)).toBe(false)
|
||||
expect(declarations(shared, '.admin-density .query-toolbar')['border-radius']).toBe('var(--cc-list-query-radius, 5px)')
|
||||
expect(declarations(shared, '.admin-density .surface-panel')['border-radius']).toBe('var(--admin-radius, 4px)')
|
||||
const query = parse(read('shared/components/QueryToolbar.vue')).descriptor.styles.map(style => style.content).join('\n')
|
||||
expect(declarations(query, '.query-toolbar')['border-radius']).toBe('var(--cc-list-query-radius, 5px)')
|
||||
})
|
||||
it('keeps sailing cutoff controls compact and delegates editor borders to the shared opt-in', () => {
|
||||
const view = parse(read('modules/sailing-calendar/pages/SailingCalendarView.vue')).descriptor
|
||||
const rules = new Map<string, Record<string, string>>()
|
||||
@@ -1024,7 +1058,23 @@ describe('approved Admin density ownership', () => {
|
||||
rule.walkDecls(decl => { declarations[decl.prop] = decl.value })
|
||||
rules.set(rule.selector, declarations)
|
||||
})
|
||||
expect(rules.get('.admin-density .el-table__body tr.el-table__row--striped td.el-table__cell')?.background).toBe('var(--admin-row-stripe)')
|
||||
const stripeSelector = '.admin-density .el-table__body tr.el-table__row--striped:not(:where(:hover, .hover-row, .current-row)) > td.el-table__cell:not(:where(.hover-cell))'
|
||||
expect(rules.get(stripeSelector)?.background).toBe('var(--admin-row-stripe)')
|
||||
const stripeFixture = document.createElement('div')
|
||||
stripeFixture.innerHTML = '<div class="admin-density"><table class="el-table__body"><tbody><tr class="el-table__row--striped"><td class="el-table__cell"></td></tr></tbody></table></div>'
|
||||
const row = stripeFixture.querySelector('tr')!
|
||||
const cell = stripeFixture.querySelector('td')!
|
||||
expect(cell.matches(stripeSelector)).toBe(true)
|
||||
for (const state of ['hover-row', 'current-row']) {
|
||||
row.classList.add(state)
|
||||
expect(cell.matches(stripeSelector)).toBe(false)
|
||||
row.classList.remove(state)
|
||||
}
|
||||
cell.classList.add('hover-cell')
|
||||
expect(cell.matches(stripeSelector)).toBe(false)
|
||||
cell.classList.remove('hover-cell')
|
||||
cell.innerHTML = '<table class="el-table__body"><tbody><tr><td class="el-table__cell"></td></tr></tbody></table>'
|
||||
expect(cell.querySelector('td')!.matches(stripeSelector)).toBe(false)
|
||||
expect(rules.get('.admin-density-dialog .el-descriptions__label.el-descriptions__cell')?.background).toBe('var(--admin-label-bg)')
|
||||
expect(rules.get('.admin-density-dialog .el-form--inline .el-form-item__label')?.['align-items']).toBe('center')
|
||||
expect(rules.get('.admin-density-dialog.el-dialog.admin-density-workspace > .el-dialog__body')?.flex).toBe('1 1 auto')
|
||||
@@ -1215,12 +1265,14 @@ describe('approved Admin density ownership', () => {
|
||||
expect(detail).not.toContain('.fee-form-grid')
|
||||
expect(read('modules/overseas-warehouse/components/WarehouseTransferReviewDialog.vue')).toContain('data-tone="source"')
|
||||
})
|
||||
it('keeps new dispatch settings and resources on shared continuous sections with body scrolling', () => {
|
||||
it('keeps dispatch planning on shared sections and cargo selection in the three-column board', () => {
|
||||
const source = read('modules/overseas-warehouse/components/SmartDispatchDialog.vue')
|
||||
const board = read('modules/overseas-warehouse/components/SmartDispatchCargoBoard.vue')
|
||||
const fields = read('modules/overseas-warehouse/components/DispatchResourceFields.vue')
|
||||
expect(source).toContain('fullscreenable')
|
||||
expect(source).toContain('density-table density-table--editable dispatch-create-table')
|
||||
expect(source).toContain('<DispatchResourceFields continuous')
|
||||
expect(source).not.toContain('<DispatchResourceFields')
|
||||
expect(source).toContain('<SmartDispatchCargoBoard')
|
||||
expect(source).toContain('label-position="left" label-width="130px"')
|
||||
expect(source).toContain('class="density-dialog-section dispatch-setup"')
|
||||
expect(source).toContain('class="density-dialog-section dispatch-draft-toolbar"')
|
||||
@@ -1228,9 +1280,12 @@ describe('approved Admin density ownership', () => {
|
||||
expect(source).not.toContain('data-tone="work"')
|
||||
expect(source).not.toContain('data-tone="summary"')
|
||||
expect(source).not.toContain('data-tone="source"')
|
||||
expect(source).toContain('class="cargo-workspace"')
|
||||
expect(source).toContain('<LineClampText')
|
||||
expect(source).toContain('class="dispatch-source-group"')
|
||||
expect(board).toContain('class="dispatch-cargo-board"')
|
||||
expect(board).toContain('class="density-table cargo-board-table"')
|
||||
expect(board).toContain('aria-label="待排订单"')
|
||||
expect(board).toContain('aria-label="托盘明细"')
|
||||
expect(board).toContain('aria-label="车辆装载"')
|
||||
expect(board).toContain('class="cargo-board-group-details"')
|
||||
expect(source).not.toContain('height="420"')
|
||||
expect(source).not.toContain('class="create-grid"')
|
||||
expect(fields).toContain('continuous?: boolean')
|
||||
@@ -1240,6 +1295,7 @@ describe('approved Admin density ownership', () => {
|
||||
})
|
||||
it('keeps dispatch workflow, delivery arrangements and owned evidence on shared compact sections', () => {
|
||||
const workflow = read('modules/overseas-warehouse/components/DispatchWorkflowDialog.vue')
|
||||
const cargo = read('modules/overseas-warehouse/components/SmartDispatchExistingCargo.vue')
|
||||
const arrangement = read('modules/overseas-warehouse/components/DispatchArrangeFields.vue')
|
||||
const evidence = read('modules/overseas-warehouse/components/DispatchEvidenceFiles.vue')
|
||||
expect(workflow).toContain(':fullscreenable="width !== \'560px\'"')
|
||||
@@ -1247,7 +1303,10 @@ describe('approved Admin density ownership', () => {
|
||||
expect(workflow).toContain('density-table density-table--editable workflow-editor-table')
|
||||
expect(workflow).toContain('label-position="left" label-width="130px"')
|
||||
expect(workflow).toContain(':confirm-loading="busy || uploadingEvidence"')
|
||||
expect(workflow).toContain('<LineClampText')
|
||||
expect(workflow).not.toContain('aria-label="候选货物分页"')
|
||||
expect(cargo).toContain('class="existing-cargo density-dialog-sections"')
|
||||
expect(cargo).toContain('<SmartDispatchCargoBoard')
|
||||
expect(cargo).toContain('aria-label="当前排车货物"')
|
||||
for (const tone of ['source', 'work']) {
|
||||
expect(workflow).toContain(`data-tone="${tone}"`)
|
||||
expect(arrangement).toContain(`data-tone="${tone}"`)
|
||||
|
||||
Reference in New Issue
Block a user