feat(web): maestros de clientes, proveedores y artículos (lista, formulario con pestañas, extensiones por cliente)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
b759c7bce7
commit
9f003ee4bf
30 files changed
+1553
-23
No files matched your search
@@ -0,0 +1,51 @@
|
||||
<sbo-toolbar bleed aria-label="Acciones del registro">
|
||||
<a class="tb" routerLink=".." title="Volver a la lista"><sbo-icon name="find" />Lista</a>
|
||||
<a class="tb" [routerLink]="isNew() ? '.' : '../nuevo'" title="Registro nuevo"><sbo-icon name="new" />Nuevo</a>
|
||||
<span class="tb-sep"></span>
|
||||
<button class="tb" type="button" aria-label="Primero" (click)="go('first')"><sbo-icon name="first" /></button>
|
||||
<button class="tb" type="button" aria-label="Anterior" (click)="go('prev')"><sbo-icon name="prev" /></button>
|
||||
<button class="tb" type="button" aria-label="Siguiente" (click)="go('next')"><sbo-icon name="next" /></button>
|
||||
<button class="tb" type="button" aria-label="Último" (click)="go('last')"><sbo-icon name="last" /></button>
|
||||
</sbo-toolbar>
|
||||
|
||||
<sbo-window [title]="windowTitle()" [badge]="badge()" [status]="status()">
|
||||
<div class="sbo-hdr">
|
||||
<div class="sbo-col">
|
||||
@for (f of layout.header.left; track $index) {
|
||||
<sbo-master-field [field]="f" [value]="value(keyOf(f))" [saved]="!isNew()" (changed)="setValue(keyOf(f), $event)" />
|
||||
}
|
||||
</div>
|
||||
<div class="sbo-col">
|
||||
@for (f of layout.header.right; track $index) {
|
||||
<sbo-master-field [field]="f" [value]="value(keyOf(f))" [saved]="!isNew()" (changed)="setValue(keyOf(f), $event)" />
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<sbo-tabs ariaLabel="Datos del registro">
|
||||
@for (tab of layout.tabs; track tab.id) {
|
||||
<sbo-tab [label]="tab.label">
|
||||
<div class="sbo-hdr">
|
||||
<div class="sbo-col">
|
||||
@for (f of tab.left; track $index) {
|
||||
<sbo-master-field [field]="f" [value]="value(keyOf(f))" [saved]="!isNew()" (changed)="setValue(keyOf(f), $event)" />
|
||||
}
|
||||
</div>
|
||||
<div class="sbo-col">
|
||||
@for (f of tab.right; track $index) {
|
||||
<sbo-master-field [field]="f" [value]="value(keyOf(f))" [saved]="!isNew()" (changed)="setValue(keyOf(f), $event)" />
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
</sbo-tab>
|
||||
}
|
||||
</sbo-tabs>
|
||||
|
||||
<button sboActions class="btn main" type="button" [disabled]="saving() || loading()" (click)="save()">
|
||||
{{ isNew() ? 'Crear' : 'Actualizar' }}
|
||||
</button>
|
||||
@if (conflict()) {
|
||||
<button sboActions class="btn" type="button" (click)="reload()">Recargar</button>
|
||||
}
|
||||
<a sboActions class="btn" routerLink="..">Cancelar</a>
|
||||
</sbo-window>
|
||||
Reference in new issue
Block a user