Merge release/test and preserve pickup execution and photo workflows
This commit is contained in:
@@ -836,7 +836,7 @@ describe('approved Admin density ownership', () => {
|
||||
|
||||
it('keeps contained overseas tab content and external cargo tab bodies separate', () => {
|
||||
expect(shared).toContain('.density-element-tabs:not(.density-contained-tabs) > .el-tabs__content { display: none; }')
|
||||
for (const file of ['LastMileOrderDetailView', 'DeliveryOrderDetailView']) {
|
||||
for (const file of ['LastMileOrderDetailView', 'DeliveryOrderDetailView', 'DispatchDetailView']) {
|
||||
const source = read('modules/overseas-warehouse/pages/' + file + '.vue')
|
||||
const ast = parse(source).descriptor.template!.ast!
|
||||
let panes = 0
|
||||
@@ -855,6 +855,24 @@ describe('approved Admin density ownership', () => {
|
||||
}
|
||||
})
|
||||
|
||||
it('fits the five dispatch vehicle fields in one desktop row with read-only detail tabs', () => {
|
||||
const source = read('modules/overseas-warehouse/pages/DispatchDetailView.vue')
|
||||
const css = parse(source).descriptor.styles.map(style => style.content).join('\n')
|
||||
const declarations = (source: string, selector: string) => {
|
||||
const values: Record<string, string> = {}
|
||||
cssRoot(source).walkRules(rule => {
|
||||
if (rule.selector === selector && rule.parent?.type !== 'atrule') rule.walkDecls(decl => { values[decl.prop] = decl.value })
|
||||
})
|
||||
return values
|
||||
}
|
||||
expect(declarations(css, '.dispatch-detail .vehicle-fields')['grid-template-columns']).toBe('minmax(0, 1.3fr) minmax(0, 1.6fr) minmax(0, 1.2fr) minmax(0, 1.5fr) minmax(0, 0.8fr)')
|
||||
expect(declarations(css, '.dispatch-detail .vehicle-fields > div')['grid-template-columns']).toBe('max-content minmax(0, 1fr)')
|
||||
expect(css).not.toContain('.dispatch-actions')
|
||||
expect(declarations(shared, '.admin-density .density-contained-tabs > .el-tabs__content').padding).toBe('var(--admin-space-5)')
|
||||
expect(declarations(shared, '.admin-density .density-contained-tabs.density-contained-tabs--flush > .el-tabs__content').padding).toBe('0')
|
||||
expect(elementsOf(source, 'el-tabs').every(node => classesOf(node).includes('density-contained-tabs--flush'))).toBe(true)
|
||||
})
|
||||
|
||||
it('opts shared overseas detail and relationship wrappers in only at approved callers', () => {
|
||||
for (const file of ['modules/overseas-warehouse/components/OverseasDetailShell.vue', 'modules/overseas-warehouse/components/OverseasReadOnlyDetail.vue', 'shared/components/InboundCodeRelationshipDialog.vue']) {
|
||||
const source = read(file)
|
||||
@@ -1099,7 +1117,17 @@ describe('approved Admin density ownership', () => {
|
||||
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')
|
||||
const horizontalLabelSelector = '.admin-density-dialog .el-form-item:not(.el-form-item--label-top) .el-form-item__label'
|
||||
expect(rules.get(horizontalLabelSelector)?.['align-items']).toBe('center')
|
||||
const labelFixture = document.createElement('div')
|
||||
labelFixture.innerHTML = '<div class="admin-density-dialog"><form class="el-form"><div class="el-form-item el-form-item--label-left"><label class="el-form-item__label">计划送仓日期</label></div></form></div>'
|
||||
const formItem = labelFixture.querySelector('.el-form-item')!
|
||||
const label = labelFixture.querySelector('label')!
|
||||
expect(label.matches(horizontalLabelSelector)).toBe(true)
|
||||
formItem.className = 'el-form-item el-form-item--label-right'
|
||||
expect(label.matches(horizontalLabelSelector)).toBe(true)
|
||||
formItem.className = 'el-form-item el-form-item--label-top'
|
||||
expect(label.matches(horizontalLabelSelector)).toBe(false)
|
||||
expect(rules.get('.admin-density-dialog.el-dialog.admin-density-workspace > .el-dialog__body')?.flex).toBe('1 1 auto')
|
||||
for (const tone of ['warning', 'purple', 'primary', 'success', 'danger']) {
|
||||
expect(rules.get(`:is(.admin-density, .admin-density-dialog) .density-action[data-tone="${tone}"]`)?.['--action-hover-bg']).toBe(`var(--admin-action-${tone}-hover)`)
|
||||
@@ -1302,7 +1330,8 @@ describe('approved Admin density ownership', () => {
|
||||
expect(source).not.toContain('class="density-dialog-section dispatch-draft-toolbar"')
|
||||
expect(source).toContain('<template #vehicle-controls>')
|
||||
expect(source).toContain('class="density-form dispatch-setup-fields"')
|
||||
expect(source).toContain('class="dispatch-warehouse-picker" aria-label="起运仓"')
|
||||
expect(source).toContain('<el-form-item v-if="mode === \'empty\'" label="起运仓">')
|
||||
expect(source).toContain('<template #order-controls>')
|
||||
expect(source).not.toContain('class="dispatch-warehouse-field" label="起运仓"')
|
||||
expect(source).not.toContain('data-tone="work"')
|
||||
expect(source).not.toContain('data-tone="summary"')
|
||||
@@ -1352,7 +1381,10 @@ describe('approved Admin density ownership', () => {
|
||||
}
|
||||
expect(workflow).not.toMatch(/max-height="(?:380|420)"/)
|
||||
expect(evidence).toContain('class="density-table dispatch-evidence-table"')
|
||||
expect(evidence).toContain('fullscreenable :loading="previewLoading"')
|
||||
expect(evidence).toContain('fullscreenable :loading="previewBusy"')
|
||||
expect(evidence).toContain('class="evidence-preview" :aria-busy="previewBusy"')
|
||||
expect(evidence).not.toContain('aria-label="本车附件预览信息"')
|
||||
expect(evidence).not.toContain('正在读取本车附件…')
|
||||
expect(evidence).toContain('<LoadErrorState')
|
||||
expect(evidence).toContain('<LineClampText')
|
||||
for (const source of [workflow, evidence]) {
|
||||
|
||||
Reference in New Issue
Block a user